Session 8 | Connecting frontend to smart contract - advanced

Lisk Summer Bootcamp — dev3pack · August 2025 · 2:01:23

This hands-on session connects a Next.js frontend to smart contracts using Scaffold-Lisk, wallet connectors and contract read/write hooks. Live debugging and payment, invoicing and inventory examples lead into an assignment to move a Base application to Lisk and wire its contract functions into the interface.

Speakers

Topics

From Lisk Summer Bootcamp — dev3pack, hosted by dev3pack.

Transcript

I see your Spanish is getting much better. >> It just that that's all. I can I can speak more, you know. That's great. Like your situp is just hammersome. >> Oh, thank you. I'm recording today so that's why I'm here now. >> Um like uh in your room you have two like in your place you have like uh two office. >> Yeah. So the studio is this one and my husband uses it to record and I use it to record and then we each have like our dayto-day office meeting space.

>> Whoa. That's incredible to have this kind of things home. A studio. >> It is. It is >> nice. >> We're spoiled like that. >> Sorry, >> I said we are spoiled like that. >> Spoiled >> having >> Yeah, spoiled kind of like u whenever you have the ability to have a lot of things. So, we are spoiled to have multiple places to record and >> Oh, yeah. >> Nice. Nice. What is the video about this? Uh, today >> I have a podcast. Um, I forgot what it was about. I need to refresh my mind what it was about. Uh,

it's a podcast that I need to be in. And then, um, I cloud wants me to do a video, so I haven't figured that one yet, but I'm going to do that. >> Nice. I cloud indeed. Indeed. All right. So, um, we're going to wait a bit. I will just put a reminder Telegram.

Hi everyone. Do you like the French accent? Usually people really like it but it's like just ugly when we are talking in um in English. It's just like wow. We recognize a lot when a French um speak literally. Um so there is no homework anymore.

>> Is there one after this class? >> Let me check. I'm scared. Um, no, it looks okay. Looks okay. So, let's see with Prativa. I take Yeah. Yeah.

Okay. Um Ratiba, are you there? Um not yet. We are live to it's going to be like an exciting session. It's every time when you see the the final uh result. I mean after everything. So yeah.

All right. Because like in a in fact usually you are starting with a smart contract part then someone taking care of the front end and when everything is kind like you connect both to have like a full stack application uh that are working for the judge but sometime it's not working for sure um who who will participate into the Halifa uh at the end of August. Uh I saw you I saw you

and normally like you can be there at Christian mento because they're going to have a and and also like in other place in South America they're going to have like co-working um for everyone. Slab vacation are open right? Yeah, yeah, yeah. It's gonna be a pain until the end. Anyway, uh I know them. Um stuck, stuck, stuck. Let me send to you. Um so, it's I will encourage you a lot to to participate into it.

Um, and uh, yeah, like it's it's the milestone of the of the of the month. Yes. Um, all right. All right. Pratiba, let me call her. Okay. Okay. Oh, she's coming.

Okay. Okay. Um, tomorrow we're going to have like um um how to say that an open discussion with the the latam um and um some I think we have to get some help. So I'm helping but my Spanish is not great. So I think tomorrow I will help for sure. Um but just if someone can translate what I'm saying um I will be super um happy um

to okay let's see is coming um actually like I I like from end of August then um we're gonna really um I mean uh the pack will change a lot um so just to let you know I will talk briefly about it on on the community call and then we will do another community call uh at the beginning of September and yeah

Be consistent. Consistency is the key. All right. Um, who was Shifi courses? You just finished the Shifi courses, right? >> Nice. >> Actually, I I had my uh water break. Just just two minutes water break. Yeah, that's insane. Yeah, this sounds insane. But very excited. Yeah.

>> Well, it's twoour session with >> Wow. >> I don't know if it's like too much. Um yeah because it's not technical like I mean here we are putting two hours exceptionally for the boot camp because it's like for going into details but otherwise like one hour it's it's like a great things usually >> yeah I feel personally like uh they are really complimentary so if it was like two technical both yeah I don't think it would be possible to bear but like uh since we start the morning like talking about abstracts concepts in web three uh

you know like today we were talking about defy as well. Yeah. >> Oh nice. Okay. >> Yeah. Yeah. So we're looking forward for next week. Yeah. >> Exactly. Exactly. All right. So Pratiba are you there? Um and just to let you know before starting so we will have the graduation ceremony next week. So I think I will do this one during the community call. Um having issue with sound. Ah okay. So just we will wait a bit. Um so yeah actually we are defining as a

percentage. So, first they told me 70 and probably we will just go a little bit down. Um I'm not sure. I will check. Um but actually like more than 50 people, no 40 45 people or 46 people are um above 70%. So that's pretty pretty good. Congrats. All right.

Ah, yes, that's true. You are coming to going to New York. So, you will be at the far meetup as well. >> Yeah, >> I signed in. Yeah. Uh, let's see. Let's see if I'm if I get there on time. Yeah, but I will I will arrive just before the forecast meeting. >> Ah, okay. So, let's >> Yes, >> let's see. >> It's quite challenging with like the airport in New York. Yeah, as usual, but enjoy. You will stay home many times there.

Um yeah, I will be staying like for a weekend next weekend uh from 14 to 17 of August uh for the hackathon like volunteering there. Uh yes, thanks thanks to you for all the information like I found this amazing opportunity but then I'm going to Chicago for some time as well like yeah because like my original reason was to visit a friend who lives in Chicago. That's why I'm going there. Yeah. Yeah. And let's see uh maybe I also get accepted for the base camp in month because I will be staying until September there. Yeah, let's see.

>> Probably I will come. Um like if I'm ac um I still have to figure out when to take the flight. um because like it's going like price has going are going up as crazy every time. So yeah, let's see. >> Yeah, something weird with air airplane tickets going on like I I also read like the tariffs might increase like soon. So if you're interested in getting a ticket to it quickly. Yeah. Yeah.

>> Yeah. Yeah. Yeah. True. True. Last time I I I was in New York on May it was for Falcon like for the like forecaster gathering annual gathering. Um it's like it's quite um exclusive but like you will have the chance to to go um next year at Rome I guess. Uh it's going to be there. So pretty pretty nice place. And let's see. Yeah. Yeah. Yeah. Yeah.

Radar. Oh, she's she left. All right. All right. Do you have something that you want to cover during the the community call next week? Uh feel free to let me know right now because uh most of the active people are here or any feedback. I don't know. I mean, I feel like I talk too much. I don't want to take space from anyone else. But yeah, I would love personally I would love maybe to talk or like to

