{"id":"zy5VgigLy-Y","title":"Decentralized Venmo Rust Tutorial","description":"In this short video we'll be building out a smart contract in Rust for our Decentralized Venmo App! \n\nYou will the basic structure of a rust smart contract and learn how to send money via the Smart Contract.\n\nYou can clone the frontend of the application here: https://github.com/doriancrutcher/DeC...\n\nIf you have any questions you can find me (Dorian | NEAR#1523) on our Discord at   / discord  \n\nWhile you don’t need too much of it to follow along with this video, you are welcome to check out this crash course tutorial on Rust:    • Rust Crash Course | Rustlang  \n\nNEAR Discord Link: http://near.chat/\n\nIntro: 00:00\nFrontend Overview: 00:47\nGetting Started: 01:52\nLive BlockHeads Workshop: 24:19\nOutro: 24:29\n\nFollow the latest from NEAR Protocol on:\nWebsite: https://near.org/\nBlog: https://near.org/blog/\nTwitter:   / nearprotocol  \nGitHub: https://github.com/near , https://github.com/nearprotocol\n#Blockchain #FutureIsNEAR #NEAR #nearprotocol","channel_name":"NEAR Protocol","published_at":"2021-08-14T00:00:00.000Z","thumbnail_url":"https://img.youtube.com/vi/zy5VgigLy-Y/hqdefault.jpg","transcript_text":"everyone welcome to another episode of blockheads where in this episode we're gonna be creating the decentralized venmo app i like to call dcash we're gonna do things a little bit differently in this episode we're just gonna be focusing mostly on the smart contract and not the front end if you're interested in uh joining us for a live workshop then please sign up in the description below we're gonna have a forum for that if you guys wanna go over making this full application you guys can answer everybody ask me any question you guys want to live and on the spot but for now we're gonna be building out the smart contract for a front end i already finished and you guys can go ahead and go over to github and download that front end for yourself and with that let's jump right in so hi guys i'm going to give you a quick overview of the front end you can get from github in the script in the link in the description below just go ahead and you know copy and clone the repo into the destination of your choosing uh so this is the simple send money tool here's your recipient field the field you have to enter your near value in to be able to designate the value or amount of new you want to send to your friends and something to type into the memo this gives you an error saying that you need to type something into the memo field be able to send money to your friends and just say hi uh if i send something here we're gonna get an error back because today we're gonna be doing is going to be building up the rust smart contract so we see that this method does not exist because we have not typed in that method yet going over to transactions we can also see an error here because we rely on the blockchain to be able to provide us with the information that contains our list of transactions so that's what we'll be doing today i'm going to be filling all that out and again you guys can clone this front end from github and follow along after you do that so yeah let's keep going okay so before i begin i sincerely encourage you guys to sign up for our workshop it's gonna be a live workshop we're gonna be rebuilding the cash from the ground up front-end and all so you guys want to figure out how to build this full application sign up for our workshop so jumping right in uh i'm right in the libra rs in the contract folder and i'm just going to get rid of a few things so get going to get rid of this thing and get rid of uh records anything is due with records essentially we're gonna get rid of it uh we're gonna get rid of everything inside this implementation uh except for the curly braces that help you know build it up and then all these comments going down here all the comments all the tests don't need any of that so it's gonna get rid of it all i'm gonna hit save gonna let that you know kind of reorganize itself every welcome here every welcome you see here uh we're just gonna switch it out with dcash you can name welcome to whatever it wants it's just a welcome file we're going to actually import two things we're going to import um from your sdk we import account id and we're also going to import promise account id is just a type definition so uh it's the same thing as writing the word string but uh sometimes the name invention is nice uh so we're just going to call it account id and promise that's uh it contains a method that we're going to use to be able to send money using our smart contracts so the very first thing that we're going to do is define our lookup map so we're going to go over to struct struct and type in memos memo is going to be the name of the property that holds our lookup map but look at map is kind of like a key value pair uh sort of like um kind of like a simple any map you'd find in like python or something or like an object in javascript uh look up maps are pretty efficient more efficient like hash maps uh we have a cool like little demo describing all of our collections i can also link a description for you guys so uh moving on from that so our key is gonna be defined as a string and our values are going to be vectors of strings so vector string there we go um and going into our actual implementation actually before we even do that we still have one more thing to do uh yeah right here where it says yeah default is equal it's default return self so uh right here we're gonna we're gonna define memo lookup map new b memo and get rid of that first quotation mark that was mistake and we're going to say dot to vec that's disease so this looks really confusing really stupid i know um but essentially what's happening is we're turning like this string called memo into bytes so if you see this like last thing here this b memo here uh this is the output we're getting we're getting that entire string that entire every letter every character as a byte so 109.101.109.111 that's what's being sent to the blockchain uh to be the unique prefix that this lookup map will need so if you have multiple look at maps like they're all going to have different prefixes so that um you know there's no data collisions so moving on from that uh we we're going to begin creating our change methods our view methods remember the difference between a change method and v method is a change method change change method they incur a afv so every change method incurs a fee by changing the state of the blockchain so remember that they incur fee by changing state of the blockchain that means adding information or changing information to and from the blockchain so change methods i'm gonna go here we have two change methods one called pub uh no one called add memo and the other one that we're gonna call transfer money we're not gonna create that one yet so add memo um mute self we'll have we'll start with mute cell that's the first parameter you have to add that mute to every single change method you create remember that so mute is going to be able to allow you to change the uh sorry about that change the state of the object that we are creating uh so we have mute self memo underscore text if you're creating a view method we don't include mute you don't make the uh the sub object mutable just want to make that point clear memo.memo underscore text if you don't put underscores you put camelcase that's going to scream at you like it's going to say this will give you like a bunch of warnings you compile rust so be sure to use this like underscore format here so this underscore format is what you want to do if you're going to be writing a variable or something you're naming a function inside rust or else it'll give you like a string of warnings and it'll be kind of annoying you're gonna be like what's going on you'll be like well dorian told me so anyway so moving forward so we have uh memo text uh account id and we're also gonna add um this other this other variable called amount it's amount and we're going to just leave this as a string there we go so this was in my original codes we're about to go into our friend in a little bit and modify our front end to accommodate for amount underscore string actually i think we can change that right here uh i'm sorry instead of instead of amount let's switch just let's just switch this name to price there we go you have to change anything in the front end cool okay so we have uh two parameters memo text and price so let's keep it going let's keep it go as we keep moving forward we're going to create one variable here called let account account underscore id equal to env that's uh i believe that's a that's something we get from new sdk up here so that's where env comes from from the newer sdk env inside this env crate we're going to pull out signer underscore account id parentheses that's going to give you the last id of the person that signed a transaction for the smart contracts in other words it's going to be it's going to give you the name of the person that's currently signed in who initiate this smart contract call um or this contract call uh so moving forward from that we're going to say let contains user this is going to contain a boolean value so contains user is equal to self.memo so again self.memo remember we define memo up here that's memo is referring to a look at map that contains a string and a vector of strings a vector of strings and if you don't know what vector is a vector is just like an array that's resizable so you actually have to use this thing called a vector to make a resizable array in rust it's a little weird because like you can't just use an array but you know just let you know that that's there so we have um memo dot contains key contains key is going to retreat is going to look for uh the name of the account that's currently signed in that we store in that variable account or score id so count underscore id there we go a semicolon to conclude that line there moving on we're going to use that new boolean we created to uh implement that into an if statement the if statement's going to check if a users currently exist within the lookup map that we defined earlier meaning that they actually have existing memos because we're used to bring all of our memos into that array and corresponding each memo with a uh with a particular user so we have if uh contains user uh we are gonna create a if that you if the lookup map does contain a user we're going to create a lookup map we're going to create a temporary array that contains that vector of uh strings that goes to that user so let's just call this let mute temp list is equal to match self dot memo dot get ampersand account underscore id so now this is going to be the weird part right so why do we have to use like this sum and some an unstatement like why this looks so weird to me why not just like get the array and be done with it right or get the vector and be done with it so um this get if i hover my mouse over it you're going to see that it actually returns an option so an option is kind of like a switch statement in javascript um where you have these two keywords called sum and none meaning if the option does uh return some value right it will you'll have to use this like some action so some action could be anything you'd be like uh if something exists print ln uh print ln x that just means like throw this value that's retrieve and and print it to the command line um or it could be like i don't know return x but like add three it could be anything right you're just returning some action to this variable here temp list uh if none it says do this thing which is going to be returning an empty array meaning like if nothing returns but there's going to be something because we checked for that already um so now we have our so now just know that this is going to return this x value this x value is going to be like the vector of memos so x is the vector of memos just uh keep that in mind um so moving forward we're going to have templates dot push we're going to be pushing in memo underscore text plus uh so memo underscore text remember it's a string so we're gonna add a space we're gonna add these two cool little pipes here add space that's what i figured sorry i hate siri plus uh the price so we're adding on the price which is a string to the text memo and separating them by these two pipes uh they're gonna add the word near and all right prices give me an error because we actually have to it's that we can't just like call the variable we have to actually um reference the value within it which doesn't really make sense and why this isn't actually reaching an error to actually don't know why memo text is working like that but okay um if you know i then let me know because i i literally don't know why it's not giving me an error there should be um self dot memo dot insert so now we're gonna actually have to um add this newly modified temp list array to the blockchain so we can actually save our new information to the blockchain so we're going to say self.memo.insert account underscore id and the value will be guess what it is it's going to be temp list remember uh this ampersand in front and we're gonna conclude that um this ampersand from these variables references the value located at the memory location of that variable it's a little bit weird so you can't just call the variable name itself you have to actually reference the value within it using the ampersand and if you don't have percent is that's what this symbol is called um so moving forward that's our entire if statement let's type our let's type in our else statement so we're gonna have else if uh contains user does not uh return positive meaning that there is a troop meaning that there is no um list of sorry vector of memos associated with the user that's signed in currently who's trying to add a memo we're going to create a fresh vector a fresh vec is equal we should be equal to a the vec macro this little thing is called the vec execution point this allows you to create uh vector instances um if you're not used to rust um and we're in which we're gonna include memo text and copy everything you see up here everything up to this first plus sign just like this so we can just slap it onto this memo text here so that we don't do like add that later so that'll automatically append the uh price the amount of me we're sending to our friends um so that so now we create a vector instance which will just be the very first memo with the very first price um added to this vector so um moving on after we create this vector we're going to simply add it to the blockchain so ah self memo insert account id and we're going to be adding ampersand freshvec colon so the semicolons remember they conclude that line um and i'm gonna i want to point that out for a reason uh which will come up when i create the view method but just want to kind of put that in your brain now put a little c in there now um so that's it save it uh it all formats for me um next function will be the function that we're going to be using to send your tokens to other people's remember earlier we um we imported this like promis uh struck from this like new sdk crate um i'm still getting used to the uh to the rest lingo so bear with me um pub function transfer money uh so we're gonna call this transfer money uh transfer money we're going to have a mute so every this is another change method so every change method you write you have to have mute self in order to modify the the the obstruct account id so account id will be account id which is the same thing as writing string here you could literally write string it'll work the exact same way but we're importing account id from the new sdk so we can have our types defined and properly organized so we're going to leave as account id and then mount the numbers that we're going to be throwing into here will be of type f64 uh we're not returning anything so we're not going to define that and this is a single line function it's really easy so it's promise new um account id and we're gonna be sending this new account id okay wait go away which again is just a string right it's nothing nothing fancy this is just a string could be anything could be dorian we're going to be sending this account id uh he'll be transferring some amount in which that amount variable um it will be redefined to a uh 128 i think fun fact javascript can't actually use u128 so um we're importing it as f64 and i think this uses u1 with 128. um and it's saying i have an error somewhere promise uh new promising kennedy dot transfer amount sorry not of as as u128 um and that's it that is literally the line that you need to use to be able to transfer money and rust and directly in the rust smart contract there's a way to do it for assembly script as well and there's also a way to do it using new api js if you want to be able to transfer money using javascript but this is how you would do it with rust or this is one way you can do it with a rust i'm sure i think there's another way as well um view methods so this uh they incur the view methods occur no transfer fee from the blockchain is just mainly used to read information from the blockchain so you just can use them as much as you want and you don't get charged um uh and another thing that's different about them we're going to say rename this method get memos the other thing that's different about them is that they do not use the mutable keyword if you don't use this i think you do get an error uh i'm sorry if you do use this review method i'm pretty sure you get an error but um we're not going to find out right now but you don't need to use them for view methods so don't use so don't make self do not make self mutable in a view method um user string uh so that's all we need we're just gonna be using this method to get our array of memos from the blockchain vec string uh so this little arrow here that's gonna be defining the type the variable type or the data type that we're going to be returned that this function will be returning if the function does not return this data type it will return an error so match self.memo.get ampersand user uh ignore that carrot in fact delete that carrot uh some x so again we're using this like some statement think of it like a switch statement in a way um if we have something we're gonna we're gonna return um x which in whereas x is a vector uh which x is a vector um that contains all your memos so this is a vector that contains all your memos otherwise this will return an empty vector that's all that's happening here so this will literally end up looking like memo 1 mm1 comma memo 2 etc right so that's what that's this is larry like what this will return or this will return like that um so now how do you define a return statement in a in a function in rust um you simply omit a semicolon so semicolon is how you can clear a line uh this will be this will be valid if i had nothing here so you know errors anywhere this is fine this is this is completely legal here uh but because i'm saying i want a vector of strings i have to omit this semicolon and that's how you tell this function to return this value so again to return a value from a function rest just simply omit the semicolon and that's really it um all these function names are defined and utils.js are ready for you in the front-end code like i said earlier again if you need to go over the entire front end code be sure to join the live workshop just you know type in your availability inside the form that we created for this and uh we can get through making entire friday but let's just before we go on with all that sorry just getting hit myself let's see if this works uh so we're going to type in yarn build so every single change you create every single change you make to a smart contract you have to rebuild your smart contract because you are recompiling it you know it's not like an interpreter you can't just like save you have to actually recompile everything and then send that off to the blockchain or send it up to the erpc uh so so the smart contract gets updated and then um they can begin using it building building building building building building there we go um it's not done so we can type in yarn start it's deploying deploying there we go okay so we're gonna test out our application and send example account one two three four five dot test net some near so you're gonna say send five near for um i don't know uh used xbox game i'm gonna hit send near and we're gonna wait a little longer we see money has been sent we're gonna hit okay we're gonna go over to our wallet.testnet.net.org we're gonna hit refresh and we can see that just now we received five near from this debt account which is the contract which is the account that the contract was deployed on so um and if we go to our transactions page we can see that we sent five near and we can even modify this in our smart contract code to include the name of the recipient that we sent it to which person i probably should have done here but you know it's not too hard to do if you guys want to do that um so use xbox game for five years and that's really it guys uh if you guys really if you guys like this format where i'm just showing you guys the smart contract code please you know again let me know in the comments below i'm going to be hosting a live blog kids workshop we're going to be creating our very own decentralized venom application from scratch on august 26th 27th 28th be sure to sign up in the google forms below and hope to see you guys there hey guys sorry if i look like death right now between uh making the assets for this video and going on vacation and now i contracted covet unfortunately but thankfully i had the vaccine so i'm feeling you know already starting to feel better feeling stronger so i'm really thankful for that um guys i hope you enjoyed this video if you guys did let me know what you guys thought in the comments below like and subscribe and if you make a better version of this account application or any of the other applications we make in our tutorial videos send it my way uh via the discord uh channel you can find me in discord and we can make a really cool community video together so send me your version of dcash or your version of any of these applications and let's just make an awesome blog heads video together showing off what you guys create i think it'll be beautiful i think it'd be a lot of fun i'm really excited for that other than that guys thank you so much remember to like and subscribe and have a great day got it","transcript_synced_at":"2026-11-04T04:11:50.734Z","segments":[{"start_seconds":0,"text":"everyone welcome to another episode of blockheads where in this episode we're gonna be creating the decentralized venmo app i like to call dcash we're gonna do things a little bit differently in this episode we're just gonna be","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=0s"},{"start_seconds":8,"text":"focusing mostly on the smart contract and not the front end if you're interested in uh joining us for a live workshop then please sign up in the","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=8s"},{"start_seconds":16,"text":"description below we're gonna have a forum for that if you guys wanna go over making this full application you guys can answer everybody ask me any question","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=16s"},{"start_seconds":23,"text":"you guys want to live and on the spot but for now we're gonna be building out the smart contract for a front end i already finished and you guys can go","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=23s"},{"start_seconds":31,"text":"ahead and go over to github and download that front end for yourself and with that let's jump right in","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=31s"},{"start_seconds":47,"text":"so hi guys i'm going to give you a quick overview of the front end you can get from github in the script in the link in the description below just go ahead and","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=47s"},{"start_seconds":54,"text":"you know copy and clone the repo into the destination of your choosing uh so this is the simple send money tool","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=54s"},{"start_seconds":61,"text":"here's your recipient field the field you have to enter your near value in to be able to designate the value or amount of new you want to send","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=61s"},{"start_seconds":69,"text":"to your friends and something to type into the memo this gives you an error saying that you need to type something into the memo field be able to send money to your friends","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=69s"},{"start_seconds":78,"text":"and just say hi uh if i send something here we're gonna get an error back because today we're gonna be doing is going to be building up the rust smart contract so we see","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=78s"},{"start_seconds":87,"text":"that this method does not exist because we have not typed in that method yet going over to transactions we can also see an error here because we rely","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=87s"},{"start_seconds":94,"text":"on the blockchain to be able to provide us with the information that contains our list of transactions so that's what we'll be doing today i'm going to be","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=94s"},{"start_seconds":102,"text":"filling all that out and again you guys can clone this front end from github and follow along after you do that so","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=102s"},{"start_seconds":110,"text":"yeah let's keep going","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=110s"},{"start_seconds":118,"text":"okay so before i begin i sincerely encourage you guys to sign up for our workshop it's gonna be a live workshop we're gonna be rebuilding the cash from","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=118s"},{"start_seconds":126,"text":"the ground up front-end and all so you guys want to figure out how to build this full application sign up for our workshop so jumping right in uh i'm","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=126s"},{"start_seconds":134,"text":"right in the libra rs in the contract folder and i'm just going to get rid of a few things so get going to get rid of this","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=134s"},{"start_seconds":141,"text":"thing and get rid of uh records anything is due with records essentially we're gonna get rid of it uh we're gonna get rid of everything inside this","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=141s"},{"start_seconds":148,"text":"implementation uh except for the curly braces that help you know build it up and then all these comments going down here all the","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=148s"},{"start_seconds":156,"text":"comments all the tests don't need any of that so it's gonna get rid of it all i'm gonna hit save gonna let that you know kind of reorganize itself every welcome","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=156s"},{"start_seconds":164,"text":"here every welcome you see here uh we're just gonna switch it out with dcash","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=164s"},{"start_seconds":173,"text":"you can name welcome to whatever it wants it's just a welcome file we're going to actually import two things we're going to import um","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=173s"},{"start_seconds":180,"text":"from your sdk we import account id and we're also going to import promise account id is just a type definition so","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=180s"},{"start_seconds":188,"text":"uh it's the same thing as writing the word string but uh sometimes the name invention is nice uh so we're just going to call it account id","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=188s"},{"start_seconds":195,"text":"and promise that's uh it contains a method that we're going to use to be able to send money using our smart contracts so the very first thing that","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=195s"},{"start_seconds":203,"text":"we're going to do is define our lookup map so we're going to go over to struct struct and type in memos memo is","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=203s"},{"start_seconds":212,"text":"going to be the name of the property that holds our lookup map but look at map is kind of like a key value pair uh sort of like um kind of like a simple","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=212s"},{"start_seconds":219,"text":"any map you'd find in like python or something or like an object in javascript uh look up maps are pretty efficient more efficient like hash maps","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=219s"},{"start_seconds":228,"text":"uh we have a cool like little demo describing all of our collections i can also link a description for you guys so uh moving on from that","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=228s"},{"start_seconds":235,"text":"so our key is gonna be defined as a string and our values are going to be vectors of strings so vector string there we go","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=235s"},{"start_seconds":244,"text":"um and going into our actual implementation actually before we even do that we still","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=244s"},{"start_seconds":251,"text":"have one more thing to do","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=251s"},{"start_seconds":255,"text":"uh yeah right here where it says yeah default is equal it's default return self so uh right here we're gonna we're gonna define memo","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=255s"},{"start_seconds":264,"text":"lookup map new b memo","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=264s"},{"start_seconds":271,"text":"and get rid of that first quotation mark that was mistake and we're going to say dot to vec","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=271s"},{"start_seconds":279,"text":"that's disease so this looks really confusing really stupid i know um but essentially what's happening is we're turning like this string called memo","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=279s"},{"start_seconds":288,"text":"into bytes so if you see this like last thing here this b memo here uh this is the output we're getting we're getting that entire string that entire every","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=288s"},{"start_seconds":296,"text":"letter every character as a byte so 109.101.109.111 that's what's being sent to the blockchain uh to","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=296s"},{"start_seconds":305,"text":"be the unique prefix that this lookup map will need so if you have multiple look at maps like they're all going to have different","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=305s"},{"start_seconds":313,"text":"prefixes so that um you know there's no data collisions so moving on from that uh we we're going to begin creating our change","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=313s"},{"start_seconds":322,"text":"methods our view methods remember the difference between a change method and v method is a change method change","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=322s"},{"start_seconds":330,"text":"change method they incur a afv so every change method incurs a fee by changing the state of","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=330s"},{"start_seconds":338,"text":"the blockchain so remember that they incur fee by changing state of the blockchain that means adding information or changing information to and from the","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=338s"},{"start_seconds":345,"text":"blockchain so change methods i'm gonna go here we have two change methods one called pub uh no one called add memo","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=345s"},{"start_seconds":355,"text":"and the other one that we're gonna call transfer money we're not gonna create that one yet so add memo um mute self we'll have we'll start with mute cell","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=355s"},{"start_seconds":363,"text":"that's the first parameter you have to add that mute to every single change method you create remember that so mute is going to be able to allow you to","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=363s"},{"start_seconds":370,"text":"change the uh sorry about that change the state of the object that we are creating uh so we","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=370s"},{"start_seconds":378,"text":"have mute self memo underscore text if you're creating a view method we don't include mute you don't make the uh the sub","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=378s"},{"start_seconds":385,"text":"object mutable just want to make that point clear memo.memo underscore text if you don't put underscores you put","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=385s"},{"start_seconds":392,"text":"camelcase that's going to scream at you like it's going to say this will give you like a bunch of warnings you compile rust so be sure to use this like underscore format here so this","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=392s"},{"start_seconds":401,"text":"underscore format is what you want to do if you're going to be writing a variable or something you're naming a function inside rust or else it'll give you like a string of warnings and it'll be kind","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=401s"},{"start_seconds":408,"text":"of annoying you're gonna be like what's going on you'll be like well dorian told me so anyway so moving forward","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=408s"},{"start_seconds":416,"text":"so we have uh memo text uh account id and we're also gonna add um this other this other variable called amount it's","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=416s"},{"start_seconds":425,"text":"amount and we're going to just leave this as a string there we go","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=425s"},{"start_seconds":433,"text":"so this was in my original codes we're about to go into our friend in a little bit and modify our front end to accommodate for amount underscore string","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=433s"},{"start_seconds":441,"text":"actually i think we can change that right here","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=441s"},{"start_seconds":448,"text":"uh i'm sorry instead of instead of amount let's switch just let's just switch this name to price there we go you have to","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=448s"},{"start_seconds":456,"text":"change anything in the front end cool okay so we have uh two parameters memo text and price so let's keep it going let's keep it go as we keep moving","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=456s"},{"start_seconds":464,"text":"forward we're going to create one variable here called let account account underscore id","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=464s"},{"start_seconds":472,"text":"equal to env that's uh i believe that's a that's something we get from new sdk up here so that's where env comes from from the newer sdk","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=472s"},{"start_seconds":481,"text":"env inside this env crate we're going to pull out signer underscore account id parentheses that's","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=481s"},{"start_seconds":488,"text":"going to give you the last id of the person that signed a transaction for the smart contracts in other words it's going to be it's going","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=488s"},{"start_seconds":497,"text":"to give you the name of the person that's currently signed in who initiate this smart contract call um or this contract call uh so moving forward from that we're","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=497s"},{"start_seconds":505,"text":"going to say let contains user this is going to contain a boolean value so contains user","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=505s"},{"start_seconds":512,"text":"is equal to self.memo so again self.memo remember we define memo up here that's memo is referring to a look at map that","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=512s"},{"start_seconds":520,"text":"contains a string and a vector of strings a vector of strings and if you don't know what vector is a vector is just like an array that's","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=520s"},{"start_seconds":527,"text":"resizable so you actually have to use this thing called a vector to make a resizable array in rust it's a little weird because like you can't just use an array","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=527s"},{"start_seconds":535,"text":"but you know just let you know that that's there so we have um","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=535s"},{"start_seconds":541,"text":"memo dot contains key contains key is going to retreat","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=541s"},{"start_seconds":548,"text":"is going to look for uh the name of the account that's currently signed in that we store in that variable account or score id","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=548s"},{"start_seconds":556,"text":"so count underscore id there we go a semicolon to conclude that line there moving on we're going to use that new","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=556s"},{"start_seconds":563,"text":"boolean we created to uh implement that into an if statement the if statement's going to check if a users currently exist within the lookup","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=563s"},{"start_seconds":571,"text":"map that we defined earlier meaning that they actually have existing memos because we're used to bring all of our memos into that array and corresponding","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=571s"},{"start_seconds":578,"text":"each memo with a uh with a particular user so we have if uh contains user uh","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=578s"},{"start_seconds":587,"text":"we are gonna create a if that you if the lookup map does contain a user we're going to create a lookup map we're going to","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=587s"},{"start_seconds":594,"text":"create a temporary array that contains that vector of uh strings that goes to that user so let's just call this","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=594s"},{"start_seconds":602,"text":"let mute temp list is equal to match self","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=602s"},{"start_seconds":610,"text":"dot memo dot get ampersand account underscore id so now","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=610s"},{"start_seconds":618,"text":"this is going to be the weird part right so why do we have to use like","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=618s"},{"start_seconds":623,"text":"this sum and","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=623s"},{"start_seconds":632,"text":"some an unstatement like why this looks so weird to me why not just like get the array and be done with it right","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=632s"},{"start_seconds":639,"text":"or get the vector and be done with it so um this get if i hover my mouse over it you're going to see that it actually returns an option so an option is kind","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=639s"},{"start_seconds":648,"text":"of like a switch statement in javascript um where you have these two keywords called sum and none meaning if the option does","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=648s"},{"start_seconds":656,"text":"uh return some value right it will you'll have to use this like some action so some action could be anything you'd be like","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=656s"},{"start_seconds":663,"text":"uh if something exists print ln uh","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=663s"},{"start_seconds":670,"text":"print ln x that just means like throw this value that's retrieve and and print it to the command line um","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=670s"},{"start_seconds":679,"text":"or it could be like i don't know return x but like add three it could be anything right you're just returning some action","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=679s"},{"start_seconds":687,"text":"to this variable here temp list uh if none it says do this thing which is going to be returning an empty array","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=687s"},{"start_seconds":694,"text":"meaning like if nothing returns but there's going to be something because we checked for that already um","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=694s"},{"start_seconds":701,"text":"so now we have our so now just know that this is going to return this x value this x value is going to be","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=701s"},{"start_seconds":710,"text":"like the vector of memos so x is the vector of memos","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=710s"},{"start_seconds":717,"text":"just uh keep that in mind um so moving forward we're going to have templates dot push","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=717s"},{"start_seconds":725,"text":"we're going to be pushing in memo underscore text plus uh so memo underscore text remember it's","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=725s"},{"start_seconds":733,"text":"a string so we're gonna add a space we're gonna add these two cool little pipes here add space that's what i figured","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=733s"},{"start_seconds":741,"text":"sorry i hate siri plus uh the price so we're adding on the price which is a string to","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=741s"},{"start_seconds":750,"text":"the text memo and separating them by these two pipes uh they're gonna add the word near","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=750s"},{"start_seconds":760,"text":"and all right prices give me an error because we actually have to it's that we can't just like call the variable we have to actually um reference the value within it which","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=760s"},{"start_seconds":767,"text":"doesn't really make sense and why this isn't actually reaching an error to actually don't know why","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=767s"},{"start_seconds":775,"text":"memo text is working like that but okay um if you know i then let me know because i i literally don't know why it's not giving me an error there","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=775s"},{"start_seconds":783,"text":"should be um self dot memo dot insert so now we're gonna actually have","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=783s"},{"start_seconds":791,"text":"to um add this newly modified temp list array to the blockchain so we can actually save our new information to the","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=791s"},{"start_seconds":798,"text":"blockchain so we're going to say self.memo.insert","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=798s"},{"start_seconds":804,"text":"account underscore id and the value will be guess what it is it's going to be","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=804s"},{"start_seconds":812,"text":"temp list remember uh this ampersand in front and we're gonna conclude that um this ampersand from these variables","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=812s"},{"start_seconds":821,"text":"references the value located at the memory location of that variable it's a little bit weird so you can't just call the variable name itself you have to","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=821s"},{"start_seconds":829,"text":"actually reference the value within it using the ampersand and if you don't have percent is that's what this symbol is called um","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=829s"},{"start_seconds":838,"text":"so moving forward that's our entire if statement let's type our let's type in our else statement so we're gonna have else if","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=838s"},{"start_seconds":844,"text":"uh contains user does not uh return positive meaning that there is a troop meaning that there is no um","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=844s"},{"start_seconds":852,"text":"list of sorry vector of memos associated with the user that's signed in currently who's trying to add a memo","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=852s"},{"start_seconds":859,"text":"we're going to create a fresh vector a fresh vec","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=859s"},{"start_seconds":866,"text":"is equal we should be equal to a the vec macro this little thing is called the vec execution point this allows you to create","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=866s"},{"start_seconds":873,"text":"uh vector instances um if you're not used to rust um","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=873s"},{"start_seconds":881,"text":"and we're in which we're gonna include memo text and copy everything you see up here everything up to this first plus sign just like this so we can just slap","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=881s"},{"start_seconds":890,"text":"it onto this memo text here so that we don't do like add that later so that'll automatically append the uh price the amount of me we're sending to our","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=890s"},{"start_seconds":898,"text":"friends um so that so now we create a vector instance which will just be the very","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=898s"},{"start_seconds":905,"text":"first memo with the very first price um added to this vector so um moving on after we","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=905s"},{"start_seconds":912,"text":"create this vector we're going to simply add it to the blockchain so ah self memo","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=912s"},{"start_seconds":920,"text":"insert account id","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=920s"},{"start_seconds":929,"text":"and we're going to be adding ampersand freshvec","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=929s"},{"start_seconds":937,"text":"colon so the semicolons remember they conclude that line um and i'm gonna i want to point that out","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=937s"},{"start_seconds":945,"text":"for a reason uh which will come up when i create the view method but just want to kind of put that in your brain now put a little c in there","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=945s"},{"start_seconds":952,"text":"now um so that's it save it uh it all formats for me um next function will be the function that we're going to be using to send your tokens to other","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=952s"},{"start_seconds":961,"text":"people's remember earlier we um we imported this like promis uh struck from this like new sdk crate","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=961s"},{"start_seconds":970,"text":"um i'm still getting used to the uh to the rest lingo so bear with me um pub function transfer money","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=970s"},{"start_seconds":979,"text":"uh so we're gonna call this transfer money uh","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=979s"},{"start_seconds":987,"text":"transfer money we're going to have a mute so every this is another change method so every change method you write you have to have mute self in","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=987s"},{"start_seconds":995,"text":"order to modify the the the obstruct","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=995s"},{"start_seconds":1003,"text":"account id so account id will be account id which is the same thing as writing string here you could literally write string it'll work the exact same way but","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1003s"},{"start_seconds":1012,"text":"we're importing account id from the new sdk so we can have our types defined and properly organized so we're","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1012s"},{"start_seconds":1019,"text":"going to leave as account id and then mount the numbers that we're going to be throwing into here will be of type f64","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1019s"},{"start_seconds":1027,"text":"uh we're not returning anything so we're not going to define that and this is a single line function it's really easy so it's promise","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1027s"},{"start_seconds":1036,"text":"new um account id and we're gonna be sending this new account id okay wait go away","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1036s"},{"start_seconds":1046,"text":"which again is just a string right it's nothing nothing fancy this is just a string could be anything could be dorian","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1046s"},{"start_seconds":1053,"text":"we're going to be sending this account id uh he'll be transferring some amount in which that amount","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1053s"},{"start_seconds":1062,"text":"variable um it will be redefined to a uh 128 i think fun fact javascript can't actually","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1062s"},{"start_seconds":1069,"text":"use u128 so um we're importing it as f64 and i think this uses u1 with 128.","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1069s"},{"start_seconds":1076,"text":"um and it's saying i have an error somewhere","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1076s"},{"start_seconds":1083,"text":"promise uh new promising kennedy dot transfer","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1083s"},{"start_seconds":1094,"text":"amount sorry not of as as u128 um and that's it that is literally the line","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1094s"},{"start_seconds":1103,"text":"that you need to use to be able to transfer money and rust and directly in the rust smart contract there's a way to do it for assembly script as well and","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1103s"},{"start_seconds":1110,"text":"there's also a way to do it using new api js if you want to be able to transfer money using javascript but this is how you would do it with","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1110s"},{"start_seconds":1118,"text":"rust or this is one way you can do it with a rust i'm sure i think there's another way as well um view methods","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1118s"},{"start_seconds":1127,"text":"so this uh they incur the view methods occur no transfer fee from the blockchain is just mainly used to read information from the","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1127s"},{"start_seconds":1135,"text":"blockchain so you just can use them as much as you want and you don't get charged um uh and another thing that's different","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1135s"},{"start_seconds":1143,"text":"about them we're going to say rename this method get memos the other thing that's different about them is that they do not use the mutable","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1143s"},{"start_seconds":1151,"text":"keyword if you don't use this i think you do get an error uh i'm sorry if you do use this review method i'm pretty sure you get an error but","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1151s"},{"start_seconds":1159,"text":"um we're not going to find out right now but you don't need to use them for view methods so don't use so don't make self","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1159s"},{"start_seconds":1166,"text":"do not make self mutable in a view method um user string","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1166s"},{"start_seconds":1175,"text":"uh so that's all we need we're just gonna be using this method to get our array of memos from the blockchain vec","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1175s"},{"start_seconds":1183,"text":"string uh so this little arrow here that's gonna be defining the type the variable type or the data type that we're going to be","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1183s"},{"start_seconds":1191,"text":"returned that this function will be returning if the function does not return this data type it will return an error so match","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1191s"},{"start_seconds":1199,"text":"self.memo.get ampersand user uh ignore that carrot","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1199s"},{"start_seconds":1207,"text":"in fact delete that carrot uh some x so again we're using this like some statement think of it like a switch","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1207s"},{"start_seconds":1216,"text":"statement in a way um if we have something we're gonna we're gonna return um x which","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1216s"},{"start_seconds":1223,"text":"in whereas x is a vector uh which x is a vector um that contains all your memos so this is","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1223s"},{"start_seconds":1231,"text":"a vector that contains all your memos","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1231s"},{"start_seconds":1239,"text":"otherwise this will return an empty","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1239s"},{"start_seconds":1246,"text":"vector that's all that's happening here so this will literally end up looking like memo 1","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1246s"},{"start_seconds":1256,"text":"mm1 comma memo 2 etc right so that's","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1256s"},{"start_seconds":1264,"text":"what that's this is larry like what this will return or this will return like that um","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1264s"},{"start_seconds":1272,"text":"so now how do you define a return statement in a in a function in rust um you simply omit","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1272s"},{"start_seconds":1281,"text":"a semicolon so semicolon is how you can clear a line uh this will be this will be valid if i had nothing here","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1281s"},{"start_seconds":1288,"text":"so you know errors anywhere this is fine this is this is completely legal here uh but because i'm saying i want a vector","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1288s"},{"start_seconds":1295,"text":"of strings i have to omit this semicolon and that's how you tell this function to return this value","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1295s"},{"start_seconds":1303,"text":"so again to return a value from a function rest just simply omit the semicolon and that's really it um all these","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1303s"},{"start_seconds":1312,"text":"function names are defined and utils.js are ready for you in the front-end code like i said earlier again if you need to go over the entire front end code be","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1312s"},{"start_seconds":1320,"text":"sure to join the live workshop just you know type in your availability inside the form that we created for this and uh we can get through making entire friday","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1320s"},{"start_seconds":1328,"text":"but let's just before we go on with all that sorry just getting hit myself let's see if this works uh so we're going to","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1328s"},{"start_seconds":1336,"text":"type in yarn build","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1336s"},{"start_seconds":1345,"text":"so every single change you create every single change you make to a smart contract you have to rebuild your smart contract because you are recompiling it you know it's not like an interpreter","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1345s"},{"start_seconds":1353,"text":"you can't just like save you have to actually recompile everything and then send that off to the blockchain or send it up to the erpc","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1353s"},{"start_seconds":1361,"text":"uh so so the smart contract gets updated and then um they can begin using it","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1361s"},{"start_seconds":1370,"text":"building building building building building building there we go um it's not done so we can type in yarn start","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1370s"},{"start_seconds":1378,"text":"it's deploying deploying there we go","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1378s"},{"start_seconds":1384,"text":"okay so we're gonna test out our application and send example account one two three four five dot test net","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1384s"},{"start_seconds":1392,"text":"some near so you're gonna say send five near for um i don't know uh","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1392s"},{"start_seconds":1399,"text":"used xbox game i'm gonna hit send near","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1399s"},{"start_seconds":1413,"text":"and we're gonna wait a little longer we see money has been sent we're gonna hit okay we're gonna go over to our wallet.testnet.net.org we're gonna hit refresh","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1413s"},{"start_seconds":1421,"text":"and we can see that just now we received five near from this debt account which is the contract which is the account that the contract was deployed on so","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1421s"},{"start_seconds":1430,"text":"um and if we go to our transactions page we can see that we sent","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1430s"},{"start_seconds":1438,"text":"five near and we can even modify this in our smart contract code to include the name of the recipient that we sent it to which person i probably should have done here","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1438s"},{"start_seconds":1446,"text":"but you know it's not too hard to do if you guys want to do that um so use xbox game for five years and that's really it guys uh if you guys really if you guys","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1446s"},{"start_seconds":1454,"text":"like this format where i'm just showing you guys the smart contract code please you know again let me know in the comments below i'm going to be hosting a live blog kids workshop we're going to","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1454s"},{"start_seconds":1461,"text":"be creating our very own decentralized venom application from scratch on august 26th 27th 28th be sure to sign up in the google forms below and hope to see you","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1461s"},{"start_seconds":1468,"text":"guys there hey guys sorry if i look like death right now between uh making the assets for this video and going on vacation and now i","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1468s"},{"start_seconds":1476,"text":"contracted covet unfortunately but thankfully i had the vaccine so i'm feeling you know already starting to feel better feeling stronger so i'm","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1476s"},{"start_seconds":1484,"text":"really thankful for that um guys i hope you enjoyed this video if you guys did let me know what you guys thought in the comments below like and subscribe and if","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1484s"},{"start_seconds":1493,"text":"you make a better version of this account application or any of the other applications we make in our tutorial videos send it my way uh via the discord","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1493s"},{"start_seconds":1501,"text":"uh channel you can find me in discord and we can make a really cool community video together so send me your version of dcash or your version of any of these","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1501s"},{"start_seconds":1508,"text":"applications and let's just make an awesome blog heads video together showing off what you guys create i think it'll be beautiful i think it'd be a lot of fun i'm really excited for that other","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1508s"},{"start_seconds":1516,"text":"than that guys thank you so much remember to like and subscribe and have a great day","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1516s"},{"start_seconds":1546,"text":"got it","url":"https://www.youtube.com/watch?v=zy5VgigLy-Y&t=1546s"}],"youtube_url":"https://youtube.com/watch?v=zy5VgigLy-Y","url":"https://near-pedia.xyz/videos/zy5VgigLy-Y"}