{"id":"51fqGHQytZQ","title":"DevTools Community Meeting (May '22) - JavaScript SDK","description":"This month we discuss writing smart contracts using the new JavaScript SDK (under development) and ask the community for initial feedback.\n\nCheck out an early release of the SDK:\n👉 https://github.com/near/near-sdk-js\n\nGive us your feedback and help us shape this library's future:\n👉 https://github.com/near/near-sdk-js/d...\n\nJoin the DevTools Community Meeting next month!\n👉 https://near.ai/tooling-meetings\n\n-----\n\nJoin NEAR's community:\nWebsite: https://near.org/\nReddit:   / nearprotocol  \nDiscord: https://near.chat/\nMedium:   / nearprotocol  \nBlog: https://near.org/blog/\nTwitter:   / nearprotocol  \nGitHub: https://github.com/near  https://github.com/nearprotocol\nDev Docs: https://docs.near.org/\nCreate a wallet: https://wallet.near.org/create\nApps on NEAR: https://awesomenear.com/\nLearn to Build On NEAR: https://www.near.university/\nGrants & Funding: https://near.org/grants/\n#Blockchain #FutureisNEAR #NEAR #nearprotocol\n#nft #dao","channel_name":"NEAR Protocol","published_at":"2022-06-04T00:00:00.000Z","thumbnail_url":"https://img.youtube.com/vi/51fqGHQytZQ/hqdefault.jpg","transcript_text":"welcome to the second developer tools community update uh meeting um yeah i'm josh from devrel i got a couple other individuals on the call as well from the tooling team uh yeah yeah fong you want to introduce yourself sure hi there guys i'm fong i'm on the dev tools team mostly working rust but this time i'll be showing off a javascript cli tooling in this presentation awesome siri my name is sergey i work in a deltoo teams2 and my focus for the last few months was workspaces.js and nearest dkjs yeah and i will talk about it today too awesome and then austin you want to give a quick intro yeah for sure i'm i'm austin i'm a product manager i'm here at pagoda on the the dev tools team as well um and actually should i just segue right into what we're going to talk about yeah yeah just yeah segway right in i just want to let everyone know if at any time you have any questions or comments or any ideas anything you want to talk about go ahead and post it in the q a button at the bottom of your screen click on that throw a question out there we will answer them as we go and then after the presentation we'll do like an ama where you can ask anything so at any time if you want to ask a question about what we're talking about or anything tooling related please feel free to drop it and we'll we'll do our best to answer your questions um so yeah go ahead take it away awesome awesome sweet thanks josh so um so today yeah we're i'm just going to quickly cover the agenda that we're going to go through so one i'd just like to talk about what we've done since the last time just like a super quick uh super quick um smattering of what we've shipped um reiterate on just what the uh the tools team vision is we had an offsite where we set that um talk about what our focus is going to be over the next uh a couple of months and then most of the time is actually going to be sergie and and fong talking about the javascript sdk which we're obviously fired up to chat about so um i'm gonna jump right in so since since the last time we've shipped quite a bit um and we we've touched almost all of the projects that our our teams take care of um so yeah just a few highlights the sdk rs um austin abel is is working on um getting the 4.0 release ready to go hopefully that'll be next week um so super excited um for that to go live workspaces rs shift a new version there 0.3 following a lot of teams working on working on that um miraculous has been making a ton of changes to the json rpc client a lot of cleanup a lot of ergonomic improvements um workspaces js you'll see a little bit of that today in conjunction with the sdk um just getting the workspace's js close to feature parity with rs um and making it super useful to uh to make testing um uh as easy as possible and then another one that we're really excited to share soon is has just been laying some of the groundwork around our api um we know that that's table stakes a lot of the other chains have that already and and um we've been able to spend quite a bit of time scoping what that would look like and just working through some of the implementation details that we're uh we're gonna take to the community so that we can make sure that we're uh we're solving the right problems um so we've been we've been extremely busy since the last time we chatted and the other thing we did was set our vision and the way we did this was basically starting with the pagoda vision so um just a world where today's startups and tomorrow's unicorns succeed in realizing the limitless opportunities of web3 and delivering its value to uh billions of people and we just kind of picked this apart we put notes on it we talked about what we liked what we didn't like what we could actually contribute to and we laid out on a board just the life cycle of our products everything that we could possibly work on um all how all the tools fit together and what we ended up arriving at is a pretty simple vision of just deliver the intuitive productive and reliable tools needed for web3 development so the reason why i just wanted to share this is if you're wondering what our team takes care of who we are what we care about what we hope to achieve this is sort of our guiding principle and our our vision cool so um what we're actually going to be focusing on tangibly to try and make that vision come true um the same three things that i talked about the last time we were here making near the most successful blockchain for web 2 developers uh streamlining and improving the developer experience for creating full stack apps and just enabling better product uh based decision making for our tools products so um the first piece is really what we're going to spend almost the entire time today talking about and this is our javascript sdk and workspaces js so um i think i just might stop talking and i'm going to pass it over to sergi who's done all of the work uh with the team and beau who's who's not here uh because i think it's like 2 a.m for him right now so um they're gonna walk through um uh our series is gonna walk through a couple of examples and just point us to where some of the discussions are um in uh in github so that we can get as much feedback as possible um but yeah uh sarah's gonna walk us through some examples and really just taking a step back this is gonna unlock a ton of brand new developers to get started building smart contracts so we're really excited about it huge huge priority and yeah i promise i'm actually going to stop talking now and pass it to sergi um let me try and share the right tab let me know if you can see a uh this is gonna be a little bit imperfect but we're gonna roll with it um actually let me try can can everyone see that screen okay yes let's create and build smart contracts with js sdk the discussion right amazing and how does that you can can everyone read that or is it a smaller text if you could bump it a little bit it's already bumped well that's a little bit better okay okay so uh now we will try like together to understand what it takes to build a smart contract with the use of near sdk javascript uh what you should expect like what developer experience you you should expect today and what you should expect in a month or two so right now everything is pretty simple you can start your project just like any other javascript based project with npm with npm in it add near sdk js as a dependency and then write your code and add the build script to the packet json we will talk about it a bit later also you will need to add this config npm install yarn build and you're done as a result of execution of this command yarn build you will get the contract.base64 file which is a smart contract usually yes if you try to develop with near you know that the smart contract is awesome file but not this time this time we have like a unique enclaved architecture so this file is actually will be deployed to another smart contract and it will be it will work inside of that smart contract so something that you need to know is that this build process is it it it consists this project like this project it consists of two separate parts so the first part is the sdk itself it's uh something that you will import and use in your javascript files and the second thing is the contract builder it's a it's a separate cli but it's integrated inside of this dependency so that's why you're able to do something like this yeah you you're able to execute yar near sdk build and it will it will convert your javascript code into the base 64 encoded a smart contract um also about this bible file uh this one that you need to add we are like doing our best to delete this step so make it a bit easier but for now just don't forget to edit because we are using uh babel inside of the roll up to expand uh the decorators and yeah so this is the experience that you will have now please leave a comment like this is the discussion on github it's it lives in sardo inside of the near sdk jazz discussions please leave your comments if you can suggest us a better way to create projects to build projects to maybe expand adds new helper store sdk we are really happy to hear that one of the things that we are considering is that we can initialize a project with a cli command something like near project init and it will generate you a standard npm project with dependencies with all the config files etc etc so the downside of this is that people will not understand what they're doing at some extent and they will get the result faster but they can struggle later like when they will develop and build and deploy the their smart contract uh okay so any any comments questions like one one quick question someone had is uh is there a reason that you're switching from npm to yarn when installing dependencies in building uh so there's no you can use both npm and yarn like uh you can instant instead of npm here you can do uh yarn add near sdkjs and you can initialize project vdr and you can use yarn everywhere it's not a problem i'm personally using yarn so yeah it should be fine cool other than that i don't think oh wait a minute we got two questions um will the deployed javascript contract behave similar to wasa ones yeah they they are there is some differences so probably the main difference and the main advantage in behavior is that since this smart contract javascript javascript smart contract will live inside of another smart contract all the calls uh contract uh cross-contract calls will be synchronous yeah you know that if you try to build a contract with assembly script or rust you know that it's a bit hard and to make a cross-contract hole here it will be easier i will show an example a bit later how that can be achieved and yeah so synchronous execution of uh storage updates this is probably the uh main uh the the main difference yeah also of course you will have differences on how you call these contracts how you deploy but we will explain it a bit later cool uh another question is do is there an option to also uh deploy a wasm it is yeah so this is we made a decision to use this in cloud design because if you want to deploy a javascript runtime together with the contract it weighs a lot and you will need to pay like several dollars for each deployment and since we want to make it as easy and as cheap as possible we are using this design but theoretically it is possible and if you want to try it try it uh in our rip or you can check the branch that is called standalone and standalone branch is producing that was some file so it's converting basically it's converting javascript smart contracts into that awesome files but they are like huge yeah uh one more question is there any gas trade-off for executing inside of another contract uh yeah yeah of course like you will spend gas the same way also if your call for example is increasing a number of space that your contract is using you should attach deposit to each call so in terms of gas and gas deposits it will work in a similar fashion cool i think that's all the questions right now oh someone said um this is a similar to the aurora structure when you have a small cat executing a code in one chart correct oh one more it will cost will it cost the same amount of gas as if it was a rust contract uh to be honest i cannot guarantee you this but it will be similar like not much tradeoffs no big tradeoffs um another question came in if the keys of a javascript or jsvm account are compromised will all the dapps that have been deployed to it also be compromised um i mean if you're losing a key to account that you used to deploy a smart contract yes you will lose the access to this smart contract of course this is your only way to update it and sometimes to call it if you made such a design so yeah you need to keep your keys safe always cool i think that's uh all for right now but yeah um please continue to drop questions we will continue to answer them throughout the presentation um what are the plans to secure javascript key or jsbm key i'm not sure uh there's like uh maybe the person just got it wrong a bit so there is no such thing as the key for a smart contract uh we are using the standard keys that you used before with your account to deploy to to jsvm to javascript virtual machine smart contract you need standard key from your account and you will use it for basically everything other accounts will never have access to your state or to your contract and they will be able only to call it as uh wasn't based uh smart contracts hey siri i think i think specifically um they're asking about the like the the account like dot near um so the what would happen okay um do you want to go ahead yeah i i i got it yeah i got it so uh yes to be able to deploy the contract you will need javascript contract yes you can have your own contract you can deploy it and then deploy like 10 javascript contracts to it and they will be able to interact everything will be fine but our idea and the design that we have in our mind on our minds is that we will have just one main gsvm smart contracts and everybody will deploy uh their smart contracts javascript smart contracts like to this contract uh we are still trying to figure out how we will manage this key so there is mainly there's two options so we either deploy jsv on contract and delete all full access keys so we will guarantee that it will be it will never change yeah or we will keep it safely yeah let's put it this way probably we will move from option two to option one with time and this is a prime example of a discussion that needs to happen um so if there i think is there already a github discussion for this specific topic if not it we should just create it asap but obviously something we're thinking about um okay then yeah like a clear action is um actually ben if you don't mind creating that discussion to kickstart us that would be fantastic yeah okay any any other questions i don't see any right now but yeah continue to drop them uh either in the chat or the q a section and uh yeah we'll continue to answer them as we go but yeah if you want to continue okay okay yeah uh so now when you have a contract basically the result of our work is uh the contract base64 file the next thing that you probably want to do is to test it to write unit tests integration tests to make sure that everything works and for that we have a beautiful workspaces jazz library that will help you to do that easily or relatively easily so workspace is just is built to be able to test all the smarter contracts for near it can test smart contra smart contracts written in rust in assembly script and it can test smart contracts written in javascript but with a few tweaks that i will talk about right now so to be able to set up workspaces.js you need to follow next steps like of course you need to install the dependency we will also install ava we are using testrunner eva together we're workspaces.js and yeah you need to create a test file modify your package.json you can add you should basically add a test ava script install dependencies and yeah and hit yarn test yeah you're done so the test file itself looks the same way uh looks the next way uh if you use testrunners before probably it will be not a surprise for you that there is like a before function uh where you prepare the environment there is after where you clean the environment and there is a your tests so to prepare the environment what do you need to do you need to start a local blockchain we call it a sandbox so and you will use it it's like your personal blockchain it clean from the start and you can use it to deploy and hold your contracts and test test them this way so the first thing that you should understand that you need you must to deploy js vm contract if you're using base64 contracts yeah you need this base contract this further contract uh to keep all your basics to four contracts it's available in the nearest dkjs so just install dependencies and deploy it take it from this path should shouldn't be easy check our examples if you got lost um then you can create a few accounts this is just standard accounts and call functions because this is basically what you what you want to want to do yeah so let's check some tests so here we're checking we're calling we're we're doing a view call and it looks a bit different from standard workspaces setup ugs contract and then you need to encode your call with the function with the helper function b that we have up here you can just copy it and probably will move it to some sdk or api library later uh yeah so you need to encode these parameters and after that this is just a standard call to jsvm smart contract that will do all the work for you and execute your base64 javascript contract inside of it uh so same goes for view and call functions they're pretty similar try like try to read the code after this presentation and like understand how it works yeah so any any questions i don't think we've had any yet but i will definitely you know if there's no questions i will i will think that this design is perfect and i will not work on it anymore okay then maybe someone's asking about near apijs is that updated as well no no it's not unfortunately uh so just for you to understand that near sdk just was released today three hours ago so we're still catching up we are adding helpers to we will add helpers to near vhs we already added something to near cli and we will like step by step improve this design because we understand this that since it works a bit different we need to add additional like additional helpers additional functions to our libraries cool um if we deploy a full wasm can we use it the same as a rust contract um not sure what what is the same as the rust but yeah there's like interaction with interacting with that automation yes yeah yeah it's no there's no difference like if you're creating a contract that is bundled together with a javascript runtime so it's a wasson contract you're deploying it and after this this is just a standard contract for you yeah so the interface is the same the possibilities is the same uh no limitations you can track transaction and explorer et cetera et cetera you can do cross-contract calls to other contracts that are written in rust which is not possible from a base64 contract for now cool um how are you going to be able to call other contracts and other shards good question good question we will not call other contracts on other shirts because all the smart contracts are deployed to one smart contract and this smart contract always in one chart maybe not the same chart but it doesn't matter like it means that all your enclaved smart contracts are always inside of the this main smart contract so sharding will not stop us here but as i said we cannot right now make calls to rust-based contracts from enclave to contract so once you're inside that enclave once you're deployed inside there you're in your own little universe and you cannot communicate with this world yeah yeah i mean you can but not not the same way you cannot make cross-contract calls so this is the rule for now gotcha um can you use oracles if they're deployed to i mean oracle suggests a smart contract right so if these smart contracts are js-based smart contracts that will be deployed in this enclave then yes cool yeah so basically my my recommendation will be like if you don't want to learn rust if you don't know rest and you don't want to learn it and you want to just start quick this is what you it should do like javascript you can but you should keep in mind that probably you will need to write all the smart contracts in javascript so you will need to write all the logic and just check that everything everything you need is available inside of the enclaved smart contract as an oracle for example a couple questions about workspaces um are there utils for workspaces deals not sure like there is no it's a single package now uh i know that we are trying to extend it but basically what you can see here is the utils is utils uh like these functions it's not in your api.js functions right now at least this is the utils that workspaces jazz is providing for you to make these test files small and like easy to write cool um will epoch skipping be introduced in workspaces uh once more epoch skipping so like skipping forward i would imagine like a fast forward uh i'm not sure i'm not sure maybe somewhat if somebody knows answer or we can do that after the call the goal is to definitely have feature parity between workspaces js and rs um it's just a like a resource question right like um just our we have so many priorities as everyone knows um it just may not be the the next most immediate thing that we work on but it's definitely on the roadmap oh another question is there any negative side effects to using the standalone version of the sdk rather than uh the price i'm assuming they're saying what what aside from the size of the contract when you deploy it you know wasm directly is there any other yeah is there any other uh downfall or negative okay so yeah the size is the first one the inability to call contracts outside of uh just virtual machine smart contract also no i i think what they're saying is if you if you if you uh compile it to wasm and you just deploy okay yeah yeah yeah yeah well you know aside from the size of being huge you got to pay for that storage what other i mean at that point it's just a regular there is no limitation limitations so i guess that the main limitations right now will be the fact that uh this javascript sdk is not mature we're just releasing it so right now it lacks some functionality that rust sdk for example has so during development you can face some limitations but after you've deployed it i don't think so can i just even ask like sarah for like clarification on that so like for someone that does want to um use an oracle have cross-contract calls if they just uh generate a wasm file from a contract they build using the javascript sdk they would still be able to do that but what you are suggesting is that um the not every single tool or every um like all the bells and whistles from the russ sdk are available to the developer to make that as easy as possible right now yes right now there are some limitations but yes you will be able to use oracle's do the cross-contract calls everything that rust smart control can do yeah so maybe we will with time we will have both that you will be able to build a dot base64 contract and that wasn't contract and decide like what what what kind of experience you need what kind of functionality you need yeah and i will remind i will tell it one more time that it's already available if you will go to the repo check out the standalone branch it can it can do it it can make that awesome smart contract um how do you know what contracts or apis are available in the enclave all the apis like we have all the apis that are available for javascript for sorry for rust smart contract basically we're using everything that is available on our blockchain when i'm saying that there's when i'm saying that there are some limitations in apis it means not the low-level apis i mean the high-level apis some helpers that like making your life easier cool and then um i i think the second part to that question is um there's no like list of all of the smart contracts that have been deployed to the enclave that you can interact with correct or concurrently correct uh there is there is okay you can do that okay so just a something you need to understand that this is a jsvm smart contract account is a standard account gs vm contract is a standard contract and it has its state and this state is divided between the contracts that are deployed to it so you can get with the view function of this jsvm smart contract you could get a list of all the smart contracts that are deployed and you can check the state and right now the state is in json so you can even view this state okay cool okay let me let yeah let us know if that uh clarifies or answers your question or if you have any clarifi clarifying follow-ups um another question are there any limitations to using external npm packages i.e random numbers uh in russ you can only use crates that support the wasm 32 unknown unknown yeah yeah so you can use external packages no problem but they should not depend on something that is browser specific or note specific so basically everything that is pure js should be able to work in your smart contract which is a huge advantage because in assembly script you do not have a lot of options a lot of dependencies you don't have like a million packages in npmjs that you can use so yeah it's a big advantage and try to use it there is an example in examples folder near sdkjs examples folder that is using an external dependency well they followed up with just making sure that this is the same between the standalone uh and the enclave version correct uh the same what do you mean the same um the the mpm packages you can use them in the enclave as well yeah no no limitations no difference no difference how does this javascript sdk compare to the assembly script sdk pros and cons okay so i'll yeah so pros and cons i've told i've already told that in assembly scripts basically the situation is the same you can use external dependency but only if they are written in assembly script there's no not that much such libraries in javascript you have everything you need assembly script is a language that is still in development that that is why uh next to like in our documentation we are saying that assembly script is not ready for financial applications and javascript theoretically can be yeah like if we will pass some security checks i guess that it's theoretically possible because this is a mature language that is used widely used also javascript is probably easier and it's just more spreads yeah more people know js this is the reason why they will want to use it i hope so cool i have one clarifying question what i meant is for example being you can't call ref finance from the contract you would probably need to deploy a dex to this javascript smart contract is there going to be a list of contract deployed there that you can call in sync so if i understand this right yes yes you will not be able to do that but you can you will be able to do that if you will package it as that awesome yeah by the way we really want to hear your thoughts on what's the best design and which one we should develop more intensively like the standalone design where you have that was on contract that is big and expensive to deploy but it's more functional or they're just a smart contract that is li-fi cheap but has some limitations please leave comments in these discussions that we are showing here uh in near sdk jazz repo cool awesome i'm just conscious of time we've got 15 minutes left should we take a look at apple yeah yeah let's uh let's check the example and yeah and after that we'll do it okay so i have a few projects here so the first one is the status message project project now we'll explore it briefly because basically i've told everything but maybe you will want to see it in like in real real life okay can you can you see the text the code yep oh i can only see i can see your uh nav on the left but i can't see any code on the right oh never because there is no any code okay no yeah there we go there we go now it should be really good okay so this is the project it's pretty simple it's a standard as i said it's standard.js project in package.json all we've done is we've added the dependency for near sdkjs dependency dev dependencies for our testing libraries near workspaces of course and we've added two scripts near sdk build and ava for testing our smart smart contract is pretty small and easy so all you need here is a nearby engine hole and few decorators and basically everything else is a plain javascript code maybe there is also an environment to do logs and maybe some other low-level stuff if you need if you will need it so this smart contract is pretty simple it has records records are i can be set by the caller and basically every caller can set a message status message for itself and read this message of course you can read this message by with get status function and the account id so yeah looks pretty simple to me any any questions about code someone asks so there's no more signed unsigned integers i need to import uh if i'm not mistaken no no this is like all you need okay um yeah and uh okay here is a yeah here is a sorry yeah here's a build folder right and after after you execute yarn and your sdk build uh you will get these files so this base 64 file is your smart contract ready for deployment and this file is basically expanded version of it expanded version of what we saw sometimes you need it to just you know to understand better what you wrote yeah so we will know where to check it okay any other questions yeah someone asked if they can write their contracts and typescript and then precompile to js uh now theoretically no limitations we do not have examples yet but we are planning to add typescript support yeah but you you can try if you basically if you will be able to convert compile basically your typescript file to this like no limitations and then i think some someone was asking if there's any smart contract examples with logging and nested con cross-contract calls okay yes yes there is i will show it right now because this is the plan so we have an example like the simplest example possible of the smart contract across smart smart controller poll it has the same structure nothing like really different we added a ready status message base64 contract from previous example so we will use it and we have our on-call contract here so the idea is that on call contract we'll check the status of the status contract for the person and then if this person is available so it's it's done here like we are doing a call to a status message test that here if the status is available then we're setting this person on call if it's not we're not we're not setting this person on call and also we can check who's in a call right now so this is the example the simplest example of the cross contract call inside of the js smart contract it's also available in examples folder there you can you can check it there and you can play with it improve it write pull requests add new examples write your awesome projects everything you want cool looks clean someone says yeah yeah javascript simple and hopefully reliable okay so that's it from me the next that the next thing that we want to talk about is how you can interact with enclaved javascript smart contracts from the cli and fong who's the author of this functionality will tell more yeah sure um let me steal your screen first for now all right can you guys see my screen yeah yeah all right so yeah so this will just be this is the discussion board for um how you interact with the js smart contract through the cli uh we currently have like five um commands that you can use that are specific to just js itself um yeah like uh i'll go through an example later with this too with uh what sir he did with like the status message but uh yeah these will be just like uh regular calls into the jsbm and they will have some i mean these are just like helper stuff on the cli itself so you don't have to make some raw calls um that you normally have to do so let me show you how that all looks like in a workflow like manner for deploying to deploying a uh status message contract to the jsbm so uh normally you just have near um when you're actually trying to get larger phone larger okay yeah thank you all right let me see perfect things yeah there we go so normally you just have near and that would just be your entryway to go through every single sub command but for the javascript one we need to specifically go into js because it has a bunch of other parameters that need to be specified than what you normally have in the regular near cli so to deploy the status message contract we just do deploy and then specify the account we want to associate the contract to on in the enclave and we just specify that with account id uh then we should specify the path to the file it's or to the contract bytes itself which is the status message dot base64. uh one additional thing with deploy is that you do need to allocate a certain amount of balance to the enclave so that it could store this contract itself so you have to do deposit and then specify 0.1 near it's not going to take up 0.1 here it will refund the difference that it ends up using so that let's run that and it will also give you back the transaction and you can view that in the explorer um then we'll make a call into a net itself and this is my account and it's and and it doesn't take any arguments so we'll just call that let's specify the signer which is just give me a test and test user test net again um calls also modify state so that means that we also need to specify a deposit so that if it ends up taking more state on the enclave itself you can actually allocate it properly so that should run and afterwards we should be able to set a status onto the contract itself and yeah okay so let's set hello world to it so let's specify contract and then set status then we'll want to specify our signer yet again then the arguments to it this is just gonna be a json um arguments like you'd normally get with hello with um with near cli call so we're just gonna specify uh hello world and yet again since we're modifying state we need a specified deposit cool cool and once that done well we should be able to view it and get back hello world one thing i noticed that's a little different in this is that you're passing an array instead of an object or a json object um oh no it's just uh that's just how the the parameter is set in the in the contract itself but you can pass in a json object itself if you wanted to oh okay cool it's just any json string so let's call into view itself and then get status and specified account and then we'll specify um yeah the the arguments or which which um status message uh account we want to grab from so it's just gonna be this one and we don't need a specified deposit since this is just a view call yeah and that gets us hello world that we set before and now uh once that's all done let's say you don't want that contract to be live anymore well you can just do you can just remove it itself and it will return you the any deposit it has um it has uh it has on the enclave itself so you'll receive back all your storage deposit now um as you can see right here it's using this particular contract for the jsvm but that's just the default um for testnet if you want to specify your own jis vm contract that you deployed to some other account you can do let's say or you just had this let's say you can just specify like jsvm and like your own jsbm contract account like testuser.testnet if i deployed on jsvm contractor so all this is like pretty much built in already if you just want to use jsvm.testnet instead and later on jsvm.near if you want to go on mainnet but yeah besides that that's pretty much it let me know if you guys have any questions on that i think jacob only had one it was kind of like a follow-up question i had um the arguments are not named like they are with rust ban assembly script contracts i think it's in that same kind of format of like key value oh all right um i believe that you should be able to specify key value correct me if i'm wrong siri like uh it should just be like a json um set of parameters and like the jsvm contract should be able to parse it itself and apply it to the yeah it should be possible yeah but like uh i mean even uh in the rust um when you're calling us a rust smart contract you don't necessarily need to specify the named args for um this for the yeah the name argus into the callable itself so it should roughly work the same like they're um yeah they should be like pretty much serialized the same and like uh be sent to the proper smart contract call or function cool um looks like javascript deployment is only a function call to the javascript virtual machine contract does that mean that one account id could conceivably have contracts deployed on multiple jsvm instances simultaneously uh yes it should be possible like um by multiple jsvm instances you mean like multiple jsbm contracts deployed to the chain then yeah yeah it's uh it's just the account id is associated inside the enclave itself so you your local account that you have like test user.testnet that won't that won't actually store any of the contract bytes cool um this is an interesting question so the 30 gas fees that are earned by depth developers um are usually sent to the contract owners um is for the javascript vm is that going to be sent to the jsvm account or are they stored on the jsvm account and then the jsvm smart contract has like a data container that keeps track of how much near and what accounts on which uh yeah i don't know how you guys thought about that at all no i guess yeah i guess not for now yeah but it's a really good suggestion yeah it's something that user wants to get and needs to get cool awesome thanks for thanks for flagging that issue um yeah plea please post that in the discussion on github so we don't lose that i was definitely gonna say can i ask you to create a discussion around that so we don't lose that thought and just like echoing that this is like version 0.1 so a lot of this is probably if we have a massive amount of usage obviously something that would probably be prioritized so um but please open the discussion now thank you cool all right well we got two minutes left did we cover everything that we we wanted to get to on uh uh on your side austin and sergey and phong i'm good austin i think so all i was gonna plug at the end was just what we're focusing on immediately so it's obviously this javascript sdk getting this out the door um workspaces rs 4.0 expect to see something uh expect to see a release come very soon next week hopefully um and then focusing on the on the api as well um so uh i think that's it i'd love to just say a huge thank you to sergey and bo who's not here for a ton of work on this javascript sdk to get it to where it is and and and fong thank you for jumping in and uh putting your javascript ad on with the with the cli work uh to get the interaction working so um yeah massive thank you to the entire team and and a huge huge thank you to the community um for these amazing questions with a new like a new product where a new tool um we definitely expected a lot of discussion and and you all didn't disappoint so just another reminder continue to have these discussions in github we're going to try and have all of our discussions in github um and uh we'll try to improve this and super excited to see what everyone builds yeah totally thank you so much everyone for uh for joining again continue the conversation on github please give us feedback show us examples of things you've made ways in which we can improve uh yeah we are basically guiding our development process on community feedback so please participate and help us uh shape our future um but yeah thanks so much fong sergey austin uh yeah love uh i love this discussion uh and uh yeah i'm stoked about the javascript sdk and where i can go from here so uh cool yeah share with your web two friends absolutely absolutely uh cool well have a great day everyone we'll see you next time bye see you guys","transcript_synced_at":"2026-11-04T04:04:06.322Z","segments":[{"start_seconds":10,"text":"welcome to the second developer tools community update uh meeting um yeah i'm josh from devrel","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=10s"},{"start_seconds":18,"text":"i got a couple other individuals on the call as well from the tooling team uh yeah yeah fong you want to introduce yourself","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=18s"},{"start_seconds":26,"text":"sure hi there guys i'm fong i'm on the dev tools team mostly working rust but this time i'll be showing off a javascript cli tooling in this","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=26s"},{"start_seconds":35,"text":"presentation awesome siri my name is sergey i work in a","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=35s"},{"start_seconds":42,"text":"deltoo teams2 and my focus for the last few months was workspaces.js and nearest dkjs yeah and i will","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=42s"},{"start_seconds":51,"text":"talk about it today too awesome and then austin you want to give a quick intro yeah for sure i'm i'm","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=51s"},{"start_seconds":58,"text":"austin i'm a product manager i'm here at pagoda on the the dev tools team as well um and actually should i just segue right into","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=58s"},{"start_seconds":66,"text":"what we're going to talk about yeah yeah just yeah segway right in i just want to let everyone know if at any time you have any questions or comments or any","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=66s"},{"start_seconds":74,"text":"ideas anything you want to talk about go ahead and post it in the q a button at the bottom of your screen","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=74s"},{"start_seconds":81,"text":"click on that throw a question out there we will answer them as we go and then after the presentation we'll do like an ama where you can ask anything so at any","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=81s"},{"start_seconds":89,"text":"time if you want to ask a question about what we're talking about or anything tooling related please feel free to drop it and we'll we'll do our best to answer your questions um so yeah go ahead take","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=89s"},{"start_seconds":98,"text":"it away awesome awesome sweet thanks josh so um so today yeah we're i'm just going to quickly cover the agenda that we're going to go through so one i'd just like to talk","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=98s"},{"start_seconds":106,"text":"about what we've done since the last time just like a super quick uh super quick um smattering of what we've shipped um reiterate on just what the uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=106s"},{"start_seconds":115,"text":"the tools team vision is we had an offsite where we set that um talk about what our focus is going to be over the next uh a couple of months and then most","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=115s"},{"start_seconds":123,"text":"of the time is actually going to be sergie and and fong talking about the javascript sdk which we're obviously fired up to chat about so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=123s"},{"start_seconds":131,"text":"um i'm gonna jump right in so since since the last time we've shipped quite a bit um and we we've touched almost all of the projects that our our","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=131s"},{"start_seconds":138,"text":"teams take care of um so yeah just a few highlights the sdk rs um austin abel is is working on um getting the 4.0 release","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=138s"},{"start_seconds":146,"text":"ready to go hopefully that'll be next week um so super excited um for that to go live workspaces rs shift a new version there 0.3","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=146s"},{"start_seconds":155,"text":"following a lot of teams working on working on that um miraculous has been making a ton of changes to the json rpc client a lot of","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=155s"},{"start_seconds":162,"text":"cleanup a lot of ergonomic improvements um workspaces js you'll see a little bit of that today in conjunction with the","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=162s"},{"start_seconds":169,"text":"sdk um just getting the workspace's js close to feature parity with rs um and making it super useful to uh to make","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=169s"},{"start_seconds":177,"text":"testing um uh as easy as possible and then another one that we're really excited to share soon is has just been laying some of the groundwork around our","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=177s"},{"start_seconds":185,"text":"api um we know that that's table stakes a lot of the other chains have that already and and um we've been able to spend quite a bit of time scoping what","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=185s"},{"start_seconds":192,"text":"that would look like and just working through some of the implementation details that we're uh we're gonna take to the community so that we can make sure that we're uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=192s"},{"start_seconds":200,"text":"we're solving the right problems um so we've been we've been extremely busy since the last time we chatted and the other thing we did was set our","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=200s"},{"start_seconds":208,"text":"vision and the way we did this was basically starting with the pagoda vision so um just a world where today's startups and tomorrow's unicorns succeed","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=208s"},{"start_seconds":216,"text":"in realizing the limitless opportunities of web3 and delivering its value to uh billions of people and we just kind of picked this apart we put notes on it we","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=216s"},{"start_seconds":224,"text":"talked about what we liked what we didn't like what we could actually contribute to and we laid out on a board just the life cycle of our products","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=224s"},{"start_seconds":232,"text":"everything that we could possibly work on um all how all the tools fit together and what we ended up arriving at is a","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=232s"},{"start_seconds":239,"text":"pretty simple vision of just deliver the intuitive productive and reliable tools needed for web3 development so the reason why i just wanted to share this","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=239s"},{"start_seconds":247,"text":"is if you're wondering what our team takes care of who we are what we care about what we hope to achieve this is sort of our guiding","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=247s"},{"start_seconds":254,"text":"principle and our our vision cool so um what we're actually going to be focusing on tangibly to try and make","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=254s"},{"start_seconds":262,"text":"that vision come true um the same three things that i talked about the last time we were here making near the most successful blockchain for web 2 developers uh streamlining and improving","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=262s"},{"start_seconds":271,"text":"the developer experience for creating full stack apps and just enabling better product uh based decision making for our tools products so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=271s"},{"start_seconds":278,"text":"um the first piece is really what we're going to spend almost the entire time today talking about and this is our javascript sdk and workspaces js so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=278s"},{"start_seconds":288,"text":"um i think i just might stop talking and i'm going to pass it over to sergi who's done all of the work uh with the team","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=288s"},{"start_seconds":296,"text":"and beau who's who's not here uh because i think it's like 2 a.m for him right now so um they're gonna walk through um uh our","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=296s"},{"start_seconds":304,"text":"series is gonna walk through a couple of examples and just point us to where some of the discussions are um in uh in github so that we can get as much","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=304s"},{"start_seconds":312,"text":"feedback as possible um but yeah uh sarah's gonna walk us through some examples and really just taking a step back this is gonna unlock a ton of brand","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=312s"},{"start_seconds":321,"text":"new developers to get started building smart contracts so we're really excited about it huge huge priority and yeah i promise i'm actually going to stop talking now and pass it to","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=321s"},{"start_seconds":330,"text":"sergi um let me try and share the right tab let me know if you can see a","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=330s"},{"start_seconds":339,"text":"uh this is gonna be a little bit imperfect but we're gonna roll with it um actually let me","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=339s"},{"start_seconds":346,"text":"try can can everyone see that screen okay","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=346s"},{"start_seconds":355,"text":"yes let's create and build smart contracts with js sdk the discussion right amazing and how does that you can can everyone","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=355s"},{"start_seconds":363,"text":"read that or is it a smaller text if you could bump it a little bit","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=363s"},{"start_seconds":371,"text":"it's already bumped well that's a little bit better okay okay so uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=371s"},{"start_seconds":380,"text":"now we will try like together to understand what it takes to build a smart contract with the use of near sdk javascript uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=380s"},{"start_seconds":389,"text":"what you should expect like what developer experience you you should expect today and what you should","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=389s"},{"start_seconds":396,"text":"expect in a month or two so right now everything is pretty simple","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=396s"},{"start_seconds":404,"text":"you can start your project just like any other javascript based project with","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=404s"},{"start_seconds":410,"text":"npm with npm in it add near sdk js as a dependency","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=410s"},{"start_seconds":419,"text":"and then write your code and add the build script","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=419s"},{"start_seconds":427,"text":"to the packet json we will talk about it a bit later","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=427s"},{"start_seconds":433,"text":"also you will need to add this config npm install yarn build and you're done","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=433s"},{"start_seconds":441,"text":"as a result of execution of this command yarn build you will get the contract.base64","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=441s"},{"start_seconds":449,"text":"file which is a smart contract usually yes if you try to develop with near","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=449s"},{"start_seconds":457,"text":"you know that the smart contract is awesome file but not this time this time we have like a","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=457s"},{"start_seconds":466,"text":"unique enclaved architecture so this file is actually will be deployed to another smart contract","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=466s"},{"start_seconds":474,"text":"and it will be it will work inside of that smart contract so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=474s"},{"start_seconds":484,"text":"something that you need to know is that this build process is it it it consists","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=484s"},{"start_seconds":492,"text":"this project like this project it consists of two separate parts so the first part is the sdk itself it's uh something that you will import","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=492s"},{"start_seconds":501,"text":"and use in your javascript files and the second thing is the contract builder it's a","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=501s"},{"start_seconds":509,"text":"it's a separate cli but it's integrated inside of this dependency so that's why you're able to do something","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=509s"},{"start_seconds":517,"text":"like this yeah you you're able to execute yar near sdk build and it will it will convert your","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=517s"},{"start_seconds":526,"text":"javascript code into the base 64 encoded","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=526s"},{"start_seconds":533,"text":"a smart contract um also about this bible file uh this one that you need to","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=533s"},{"start_seconds":541,"text":"add we are like doing our best to delete this step so make it a bit easier but for now just don't forget to edit","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=541s"},{"start_seconds":550,"text":"because we are using uh babel inside of the roll up to expand","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=550s"},{"start_seconds":559,"text":"uh the decorators and yeah so this is the experience that you will","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=559s"},{"start_seconds":568,"text":"have now please leave a comment like this is the discussion on github it's it lives in","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=568s"},{"start_seconds":576,"text":"sardo inside of the near sdk jazz discussions please leave your comments if you can suggest us a better way to create","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=576s"},{"start_seconds":585,"text":"projects to build projects to maybe expand adds new helper store sdk we are really","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=585s"},{"start_seconds":593,"text":"happy to hear that one of the things that we are considering is that we can initialize a project","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=593s"},{"start_seconds":603,"text":"with a cli command something like near project init and it will generate you","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=603s"},{"start_seconds":610,"text":"a standard npm project with dependencies with all the config files","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=610s"},{"start_seconds":617,"text":"etc etc so the downside of this is that people will not understand what they're","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=617s"},{"start_seconds":624,"text":"doing at some extent and they will get the result faster but they can","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=624s"},{"start_seconds":630,"text":"struggle later like when they will develop and build and deploy the their smart contract","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=630s"},{"start_seconds":639,"text":"uh okay so any any comments questions like one one quick question someone had is uh is","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=639s"},{"start_seconds":647,"text":"there a reason that you're switching from npm to yarn when installing dependencies in building uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=647s"},{"start_seconds":655,"text":"so there's no you can use both npm and yarn like","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=655s"},{"start_seconds":663,"text":"uh you can instant instead of npm here you can do uh yarn add","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=663s"},{"start_seconds":671,"text":"near sdkjs and you can initialize project vdr and you can use yarn everywhere it's not a problem i'm","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=671s"},{"start_seconds":678,"text":"personally using yarn so yeah it should be fine cool other than that i don't think oh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=678s"},{"start_seconds":687,"text":"wait a minute we got two questions um will the deployed javascript contract behave similar to wasa ones","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=687s"},{"start_seconds":697,"text":"yeah they they are there is some differences so probably the main difference","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=697s"},{"start_seconds":705,"text":"and the main advantage in behavior is that since this smart contract javascript javascript","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=705s"},{"start_seconds":712,"text":"smart contract will live inside of another smart contract all the calls uh contract uh cross-contract calls will","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=712s"},{"start_seconds":721,"text":"be synchronous yeah you know that if you try to build a contract with assembly script or rust you know that it's a bit hard and","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=721s"},{"start_seconds":731,"text":"to make a cross-contract hole here it will be easier i will show an example a bit later","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=731s"},{"start_seconds":739,"text":"how that can be achieved and yeah so synchronous execution of uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=739s"},{"start_seconds":746,"text":"storage updates this is probably the uh main uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=746s"},{"start_seconds":753,"text":"the the main difference yeah also of course you will have differences on how you call these contracts how you deploy but we will","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=753s"},{"start_seconds":762,"text":"explain it a bit later cool uh another question is do is there","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=762s"},{"start_seconds":768,"text":"an option to also uh deploy a wasm it is yeah so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=768s"},{"start_seconds":776,"text":"this is we made a decision to use this in cloud design because if you want to deploy","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=776s"},{"start_seconds":785,"text":"a javascript runtime together with the contract it weighs a lot and you will need to pay","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=785s"},{"start_seconds":791,"text":"like several dollars for each deployment and since we want to make it as easy and as cheap as possible we are using this","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=791s"},{"start_seconds":800,"text":"design but theoretically it is possible and if you want to try it try it","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=800s"},{"start_seconds":806,"text":"uh in our rip or you can check the branch that is called standalone","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=806s"},{"start_seconds":814,"text":"and standalone branch is producing that was some file so it's converting basically it's converting javascript","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=814s"},{"start_seconds":822,"text":"smart contracts into that awesome files but they are like huge yeah","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=822s"},{"start_seconds":830,"text":"uh one more question is there any gas trade-off for executing inside of another contract uh yeah yeah of course like","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=830s"},{"start_seconds":839,"text":"you will spend gas the same way also if your call for example is","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=839s"},{"start_seconds":847,"text":"increasing a number of space that your contract is using you should attach deposit to each call so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=847s"},{"start_seconds":857,"text":"in terms of gas and gas deposits it will work in a similar fashion","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=857s"},{"start_seconds":866,"text":"cool i think that's all the questions right now oh someone said um this is a similar to the aurora structure when you have a small cat","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=866s"},{"start_seconds":875,"text":"executing a code in one chart correct oh one more it will cost will it cost the same amount of gas as if it was a","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=875s"},{"start_seconds":882,"text":"rust contract uh to be honest i cannot guarantee you this","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=882s"},{"start_seconds":890,"text":"but it will be similar like not much tradeoffs no big tradeoffs","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=890s"},{"start_seconds":897,"text":"um another question came in if the keys of a javascript or jsvm account are compromised will all the dapps that have","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=897s"},{"start_seconds":905,"text":"been deployed to it also be compromised um i mean if you're losing a key to account","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=905s"},{"start_seconds":914,"text":"that you used to deploy a smart contract yes you will lose the access to this smart contract of course this is your only way","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=914s"},{"start_seconds":922,"text":"to update it and sometimes to call it if you made such a design so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=922s"},{"start_seconds":929,"text":"yeah you need to keep your keys safe always cool i think that's uh all for right now","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=929s"},{"start_seconds":937,"text":"but yeah um please continue to drop questions we will continue to answer them throughout the presentation um","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=937s"},{"start_seconds":945,"text":"what are the plans to secure javascript key or jsbm key i'm not sure uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=945s"},{"start_seconds":952,"text":"there's like uh maybe the person just got it wrong a bit so there is no such thing as the","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=952s"},{"start_seconds":960,"text":"key for a smart contract uh we are using the standard keys that you used before with your account","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=960s"},{"start_seconds":970,"text":"to deploy to","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=970s"},{"start_seconds":974,"text":"to jsvm to javascript virtual machine smart contract you need standard key from your account and you will use it for basically","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=974s"},{"start_seconds":983,"text":"everything other accounts will never have access","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=983s"},{"start_seconds":992,"text":"to your state or to your contract and they will be able only to call it as uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=992s"},{"start_seconds":1000,"text":"wasn't based uh smart contracts hey siri i think i think specifically um they're asking about the like the the","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1000s"},{"start_seconds":1007,"text":"account like dot near um so the what would happen okay um do you want to go ahead yeah i i i got","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1007s"},{"start_seconds":1015,"text":"it yeah i got it so uh yes to be able to deploy the contract you will need","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1015s"},{"start_seconds":1023,"text":"javascript contract yes you can have your own contract you can deploy it and then deploy","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1023s"},{"start_seconds":1030,"text":"like 10 javascript contracts to it and they will be able to interact everything will be fine but our idea and","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1030s"},{"start_seconds":1038,"text":"the design that we have in our mind on our minds is that we will have just one main","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1038s"},{"start_seconds":1048,"text":"gsvm smart contracts and everybody will deploy uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1048s"},{"start_seconds":1056,"text":"their smart contracts javascript smart contracts like to this contract uh we are still trying to figure out how","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1056s"},{"start_seconds":1063,"text":"we will manage this key so there is mainly there's two options so we either deploy jsv on contract and","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1063s"},{"start_seconds":1073,"text":"delete all full access keys so we will guarantee that it will be it will never change yeah or we will","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1073s"},{"start_seconds":1082,"text":"keep it safely yeah let's put it this way probably we will move from option two to","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1082s"},{"start_seconds":1090,"text":"option one with time and this is a prime example of a discussion that needs to happen um so if there i think is there already a github","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1090s"},{"start_seconds":1098,"text":"discussion for this specific topic if not it we should just create it asap but obviously something we're thinking about um","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1098s"},{"start_seconds":1106,"text":"okay then yeah like a clear action is um actually ben if you don't mind creating that discussion to kickstart us that would be fantastic","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1106s"},{"start_seconds":1116,"text":"yeah okay any any other questions i don't see any right now but yeah","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1116s"},{"start_seconds":1124,"text":"continue to drop them uh either in the chat or the q a section and uh yeah we'll continue to answer them as we go but yeah if you want to continue okay","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1124s"},{"start_seconds":1131,"text":"okay yeah uh so now when you have a contract basically the result of our work is uh the","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1131s"},{"start_seconds":1141,"text":"contract base64 file the next thing that you probably want to do is to test it to write unit tests","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1141s"},{"start_seconds":1148,"text":"integration tests to make sure that everything works and for that we have a","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1148s"},{"start_seconds":1156,"text":"beautiful workspaces jazz library that will help you to do that easily or relatively easily","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1156s"},{"start_seconds":1166,"text":"so workspace is just is built to be able to test all the smarter contracts for near","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1166s"},{"start_seconds":1173,"text":"it can test smart contra smart contracts written in rust in assembly script and it can","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1173s"},{"start_seconds":1181,"text":"test smart contracts written in javascript but with a few tweaks that i will talk about right now","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1181s"},{"start_seconds":1189,"text":"so to be able to set up workspaces.js you need to follow","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1189s"},{"start_seconds":1199,"text":"next steps like of course you need to install the dependency we will also","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1199s"},{"start_seconds":1204,"text":"install ava we are using testrunner eva together we're workspaces.js","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1204s"},{"start_seconds":1212,"text":"and yeah you need to create a test file modify your package.json you can add you should","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1212s"},{"start_seconds":1221,"text":"basically add a test ava script install dependencies and yeah and hit yarn test yeah you're done","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1221s"},{"start_seconds":1229,"text":"so the test file itself looks the same way uh looks the next way uh if you use testrunners before","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1229s"},{"start_seconds":1238,"text":"probably it will be not a surprise for you that there is like a before function uh where you prepare the environment there","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1238s"},{"start_seconds":1247,"text":"is after where you clean the environment and there is a your tests so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1247s"},{"start_seconds":1254,"text":"to prepare the environment what do you need to do you need to start a","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1254s"},{"start_seconds":1260,"text":"local blockchain we call it a sandbox","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1260s"},{"start_seconds":1266,"text":"so and you will use it it's like your personal blockchain it clean from the start and","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1266s"},{"start_seconds":1274,"text":"you can use it to deploy and hold your contracts and test test them this way","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1274s"},{"start_seconds":1282,"text":"so the first thing that you should understand that you need you must to deploy js vm contract if you're","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1282s"},{"start_seconds":1289,"text":"using base64 contracts yeah you need this base contract this further contract","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1289s"},{"start_seconds":1296,"text":"uh to keep all your basics to four contracts it's available in the nearest dkjs","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1296s"},{"start_seconds":1304,"text":"so just install dependencies and deploy it","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1304s"},{"start_seconds":1312,"text":"take it from this path should shouldn't be easy check our examples if you got lost","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1312s"},{"start_seconds":1319,"text":"um then you can create a few accounts this is just standard accounts and call","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1319s"},{"start_seconds":1327,"text":"functions because this is basically what you what you want to want to do","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1327s"},{"start_seconds":1336,"text":"yeah so let's check some tests so here we're checking we're calling","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1336s"},{"start_seconds":1345,"text":"we're we're doing a view call and it looks a bit different from standard workspaces setup","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1345s"},{"start_seconds":1353,"text":"ugs contract and then you need to encode your call with the function with the helper","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1353s"},{"start_seconds":1361,"text":"function b that we have up here you can just copy it and probably will move it to some","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1361s"},{"start_seconds":1368,"text":"sdk or api library later uh yeah so you need to encode these","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1368s"},{"start_seconds":1375,"text":"parameters and after that this is just a standard call to jsvm smart","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1375s"},{"start_seconds":1383,"text":"contract that will do all the work for you and execute your","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1383s"},{"start_seconds":1389,"text":"base64 javascript contract inside of it uh so same goes for","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1389s"},{"start_seconds":1396,"text":"view and call functions they're pretty similar try like try to read the code after this presentation and like","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1396s"},{"start_seconds":1405,"text":"understand how it works","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1405s"},{"start_seconds":1416,"text":"yeah so any any questions i don't think we've had any yet","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1416s"},{"start_seconds":1426,"text":"but i will definitely you know if there's no questions i will","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1426s"},{"start_seconds":1435,"text":"i will think that this design is perfect and i will not work on it anymore","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1435s"},{"start_seconds":1450,"text":"okay then maybe someone's asking about near apijs is that updated as well","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1450s"},{"start_seconds":1457,"text":"no no it's not unfortunately uh so just for you to understand that near sdk just was released","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1457s"},{"start_seconds":1465,"text":"today three hours ago so we're still catching up we are adding helpers","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1465s"},{"start_seconds":1473,"text":"to we will add helpers to near vhs we already added something to near cli and we will","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1473s"},{"start_seconds":1480,"text":"like step by step improve this design because we understand this that since it works a bit different","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1480s"},{"start_seconds":1487,"text":"we need to add additional like additional helpers additional functions to our libraries","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1487s"},{"start_seconds":1496,"text":"cool um if we deploy a full wasm can we use it the same as a rust contract","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1496s"},{"start_seconds":1503,"text":"um not sure what what is the same as the rust but yeah there's like interaction with","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1503s"},{"start_seconds":1510,"text":"interacting with that automation yes yeah yeah it's no there's no difference like if you're creating a contract","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1510s"},{"start_seconds":1519,"text":"that is bundled together with a javascript runtime so it's a wasson contract you're deploying it and after","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1519s"},{"start_seconds":1526,"text":"this this is just a standard contract for you yeah so the interface is the same the possibilities is the same","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1526s"},{"start_seconds":1534,"text":"uh no limitations you can track transaction and explorer et cetera et cetera you can do cross-contract calls","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1534s"},{"start_seconds":1542,"text":"to other contracts that are written in rust which is not possible from a base64 contract for now","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1542s"},{"start_seconds":1551,"text":"cool um how are you going to be able to call other contracts and other shards","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1551s"},{"start_seconds":1559,"text":"good question good question we will not call other contracts on other shirts because","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1559s"},{"start_seconds":1567,"text":"all the smart contracts are deployed to one smart contract and this smart contract always in one chart","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1567s"},{"start_seconds":1575,"text":"maybe not the same chart but it doesn't matter like it means that all your enclaved smart contracts are always","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1575s"},{"start_seconds":1582,"text":"inside of the this main smart contract so sharding will not stop us here","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1582s"},{"start_seconds":1590,"text":"but as i said we cannot right now make calls to rust-based contracts","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1590s"},{"start_seconds":1597,"text":"from enclave to contract so once you're inside that enclave once you're deployed inside there you're in your own little universe and you cannot","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1597s"},{"start_seconds":1606,"text":"communicate with this world yeah yeah i mean you can but not not the same way you cannot make cross-contract","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1606s"},{"start_seconds":1613,"text":"calls so this is the rule for now gotcha um can you use oracles","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1613s"},{"start_seconds":1623,"text":"if they're deployed to i mean oracle suggests a smart contract right so if these smart contracts are js-based smart","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1623s"},{"start_seconds":1631,"text":"contracts that will be deployed in this enclave then yes cool","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1631s"},{"start_seconds":1638,"text":"yeah so basically my my recommendation will be like if you don't want to learn rust if you don't know rest and","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1638s"},{"start_seconds":1646,"text":"you don't want to learn it and you want to just start quick this is what you it should do like javascript","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1646s"},{"start_seconds":1655,"text":"you can but you should keep in mind that probably you will need to write all the smart contracts","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1655s"},{"start_seconds":1662,"text":"in javascript so you will need to write all the logic and just check that everything everything you need is","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1662s"},{"start_seconds":1669,"text":"available inside of the enclaved smart contract as an oracle for example","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1669s"},{"start_seconds":1678,"text":"a couple questions about workspaces um are there utils for workspaces deals","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1678s"},{"start_seconds":1685,"text":"not sure like there is no it's a single package now uh i know that we are trying to extend it","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1685s"},{"start_seconds":1692,"text":"but basically what you can see here is the utils is utils uh like these functions it's not in your api.js functions right","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1692s"},{"start_seconds":1702,"text":"now at least this is the utils that workspaces jazz is providing for you to","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1702s"},{"start_seconds":1710,"text":"make these test files small and like easy to write","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1710s"},{"start_seconds":1718,"text":"cool um will epoch skipping be introduced in workspaces","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1718s"},{"start_seconds":1725,"text":"uh once more epoch skipping so like skipping forward i would imagine like a fast forward","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1725s"},{"start_seconds":1733,"text":"uh i'm not sure i'm not sure maybe somewhat if somebody knows answer or we can do that after the call","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1733s"},{"start_seconds":1742,"text":"the goal is to definitely have feature parity between workspaces js and rs um it's just a like a resource question right like um just our we have so many","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1742s"},{"start_seconds":1751,"text":"priorities as everyone knows um it just may not be the the next most immediate thing that we work on but it's definitely on the roadmap","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1751s"},{"start_seconds":1761,"text":"oh another question is there any negative side effects to using the standalone version of the sdk rather than","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1761s"},{"start_seconds":1768,"text":"uh the price i'm assuming they're saying what what aside from the size of the contract when you deploy it you know","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1768s"},{"start_seconds":1775,"text":"wasm directly","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1775s"},{"start_seconds":1778,"text":"is there any other yeah is there any other uh downfall or negative okay so yeah the size is the","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1778s"},{"start_seconds":1785,"text":"first one the inability to call contracts outside of uh just virtual machine smart contract","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1785s"},{"start_seconds":1792,"text":"also no i i think what they're saying is if you if you if you uh compile it to wasm and you just deploy okay yeah yeah yeah yeah well you know","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1792s"},{"start_seconds":1801,"text":"aside from the size of being huge you got to pay for that storage what other i mean at that point it's just a regular","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1801s"},{"start_seconds":1810,"text":"there is no limitation limitations so i guess that the main limitations right now will be the fact that uh this","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1810s"},{"start_seconds":1817,"text":"javascript sdk is not mature we're just releasing it so right now","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1817s"},{"start_seconds":1824,"text":"it lacks some functionality that rust sdk for example has so during development you can face some","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1824s"},{"start_seconds":1832,"text":"limitations but after you've deployed it i don't think so can i just even ask like sarah for like","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1832s"},{"start_seconds":1839,"text":"clarification on that so like for someone that does want to um use an oracle have cross-contract calls if they just","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1839s"},{"start_seconds":1847,"text":"uh generate a wasm file from a contract they build using the javascript sdk they would still be able to do that but","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1847s"},{"start_seconds":1854,"text":"what you are suggesting is that um the not every single tool or every um like all the bells and whistles from the russ","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1854s"},{"start_seconds":1862,"text":"sdk are available to the developer to make that as easy as possible right now yes right now there are some limitations but yes you","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1862s"},{"start_seconds":1870,"text":"will be able to use oracle's do the cross-contract calls everything that rust smart control can do","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1870s"},{"start_seconds":1878,"text":"yeah so maybe we will with time we will have both that you will be able to","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1878s"},{"start_seconds":1886,"text":"build a dot base64 contract and that wasn't contract and decide like what what","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1886s"},{"start_seconds":1896,"text":"what kind of experience you need what kind of functionality you need yeah and i will remind i will tell it","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1896s"},{"start_seconds":1904,"text":"one more time that it's already available if you will go to the repo check out the standalone branch","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1904s"},{"start_seconds":1914,"text":"it can it can do it it can make that awesome smart contract","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1914s"},{"start_seconds":1922,"text":"um how do you know what contracts or apis are available in the enclave","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1922s"},{"start_seconds":1930,"text":"all the apis like we have all the apis that are available for javascript for sorry for rust smart contract","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1930s"},{"start_seconds":1938,"text":"basically we're using everything that is available on our blockchain when i'm saying that there's when i'm","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1938s"},{"start_seconds":1947,"text":"saying that there are some limitations in apis it means not the low-level apis i mean the high-level apis some helpers that","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1947s"},{"start_seconds":1955,"text":"like making your life easier cool and then um i i think the second","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1955s"},{"start_seconds":1962,"text":"part to that question is um there's no like list of all of the smart contracts that have been deployed to the enclave that you can interact with correct or","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1962s"},{"start_seconds":1970,"text":"concurrently correct uh there is there is okay","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1970s"},{"start_seconds":1978,"text":"you can do that okay so just a something you need to understand that","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1978s"},{"start_seconds":1985,"text":"this is a jsvm smart contract account is a standard account gs vm contract is a standard contract and it","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1985s"},{"start_seconds":1994,"text":"has its state and this state is divided between the contracts that are deployed to it so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=1994s"},{"start_seconds":2002,"text":"you can get with the view function of this jsvm smart contract you could get a list of","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2002s"},{"start_seconds":2010,"text":"all the smart contracts that are deployed and you can check the state and right now the state is in json so you can even view this state","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2010s"},{"start_seconds":2023,"text":"okay cool okay let me let yeah let us know if that uh clarifies or answers your question or if you have any clarifi clarifying","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2023s"},{"start_seconds":2031,"text":"follow-ups um another question are there any limitations to using external npm packages","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2031s"},{"start_seconds":2038,"text":"i.e random numbers uh in russ you can only use crates that support the wasm 32 unknown unknown","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2038s"},{"start_seconds":2046,"text":"yeah yeah so you can use external packages no problem but they should not depend","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2046s"},{"start_seconds":2054,"text":"on something that is browser specific or note specific so basically everything that is pure js","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2054s"},{"start_seconds":2062,"text":"should be able to work in your smart contract which is a huge advantage because in assembly script","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2062s"},{"start_seconds":2070,"text":"you do not have a lot of options a lot of dependencies you don't have like a million packages in npmjs that","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2070s"},{"start_seconds":2079,"text":"you can use so yeah it's a big advantage and try to use it there is an example in examples","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2079s"},{"start_seconds":2086,"text":"folder near sdkjs examples folder that is using an external dependency","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2086s"},{"start_seconds":2094,"text":"well they followed up with just making sure that this is the same between the standalone uh and the enclave version correct","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2094s"},{"start_seconds":2104,"text":"uh the same what do you mean the same um","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2104s"},{"start_seconds":2109,"text":"the the mpm packages you can use them in the enclave as well yeah no no limitations no difference no difference","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2109s"},{"start_seconds":2117,"text":"how does this javascript sdk compare to the assembly script sdk pros and cons okay so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2117s"},{"start_seconds":2124,"text":"i'll yeah so pros and cons i've told i've already told that in assembly scripts basically the situation is the same you can use","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2124s"},{"start_seconds":2132,"text":"external dependency but only if they are written in assembly script there's no","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2132s"},{"start_seconds":2141,"text":"not that much such libraries in javascript you have everything you need","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2141s"},{"start_seconds":2148,"text":"assembly script is a language that is still in development that that is why uh next to","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2148s"},{"start_seconds":2157,"text":"like in our documentation we are saying that assembly script is not ready for financial applications and javascript theoretically can be yeah","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2157s"},{"start_seconds":2166,"text":"like if we will pass some security checks i guess that it's theoretically possible because this is a mature language that is used widely","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2166s"},{"start_seconds":2175,"text":"used","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2175s"},{"start_seconds":2178,"text":"also javascript is probably easier and it's just more","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2178s"},{"start_seconds":2186,"text":"spreads yeah more people know js this is the reason why they will want to use it i hope so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2186s"},{"start_seconds":2196,"text":"cool i have one clarifying question what i meant is for example being you","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2196s"},{"start_seconds":2204,"text":"can't call ref finance from the contract you would probably need to deploy a dex to this javascript smart contract is","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2204s"},{"start_seconds":2211,"text":"there going to be a list of contract deployed there that you can call in sync so if i understand this right","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2211s"},{"start_seconds":2221,"text":"yes yes you will not be able to do that but you can you will be able to do that if","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2221s"},{"start_seconds":2230,"text":"you will package it as that awesome yeah by the way we really want to hear","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2230s"},{"start_seconds":2240,"text":"your thoughts on what's the best design and which one we should develop more intensively like the","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2240s"},{"start_seconds":2247,"text":"standalone design where you have that was on contract that is big and expensive to deploy but","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2247s"},{"start_seconds":2255,"text":"it's more functional or they're just a smart contract that is li-fi cheap but has","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2255s"},{"start_seconds":2263,"text":"some limitations please leave comments in these discussions that we are showing here uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2263s"},{"start_seconds":2270,"text":"in near sdk jazz repo cool awesome","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2270s"},{"start_seconds":2280,"text":"i'm just conscious of time we've got 15 minutes left should we take a look at apple yeah yeah let's uh let's check the","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2280s"},{"start_seconds":2287,"text":"example and yeah and after that","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2287s"},{"start_seconds":2298,"text":"we'll do it okay so i have a few projects here so the first one is the status message project project","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2298s"},{"start_seconds":2307,"text":"now we'll explore it briefly because basically i've told","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2307s"},{"start_seconds":2313,"text":"everything but maybe you will want to see it in like in real real life","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2313s"},{"start_seconds":2325,"text":"okay can you can you see the text the code yep oh i can only see i can see your uh nav on","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2325s"},{"start_seconds":2333,"text":"the left but i can't see any code on the right oh never because there is no any code okay no yeah there we go there we","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2333s"},{"start_seconds":2340,"text":"go now it should be really good okay so this is the project it's pretty simple it's a standard as i said it's standard.js project","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2340s"},{"start_seconds":2349,"text":"in package.json all we've done is we've added the dependency for near sdkjs dependency dev dependencies for our","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2349s"},{"start_seconds":2357,"text":"testing libraries near workspaces of course and we've added two scripts near sdk build and","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2357s"},{"start_seconds":2365,"text":"ava for testing our smart smart contract is","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2365s"},{"start_seconds":2372,"text":"pretty small and easy so all you need here is a nearby engine hole and few","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2372s"},{"start_seconds":2380,"text":"decorators and basically everything else is a plain javascript code maybe there is also an","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2380s"},{"start_seconds":2390,"text":"environment to do logs and maybe some other low-level stuff if you need if you will need it","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2390s"},{"start_seconds":2398,"text":"so this smart contract is pretty simple it has records records","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2398s"},{"start_seconds":2405,"text":"are i can be set by the caller and basically every caller can set a","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2405s"},{"start_seconds":2412,"text":"message status message for itself and read this message of course you can read this message by","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2412s"},{"start_seconds":2420,"text":"with get status function and the account id so yeah","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2420s"},{"start_seconds":2428,"text":"looks pretty simple to me any any questions about code someone asks","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2428s"},{"start_seconds":2436,"text":"so there's no more signed unsigned integers i need to import uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2436s"},{"start_seconds":2444,"text":"if i'm not mistaken no no this is like all you need okay um yeah and uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2444s"},{"start_seconds":2453,"text":"okay here is a yeah here is a sorry yeah here's a build folder right and after after you execute yarn and your sdk build","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2453s"},{"start_seconds":2461,"text":"uh you will get these files so this base 64 file is your smart contract ready for deployment","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2461s"},{"start_seconds":2470,"text":"and this file is basically expanded version of it expanded version of what we saw sometimes you need it to","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2470s"},{"start_seconds":2479,"text":"just you know to understand better what you wrote yeah so we will know where to check it","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2479s"},{"start_seconds":2489,"text":"okay any other questions yeah someone asked if they can write their contracts and typescript and then precompile to js","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2489s"},{"start_seconds":2497,"text":"uh now theoretically no limitations we do not have examples yet but we are planning to add typescript support yeah","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2497s"},{"start_seconds":2504,"text":"but you you can try if you basically if you will be able to convert compile basically your typescript file to this","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2504s"},{"start_seconds":2512,"text":"like no limitations and then i think some someone was asking if there's any smart contract examples","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2512s"},{"start_seconds":2521,"text":"with logging and nested con cross-contract calls okay yes yes there is i will show it","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2521s"},{"start_seconds":2530,"text":"right now because this is the plan so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2530s"},{"start_seconds":2537,"text":"we have an example like the simplest example possible of the smart contract across smart smart","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2537s"},{"start_seconds":2545,"text":"controller poll it has the same structure nothing like really","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2545s"},{"start_seconds":2556,"text":"different we added a ready status message base64 contract from previous example so we","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2556s"},{"start_seconds":2564,"text":"will use it and we have our on-call contract here so the idea is","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2564s"},{"start_seconds":2572,"text":"that on call contract we'll check the status of the status contract for the person and then","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2572s"},{"start_seconds":2580,"text":"if this person is available so it's it's done here like we are doing a call to","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2580s"},{"start_seconds":2587,"text":"a status message test that here if the status is available then we're","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2587s"},{"start_seconds":2594,"text":"setting this person on call if it's not we're not we're not setting this person on call and also we can check","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2594s"},{"start_seconds":2602,"text":"who's in a call right now so this is the example the simplest example of the cross contract call","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2602s"},{"start_seconds":2612,"text":"inside of the js smart contract it's also available in examples folder","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2612s"},{"start_seconds":2621,"text":"there you can you can check it there and you can play with it improve it write pull requests add new examples","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2621s"},{"start_seconds":2629,"text":"write your awesome projects everything you want","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2629s"},{"start_seconds":2636,"text":"cool looks clean someone says yeah yeah javascript simple","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2636s"},{"start_seconds":2644,"text":"and hopefully reliable okay so that's it from me","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2644s"},{"start_seconds":2651,"text":"the next that the next thing that we want to talk about is how you can interact with enclaved javascript smart contracts from","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2651s"},{"start_seconds":2660,"text":"the cli and fong who's the author of this functionality will","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2660s"},{"start_seconds":2668,"text":"tell more yeah sure um let me steal your screen first for now","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2668s"},{"start_seconds":2683,"text":"all right can you guys see my screen yeah yeah all right so yeah so this will","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2683s"},{"start_seconds":2692,"text":"just be this is the discussion board for um how you interact with the js smart contract through the cli","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2692s"},{"start_seconds":2699,"text":"uh we currently have like five um commands that you can use that are specific to just js itself","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2699s"},{"start_seconds":2707,"text":"um yeah like uh i'll go through an example later with this too with uh what sir he did with like the status message but","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2707s"},{"start_seconds":2716,"text":"uh yeah these will be just like uh regular calls into the jsbm and they will have some i mean these are just","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2716s"},{"start_seconds":2723,"text":"like helper stuff on the cli itself so you don't have to make some raw calls um that you normally have to do so let me","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2723s"},{"start_seconds":2733,"text":"show you how that all looks like in a workflow like manner for deploying to deploying a uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2733s"},{"start_seconds":2740,"text":"status message contract to the jsbm so uh normally you just have near um when you're actually trying to get","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2740s"},{"start_seconds":2747,"text":"larger phone larger okay yeah thank you all right let me see perfect things","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2747s"},{"start_seconds":2756,"text":"yeah there we go so normally you just have near and that would just be your entryway to go through every single sub command but","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2756s"},{"start_seconds":2765,"text":"for the javascript one we need to specifically go into js because it has a bunch of other parameters that need to be specified","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2765s"},{"start_seconds":2773,"text":"than what you normally have in the regular near cli so to deploy the status message contract","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2773s"},{"start_seconds":2781,"text":"we just do deploy and then specify the account we want to associate the contract to on in the","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2781s"},{"start_seconds":2788,"text":"enclave and we just specify that with account id uh then we should specify the path to the file it's or to the contract bytes","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2788s"},{"start_seconds":2797,"text":"itself which is the status message dot base64.","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2797s"},{"start_seconds":2801,"text":"uh one additional thing with deploy is that you do need to allocate a certain amount of balance to the","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2801s"},{"start_seconds":2809,"text":"enclave so that it could store this contract itself so you have to do deposit and then specify 0.1 near it's not going","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2809s"},{"start_seconds":2815,"text":"to take up 0.1 here it will refund the difference that it ends up using so that let's","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2815s"},{"start_seconds":2824,"text":"run that and it will also give you back the transaction and you can view that in the explorer","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2824s"},{"start_seconds":2831,"text":"um then we'll make a call into a net itself and this is my account and it's and","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2831s"},{"start_seconds":2840,"text":"and it doesn't take any arguments so we'll just call that let's specify the signer which is just give me a test and test user test net again","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2840s"},{"start_seconds":2848,"text":"um calls also modify state so that means that we also need to specify a deposit so that","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2848s"},{"start_seconds":2856,"text":"if it ends up taking more state on the enclave itself you can actually allocate it properly","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2856s"},{"start_seconds":2864,"text":"so that should run and afterwards we should be able to set a status onto the contract itself and yeah okay","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2864s"},{"start_seconds":2873,"text":"so let's set hello world to it so let's specify contract and then set status","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2873s"},{"start_seconds":2881,"text":"then we'll want to specify our signer yet again then the arguments to it this is just","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2881s"},{"start_seconds":2890,"text":"gonna be a json um arguments like you'd normally get with hello with um with near cli call","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2890s"},{"start_seconds":2898,"text":"so we're just gonna specify uh hello world and yet again since we're modifying state we need a specified deposit","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2898s"},{"start_seconds":2908,"text":"cool cool and once that done well we should be able to view it and get back hello world","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2908s"},{"start_seconds":2915,"text":"one thing i noticed that's a little different in this is that you're passing an array instead of an object or a json object um","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2915s"},{"start_seconds":2923,"text":"oh no it's just uh that's just how the the parameter is set in the in the contract itself but you can pass","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2923s"},{"start_seconds":2931,"text":"in a json object itself if you wanted to oh okay cool it's just any json string","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2931s"},{"start_seconds":2940,"text":"so let's call into view itself and then get status","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2940s"},{"start_seconds":2946,"text":"and specified account and then we'll specify um","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2946s"},{"start_seconds":2955,"text":"yeah the the arguments or which which um status message uh account we want to grab from so it's","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2955s"},{"start_seconds":2963,"text":"just gonna be this one and we don't need a specified deposit since this is just a view call","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2963s"},{"start_seconds":2971,"text":"yeah and that gets us hello world that we set before and now uh once that's all done let's say","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2971s"},{"start_seconds":2980,"text":"you don't want that contract to be live anymore well you can just do you can just remove it itself and it will return","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2980s"},{"start_seconds":2987,"text":"you the any deposit it has um it has uh it has on the enclave itself so you'll","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2987s"},{"start_seconds":2994,"text":"receive back all your storage deposit now um as you can see right here it's","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=2994s"},{"start_seconds":3002,"text":"using this particular contract for the jsvm but that's just the default um for","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3002s"},{"start_seconds":3008,"text":"testnet if you want to specify your own jis vm contract that you deployed to some other account you can do","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3008s"},{"start_seconds":3017,"text":"let's say or you just had this let's say you can just specify like jsvm and like","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3017s"},{"start_seconds":3024,"text":"your own jsbm contract account like testuser.testnet if i deployed on jsvm contractor so all","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3024s"},{"start_seconds":3033,"text":"this is like pretty much built in already if you just want to use jsvm.testnet instead","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3033s"},{"start_seconds":3040,"text":"and later on jsvm.near if you want to go on mainnet but yeah besides that that's pretty much it","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3040s"},{"start_seconds":3048,"text":"let me know if you guys have any questions on that i think jacob only had one it was kind of like a follow-up question i had um","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3048s"},{"start_seconds":3056,"text":"the arguments are not named like they are with rust ban assembly script contracts i think it's in that same kind of format of like","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3056s"},{"start_seconds":3063,"text":"key value oh all right um i believe that you should be able to specify key value correct me if i'm","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3063s"},{"start_seconds":3071,"text":"wrong siri like uh it should just be like a json um set of parameters and like the jsvm contract should be","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3071s"},{"start_seconds":3080,"text":"able to parse it itself and apply it to the yeah it should be possible yeah","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3080s"},{"start_seconds":3089,"text":"but like uh i mean even uh in the rust um when you're calling us a rust smart contract you don't necessarily need to","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3089s"},{"start_seconds":3097,"text":"specify the named args for um this for the yeah the name argus into the","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3097s"},{"start_seconds":3104,"text":"callable itself so it should roughly work the same like they're um yeah they should be like","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3104s"},{"start_seconds":3111,"text":"pretty much serialized the same and like uh be sent to the proper smart contract call or function","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3111s"},{"start_seconds":3120,"text":"cool um looks like javascript deployment is only a function call to the javascript virtual machine contract does that mean","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3120s"},{"start_seconds":3128,"text":"that one account id could conceivably have contracts deployed on multiple jsvm instances simultaneously","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3128s"},{"start_seconds":3136,"text":"uh yes it should be possible like um by multiple jsvm instances you mean like","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3136s"},{"start_seconds":3143,"text":"multiple jsbm contracts deployed to the chain then yeah yeah it's uh it's just the account id is associated","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3143s"},{"start_seconds":3151,"text":"inside the enclave itself so you your local account that you have like test user.testnet that won't that won't","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3151s"},{"start_seconds":3159,"text":"actually store any of the contract bytes cool um this is an interesting question so the 30 gas fees that are earned by","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3159s"},{"start_seconds":3168,"text":"depth developers um are usually sent to the contract owners um is for the javascript vm is that going to be sent","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3168s"},{"start_seconds":3175,"text":"to the jsvm account or are they stored on the jsvm account and then the jsvm smart contract has like a data container","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3175s"},{"start_seconds":3183,"text":"that keeps track of how much near and what accounts on which uh yeah i don't know how you guys thought about that at all","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3183s"},{"start_seconds":3194,"text":"no i guess yeah i guess not for now yeah but it's a really good suggestion yeah it's something that","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3194s"},{"start_seconds":3201,"text":"user wants to get and needs to get cool awesome thanks for thanks for","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3201s"},{"start_seconds":3208,"text":"flagging that issue um yeah plea please post that in the discussion on github so we don't lose that i was definitely gonna say can i ask you to create a discussion around that so we","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3208s"},{"start_seconds":3216,"text":"don't lose that thought and just like echoing that this is like version 0.1 so a lot of this is probably if we have","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3216s"},{"start_seconds":3224,"text":"a massive amount of usage obviously something that would probably be prioritized so um but please open the discussion now thank you","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3224s"},{"start_seconds":3233,"text":"cool all right well we got two minutes left did we cover everything that we we wanted to get to on uh uh on your side austin and sergey and","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3233s"},{"start_seconds":3242,"text":"phong i'm good austin i think so all i was gonna plug at the end was just what we're focusing on immediately so it's","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3242s"},{"start_seconds":3250,"text":"obviously this javascript sdk getting this out the door um workspaces rs 4.0 expect to see something uh","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3250s"},{"start_seconds":3258,"text":"expect to see a release come very soon next week hopefully um and then focusing on the on the api as well um so","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3258s"},{"start_seconds":3266,"text":"uh i think that's it i'd love to just say a huge thank you to sergey and bo who's not here for a ton of work on this javascript sdk to get it to where it is","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3266s"},{"start_seconds":3273,"text":"and and and fong thank you for jumping in and uh putting your javascript ad on with the with the cli work uh to get the","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3273s"},{"start_seconds":3280,"text":"interaction working so um yeah massive thank you to the entire team and and a huge huge thank you to the community um","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3280s"},{"start_seconds":3287,"text":"for these amazing questions with a new like a new product where a new tool um we definitely expected a lot of","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3287s"},{"start_seconds":3295,"text":"discussion and and you all didn't disappoint so just another reminder continue to have these discussions in github we're going to try and have all","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3295s"},{"start_seconds":3302,"text":"of our discussions in github um and uh we'll try to improve this and super excited to see what everyone builds","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3302s"},{"start_seconds":3309,"text":"yeah totally thank you so much everyone for uh for joining again continue the conversation on github please give us feedback show us examples of things you've made","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3309s"},{"start_seconds":3318,"text":"ways in which we can improve uh yeah we are basically guiding our development process on community feedback so please","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3318s"},{"start_seconds":3325,"text":"participate and help us uh shape our future um but yeah thanks so much fong sergey austin uh yeah love uh i love","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3325s"},{"start_seconds":3333,"text":"this discussion uh and uh yeah i'm stoked about the javascript sdk and where i can go from here so uh cool yeah share with your web two","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3333s"},{"start_seconds":3341,"text":"friends absolutely absolutely uh cool well have a great day everyone we'll see you next time","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3341s"},{"start_seconds":3349,"text":"bye see you guys","url":"https://www.youtube.com/watch?v=51fqGHQytZQ&t=3349s"}],"youtube_url":"https://youtube.com/watch?v=51fqGHQytZQ","url":"https://near-pedia.xyz/videos/51fqGHQytZQ"}