cover quickly some um career maybe tracks uh like ideas more or less like uh like including some resources also like apply apply to my case. I would be interested of course in data in web street data uh like related things um >> um yeah stuff like this. Yes. All regarding career stuff then. All right. For the next steps. Yes. In fact, like every every month uh I'm doing um an update of what's next uh for the month. So, no reason. All good. Um and uh yeah. All

right. For career. In fact, I have like Sophia. Sophia wanted to to do like a a session about career because she's special she's a specialist um on this area like she's a HR um senior HR um recruiter in in this space. Um so last time she provided a lot of good things. Um so I think it's going to be great um to have her again and we were supposed to do a session like at the beginning of the July u but in fact I was at ETC and her too

so it was a bit complicated but let me think about that um sure um it's relevant and from next week we will uh start with um the D5 side uh because at the end we will have like um a DI builder club. So everyone interested by this topic will be able to really deep dive into it. Um why working with like um the right um partners related to DeFi. uh because the the issue every time is like uh you have a lot of projects into the space but when you are new you don't know how to filter them.

Uh so sometimes you can just deep dive into one and it's like a wrong one. So that's why uh I'm kinder like one of the filter uh to make sure the session will be um uh oriented on the right um project like topic etc. All right she's restarting her machine mage machine.

All right. Oh, what I just received. Oh my god. Oh, it's frumpy. That's why. All right. But we will have some tickets with DE pack too. So no worries.

Don't buy your tickets. It's useless. Every time something I'm saying um on my side in six year I almost never pay anything um regarding tickets etc. So be part of the community is like uh super useful to be fast track in fact into into different things. So um like when when I when I I got a call with the ecos lead of of dev connect she directly told me uh that she will provide tickets for us.

I didn't start like uh talk about it and she told me so that's okay. You're going to have tickets. And by the way, for the uh fellowship weight list, there is like more than 300 people for the upcoming one. Which wonderful people

Oh really? Okay. It was with scroll like open economy or lovable. No, I think it was with members of a telegram group and they were just talking like trash talking and v coding and then making mistakes and then trying to start over and I'm there for two hours. It's like oh I can just do this.

Nice. >> I think my my first uh vibe coding uh session uh will ever will stay in my memory forever. It was hosted by a friend uh in his house like there is a local expat community in Buenosirus. So we were like 20 people and it was late February. So the vibe coding uh word term was just invented like the guy just posted it in Twitter. Uh so basically we we we actually bad coded like a snake game. Yes. With Corser >> and he was like mentioning all those u uh sorry for this my mom is cooking.

Um well he was mentioning all those like names of the platforms and tools and I didn't have a clue like and it's amazing how far we've gone like with this in few months. >> Yeah. in a few months everything going. Yeah, exactly. Exactly. So, what about the defconet scholar program? Uh um uh so actually they didn't release yet the results just for a few category. Um but not the builder one yet because I think it's like the biggest one. Uh I don't know how many people apply.

Probably 3,000. I don't know. Um, and actually the the the people in charge of it is like quite busy until 16. So I think um it's going to be like available after 16, but it's my s my thought. Um yeah. Yeah. Yeah. Yeah. Um All right.

Yes. Yes. >> Let's go. >> Okay. Okay. Okay. So, um good it's evening at my end. Good evening everyone. How has it been? Um did anyone try out um the list scaffold um scaffold list to try and run it? Um, were you trying to finish up on the assignment? >> Uh, I'm not sure. Uh, but they already done something like this last time, uh, with scal it, so they know how to run it.

>> Okay. Okay. Okay. So, we'll just jump in right into it and then u we'll we'll move as we go. Okay. Let me share my screen. Okay. So on my side um for those who don't have this so today we won't be doing slides because it's mostly hands on. So it won't be a lot of talking but I expect um a lot of engagement because I'll be doing a lot of coding. I might go fast. So if I do go first please let me know. If uh not um we'll be good to go. Okay. So um for today um since

you're starting on uh the list scaffold so this is um the repository it's more of the same as scaffold it um also consider to have um the node 18.7 version or greater and then yarn so I use mostly yarn because it's lightweight and it's also faster. So yeah, so after you've cloned it, um you have to just as we communicated in the last session, you have to run y chain for you to be able to have a local node um on your machine. And then um so I use that command code uh code space dot to open my Visual Studio Code. And

um yeah, this is how the project looks like. Let me just uh yeah so this is how the project looks like. Um it has both um the contract side and the front end side. So we have um hard hatut um is our tool to use in our contract side and then nextjs for our front end. So if you just after you've um cloned your particular um project you can just run yarn start. I think I just written that badly.

Start and then it will um open a local host um on your machine. So I run it earlier. So yeah. So um just to give you an overview last time we covered on ethos.js. So also with um the scaffold list ethos is also part of um the library that's been used um to ensure that you the front end and the smart contract are connected properly. The difference with um doing ad hut and um and front end on from scratch and scaffold is scaffold is

easy. You get to spin up smart contracts very fast. to get up to do your front end on real time very fast and uh basically I think everybody who's been a web developer they use this for hackathons when you want to code very fast yeah also um the scaffold list you can also add frameworks for those who did uh the last week assignments you can use a framework like um like um Daisy UI um you can also use Tailwind um SSS um Chakra UI depending on which one you're using and you'll also see how we can use um

okay I think I had some error there. Okay, let's just let's just comment that out. Okay. So, just a minute. We comment this out. We'll come to it later. Okay. Think now it's working perfectly. Yes. So um the scafford list also comes

with some contracts that are already written for you. Um so you can be able to okay you can be able to Okay, we're good to go now. So, those were like um some edits I was trying to do before the meeting, but now we're good to go. Should be good to go.

Okay, just remove the read and the right functions and then we'll get back to them. Oh good. Okay. So this is how it looks when um you try and run yarn start without anything. So this is just like a plain old um website and as I told you um how you are able to interact with the smart contract just think your smart contract as your back end side and your front end side and you're trying to interact with the smart contract also uh the lisk ecosystem chain using the RPC. So um

here you can just see we have home we have a button for debugging contracts that the contracts have been deployed. So I'll disconnect here so that we see um something about the wallets and then here you can go to the link of um obtaining some forets um if your wallet doesn't have some test net um it or something and then we have uh the d console. Yeah. So basically this is how it looks. Also on our on our side here when you go to hard hatut you can be able to see it. It looks plainly or or same as when you um install hard hatut in your in your project or your directory.

Yeah. So here on contracts you can find um one of the contract which is buy me a coffee. So this is um just the same as um the feature that you see in most um blogs like I think in it's not in medium but in other other blogs you can you can see like a small um button saying oh you incentivize the developer for being able to write like a good article and yeah so this is like an onchain aspect of it whereby um you can be able to you know um incentivize a builder um in their particular um website by buying them a coffee. So it has like a strct where it stores all the social names and the

address of that builder and the username and then um it records um the particular um person who's been able to connect to that website using uh an address, a public address will be the owner and then the price that you're going to spend on that particular builder when you're trying to buy that coffee. And yeah, it has a lot of functions. We have a buy coffee function whereby it's it takes a variables of number of coffees, the username, their Twitter handle of that builder, and the message that maybe you could want them to receive after they've seen um the amount of coffee you've bought for them. Yeah. And then this is all about um um error handling

and conditioning whereby it says if at all the message is um smaller than the price or the number of coffees then it means that um you have insufficient funds and then um if not so then uh you it it calls the event of buy me a coffee um taking the ver the the sender and uh the value of uh the message. Yeah. So, that's how it it works. So, the different um contracts here, you can go and check them out. We also have um a charity token or a charity way of people donating um in onchain because it's

trans more transferable. And here we've been able to um create a token have a maximum supply of the token. So this you could say it's more of like a liquidity float of that particular token. So in blockchain you just call it maximum supply and it has like a 50 million tokens that are available in the liquidity and then um he has um an event whereby you can make a donation which possesses the donor's address uh the charity's address that is the people who you are donating to the amount uh and the tax credit.

So the particular token um is called Vietnamese dog V with a symbol of VND just the same way with Lisk. It's called Lisk but has a symbol of LSK and then it's an ERC um 20 token meaning it's able to transact you can be able to transact that particular token from one person to another and it's not the same as ERC 721 whereby it's in art form. So for that same uh reason of of this particular token being able to be transferred from one person that's why we have um this function whereby using that token you can send it to another person uh using their public address and also um their amount also um you can donate um to a charity

um the function of donating a charity um from this particular event of a donation being made. So the function um if you want maybe to donate to a charity you get um you have a charity and then you have the amount. So the other functions are for registering a charity at all you want to be donated to and the other one is for calculating the circulating supply that's been happening and the ming of that particular token and then the burning of that particular token to create demand of that particular token on that this donation platform.

So the contract that we are going to concentrate on is um this your contract. So we're just going to look on it. And as you can see here um in our front end side or local host side of our website, you can be able to see the contracts that have been um deployed here. Yeah, we have some errors. Okay. Okay. So, um you can see in your contract here um which is the particular token that I've selected um it has different read and write functions. So, as you remember um I told you every time

you deploy a contract um these particular functions they might be having a read um function or could be like a write function. So a write function it means it adds data to the smart contract and a read function it means that you read data from um the smart contract. So this particular contract was your contract it was deployed um under this address. So if you want to check out on um the block scouts list you can check it out and then it has all of these functions. So this um read and write functions are the same functions that you should be calling them here on on your on your front end um side whereby now people can be able to interact with with your

website without them um interacting with your contract either on the blog scout um side. Yeah. So for example um here we have um let's check out on this contract. So this contract is supposed to like um greet you like it's a greeting contract whereby um it has the owner. So the owner is the person who will connect um their wallet here and then um the greeting after you've greeted that person um you will receive a greeting of building and stop unstoppable uh apps.

So if you see here up here um the owner address was input to be immutable and then um it means that here you also have a boolean variable called premium and then the counter of greetings it's also records the amount of greetings that you've given out to a particular user and that's why we have that um total um counter. So he also has some restrictions whereby um the owner has a set of rules whereby um the messenger um will be the owner. Yeah.

And then we have now a function of set greeting. Um which here um this function of set greeting is the same as um this um particular um front end that you're trying to see on the debugging of of the contract. So um this particular function of set greeting it's a write function meaning you have to in have an input form in the side of your front end for the user to input either a text of them of of the greeting and then that's sent um to the particular user that you want the greeting to go to. So um this particular um function it takes um uh it keeps u memory of uh the new uh greeting and

then that greeting is also taken to that center and every time there's a new um greeting um the counter is increased by one. Yeah. And then uh this is a fail safe um condition whereby if the message is not greater than zero then the premium is true and the other one is is false. And then we have another function of withdraw. Yeah. So if you are the owner you have um uh role or you have access to withdraw which is you can be able to sell some ether or yeah to a particular address uh person. Yeah. So that's it.

So if we check out on the contract and we try to maybe let's say hey and uh we have a payable. So okay so we've not connected our wallet and that's the reason why you see um we can't be able to write on this particular contract. Yeah. So um in a scaffold um list how um wallets are being um are being connected is we go here and then we go to our front end. So we are using a particular um library that's called um rainbow kit.

Just a minute. Okay. See in the app. Sorry. Yeah. So um we are using a particular um library that's called Rainbow Kit. And this is mostly um used to ensure that um when you press a connect wallet, it just it just doesn't look uh very smudgy because most of the times when you're trying to connect a wallet um you just press the button and then we as we did last time where you saw um we just have the metam mask popping up. But using um Rainbow Kit, it gives you like components that um are very beautifully made. It's it's like um using Tailwind

for your CSS and um you just import that particular um component if you want to connect uh to have like a connect button or a connect wallet and you also have to install um rainbow kit um in your particular project but uh I think that's already installed in scaffold list so you don't have to worry about that and yeah so that's what it's used in case you want to Check out um more on Rainbow Kit. You can find it here.

Yeah. Yeah. So, um let's move on. Yeah. So, um when you press um connect wallet, it now pops up um the uh the component done by Rainbow Kit. And when you just um press Metam mask, it's either going to do a popup or for me it's just going to connect directly because um I had already um confirmed um this particular local host to this um site to be accepted by my particular MetaMask wallet. So if you go to your Metam Mask, if at all you connected to this particular site, you'll be able to see like in your connections you're connected to this particular site and

you can either remove or you can let it run. so that it automatically um always detects your wallet as you move on. So also ensure you have some some gas here um because while transacting or writing into the contract you'll need some some gas to be able to do some of the functions. So um when you're trying to I think the first time when you're trying to do um yan start the contract wouldn't have been deployed. So if you do want to deploy your particular contract, you can do yan deploy.

But keep in mind that this yan deploy will only take like the local um node of um your particular um scaffold list. So if you want to either deploy into another network, you just add um this variable network options and then it will populate a list of the available networks that are there. And then you just decide which one you want to um deploy it on. So for us we'll use so space is the select button and then you enter and then it will deploy um your particular contract if it doesn't have any errors. So you can also compile your particular contract using yan compile

and just to check out if your particular contract is also um working. So as you can see all our contracts have been deployed all of them and their contract addresses are um those as they have been um showcased there. Any question on wallets before I move on and we try to see how we can be able to we can be able to um interact with one of the contracts.

So um other people do use a lot or uh other frameworks we have reown. Um we have reown which people also use um as their component to try and um implement the connect wallet. So this particular person who's been able to connect to this um particular um contract can be able to deploy that particular contract. But is the person who's tracked by this um owner um address uh public um this particular um variable which is the address and the public of of the owner. Yeah.

Any questions before I move on? Yes. So, Rainbow uh Rainbow Kit is default in the scaffold list. So, um you don't need to do the installation npm installation command. So, what you need is um just to have the component there and then um it will run. But in case you face any error, you just um install it. But the the terminal will let you know. Yeah. Okay. So, um let's try and create um a public address of or another owner who is um we're going to call the public address title.

And um that particular person is the one that will ensure that um because as you see here um the particular owner that was there was not immutable. It means um you couldn't change that particular owner. So that's why um we have this address public title. So this you can change this particular um owner meaning that you as a person even when you go to that site you can um change your wallet and you can disconnect or connect your wallet. So we are going to see on how we can manipulate this um title to be able to deploy um this particular title in the contract and also be able to get some data from

this particular um address. So, we're going to start in the side of a smart construct because that's how we start. And then you um initialize with that um variable and then um since we want to uh be able to um add um a functions to this particular address. Then we'll have a function and then that function will just call it set title which will um have a parameter of um the title and we will um say that this particular um particular address we want it to be an owner of um that particular site and every time um you connect to that um particular website it

represents now the title that we've created here. So, uh, the underscore is used for reference purposes. Okay. So, um, let's go now to our front end. Um, let's deploy our contract. We see it's still working. Okay. Let's compile and then deploy it and see if it's working. So, it's all good. It's It's working well. So, no errors on the side of the contract and yeah.

So, also on the front end side it's not so good. Uh you see we're trying to debug. Um so let's contract and you will see that here um we've been able to add now our our input or another function here which is um the set title function which will be taking an input of um the address uh or a public address then can be changed every time and you can like change um the title of um that particular function every other time. So um let's try and

see if it's going to work. We'll try and get some public address here and then it will say waiting for user confirmation. Okay. Have to. Okay.

Okay. Just a minute. Yeah. So, you will see it's requesting to interact with the smart contract that you've deployed and with some gas. Then when you confirm then that particular trans transaction um is said is not connected. So you have to connect. Yeah. And then you will see that that particular transaction has been able to be completed. And you can see um the transaction receipt which is here which is these are the logs of that particular transaction with gas status. it went from who to who the type of the transaction and um other things. So um

we can try and um now read um this particular function or uh try to read the title that we've inputed in our contract by trying now to have another function here which um it can read um from that particular um contract. So that we do here, we do here in our smart contract and we'll say get title which our title returns a particular that address that we've been able to input in our set

title function and it returns um the title. Okay. So, every time you make some changes in your smart contract, you have to deploy it. Yeah. And if it deploys successfully, it means your contract is good to go. So now we go back um if we go back to um our website we should be having a another read function either above or below the user greeting contract which um should be having like a greet um particular um um get greeting but I think it's not

happening because we've not added it on the front end. So let's try and have it on um the front end. So if you come here and look at the docs of scaffold e. So the docs of scaffold e and scaffold list are more of the same. So if at all there are any components that you do want to add in your front end or there's any um activities or events you want to do in your smart contract, you can use um this particular documentation as um your guide. So as you can see, as I said before, you can be able to use um Daisy UI in your particular um front end and we'll see how it works with um the components. So for

now, let's try and read the contract. So if you're trying to read the contract um there's um this particular um function or hook, I can call it a hook. Yes. that um you can be able now to call your particular contract and call that particular function so that it can be able to retrieve um that read or that um title that we've set on the set title. So um you just um we can just copy this um for our example and then we will um we will um change the particular function name and the data and then we see we can be able to get um the get

title that we put in our contract. So I just done that. So let's comment that and then uh because um you're using a particular hook you remember you have to import that particular hook and that's it. See it's bring some problems. Okay. Okay.

Okay. I think it's good. So in case of anything, you can just um search here and you can be able to see anything that you do want in case of inputs issues. Yeah. So let's see if that will work. So um because um that smart construct will definitely be giving us data um that's why we have um a function here whereby we're trying to store the data and you're giving that data name um current title and the particular contract that we using is your contract as it was before and our function name is not user ger our function name is um get title so that's what you're going to replace

here. And since we don't have any arguments, uh we're just going to leave it um uncommented. And for it to appear on the front end side, we have now to input a paragraph whereby um this paragraph without the styling. um you can just input it without um the daisy UI styling and also the scaffold in styling which you will just um see. I think you're having issue with this input.

Okay, I think we're good now. Okay. So, you try and fix this here. You can use your copilot. Uh this is where I'm coding comes through. And so yeah, we've we've imported it. I think it's supposed to pick up. Okay, I think now we need to do npm install.

Yarn install. That is install. Then it's going to install the hooks that are there. Okay, it's still giving us some error. So let's just read works. Okay. Yeah. Okay. Let's see here. S can't resolve. Okay. Let's try and um see our installation.

Okay. Let's try and in. No. So I think it's refusing because first of all we are using scaffold it and think you should be using scaffold list. Yeah. But I think that that's the problem of why it can't be able to read because this particular hooks um sometimes they give um problems. But how it's supposed to work is um if at all I I run um this here, we're supposed to see.

Okay, let's see who is here. So, it's still the same. I don't know why it's refusing. Okay. So, I think I'll have um to check on that particular hook that we are using. Uh Okay.

Okay. Okay. I think we are having some issues there with hooks but essentially um the function name that we are supposed to use is get title and then the contract name is your contract and then it's supposed to read um using this particular hook from um the contract and after that here when you're trying to um now um display that particular title that the current title which is has been gotten from this data from your smart contract, it will display in your in your website. I I'll check out on this particular hook. I think um we having some issues with it and I'll let you know on which particular one to to use.

Also the same as um the the scaffold um write contract, you also have to import um your particular um hook and because we already have um a write function which is a set title here. Um what you do is because um have it that when you're setting a title you have to input that particular um public address um which we initialized the test title and then um if we do that you can have input which that input you can remove it here from components. Okay. So we have an input uh base whereby if you copy um this particular input

and you have it here. Mhm. And you also come here after the title you can just have um let's say um a label there and you can have these components just the same way as you take some components from um the table uh the CSS frameworks like um material UI and have that and since we need to change um the set URL um we need to change the title you have to have um a use state here which um it's going to be title

and then um set title and then um use state. Okay. Yeah. And then um that particular value will be replaced by set title and it will watch over for um the title.

Yeah. And then you will have um your button which is should be essentially like um either your submit button or your set title button which now changes um that particular title every time you submit that particular title. So here we also going to change the function name to set title and then uh this is the title to be set which represents the value and since we want to be posting any any value um as numbers we'll just have the value as string and then if at all um there will be any

error um then it will be catched by the try and catch um method. Yeah. Any questions? Okay. Okay. Yeah. So, um if you want to see how actually the a minute think somewhere. Yeah. Yeah, we're good.

Okay. So this particular uh also um a sync await is not working because we have not um unc commented this and um if you want to write then you use this as sync um await and it's going to write onto our contract name which is um your contract. Yeah. And then um this input is going to listen to any change that's going to happen in that input box um for any change of title. And then after after that um then the button will trigger um the sending of uh that particular um

title to be changed and then it will be displayed um now using um the current title that we read from our smart contract. Any question? Any question? Okay. Okay. So if there's no question.

So let's try this one more time. It fails. We're good to go. Okay, we good. Yeah. Let's see if it is worked. Right. Should be a problem there.

Okay, we also need to import this uh the right contract assist. Just a minute. Just debugging this as you go. Yeah.

Okay. Okay. Okay. Okay. Yeah. So, um let's try and see if at all first of all um the title for reading did work and then we can go back to the reading the writing. Sorry. Yeah. do that.

And yeah, this too. Okay. So, um as you can Oh my god, we have um if we debug our contract and uh we set our title to a new address which is uh a new uh public address. So we use the one that we used before and we sent with following reason uh not the owner.

So let's use a different one. So you've seen um that if I told you you're trying to set a title and you're not the owner of that particular um account then you don't have powers because you've not deployed with this particular um contract then you don't have the power to read to that particular um and write to that particular contract.

So you send send um that particular title supposed to initiate a sign in. Then um when that transaction is accepted um then uh which you've confirmed then it should agree um to write to that particular contract.

Yes. And then on the home should be seen um a title um there. I think you're not seeing it because we have um dark background. So we can have a class name here. And yeah, now it's more visible.

Yeah. Is this also the same way to pull transaction? Yes. Yes. Yes. So we going to see on how um transactions have been pulled and that's the same way if if um at all here on um your contract and you're trying to send a transaction um you just write a function which um I think is more visible here um on the charity side and um you have an address to uh that particular transaction who is going to and um which address is it going to and Then on your front end side now you have inputs whereby the user can now input the address and the amount and every

time um they press that particular button you write to your contract um that um using um this particular function of transfer and then it writes to the contract and then you can retrieve that particular um transfer that has happened. Yeah. Any questions? Okay. Okay. Okay. So, um let's move on and see um how it can work in a very very highpaced or very um a big project.

Okay. So, this is a particular project that I was working on. So it's a project that whereby you have um packages and you can buy these packages either using uh EMPA or you can buy these packages um using your USDT. So um just as any other particular um website you can be able to you can be able to connect your wallet and you can also be able to um disconnect your particular um wallet. So for this particular package we have different packages we have for 100 USDT, 500 USDT and 1,000 USDT. So in this

particular project also um because we are using USDT it means that um you have to go um to the lisk documentation and see the particular um USDT contract that has been um deployed on the lisk network and use that particular um USDT. So I'm trying to open um that particular project so that you can see the smart contract. Yeah. So here um under tokens on lisk um you will find um the tether USD uh USDT and

this is what you use now to bring up the USDT in your particular um contract and be able now to have uh people transacting um either your packages using uh USDT. Okay. Okay. So this is the particular project. So it also has a back end and a front end side. It also has um contracts and yeah let me close this up.

So the particular um contract that we have is here. Let me open this very wide so that you can see. And as you can see this is the particular contract for the USDT. So um since USDT is um ERC20 definitely you should have um you should have a total maximum supply and should you should be able to meet mint it and you should also be able to ensure that the person who's minting it is the owner who's connected to that particular um website. Yeah.

So also um here to check out about the tokens. So um here um how the packages are are divided is 30% goes to the treasury and then um 70% goes to a pool. So this is a liquidity pool. The same liquidity pools that happen in um unis swap. I know this is kind of advanced, but we're going to use this site to at least understand how you can be able to um create let's say a package or you have something that you're selling.

Let's say for because of the last week project you're working on um products. So in replacement you could be having that product uh with the image and then the pricing of that product could be 100 USDT. So every time um you're trying to purchase that particular um product, you can now use um either your EMPA or you can you can use um you can pay using USDT. And here um when you connect your wallet and your wallet has um this amount of USDT or the owner who has connected to this has that amount of USDT then they can be able to buy that particular product. If they don't then um you cannot be able to buy that

particular product. So how is that regulated? So you can use modifiers for this or you can also um use um an only role which this is only used to um it's a modifier that's used to ensure that the person who's who does that particular ming has a mentor role or has an access to that particular contract. So on this particular function you can see um if you want to mint now that's buying um in plain terms it's buying that package um you have to record the address of the person who wants to buy it the amount and that amount is also uh removed from the amount that we've also

set up there and then we have um an only role of um that person who's also going to who has that role of minting or the person who's in that your case will be owner here. So yeah, could be owner. So it means that that person is the one who has that role of minting. So burning burning is whereby people send um some tokens to um an address and then um uh when it's sent to that particular address, it cannot be um used for either staking or any liquidity purposes in that uh particular um ecosystem. So once you burn you can never access um those tokens for either

trading purposes or liquidity purposes or or staking or any of those activities that tokens um do with. So another particular function is called um vesting. So vesting is like um tokens u staking sorry whereby you can be able to ensure that um your particular users can be able to stake their particular tokens for uh some time. So you can be able the users could be able to stake that particular token for let's say 2 years or 3 years and if at all they do remove um those particular tokens before that time then they lose um a percentage of uh that token or you can just set um the particular penalty that um you might

have um okay so here um as you can see we have um the vesting um contract. So um also um keep in touch that um as your contract grows um also divide uh your contract. I'm sure um covered that. So each and every feature or each and every function that you're trying to do if you're trying to transfer put it in a different contract. If you're trying to um ensure that uh maybe people are taking that particular token put it in a different contract.

Yeah. So um as you can see uh we are referring to the USDT um token that we do have and here we have a STR whereby it showcases um the duration of that particular token that's going to be um staked and um then that is mapped to whereby we showcase the amount of tokens that locked and amount of token that's uh will be released at a particular time and the percentage of um uh that particular um token when it's released. Yeah. Then we have um functions to do all of this which um we have the function for locking that particular token which um the person who's supposed to lock it also should have an access ro

on that and every time um a user locks then the amount for total tokens locked is increased. And then every time um a user also um wants to mint that particular um token or claim it, we also have a a minting function on that. Yeah. And then we also um also um keep in check of the tokens that have been claimed and the tokens that have been unreised because some of the time you find um the user might need to release a percentage of that token and it should some most of the times or how it should be they shouldn't be able to release but some contracts depending of how um you've put

it you can be able to release it. So um another thing um that you might come across is swapping swapping your tokens and I'm sure you've seen um this in most sites also um when you're trying to sub up your token. So just the same as in the contract um as I was saying um in this if you see in this particular um contract we have a function whereby you can set um uh this is set a bucket that that means that you can be able to set um a pool of the amount that you want to swap. So the rates that are used for swapping, they

are definitely used from another library which you can use for you can use unis swap or you can use pancake swap depending on what you're trying to use but unis swap is is great. So it looks at the rate of that particular USDT token or the token that you're trying to swap and then it compares if um the user has either the enough gas to swap and then uh if if you do have the enough um capability of swapping or if the user just sees um they can be able to swap. So you could um try to do this swap from one USDT to either another token could be LSK could be another token that has been built by anyone. So it calculates and then it gives you the amount that um

will be if at all you swap it and then if it's good for you um then um the user now does the transaction um by by being able to confirm the transaction. Yeah. So I'm just going to cover up those three just not uh for me not to confuse you. And yes, yes, I can send it. Send it project. Mhm. It's not a functioning product yet, but it's a project that I was

building on on another project. Um, this particular project is built on base and um Yes. Yes. 1 in is also used in uh swapping. Yes. So you can also check out the documentation on it and see um how we can be able to integrate it. Maybe later on maybe we talk with Solen and we see how we can do it. So because of inter interoperability I'm also going to showcase to you like another project that I did with days and um the reason why I'm showcasing to you it's part of your assignment because I want you to transform this particular

code or project that I've built on base 2 using scaffold list um on it and try to deploy that particular project. Oh, I'm so sorry, Judith that you're lost. Also, if um wherever you are lost, uh please you can just type that up and then um I'll go back to it. Yes. Yes. You're going to mark attendance and it's going to be live in under 1 minute. 1 minute. 1 second. Yeah. So, keep on checking the Google classroom.

Yeah. So um go to the other project. Yeah. So I think I did this for hackathon quite um a while back. I don't really remember when but it's supposed to be um like your business assistant whereby it handles your invoicing, your inventory and your customer service. So at one point I tried to integrate it with Faster but I didn't like finish it up. So yeah, so you're just supposed to connect your wallet and um then it's supposed to let you um automate your process of invoicing and inventory tracking and also customer

support. Yeah. So it's more of an AI agent but just on on the side of uh beginning. So yeah, we can just go through it. So we have a dashboard which has uh okay let me open up the code too. So the essence of me trying to show you

this project is at least you have an understanding on how front end can go to far lengths of also you trying to interact with um the smart construct as much as um it can be. So um and something that I failed to mention. So wanted to show you this other project. It uses reon. So the block um project also uses own instead of um rainbow kit. So, it doesn't have a lot.

Just give me a few minutes. So you will connect um this particular um side. Okay.

just going to take a few minutes and then I'll be back. In the meantime, um you can just share where you've gotten lost and maybe we can do Hello. Hello. Hello. I think everything is bugging. So that's why I cut off my camera, but I don't know.

My god, >> we almost made it to the end. Oops. Yeah. You you you see her like you have to to catch up her. No. >> Uh so so far just messaging on Telegram. Um and she showed me like a WhatsApp um group and stuff. So slowly slowly getting uh my foot into web three scene.

And uh I have two kids that are taking up all my time. But um once I get them sorted, I will definitely dive in um to the scene here. It's going to be good. It's going to be good. And Bratz is awesome. Though I mean I I I need to ask her what connection she's using because like my connection is so good here. Much better than Morocco. Morocco. This was me. I used to come out like four or five times every session. It was terrible. Um, >> Casablanca.

>> Casablanca. >> Yeah. >> All right. All right. All right. >> Yeah. I think it all depends on the provider you're using. Um, same city, same infrastructure, but just depends on >> Yeah. >> Yeah. The the provider, >> of course. >> Yeah. We will wait for her. This is so so valuable. So valuable. No.

>> Like in fact in Africa all Africa is speaking in French and then the other part speak in English. Right. >> I I guess. Yeah. a lot of I guess western Africa uh west and north minus Ghana and Nigeria um mostly and Syrian mostly >> yeah indeed um all right yeah because I'm thinking yeah because like I'm thinking for uh next year like to also open the the

program in French uh like for covering France but also like Africa. >> Wait. Yeah, I think a lot of the docs are in English. >> Yeah, >> this is a big uh block. Um because yeah, there are some devs but there's a language bar. >> Yeah, >> I agree with that. All right, Brad, are you there? Uh, no. I don't know.

Ah, yes. Attendance. Indeed. Indeed. Let me check uh the current state of the attendance. Um, took to the police was there to put the remainder. Um, 16 people click on I'm present. So, I will give you just the link to not forget that.

Um, to By the way, uh I just put a message Onyx, but I have to check money to do the video.

Surprise video. Took to I think the M like she's restarting her machine. I think so.

Are you planning to go to the eat safari sa? >> Ah me. >> Yeah. >> No. >> No. My August. Um. >> Oh, it's in September. >> I think it's in September. >> Ah, it's in September. >> Yeah. >> H. Yes. So, there's so much information. Honestly, I'm a bit lost. I saw I saw safari and I'm I'm from Kenya and whenever I see the word safari, it's so generic and touristy. I I I don't take it seriously honestly.

>> No, no, no. Like the founder of it like in fact it's an event in Kenya and um Okay. >> Is just to say like it's Kenya like this. Um >> that's good. Yeah. >> And the fun is really great. Uh so I really recommend you to to go if you have time for sure. >> Okay. I will take a look. >> It's safari. >> Eat safari. Yeah. Yeah. It's I mean I'm in a tough spot where like I'm Kenyan but I live in Morocco and we're here for holiday. So, we're here for August and I'm deciding. I'm deciding. Stay go.

>> Um, I'm still deciding >> the digital nomad life of everyone in web three. >> Yeah, Ma. I think our journey is so funny. >> Please share. Please. I think I'm in my third Airbnb maybe of the year >> since how many time are you in this Airbnb?

>> Well, I think this one is for three months and then we have to extend it for six months. >> Okay. >> You're never sleeping in your bed. >> Yes. Yeah. come back. >> Yeah. Yeah. Sorry for that. I think I got lost there for a minute. Okay. Any any questions that have appeared before we move to the to the other projects?

So, um this other project doesn't have a lot. So it's basically um my screen. So this is for connecting to a react app um for a mini app on base. Um not sure not sure if it's the same but if at all they're using reown um let me share my screen maybe could be the same but you see for could be the same library but since because you should be having like your forecast and your manifest JSON um could be like a little bit different.

Yeah. So I wanted to showcase to you. So this is I hope you're seeing my screen. Yeah. Okay. Good. So um this is the library for reown. So at you want to go and check out reown. So, it's it's a little it has like a um it's not the same as as um Rainbow Kit because um here you have to have your ID and um it's not the same as Rainbow Kit because with Rainbow Kit all you have to do is just um take the the component and the import but for um you have to they also have their

component. It's called AppKit. But you have to have um a project ID for you to put it in your env for you to be able to use the app kit. Yeah. But for for Rainbow, you just um populate um your component and it picks direct with npm install Rainbow Kit. Yeah. Okay. Let's move on to this other project. I connect my wallet Metam mask.

So, it's going to take 4 days. Okay, let's use Coinbase wallet that you see something else. So, the difference with B is they use Coinbase wallet and also sometimes you can use smart wallet. So I think it's it's different from um other Ethereum um like list where you can just add your your RPC on um on on your particular metam mask but it's more of the same a wallet is a wallet at the end of the day it should have a public address and you should have like some gas for you to be able to transact anything. Yeah. So um also with this

particular project just um hope you can see okay so with this also project um it has a smart contract and uh because it's supposed to help you with your invoice and your inventory. So you're supposed like to store your invoice and also your inventory and that's why we have um an invoice track and we also have an in an inventory which um stores them for invoice it the merchant the customer the amount and the due date just like any invoice and if it's paid and its metadata which is now stored on IPFS and then um we have the inventory which

has the item ID the quantity the price and the merchant that particular inventory has come from. So we are also implementing um ERC20 and we also um taking open zeppeline um contracts to also um ensure re-entrance guard. So re-entrance guard is used for security purposes to be able to ensure that your contract is um secure and yeah as we move on. So if at all um if you have one invoice it's mapped to um uh invoices the same as um an inventory. It's used to map an inventory to an address. And if you want to create an invoice, you have an an event for

that whereby um that particular event um has a variable of invoice ID, the merchant, the customer and the amount. same as the event of um having an invoice um being paid. A minute I close my laptop. >> Yeah. Yes. Anybody speaking? >> We are we are doing both um reading and and writing functions to um the smart um contract.

Yeah. So reading is very easy. the most problem when the most problem it enters is writing the function because for you even to read you have to um write that particular um function. Yeah. So this events you have also have an event for updating the inventory with the same same variables with the merchant ID, quantity ID and the price and you can also um create an invoice. So for this um this is um a write function whereby um you have to create an invoice. You have to have now an input for um the customer who now um has a variable of a public address. You also

have to in have an input on your side of front end. you have to have an input um an input component for you to be able to access that input from the user and then you also have to set um a due date and now you have um the meta data here. Okay. So here you're just encoding the particular um um invoice ID um for it to also be appearing on the meta data.

Yeah. And this is how the uh the data when you're trying to um look for that particular invoice, the particular um keyword that you're going to use is invoice. Yeah. So let's check out if this particular create invoice is also happening on the front end. So yeah, sorry. Components dashboard features.

Okay. Just a minute. Dashboard. Yeah. So, we have the inventory agent and agents. Yeah. Okay. So, as you can see here, we we tried to populate like um a JSON file for for the inventory because we didn't have time to like do it um with a database. So um as you can see this is just the front end um because if here um you see if you press on the inventory agent it's going to have like

an AI agent whereby if you just try here prepare stroke order for me it will prepare a stock order for for for you using um AI um chatbot where it's going to do a black t-shirt logo and a hoodie and Then it asking should it submit now to the supplier. Yeah. And then here you can see um the particular um stock items that you've populated here.

And you can see if you can reorder and you can also see the ones that have been sold and those um and how in the trajectory of inventory is it going upwards or or downwards or it's just um tinkering? Um um the yes. Okay. So um going back to our contract, you can also see there's um the pay invoice whereby you can um invoice um pay that invoice that has been generated. And you can see we have an invoice ID which um this was generated

also here and encoded on the metadata. And also you can see we have a time stamp of that particular invoice. And we have um the customer who's um the one who was creating that invoice up here. Yeah. And then you can now update um that particular um contract. So um for this it's also a write um function and also for the update inventory it's also a write function. Here on the get inventory this is um the the read function whereby you're just reading um the inventory that has happened with um the address of the merchant and the merchant ID and then you are um recalling um that particular inventory

that has been created um up here. I'm using this um strct sorry this strct that has been stored in the IPFS and then um the return that now you are going to call on in your front end is you're going to um call on the item ID and the and the and the merchant um who's who was in uh that particular um that particular um let's say inventory. Yeah. So I've omitted some things here.

I'm trying to explain it to you so that at least you can get um the the gist of um of the contract because this is going to be your assignment. Um you are meant to ensure that this particular functions uh they can be um either read or written in your particular uh front end um using this particular uh project. Yeah. Also um remember if you can use scaffold list for this or you can just go the scratch way depending on um how smooth you've understood every step but I'd still advise you use scaffold list because it's very easy because you can just um copy all of this um front end

into the scaffold list and also because you already have the contract you can just um copy the contract and then um after you've deployed then you will see um these functions either in the block scout list. Yes. And now you can start um having um those function that we tried to do in uh in the scaffold list whereby um here now you can start using um the use scaffold um contract write and contract read. Yeah. So here yeah you can just um use so if you have the function name for example for this particular contra uh contract whereby we have um create invoice um what you you

will do I'm just going to give you an example of that and then I'll I'll I'll hope that you going to work on it to um populate it. So here is the function name which is create invoice and you just replace um um the function name with um create invoice. Um remember if you deploy your particular contract baseflow um code um you will have um your particular name which is going to be the base flow which is the name of your contract and that's what you're going to um input in any uh place that's going to ask for your contract name. For example here under contract. Yeah. So you're writing to

that particular contract with this contract um name. So this is different from hard hat whereby you just um replace it with your contract address but since it's scaffold list it's going to be easy because you're just replacing the contract name and then um this is now the button um for creating an invoice. So here instead of set greeting um you're going to use um you're going to use um create invoice and then the arguments are that here on um create your invoice. You have seen that we have an argument of amount and you also have an argument of a due date.

That's where you you replace your arguments here. you can just type them on their name and then you have um the value and you can pass um either a value um in text form or in integer form and then when this particular um function of creating an invoice fails then you have an error handle whereby you say error the invoice has not been created. Are we together? Okay. Okay. So, I'll also like write um a few guides to this. And in case also um we haven't been able to understand um

the reading and the writing functions um please uh let me know. We can maybe do a refresher maybe Friday or over the weekend and see um how we can we can do it. Yeah. So, any questions for me? Me also open up the other one. I hope you have also um checked your attendance.

I'm still waiting for any questions. You can either ask me from this particular project or days or even um the local host that you're trying to do the scaffold list that you're trying to do. So also remember to use your hooks quite

well and every time there's a function and there's an input you have to use um use state for it so that you can um store that particular variable and be able to retrieve it from um the data. Yeah, please send the attendance again. I need to study the code in the Yes. Yes. Yes. So also um I understand um you have not thoroughly gone through react and it might take some time for you to go through react but um for you just for react for now um just giving you an understanding of the key things um it's

um ensuring that you can have use the you can use the use state so if you want to store anything for example in our invoice uh I'll just write it here and and delete it. You can just have um because you you want to store the amount or you want to retrieve the amount, you can just have set amount and set amount. And then since it's sorry, that was supposed to be calibrations. And since you want it to be an integer, you just use state and um this and then you have zero over there to mean that it's an integer. If it's a string, you can just input um the quotes or you can just have um

as here as um string here before. Yeah. Yeah. Or you can use um these arrows say string. Yeah. But the easy way is just to add curly braces over there. So then after that then um you can have um now um the functioning of that particular um creating of invoice whereby here um you can now have the argument whereby you can do is created or is pending and then is success when that particular

creating of invoice is Okay. And um yeah here now you can see um you can now um use now the use scaffold scaffold um right and then here now you can have the contract which is the contract name which there will be flow and then uh the function name which will be um invoice.

create invoice and then okay then have arguments and then since we are the argument that you do want to have on the invoice is amount you do that and then um you can say on success because we have the is um success here you can see um the invoice has been created successfully and yeah you can you can fail to navigate to if but If you want to navigate to another page, you can you can you can navigate and you can say here return and you say maybe the invoice ID.

Yeah. So that's how you can you can use this and then um after um that here upwards you would have loaded your particular smart contract data which will be data and give it a name. for example, invoices. Yeah. Which also has um the use scaffold read and then you read from the contract. And then now here below in your div and your paragraphs or your cards that you're going to use that's when now you reference using the curly braces either

the invoice ID that has been returned or um the amount or any data that you read from that contract. Okay. Yeah. Okay. Okay. Okay. Okay, any more questions? Have we gotten something at least that we can use it for the assignment?

Okay. And also remember if you do any any edits to your contract remember to deploy so that now you can be able to access the read and the right function otherwise with that um maybe your front end won't work as you are expecting it to be and um it's also going to be a little bit steep because you're using XJS but worry not it's not far away from react yeah but if at all you did manage to build um your last week um project. This will be easy for you. You just need to include all the functions in up here and uh here and be able to like call on the

contract and the functions and then um have um the particular returns and now you call them here on your UI which is the paragraph, the cards or anything. Yeah. In case you have any questions, um, reach out to the group. Yes. Yes. So, we can go through the assignment again. >> Assignment.

>> Okay. So, the assignment has um a smart contract and it also an assignment. >> Sorry. No, I didn't know there is an assignment. I mean, because it was not on the Google classroom. I didn't have the visibility on it. All right. >> Yeah. Yeah. So, so I'm going to put it after this class. I'm just going to put it. I think I just wrote it on a Google document and I didn't put it. But I wanted at least they have an idea of both um uh basic way of reading contract and at least now they can be able now to integrate it with the front end and have error handling. in their code. Yes. So for both um lecture one and lecture two um you're going to do on one assignment

only one assignment. Okay. So um the project is for you to first um deploy this um smart contract to um the list chain because it's on base and if you look here um if you look here in hard hat config you will see it just attached to the chain ID and um the URL for this. So here you just need to switch to lisk and then deploy it and then after that after you've

deployed it then you'll have access to all the functions which are not so many I think they're just four four five here and now um read those functions and write and read and write functions that are in this particular smart contract you integrate them in the different aspects um of of of this UI. For example, on the inventory agent, um you'll just need like for here, every time the chatbot runs, it creates an invoice. On the dashboard, you just read um the amount of orders from um the invoices.

And here you can also see the revenue and the customers from the inventory. Yeah. So you don't need to feel anything as long as you've shown that um everything as long as you've shown that you've understood um the essence of reading and writing um that will be um good for the assignment. So that it helps you um when you're going to either a hackathon or building your project to be able to move forward in in scale. Yeah.

Yes. Yes. Yes. So, um let me show you something. Just connect wallet here. Okay. Okay. Let me show you something here. So um here on the packages as you can see when you're trying to purchase a package um you're trying to mint that particular package. So minting and buying is more of the same. So when you're saying you're minting something it's like you're buying something even on product ming means buying. It's only just um the

essence of um terminologies um shifting. The only thing that you should be careful about is transferring. transferring of ownership. Yeah. Or transferring of tokens. Okay. Anything else? Okay. And uh you can also check out on on both of or even on this project that I have for block.

Sorry. Yeah, you can check out on the contract and see um how we've tried to mint and mint into that particular address and um and the owner and any owner who tries like to connect to that wallet. So this is one of the functions of trying to mint. Yeah. All right. Uh just to let you know so I have to jump in two minutes. Uh and so just to close up the session properly.

>> Um >> so thanks thank you for for your sessions. Um so I think it was insightful for everyone. uh all recording will be available on on on YouTube and also on Google Classroom. Anyway, um and then as I mentioned at the beginning, so the the graduation ceremony will be during the community next week. Uh so voila, voila. Um all good. I think so.

Feel free to say something in case of um great. Okay. So let's say um uh see you tomorrow if you are coming to the um to the session with uh the best camp fellow the the people already in the bas camp um if you want to say something if you want to help them etc because it's going to be like an open session or otherwise see see you next week and uh and yeah for for unis swap and and also

community I have to jump to choose. Bye-bye.