{"id":"RnM5BB0iCGE","title":"DevTool Community Meeting (June '22)","description":"This month we talk about the creation of an ABI (Application Binary Interface) that will help developers understand how they can interact with smart contracts on NEAR.\n\nShare you feedback & ideas for an ABI on NEAR.\n👉 https://forms.gle/isDfKyuZw2e3DTks8\n\nRegister here to join next month's meeting:\n👉 http://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-17T00:00:00.000Z","thumbnail_url":"https://img.youtube.com/vi/RnM5BB0iCGE/hqdefault.jpg","transcript_text":"welcome everyone to another find developer tools community update we will be having today uh for june uh today we're again gonna go over the regular format going over what happened uh over the past month and then we're gonna have an open discussion around abi um yeah looking forward to getting some feedback from the community on this interface that we're uh creating so yeah again at any point have any questions please drop them in chat or preferably use the q a button at the bottom of your screen and we will answer your questions um as probably as possible and with that i will hand it off to austin maggio uh the product uh product manager of developer tools is that the official title yeah you got it awesome cool thanks austin take it away cool i'll jump in uh thanks josh uh yeah as josh mentioned we're just gonna talk about what we shipped and then dig into the api a little bit and of course we want feedback that's why we do these sessions so please jump in at any point uh jump in the chat ping us afterwards um come off mute or enjoy ask to join so that you can talk live but um without without further ado i'll just start with our vision um it's unchanged deliver the intuitive productive uh and reliable tools needed for web 3 development so everything we're doing is to to move in this direction and one one massive step that we took this past weekend at consensus was our our very own josh ford as well as uh ben led a workshop at consensus um this is this tweet is pretty cool it's brendan ike who is the creator founder i guess of javascript uh like all the creators he had like a 10 day mega sprint where he wrote javascript in its entirety in 10 days pretty crazy and it was even crazier a feat to be matched by that was him introducing the javascript sdk uh enclave version at consensus that that we just uh we just released so um if you missed that there there's a link uh josh i'm not sure what the best way is to share the link to the consensus workshop i think in in like 20 days or something everyone will be able to actually watch that workshop um and but uh yeah there's a yeah there's a link to it i think it's like a placeholder link right like you can't actually like view it yet because consensus hasn't released it uh officially yeah yeah yeah so we'll we'll set a reminder to make sure that that that link gets sent to the community but uh the all the materials available in github that that josh and ben covered um and it's a really cool workshop where you basically go from from nothing to writing a full uh javascript contract deploying it into the enclave uh interacting with it and i think that it so the i watch the workshop and it's a it's basically like a coin flip um where you're using another contract to determine the output of a a coin flip and then in the contract that you write it's like appending a score to a user interacting with a wallet interacting with your api js and it's an awesome one to send to all your favorite web 2 friends so we'll we'll definitely uh push that out as uh as it becomes available but um what i what i did just want to draw attention to is that um what we've been calling the enclave sdk or the the jsvm uh version of the sdk we're pivoting towards actually just the the full-blown standalone uh uh uh contract um uh javascript sdk which you can think of it as just like a direct uh a direct replacement for assembly script and it it behaves exactly like any rust uh or or current assembly uh script contract where it just yeah oh like um the build generates a wasm file that you can deploy and interact with the same way that you would any other uh rust contract um so that's that's currently what we're prioritizing and we're expecting to release that quite soon uh and we'll be really loud about that release because we're we're extremely excited about it um and you'll see a ton of updates to our documentation examples etc um awesome uh if there's any questions about uh the javascript sdk um otherwise uh i can pass it to all there was one one quick one someone asked uh will the jsvm or enclave be deprecated in favor of the standalone version yeah yeah great great question we're we're trying to figure that out right now um i i don't have a leading hypothesis that it's going to be going away immediately um so it's if it does go away it's not going to be like in the very short term um but i would push that to the community to give us feedback of why they would want to uh what their use cases are to that really rely on the like the synchronous behavior of the enclave the benefits of the really small um um contract that you're actually deploying and etc but um yeah i would love feedback on that um so that we can help make uh make a great decision but at this current time we haven't made a clear decision on it so cool awesome and then just one question george had if we could share a link to the resources um yeah if you just go to near.ai forward slash javascript that has a link to everything jssdk right now it's a link tree it has a link to the presentation that ben and i created and then also the repo quick start all that good stuff um so yeah near.ai for slash javascript awesome josh do you mind actually just pasting that right in the chat and then well i'll pass over to yeah actually i did uh and i believe you did i believe you did too just now i think maybe i sent you to the wrong group but anyway um yeah oh hosted panelists i gotcha yeah yeah uh i see yeah i posted it to host a panelist too yeah i will drop them in the chat good call thank you cool um yeah and and like like we said we we love feedback so leave it in those the discussions in the javascript sdk repo are pretty active so just if you do have questions or issues um just please leave them in there um or or you can find our contact uh through a discord or anywhere but uh um otherwise i think i'll pass it over to other austin um and he's gonna walk through uh some of the rest of what we've shipped uh and and dig into the api yeah so so before i before you go kind of go more in detail about the api which is kind of mentioned before and we'll give more context to that because i'm sure it's very unclear what that is uh to most people um i just do want to point out the uh the sdk 4.0 stable release because it was kind of like a long time coming and without like any sort of you know large announcement or anything like that uh was just you know posted to discord so maybe people aren't aware of this but essentially yeah so the the sdk 4.0 was released there's a lot of details and i kind of went over a lot of like the main changes on on a previous protocol uh meeting um but then also there's like a migration document that shares all of the like changes and breaking changes from the previous version uh it doesn't go into like a lot of the optimizations but it goes into like the things that you actually care about as a developer switching from say version 3.1 or any of the 4.0 pre-releases to the actual like stable 4.0 version um but the key things to mention like i do want to just provide as much context as i can within this short within this short time is that uh there should be no state breaking changes like you should just be able to update from 3.1 to 4.0 as long as the migration happens correctly there there will be no issues and no need for any sort of like migration of your contract from the previous version to the new one it should just be like a cleaner interface more optimized and uh you know certain blow cut out here and there uh with some other like semantic changes but yeah again no nothing should be state breaking it just might some things might change but everything will be listed within that migration dock that that's shared here so uh there is a link there but i i think we might want to share within the chat um if other people want to want to jump in with that um so so i can share that link after after this or someone else wants to jump in and and share the link to that basically it's on the near sdk rs repository there's like the discussions tab and then if you see the um uh yeah something's happening with the slides uh yeah so if you go to the discussions tab and then there's just the one for the the migration document and then yeah you can use that for for migrating between them um other key things to note is that um the near sdk sim uh is deprecated in favor of workspaces with this stable version um unfortunately there is like functionality that can't be updated from your sdk sim so we were hoping it was going to be like a smooth transition where like you can keep the sim test but they're deprecated um but unfortunately like it just isn't technically possible um so yeah so if you do want to be able to switch to if you do still want to use the sim test you can use the last uh 4.0 pre-release and that'll work fine um you just won't be able to leverage some of the like the more optimized cross-contract calls um but yeah if you do want to switch over the workspaces is updated but just make sure that when you are updating the sdk you might need to update your workspaces uh versions because the the most recent ones will have the changes needed for this because it does leverage a protocol change that came in which we've talked about on a previous call um but yeah hopefully that gives more than enough context um and yeah as i mentioned the the main changes with the 4.0 is just basically there's optimizations new new features and cleaner apis like uh the the primary one being like the the uh the revamp of cross contract calls and making them more simple for people to use but then utilizing gas more efficiently um yeah so we we can we can probably move on to the next slide so yeah now on to abi which is which is kind of a point that a lot of people might not even be familiar what what that is so let me let me create some context on what abi is uh and then we'll talk about like what we're building with it and how it can be used um so what an api sorry what an api is is basically um in our case like what we're defining is api is is a human readable schema that describes the contract interface um so as i mentioned here like the the things that are going to be included with this are like if you're writing a contract it's going to include the function names the parameters serialization formats any other metadata that's you know relevant to the contract so that you know if you're viewing the the schema you'd be able to easily identify what what how to interact with that contract and what exists within it um the idea is that it's going to be generated through sdks um the primary one that we're like obviously targeting right now is the is the rust one because um like that is the one that we are that we're generating the tools as like primary support but obviously in the future this can be anything that generates this uh this dbi um and what the benefit with this is that from this schema file you're able to automatically generate client-side code or any sort of like uh glue code to be able to interact with these contracts so say um you have a front-end that wants to interact with the contract like you don't actually have to redefine the interface or you know understand what the serialization format is you can just call a function same with if you have anything if you're interacting with a contract through scripts or if you're out interacting through a contract through a cross-contract call this stuff will just be all done for you um the the the context for for why why we're building this is to obviously like streamline developer um like productivity and make sure that like velocity is as quick as possible without with like removing as many bugs as possible if you like the abi is very similar to um and the reason that we're choosing the abi name is like a tentative name right now which can change um is the familiarity with ethereum like ethereum has the ethereum api which people might be familiar with which allows a lot of developer tooling and functionality to be built on top of it um if you've worked with other ecosystems like this this name might also be referred to as an idl like an interface description language um there it's basically the same thing like the concept is all very similar where you basically have some code and you're generating some human readable schema and then people can do with with that schema however they like um hopefully that provides as much context i might i might pause for a second just to uh api is an acronym from one so yeah it the the acronym that abi stands for is application binary interface um that acronym is is like i guess kind of referred to in in the classical sense of like what you would it describes how you interact with a binary in this case the binary like notion is a little bit uh a little bit yeah it's it's a little bit opinionated whether or not you consider like a wasn't binary or wasn't blob uh a binary but essentially it is basically defining how you interact with that wasm smart contract um before we used to refer to this as like an aci because we you know we we're assuming this would be more intuitive or like a more accurate name of saying like it's an application contract interface um but it's basically defining the interface of of this contract uh but yeah abi right now is kind of the name that we're going with just for familiarity and and it i mean depends who you ask might be technically correct because the was you know it is a was binary at the end of the day um and basically yeah the the serialization format will is in binary as well um so hopefully that answers that question um and yeah if there's no other questions we'll just we'll just continue on with the with the next slide um so yeah if this is kind of unclear i do want to make sure that i i explain a tangible example or like show how this could actually be used in practice so the general flow is that someone would generate an abi from from a near sdk rs contract so basically you compile the contract and it'll emit this this json file like this uh api dot json file or whatever whatever it is named uh in the future or whatever someone decides to name it um and the what you do with this file is it's connected to say some front time at compile time so uh it'll generate some near api.js uh code which will basically make it so that you can just like call a javascript function and it'll it'll do all this stuff underneath where it basically create the create the uh create the actual rpc call that's being sent to a node and actually like send that with any sort of um other other context that's required um and as i mentioned before the the main reasons for this is just to remove any sort of bugs with like the incorrect interface and without having to like duplicate the interface both on the javascript side and on the and on the rust side um but yeah the key here is just like developer productivity like making sure that developers have as much velocity building with this is is kind of the name of the game and and somewhat of a theme within like all of apis like this is the primary goal is just to make it easier for developers to just do what they want without having to know domain specific knowledge or um having to like learn specific concepts that aren't relevant to the application they're actually just building um and some other kind of examples of how this can be used from once the api is generated is you say you have another contract that interacts with this you can automatically generate the cross-contract code generation so basically removing the need to like redefine an interface which can be error-prone because as the as you're changing the contract interface it doesn't automatically uh connect with this other contract that might be interacting with it um or say you just want a typed interface to use with an end-to-end test like say you're writing workspaces tests or you have some other workflow to you know spin up a node and send transactions to um making sure that all the types are already connected with your testing workflow um just makes it so much easier to just like develop quickly and not have to worry about thinking about what this interface actually looks like and how you serialize certain things correctly um yeah we can we can we can move on to the next slide um so yeah to to kind of to to show what this might look like at a very like early stages um we're still very much in like the proof of concept phase and in like very early stages so none of what you're looking at right now is is by any means final and if you see anything or if you have any suggestions of what they should look like please feel free to uh share with in the chat or you know after share within discord or github or anything like that but um essentially what what this example is showing is just um like this and this attribute matcher macro where it's just annotating near abi and basically everything within it will be will be picked up by the macro and basically used to be able to generate what you see on the right which is the uh which is actually like the abi json file um so just to give kind of an overview like obviously all the code within is gonna stay the same as it was before um and we're trying to make this as minimal as possible so this obviously might change um but what the actual format that gets emitted just to give an idea of what this might look like is uh it it's you know we're gonna have an api schema version so that you know you these things are versions so that you like if things change within the actual schema format um it doesn't just like automatically break you know whatever tool you're using um it might have other other metadata about the contract so for in this case it's just like the name of the actual uh contract that's being built in this case just api because that was the example um the version which might be relevant to developers understanding like which version of the contract they're actually interacting with um and then other metadata that's picked up from from uh from the actual like cargo tamil file that actually built the the contract so in this case like maybe authors or something else like that um if there's any other metadata that you're interested in please like share or like share with anyone else and it would be great to understand what other what other information would be useful for for people to include in this file um but the kind of to to walk through some of the some of the other details about it is um you're going to have a list of functions in this case it's just going to be extremely simple because it's just going to have the one function called add it's going to give some context about it like it isn't uh it isn't a view contract it is an initialization function and it's just got this one parameter that's that's you know named value that's json and it also returns this uh u64 as well so um and then it and then it just basically represents the type that's below it and the bottom has root schema for any more like complicated types which isn't used in this case um but hopefully this gives like a rough idea of what this might look like um in practice of like going from the actual rust code that you're already writing to some human readable schema and then from there it goes on to the to the use cases that i talked about before um yeah you can move on to the next slide if you want to um so yeah this is kind of where where we are kind of turn turn it to the to turn it to you guys and basically ask like this is still very early stages like what are uh what are your thoughts and feedback on this because we very much want to design a tool that's very easy for people to use so the main questions that i that you know we have for uh for you guys is basically is api an intuitive name for this tool like we're using something based on familiarity but is there something else that would be more clear what this is doing um what functionality information would you like to see in the schema like as i mentioned like if you do need other information that uh would be crucial to your use case specifically we'd love to hear about it um and also like what format would you like to see this data um right now we're leveraging some like json schema functionality and basically using this outputting this api in json format just because it is the most familiar most readable like most common commonly used uh commonly used format for a schema but then also how do you envision using this tool like what is what is the actual developer experience that you go through that that you would want to go through to make sure that all your tools are connected so you're not doing things you know not doing redundant work at any point and making sure things are as streamlined as possible obviously we're trying to cut down on as many steps as possible but if you have any thoughts of how you'd like to be using this um yeah we'd love to hear that and yeah just as i mentioned just share within within discord or github um and now that i've kind of get shared some of the context on that i might just pause and if anyone has any questions i know joshua came off did you have something yeah there's i just saw one question um that was from will the near abi macro affect the contracts final wasm code um like increasing the size yeah not at all um okay so to to give an idea of how this how this works this is just something um that's uh compiled outside of outside of wasm so it's something that's an attribute that's used outside of wasm and essentially what's being called is uh when the api is being generated it's calling a function that's only available when it's not compiled to wasm 32 so this in no way will have any effect over the the actual like output of the wasm code um in the future some people might want to include an api within um within the extra metadata within uh the actual wasm file itself so that that information that abi is stored on chain but there's no requirement that this is the case by default this is just like a tool for uh convenience and developer velocity um it does not affect the the final log of code in any way cool awesome um i also um curious is this uh the the example you showed was in rust is this um just for the rust sdk or will it be available for the javascript sdk um what once it's uh like a standalone for wasm uh and or assembly script as well yeah there's there's no there's no blockers why this couldn't be done in any other language um obviously that's on uh that's on our minds of of having this uh be supported with with other sdks um just obviously until we have like a very solid schema format i think what we're primarily focusing on is the russ one but if anyone in the community want to build it for any sdk that they wanted to build there's no there's nothing specific to what we're doing uh that is limiting from the community from coming in and building uh whatever you know abi generation from however they build their contract right now but this is kind of the most common use case and kind of the most standard so that's what we're focusing on until until it's stable does that answer that question yeah yeah totally um one comment uh they do they don't find abi to be very intuitive they were always curious kind of what it was um they also sorry um was asking uh or would love to see an automatic uh creation um uh for like a jpg uh javascript apis for the contract so like they could do like an import get status slash gets a set status from interface.js yeah and this is this is exactly what we're planning on doing it it's it's not it's not exactly the import get status and set status it's more uh it's more of just like you'll have an object that you can use and call functions on that um but that also could could be it could be a pattern to go with where it's just like individual functions again like this the how this actually looks um we will um we will kind of like get more feedback and provide alternatives for people if they want to have different like patterns for how they actually import and use this and create the code generation but what you mentioned here is is very much what um kind of already exists within a proof of concept form but will be kind of made more easily available to people in in the in the future um but yeah the abi naming obviously naming is the most difficult problem uh we're trying like that's the abi is kind of what is naturally like what the name is falling into but if it but yeah if anyone has any suggestions we would we'd absolutely love to hear it naming is the hardest part of uh development right absolutely at least for me i don't know about you guys cool um yeah i don't see any other questions but again feel free to continue to post them in the q a portion at the bottom or you know drop them in chat like some of you have been doing but yeah we would be more than happy to answer any questions and then yeah perhaps um what i could do is create a poll um or a survey form using like google forms from from your last slide and then also attach it to this video when we upload it and maybe email it out to uh some of our community members to kind of get some more uh feedback uh on some of these items that you proposed but uh again and one other thing i i should have mentioned with previously about the api is is the person who is leading all of this his name is daniar so if you ever have any thoughts or any suggestions that you want to talk about he would definitely be the point of contact for um if you have any feedback for that but if you share it in our discord or anything like that i'm sure anyone will be able to um to be able to to make that connection um but yeah daniel has been been leading this uh this avi effort um but yeah if you if there's no other questions or anything like that we can we can kind of move on to touching the other the other parts of this um so yeah like this is this is less for impact or less uh you know feedback from from the community but it just just to let everyone know kind of what the what the other initiatives we're working on these are kind of just like smaller points but um we do definitely have a focus on like clearing some of the some of the technical debt we have in in some of our rus client libraries or workspaces so um the initiative that miraculous has been working on on our team has been like extracting a lot of the primitives from your core for a more stable rust client interface um and that's gonna make like the actual like rust the json rpc client uh more stable and then also um just make it a lot like these types a lot easier uh make these types uh be a lot easier to be used um and then uh the other initiative that we we've kind of been working on has been uh improving error handling within workspaces rs which has been led by uh fong on our team who i think has been on a previous call um but essentially just improving the air handling within workspaces rs because that has been somewhat of a pain point of like errors not being so easy to be used um being able to like diagnose uh certain issues that that you run into while testing um so those are kind of the other initiatives that are happening um but yeah definitely less opinionated than the api stuff so i won't go too much in detail about these that's pretty much it you want to move to the next slide and yeah awesome that's that's that's it from us for so this is a bit of a quicker uh tools update um and yeah just reiterating what we've already said a million times we genuinely love the feedback so javascript sdk avi any of the other projects that the developer tools team takes care of anything related to near really we'll try and write it to the right person the right group but uh um you can find us on discord or just jump into any of those github discussions so um i think that's it from us today um unless there's any other questions we'll do the obligatory eight-second awkward wait totally um there was one question earlier um that i wanted to get to um from aminu he was asking about near api uh py um so the python api asking if there's gonna be um when the documentation be ready you know is there any more insight on that tool i'm not sure if that's actually something uh that this team is working on or maybe it's like a project of another person from the collective um but yeah there there's that question and then also last night when i was um on discord someone was uh asking me to help them troubleshoot near ap i go and i was like oh i um well they were there yeah they're sending me syntax i'm like oh where is this from and i was searching and get them like oh it's from this this thing uh that was created i think like a year ago by again one of our collective members uh probably like a side project or something but wasn't uh actively being supported uh but yeah do you guys have any um comments on uh these types of projects yeah so the the python one was was was not within our team i think it was i think it was bowden that was uh that was uh working on this i'm i'm not actually sure if i if i can remember correctly but um yeah i i'm not quite sure the status of that um i don't believe it's something that uh maybe it is something that's being actively worked on i don't know do you do you guys have any uh intuition about that i yeah just looking at the the code it looks like 11 days ago there was something uh pushed to it and uh yeah actually looks like ilya and uh sandy and uh yeah a bunch of people from from our collective where we're working on it but yeah i don't think this is like a tooling team um project that's at least owned by them more like a probably a community project by some of the the core contributors but uh but yeah definitely feel free to to interact with them and engage with them in their respective repositories i'm sure they would love i love the help and support but yeah it's not an official um thing a product that the the tooling team from pagoda is working on yeah and the same goes with the with the go on that you mentioned yeah it's it's not it's not directly uh something that that this team is working on but it's yeah i wasn't even really aware that that was uh that was even going on so that's cool um and one other question uh and i got this at consensus people were asking about new year api js and they're really excited about the javascript um uh sdk uh but they were like hey what's going on your api js that's been uh kind of uh lagging a little bit uh i'm not sure if the two is it the tooling team owning uh this library um or do we do we have any kind of updates on uh that tool and um what's gonna be the future of it yeah so um yeah so loud and clear um the api.js needs a little bit of love um uh the the wallet team actually owns that um josh under under patrick um so um what i would what i would stress is just keep pushing hard on those issues i know that some of them have gotten a little bit stale um but uh um uh yeah not the direct purview of of the tools team of our team uh but um i think the pain the pain point is very real so just acknowledging that and thanking everyone for bearing with us but uh um yeah i would encourage everyone to create issues and try and help uh resolve those so that uh in the interim until we can get full dedicated resources to um to give the attention it deserves awesome thanks for thanks for addressing that yeah i know um a few of our repos we have some stale issues and some stale pr's um we're really trying our best to uh to get a handle on those and uh to dedicate yeah there's so much to do and not enough engineers on our team more tools than people right exactly we have way more tools than people um so yeah please bear with us as we're uh trying to go from this startup to scale up uh position and um yeah we'll we'll do our best to try to uh engage and uh get these pr's and issues resolved in a timely fashion just to like just be like super clear with an ask to the community on that is is we we can shift priority of what we work on based on feedback we get from the community so like what we work on is a direct reflection of what the community needs so um it's really hard for us to make decisions on what tools to prioritize specifically without having direct feedback from the community and there's a lot of ways to give that by being active in the github discussion showing up to these community sessions or being as annoying as messaging us directly four times a day on on specific stuff like i very much welcome that so um help us determine priorities so we can make sure to work on uh work on the most high value value things for our community um and just keep keep pushing us really hard there so we can make sure to deliver the most value yeah plus one on that cool um yeah we'll we'll give it one like a minute just uh yeah any any questions total ama session uh right now if you have any questions uh for the tooling team uh anybody on the call hey siri i know you joined um a little bit ago we didn't we didn't have a formal hello um sorry he did a lot of work on the javascript sdk that we just got shipped yeah super super stoked still still working on it still working yes of course cool yeah or if anyone just has any questions about what's possible with abi we definitely have the time and ability to chat about that so yeah don't don't uh feel free to uh to send a message and chat in this last minute but yeah yeah absolutely awkward silence yeah it's like it's like you want to give that the the time for people to ask questions uh and and also i feel really awkward just sitting here silently being recorded blasting should we just start counting back from ten um oh we got we have something coming in i would here love to hear more about an idea on how to use abi in the front end yeah so maybe this is even something i can touch on because it would be a good point for feedback is um the two strategies that we were kind of identifying or the two paths that we could go for um generating javascript code from the abi is um is through um some run time like so through sometimes through some uh javascript runtime object which is somewhat similar if you've used like web3.js like their contract interface where basically you input the actual abi file as a parameter to a function and at runtime it'll it'll add on all the all the methods and functions that you can call with it um this is obviously better for javascript and like maybe you don't need require the extra step to be able to like um generate some code but it does come at a lot of like downsides as well because then you don't have really the ability to generate like the typescript declaration files which make it a lot easier to use with uh with typescript with typescript files uh or like with typescript projects you want to actually have like type inference on this stuff so generally the path that we're going towards is is is not really like that but something that's definitely less done where um we're basically going to be generating javascript and typescript declarations for um from the actual api to be able to be interacted with uh and that way you just you're able to like see the interface more clearly and you don't have to like debug things at runtime um it just like kind of makes that whole process more streamlined and less error-prone um but yeah if anyone does have you know opinions on what this interface should look like if you've used some some tool in the past and then like hey i really like you know this interface like maybe you've used like type chain or you've used like web3.js or or or however you've used um like an abi within any sort of tooling within ethereum or any other ecosystem um yeah please feel free to to share that like we're going in a direction that um we think has like the most possible functionality um but yeah if anyone has any opinions on like what this workflow should look like or what this interface should look like if you've used a good one in the past uh we're more than we're more than open to hear it i'm not sure when you said you want to hear more about the the javascript usage with an avi in the front end um if that was what you were referring to but um yeah maybe i can also just get share also that from from this like code generation you can also generate ui components from it and be able to like dynamically include ui or just like generate components based on that avi that make it that make it a lot simpler to um to develop on so like there's there's tons of possibilities and people can build so much on top of this that unlocks so many different functionalities um so hopefully that sparks some sparks some ideas from people and yeah hopefully that answers some of the questions i was taking that vague question and just kind of running with it in different directions so hopefully that was helpful awesome think thanks austin yeah again any any any question ama total total total ask ask away if you have them uh give it another minute before we close early likes the idea of generating an object on runtime yeah that's what currently exists within our like proof of concept um so it's possible that we might support both um but there's obviously like more uh more interface bloat if we do do that like it is better if things are more streamlined um but there might be you know some way of exposing this so that if people did really want to use that yeah they'd be able to like it isn't that that much overhead to support this but it might just not be like officially supported um but yeah definitely definitely very possible and uh is is what is easily possible yeah cool i did repeat the question right before i started giving that yeah i actually said the question before okay cool sometimes i do that where i just give an answer yeah totally cool well well awesome well thank you so much everyone uh for joining us this week on our tooling team update again please feel free to give us some feedback we'll be posting this on youtube uh with links for feedback we have a feedback developer feedback channel in discord under engineering uh section so please feel free to drop any feedback you have there or you know directly in the repositories in the github discussions definitely uh yeah makes sense to have those discussions right in the repo directly but yeah until then uh we will see you next time next month um and uh yeah i think that's pretty much it thanks again austin and sergey for joining us we'll see you next time take care thanks thanks josh","transcript_synced_at":"2026-11-04T04:03:25.407Z","segments":[{"start_seconds":10,"text":"welcome everyone to another find developer tools community update we will be having today uh for june uh","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=10s"},{"start_seconds":19,"text":"today we're again gonna go over the regular format going over what happened uh over the past month and then we're gonna have an open discussion around abi","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=19s"},{"start_seconds":28,"text":"um yeah looking forward to getting some feedback from the community on this interface that we're","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=28s"},{"start_seconds":35,"text":"uh creating so yeah again at any point have any questions please drop them in chat or preferably use the q a","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=35s"},{"start_seconds":44,"text":"button at the bottom of your screen and we will answer your questions um as probably as possible and with that i","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=44s"},{"start_seconds":52,"text":"will hand it off to austin maggio uh the product uh product manager of developer tools is that the official title yeah you got it","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=52s"},{"start_seconds":60,"text":"awesome cool thanks austin take it away cool i'll jump in uh thanks josh uh yeah as josh mentioned we're just gonna talk about what we shipped and then dig into","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=60s"},{"start_seconds":67,"text":"the api a little bit and of course we want feedback that's why we do these sessions so please jump in at any point uh jump in the chat ping us afterwards","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=67s"},{"start_seconds":76,"text":"um come off mute or enjoy ask to join so that you can talk live but um without without further ado i'll just","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=76s"},{"start_seconds":84,"text":"start with our vision um it's unchanged deliver the intuitive productive uh and reliable tools needed for web 3 development so everything","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=84s"},{"start_seconds":91,"text":"we're doing is to to move in this direction and one one massive step that we took this past weekend at consensus was our our very own josh ford as well","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=91s"},{"start_seconds":100,"text":"as uh ben led a workshop at consensus um this is this tweet is pretty cool it's brendan ike who is the creator founder i guess","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=100s"},{"start_seconds":108,"text":"of javascript uh like all the creators he had like a 10 day mega sprint where he wrote javascript in its entirety in 10 days pretty crazy","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=108s"},{"start_seconds":117,"text":"and it was even crazier a feat to be matched by that was him introducing the javascript sdk uh enclave version at","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=117s"},{"start_seconds":125,"text":"consensus that that we just uh we just released so um if you missed that there there's a link uh josh i'm not sure what the best way is to share the link to the","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=125s"},{"start_seconds":133,"text":"consensus workshop i think in in like 20 days or something everyone will be able to actually watch that workshop um and but uh yeah there's a yeah there's a","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=133s"},{"start_seconds":142,"text":"link to it i think it's like a placeholder link right like you can't actually like view it yet because consensus hasn't released it uh officially yeah yeah yeah so we'll we'll","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=142s"},{"start_seconds":150,"text":"set a reminder to make sure that that that link gets sent to the community but uh the all the materials available in github that that josh and ben covered um and it's a really cool workshop where","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=150s"},{"start_seconds":158,"text":"you basically go from from nothing to writing a full uh javascript contract deploying it into the enclave uh interacting with it and i","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=158s"},{"start_seconds":166,"text":"think that it so the i watch the workshop and it's a it's basically like a coin flip um where you're using another contract to determine the output of a a coin flip","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=166s"},{"start_seconds":175,"text":"and then in the contract that you write it's like appending a score to a user interacting with a wallet interacting with your api js and it's an awesome one","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=175s"},{"start_seconds":183,"text":"to send to all your favorite web 2 friends so we'll we'll definitely uh push that out as uh as it becomes available but um what i what i did just","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=183s"},{"start_seconds":191,"text":"want to draw attention to is that um what we've been calling the enclave sdk or the the jsvm uh version of the sdk we're pivoting towards actually just the","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=191s"},{"start_seconds":199,"text":"the full-blown standalone uh uh uh contract um uh javascript sdk which you can think of it as just like a direct uh","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=199s"},{"start_seconds":208,"text":"a direct replacement for assembly script and it it behaves exactly like any rust uh or or current assembly uh script","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=208s"},{"start_seconds":215,"text":"contract where it just yeah oh like um the build generates a wasm file that you can deploy and interact with the same way that you would any other uh rust","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=215s"},{"start_seconds":224,"text":"contract um so that's that's currently what we're prioritizing and we're expecting to release that quite soon uh and we'll be really loud about that release because we're we're extremely","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=224s"},{"start_seconds":232,"text":"excited about it um and you'll see a ton of updates to our documentation examples etc um awesome uh if there's any questions","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=232s"},{"start_seconds":240,"text":"about uh the javascript sdk um otherwise uh i can pass it to all there was one one quick one someone asked uh will the jsvm","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=240s"},{"start_seconds":250,"text":"or enclave be deprecated in favor of the standalone version yeah yeah great great question we're we're trying to figure that out right now um i i don't have a","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=250s"},{"start_seconds":259,"text":"leading hypothesis that it's going to be going away immediately um so it's if it does go away it's not going to be like in the very short term um but i would","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=259s"},{"start_seconds":267,"text":"push that to the community to give us feedback of why they would want to uh what their use cases are to that really rely on the like the synchronous","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=267s"},{"start_seconds":274,"text":"behavior of the enclave the benefits of the really small um um contract that you're actually deploying and etc but um yeah i would love","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=274s"},{"start_seconds":283,"text":"feedback on that um so that we can help make uh make a great decision but at this current time we haven't made a clear decision on it so","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=283s"},{"start_seconds":291,"text":"cool awesome and then just one question george had if we could share a link to the resources um yeah if you just go to near.ai forward slash javascript that","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=291s"},{"start_seconds":300,"text":"has a link to everything jssdk right now it's a link tree it has a link to the presentation that ben and i created and","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=300s"},{"start_seconds":307,"text":"then also the repo quick start all that good stuff um so yeah near.ai for slash javascript","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=307s"},{"start_seconds":317,"text":"awesome josh do you mind actually just pasting that right in the chat and then well i'll pass over to yeah actually i did uh and i believe you did i believe you did too just now","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=317s"},{"start_seconds":326,"text":"i think maybe i sent you to the wrong group but anyway um yeah oh hosted panelists i gotcha yeah yeah uh i see yeah","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=326s"},{"start_seconds":334,"text":"i posted it to host a panelist too yeah i will drop them in the chat good call thank you cool um yeah and and","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=334s"},{"start_seconds":341,"text":"like like we said we we love feedback so leave it in those the discussions in the javascript sdk repo are pretty active so just if you do have questions or issues","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=341s"},{"start_seconds":349,"text":"um just please leave them in there um or or you can find our contact uh through a discord or anywhere but uh um otherwise i think i'll pass it over","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=349s"},{"start_seconds":357,"text":"to other austin um and he's gonna walk through uh some of the rest of what we've shipped uh and and dig into the api","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=357s"},{"start_seconds":366,"text":"yeah so so before i before you go kind of go more in detail about the api which is kind of mentioned before and we'll give more context to that","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=366s"},{"start_seconds":373,"text":"because i'm sure it's very unclear what that is uh to most people um i just do want to point out the uh the sdk 4.0","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=373s"},{"start_seconds":381,"text":"stable release because it was kind of like a long time coming and without like any sort of you know large announcement or anything like that uh was just you","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=381s"},{"start_seconds":388,"text":"know posted to discord so maybe people aren't aware of this but essentially yeah so the the sdk 4.0 was released","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=388s"},{"start_seconds":396,"text":"there's a lot of details and i kind of went over a lot of like the main changes on on a previous protocol uh meeting um but then also there's like a migration","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=396s"},{"start_seconds":404,"text":"document that shares all of the like changes and breaking changes from the previous version uh it doesn't go into like a lot of the optimizations but it goes into like the things that you","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=404s"},{"start_seconds":413,"text":"actually care about as a developer switching from say version 3.1 or any of the 4.0 pre-releases to the actual like","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=413s"},{"start_seconds":420,"text":"stable 4.0 version um but the key things to mention like i do want to just provide as much context as i can within this short within this short time is","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=420s"},{"start_seconds":427,"text":"that uh there should be no state breaking changes like you should just be able to update from 3.1 to 4.0 as long as the migration happens","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=427s"},{"start_seconds":436,"text":"correctly there there will be no issues and no need for any sort of like migration of your contract from the previous version to the new one it","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=436s"},{"start_seconds":443,"text":"should just be like a cleaner interface more optimized and uh you know certain blow cut out here and there uh with some other like semantic changes but yeah","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=443s"},{"start_seconds":452,"text":"again no nothing should be state breaking it just might some things might change but everything will be listed within that migration dock that that's","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=452s"},{"start_seconds":459,"text":"shared here so uh there is a link there but i i think we might want to share within the chat um if other people want to want to jump in with that um so so i","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=459s"},{"start_seconds":468,"text":"can share that link after after this or someone else wants to jump in and and share the link to that basically it's on the near sdk rs repository there's like","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=468s"},{"start_seconds":477,"text":"the discussions tab and then if you see the um uh yeah something's happening with the slides uh yeah so if you go to the","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=477s"},{"start_seconds":485,"text":"discussions tab and then there's just the one for the the migration document and then yeah you can use that for for migrating between them um other key","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=485s"},{"start_seconds":493,"text":"things to note is that um the near sdk sim uh is deprecated in favor of workspaces with this stable version um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=493s"},{"start_seconds":501,"text":"unfortunately there is like functionality that can't be updated from your sdk sim so we were hoping it was going to be like a smooth transition where like you can keep the sim test but","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=501s"},{"start_seconds":510,"text":"they're deprecated um but unfortunately like it just isn't technically possible um so yeah so if you do want to be able to switch to","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=510s"},{"start_seconds":518,"text":"if you do still want to use the sim test you can use the last uh 4.0 pre-release and that'll work fine um you just won't be able to leverage some of the like the","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=518s"},{"start_seconds":527,"text":"more optimized cross-contract calls um but yeah if you do want to switch over the workspaces is updated but just make","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=527s"},{"start_seconds":534,"text":"sure that when you are updating the sdk you might need to update your workspaces uh versions because the the most recent","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=534s"},{"start_seconds":542,"text":"ones will have the changes needed for this because it does leverage a protocol change that came in which we've talked about on a previous call um but yeah","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=542s"},{"start_seconds":550,"text":"hopefully that gives more than enough context um and yeah as i mentioned the the main changes with the 4.0 is just basically","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=550s"},{"start_seconds":558,"text":"there's optimizations new new features and cleaner apis like uh the the primary one being like the the uh the revamp of","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=558s"},{"start_seconds":566,"text":"cross contract calls and making them more simple for people to use but then utilizing gas more efficiently um yeah so we we can we can probably","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=566s"},{"start_seconds":573,"text":"move on to the next slide so yeah now on to abi which is which is kind of a point that a lot of people might not even be familiar what what","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=573s"},{"start_seconds":581,"text":"that is so let me let me create some context on what abi is uh and then we'll talk about like what we're building with","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=581s"},{"start_seconds":588,"text":"it and how it can be used um so what an api sorry what an api is is","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=588s"},{"start_seconds":595,"text":"basically um in our case like what we're defining is api is is a human readable schema that describes the contract","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=595s"},{"start_seconds":603,"text":"interface um so as i mentioned here like the the things that are going to be included with this are like if you're writing a contract it's going to include","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=603s"},{"start_seconds":610,"text":"the function names the parameters serialization formats any other metadata that's you know relevant to the contract so that you know if you're viewing the","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=610s"},{"start_seconds":618,"text":"the schema you'd be able to easily identify what what how to interact with that contract and what exists within it um the idea is that it's going to be","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=618s"},{"start_seconds":626,"text":"generated through sdks um the primary one that we're like obviously targeting right now is the is the rust one because um like that is the one that we are that","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=626s"},{"start_seconds":635,"text":"we're generating the tools as like primary support but obviously in the future this can be anything that generates this uh this dbi um and what","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=635s"},{"start_seconds":643,"text":"the benefit with this is that from this schema file you're able to automatically generate client-side code or any sort of like uh glue code to be able to interact","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=643s"},{"start_seconds":652,"text":"with these contracts so say um you have a front-end that wants to interact with the contract like you don't actually have to redefine the interface or","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=652s"},{"start_seconds":660,"text":"you know understand what the serialization format is you can just call a function same with if you have anything if you're interacting with a","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=660s"},{"start_seconds":667,"text":"contract through scripts or if you're out interacting through a contract through a cross-contract call this stuff will just be all done for you um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=667s"},{"start_seconds":676,"text":"the the the context for for why why we're building this is to obviously like streamline developer um like productivity and make sure that like","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=676s"},{"start_seconds":684,"text":"velocity is as quick as possible without with like removing as many bugs as possible if you like the abi is very similar to","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=684s"},{"start_seconds":692,"text":"um and the reason that we're choosing the abi name is like a tentative name right now which can change um is the familiarity with ethereum like ethereum","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=692s"},{"start_seconds":700,"text":"has the ethereum api which people might be familiar with which allows a lot of developer tooling and functionality to be built on top of it um if you've","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=700s"},{"start_seconds":708,"text":"worked with other ecosystems like this this name might also be referred to as an idl like an interface description language um there it's basically the","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=708s"},{"start_seconds":716,"text":"same thing like the concept is all very similar where you basically have some code and you're generating some human readable schema and then people can do with with","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=716s"},{"start_seconds":725,"text":"that schema however they like um hopefully that provides as much context i might i might pause for a second just to uh","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=725s"},{"start_seconds":734,"text":"api is an acronym from one so yeah it the the acronym that abi stands for is application binary interface um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=734s"},{"start_seconds":741,"text":"that acronym is is like i guess kind of referred to in in the classical sense of like what you would it describes how you interact with a","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=741s"},{"start_seconds":749,"text":"binary in this case the binary like notion is a little bit uh a little bit yeah it's it's a little bit opinionated whether or not you consider","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=749s"},{"start_seconds":758,"text":"like a wasn't binary or wasn't blob uh a binary but essentially it is basically defining how you interact with that wasm smart","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=758s"},{"start_seconds":765,"text":"contract um before we used to refer to this as like an aci because we you know we we're assuming this would be more intuitive or like a more accurate name of saying like","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=765s"},{"start_seconds":774,"text":"it's an application contract interface um but it's basically defining the interface of of this contract uh but","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=774s"},{"start_seconds":781,"text":"yeah abi right now is kind of the name that we're going with just for familiarity and and it i mean depends who you ask might be technically correct","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=781s"},{"start_seconds":788,"text":"because the was you know it is a was binary at the end of the day um and basically yeah the the serialization","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=788s"},{"start_seconds":795,"text":"format will is in binary as well um so hopefully that answers that question um and yeah if there's no other questions","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=795s"},{"start_seconds":803,"text":"we'll just we'll just continue on with the with the next slide um so yeah if this is kind of unclear i do want to make sure that i i explain a","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=803s"},{"start_seconds":811,"text":"tangible example or like show how this could actually be used in practice so the general flow is that","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=811s"},{"start_seconds":819,"text":"someone would generate an abi from from a near sdk rs contract so basically you compile the contract and it'll emit this","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=819s"},{"start_seconds":827,"text":"this json file like this uh api dot json file or whatever whatever it is named uh in the future or whatever","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=827s"},{"start_seconds":834,"text":"someone decides to name it um and the what you do with this file is it's connected to say some front time at","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=834s"},{"start_seconds":841,"text":"compile time so uh it'll generate some near api.js uh code which will basically make it so that you can just like call a","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=841s"},{"start_seconds":849,"text":"javascript function and it'll it'll do all this stuff underneath where it basically create the create the uh create the actual rpc call that's being","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=849s"},{"start_seconds":856,"text":"sent to a node and actually like send that with any sort of um other other context that's required um and as i mentioned before the the main","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=856s"},{"start_seconds":864,"text":"reasons for this is just to remove any sort of bugs with like the incorrect interface and without having to like duplicate the interface both on","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=864s"},{"start_seconds":872,"text":"the javascript side and on the and on the rust side um but yeah the key here is just like developer productivity like making sure that developers have as much","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=872s"},{"start_seconds":880,"text":"velocity building with this is is kind of the name of the game and and somewhat of a theme within like all of apis like this is the primary goal is just to make","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=880s"},{"start_seconds":888,"text":"it easier for developers to just do what they want without having to know domain specific knowledge or um having to like learn specific","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=888s"},{"start_seconds":896,"text":"concepts that aren't relevant to the application they're actually just building um and some other kind of examples of how this can be used from once the api is","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=896s"},{"start_seconds":905,"text":"generated is you say you have another contract that interacts with this you can automatically generate the cross-contract","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=905s"},{"start_seconds":913,"text":"code generation so basically removing the need to like redefine an interface which can be error-prone because as the as you're","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=913s"},{"start_seconds":921,"text":"changing the contract interface it doesn't automatically uh connect with this other contract that might be interacting with it um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=921s"},{"start_seconds":929,"text":"or say you just want a typed interface to use with an end-to-end test like say you're writing workspaces tests or you have some other workflow to you know","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=929s"},{"start_seconds":938,"text":"spin up a node and send transactions to um making sure that all the types are already connected with your testing workflow um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=938s"},{"start_seconds":945,"text":"just makes it so much easier to just like develop quickly and not have to worry about thinking about what this interface actually looks like and how you","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=945s"},{"start_seconds":953,"text":"serialize certain things correctly um yeah we can we can we can move on to the next slide","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=953s"},{"start_seconds":962,"text":"um so yeah to to kind of to to show what this might look like at a very like early stages um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=962s"},{"start_seconds":970,"text":"we're still very much in like the proof of concept phase and in like very early stages so none of what you're looking at right now is is by any means final and if you see anything or if you have any","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=970s"},{"start_seconds":978,"text":"suggestions of what they should look like please feel free to uh share with in the chat or you know after share within discord or github or","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=978s"},{"start_seconds":987,"text":"anything like that but um essentially what what this example is showing is just um like this and this attribute matcher","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=987s"},{"start_seconds":996,"text":"macro where it's just annotating near abi and basically everything within it will be will be picked up by the macro and basically used to be able to","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=996s"},{"start_seconds":1005,"text":"generate what you see on the right which is the uh which is actually like the abi json file um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1005s"},{"start_seconds":1012,"text":"so just to give kind of an overview like obviously all the code within is gonna stay the same as it was before um and we're trying to make this as minimal as","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1012s"},{"start_seconds":1019,"text":"possible so this obviously might change um but what the actual format that gets emitted just to give an idea of what","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1019s"},{"start_seconds":1026,"text":"this might look like is uh it it's you know we're gonna have an api schema version so that you know you these things are versions so that you","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1026s"},{"start_seconds":1034,"text":"like if things change within the actual schema format um it doesn't just like automatically break you know whatever tool you're using um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1034s"},{"start_seconds":1042,"text":"it might have other other metadata about the contract so for in this case it's just like the name of the actual uh contract that's being built in this case","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1042s"},{"start_seconds":1050,"text":"just api because that was the example um the version which might be relevant to developers understanding like which version of the","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1050s"},{"start_seconds":1057,"text":"contract they're actually interacting with um and then other metadata that's picked up from from uh from the actual like cargo tamil file","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1057s"},{"start_seconds":1066,"text":"that actually built the the contract so in this case like maybe authors or something else like that um if there's any other metadata that you're","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1066s"},{"start_seconds":1073,"text":"interested in please like share or like share with anyone else and it would be great to understand what other what other information would be useful for for people to include in this","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1073s"},{"start_seconds":1082,"text":"file um but the kind of to to walk through some of the some of the other details about it is um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1082s"},{"start_seconds":1089,"text":"you're going to have a list of functions in this case it's just going to be extremely simple because it's just going to have the one function called add it's going to give some context about it","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1089s"},{"start_seconds":1097,"text":"like it isn't uh it isn't a view contract it is an initialization function and it's just got this one parameter that's that's you know","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1097s"},{"start_seconds":1105,"text":"named value that's json and it also returns this uh u64 as well so","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1105s"},{"start_seconds":1112,"text":"um and then it and then it just basically represents the type that's below it and the bottom has root schema for any more","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1112s"},{"start_seconds":1119,"text":"like complicated types which isn't used in this case um but hopefully this gives like a rough idea of what this might look like","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1119s"},{"start_seconds":1126,"text":"um in practice of like going from the actual rust code that you're already writing to some human readable schema and then from there it goes on to the to","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1126s"},{"start_seconds":1135,"text":"the use cases that i talked about before um yeah you can move on to the next slide if you want to um so yeah this is kind of where where","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1135s"},{"start_seconds":1144,"text":"we are kind of turn turn it to the to turn it to you guys and basically ask like this is still very early stages like what are","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1144s"},{"start_seconds":1152,"text":"uh what are your thoughts and feedback on this because we very much want to design a tool that's very easy for people to use so the main questions that i that you know","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1152s"},{"start_seconds":1160,"text":"we have for uh for you guys is basically is api an intuitive name for this tool like we're using something based on familiarity but","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1160s"},{"start_seconds":1168,"text":"is there something else that would be more clear what this is doing um what functionality information would you like to see in the schema like as i","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1168s"},{"start_seconds":1176,"text":"mentioned like if you do need other information that uh would be crucial to your use case specifically we'd love to hear about it","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1176s"},{"start_seconds":1184,"text":"um and also like what format would you like to see this data um right now we're leveraging some like json schema functionality and basically using this","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1184s"},{"start_seconds":1194,"text":"outputting this api in json format just because it is the most familiar most readable like most common commonly used","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1194s"},{"start_seconds":1201,"text":"uh commonly used format for a schema but then also how do you envision using this tool like what is what is the actual developer experience that you go","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1201s"},{"start_seconds":1210,"text":"through that that you would want to go through to make sure that all your tools are connected so you're not doing things you know not doing redundant work at any","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1210s"},{"start_seconds":1217,"text":"point and making sure things are as streamlined as possible obviously we're trying to cut down on as many steps as possible but if you have any thoughts of how you'd like to be","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1217s"},{"start_seconds":1225,"text":"using this um yeah we'd love to hear that and yeah just as i mentioned just share within within discord or github","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1225s"},{"start_seconds":1232,"text":"um and now that i've kind of get shared some of the context on that i might just pause and if anyone has any questions i","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1232s"},{"start_seconds":1240,"text":"know joshua came off did you have something yeah there's i just saw one question um that was from will the near abi macro affect","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1240s"},{"start_seconds":1249,"text":"the contracts final wasm code um like increasing the size yeah not at all um okay so to to give an idea of how this how this","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1249s"},{"start_seconds":1258,"text":"works this is just something um that's uh compiled outside of outside of wasm so it's something that's an attribute","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1258s"},{"start_seconds":1266,"text":"that's used outside of wasm and essentially what's being called is uh when the api is being generated it's calling a function that's only available","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1266s"},{"start_seconds":1276,"text":"when it's not compiled to wasm 32 so this in no way will have any effect over the the actual like output of the","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1276s"},{"start_seconds":1284,"text":"wasm code um in the future some people might want to include an api within um within the","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1284s"},{"start_seconds":1292,"text":"extra metadata within uh the actual wasm file itself so that that information that abi is stored on chain","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1292s"},{"start_seconds":1299,"text":"but there's no requirement that this is the case by default this is just like a tool for uh convenience and developer velocity um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1299s"},{"start_seconds":1309,"text":"it does not affect the the final log of code in any way cool awesome um i also um curious","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1309s"},{"start_seconds":1316,"text":"is this uh the the example you showed was in rust is this um just for the rust sdk or will it be","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1316s"},{"start_seconds":1325,"text":"available for the javascript sdk um what once it's uh like a standalone for wasm uh and or","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1325s"},{"start_seconds":1332,"text":"assembly script as well yeah there's there's no there's no blockers why this couldn't be done in any other language um obviously that's","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1332s"},{"start_seconds":1339,"text":"on uh that's on our minds of of having this uh be supported with with other sdks um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1339s"},{"start_seconds":1346,"text":"just obviously until we have like a very solid schema format i think what we're primarily focusing on is the russ one but if anyone in the community want to","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1346s"},{"start_seconds":1354,"text":"build it for any sdk that they wanted to build there's no there's nothing specific to what we're doing uh that is limiting","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1354s"},{"start_seconds":1362,"text":"from the community from coming in and building uh whatever you know abi generation from however they build their contract right","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1362s"},{"start_seconds":1369,"text":"now but this is kind of the most common use case and kind of the most standard so that's what we're focusing on until until it's stable does that answer that","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1369s"},{"start_seconds":1377,"text":"question yeah yeah totally um one comment uh they do they don't find abi to be very intuitive they were","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1377s"},{"start_seconds":1385,"text":"always curious kind of what it was um they also sorry um was asking uh or would love to see an","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1385s"},{"start_seconds":1394,"text":"automatic uh creation um uh for like a jpg uh javascript apis for the contract so like they could do like","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1394s"},{"start_seconds":1401,"text":"an import get status slash gets a set status from interface.js yeah and this is this is exactly what","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1401s"},{"start_seconds":1409,"text":"we're planning on doing it it's it's not it's not exactly the import get status and set status it's more uh","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1409s"},{"start_seconds":1416,"text":"it's more of just like you'll have an object that you can use and call functions on that um but that also could could be it could be a pattern to go","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1416s"},{"start_seconds":1424,"text":"with where it's just like individual functions again like this the how this actually looks um we will um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1424s"},{"start_seconds":1433,"text":"we will kind of like get more feedback and provide alternatives for people if they want to have different like patterns for how they actually import","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1433s"},{"start_seconds":1440,"text":"and use this and create the code generation but what you mentioned here is is very much what um kind of already exists within a proof of concept form","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1440s"},{"start_seconds":1448,"text":"but will be kind of made more easily available to people in in the in the future um but yeah the abi naming obviously naming","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1448s"},{"start_seconds":1457,"text":"is the most difficult problem uh we're trying like that's the abi is kind of what is naturally","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1457s"},{"start_seconds":1464,"text":"like what the name is falling into but if it but yeah if anyone has any suggestions we would we'd absolutely love to hear it","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1464s"},{"start_seconds":1471,"text":"naming is the hardest part of uh development right absolutely at least for me i don't know about you guys cool um yeah i don't see any other","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1471s"},{"start_seconds":1479,"text":"questions but again feel free to continue to post them in the q a portion at the bottom or you know drop them in chat like some of you have been doing","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1479s"},{"start_seconds":1488,"text":"but yeah we would be more than happy to answer any questions and then yeah perhaps um what i could do is create a poll um or a survey form","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1488s"},{"start_seconds":1496,"text":"using like google forms from from your last slide and then also attach it to this video when we upload it and maybe email it out to uh some of our community","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1496s"},{"start_seconds":1504,"text":"members to kind of get some more uh feedback uh on some of these items that you proposed but uh again and one other thing i i should","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1504s"},{"start_seconds":1512,"text":"have mentioned with previously about the api is is the person who is leading all of this his name is daniar so if you ever have any thoughts or any","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1512s"},{"start_seconds":1520,"text":"suggestions that you want to talk about he would definitely be the point of contact for um if you have any feedback for that but if you share it in our discord or anything like that i'm sure anyone will","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1520s"},{"start_seconds":1529,"text":"be able to um to be able to to make that connection um but yeah daniel has been been leading","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1529s"},{"start_seconds":1536,"text":"this uh this avi effort um but yeah if you if there's no other questions or anything like that we can we can kind of move on to touching the other","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1536s"},{"start_seconds":1543,"text":"the other parts of this um so yeah like this is this is less for impact or less uh you know feedback from from the community but it just just to","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1543s"},{"start_seconds":1552,"text":"let everyone know kind of what the what the other initiatives we're working on these are kind of just like smaller points but um we do definitely have a focus on like clearing some of the some","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1552s"},{"start_seconds":1560,"text":"of the technical debt we have in in some of our rus client libraries or workspaces so um the initiative that miraculous has been working on on our","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1560s"},{"start_seconds":1567,"text":"team has been like extracting a lot of the primitives from your core for a more stable rust client interface um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1567s"},{"start_seconds":1575,"text":"and that's gonna make like the actual like rust the json rpc client uh more stable and then also um just make it a lot like these types a","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1575s"},{"start_seconds":1583,"text":"lot easier uh make these types uh be a lot easier to be used um and then uh the other initiative that we","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1583s"},{"start_seconds":1592,"text":"we've kind of been working on has been uh improving error handling within workspaces rs which has been led by uh fong on our team who i think has been on","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1592s"},{"start_seconds":1599,"text":"a previous call um but essentially just improving the air handling within workspaces rs because that has been somewhat of a pain point of like errors","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1599s"},{"start_seconds":1608,"text":"not being so easy to be used um being able to like diagnose uh certain issues that that you run into while testing um so those are kind of the","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1608s"},{"start_seconds":1616,"text":"other initiatives that are happening um but yeah definitely less opinionated than the api stuff so i won't go too","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1616s"},{"start_seconds":1623,"text":"much in detail about these that's pretty much it you want to move to the next slide and","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1623s"},{"start_seconds":1630,"text":"yeah awesome that's that's that's it from us for so this is a bit of a quicker uh tools update um and yeah just reiterating what we've already said a","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1630s"},{"start_seconds":1638,"text":"million times we genuinely love the feedback so javascript sdk avi any of the other projects that the developer tools team takes care of anything related to near really we'll try and","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1638s"},{"start_seconds":1646,"text":"write it to the right person the right group but uh um you can find us on discord or just jump into any of those github discussions so um i think that's it from","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1646s"},{"start_seconds":1654,"text":"us today um unless there's any other questions we'll do the obligatory eight-second awkward wait","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1654s"},{"start_seconds":1661,"text":"totally um there was one question earlier um that i wanted to get to um from aminu he was asking about near","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1661s"},{"start_seconds":1671,"text":"api uh py um so the python api asking if there's gonna be um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1671s"},{"start_seconds":1679,"text":"when the documentation be ready you know is there any more insight on that tool i'm not sure if that's actually something uh that this team is working on or maybe it's like a project","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1679s"},{"start_seconds":1688,"text":"of another person from the collective um but yeah there there's that question and then also last night when i was um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1688s"},{"start_seconds":1695,"text":"on discord someone was uh asking me to help them troubleshoot near ap i go and i was like oh i um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1695s"},{"start_seconds":1702,"text":"well they were there yeah they're sending me syntax i'm like oh where is this from and i was searching and get them like oh it's from this this thing uh that was created i think like a year","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1702s"},{"start_seconds":1709,"text":"ago by again one of our collective members uh probably like a side project or something but wasn't uh actively being supported uh but yeah do you guys","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1709s"},{"start_seconds":1717,"text":"have any um comments on uh these types of projects yeah so the the python one was was was","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1717s"},{"start_seconds":1725,"text":"not within our team i think it was i think it was bowden that was uh that was uh working on this i'm i'm not actually sure if i if i can remember","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1725s"},{"start_seconds":1733,"text":"correctly but um yeah i i'm not quite sure the status of that um i don't believe it's something that","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1733s"},{"start_seconds":1741,"text":"uh maybe it is something that's being actively worked on i don't know do you do you guys have any uh intuition about that i yeah just looking at the the code","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1741s"},{"start_seconds":1749,"text":"it looks like 11 days ago there was something uh pushed to it and uh yeah actually looks like ilya and uh","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1749s"},{"start_seconds":1756,"text":"sandy and uh yeah a bunch of people from from our collective where we're working on it but yeah i don't think this is like a tooling team","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1756s"},{"start_seconds":1764,"text":"um project that's at least owned by them more like a probably a community project by some of the the core contributors","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1764s"},{"start_seconds":1774,"text":"but uh but yeah definitely feel free to to interact with them and engage with them in their respective repositories i'm","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1774s"},{"start_seconds":1782,"text":"sure they would love i love the help and support but yeah it's not an official um thing a product that the the tooling","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1782s"},{"start_seconds":1788,"text":"team from pagoda is working on yeah and the same goes with the with the go on that you mentioned yeah it's it's","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1788s"},{"start_seconds":1796,"text":"not it's not directly uh something that that this team is working on but it's yeah i wasn't even really aware that that was","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1796s"},{"start_seconds":1804,"text":"uh that was even going on so that's cool um and one other question uh and i got this at consensus people were asking","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1804s"},{"start_seconds":1811,"text":"about new year api js and they're really excited about the javascript um uh sdk uh but they were like hey what's","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1811s"},{"start_seconds":1819,"text":"going on your api js that's been uh kind of uh lagging a little bit uh i'm not sure if the two is it the tooling team","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1819s"},{"start_seconds":1825,"text":"owning uh this library um or do we do we have any kind of updates on uh that tool and um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1825s"},{"start_seconds":1833,"text":"what's gonna be the future of it yeah so um yeah so loud and clear um the api.js needs a little bit of love um uh","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1833s"},{"start_seconds":1841,"text":"the the wallet team actually owns that um josh under under patrick um so um what i would what i would stress is","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1841s"},{"start_seconds":1849,"text":"just keep pushing hard on those issues i know that some of them have gotten a little bit stale um but uh um uh yeah not the direct purview of of the","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1849s"},{"start_seconds":1857,"text":"tools team of our team uh but um i think the pain the pain point is very real so just acknowledging that and thanking everyone for bearing with us but uh","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1857s"},{"start_seconds":1865,"text":"um yeah i would encourage everyone to create issues and try and help uh resolve those so that uh in the interim until we can get full dedicated","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1865s"},{"start_seconds":1873,"text":"resources to um to give the attention it deserves awesome thanks for thanks for addressing that yeah i know um a few of our repos","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1873s"},{"start_seconds":1882,"text":"we have some stale issues and some stale pr's um we're really trying our best to uh to get a handle on those and uh to dedicate yeah there's so much to do and","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1882s"},{"start_seconds":1890,"text":"not enough engineers on our team more tools than people right exactly we have way more tools than people um so yeah please bear with us as we're uh","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1890s"},{"start_seconds":1899,"text":"trying to go from this startup to scale up uh position and um yeah we'll we'll do our","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1899s"},{"start_seconds":1906,"text":"best to try to uh engage and uh get these pr's and issues resolved in a timely fashion","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1906s"},{"start_seconds":1914,"text":"just to like just be like super clear with an ask to the community on that is is we we can shift priority of what we work on based on feedback we get from","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1914s"},{"start_seconds":1922,"text":"the community so like what we work on is a direct reflection of what the community needs so um it's really hard for us to make decisions on what tools","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1922s"},{"start_seconds":1930,"text":"to prioritize specifically without having direct feedback from the community and there's a lot of ways to give that by being active in the github discussion showing up to these community","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1930s"},{"start_seconds":1938,"text":"sessions or being as annoying as messaging us directly four times a day on on specific stuff like i very much welcome that so um help us determine","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1938s"},{"start_seconds":1947,"text":"priorities so we can make sure to work on uh work on the most high value value things for our community um and just keep keep pushing us really hard","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1947s"},{"start_seconds":1955,"text":"there so we can make sure to deliver the most value yeah plus one on that cool um yeah we'll","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1955s"},{"start_seconds":1963,"text":"we'll give it one like a minute just uh yeah any any questions total ama session uh right now if you have any questions uh for the tooling team","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1963s"},{"start_seconds":1971,"text":"uh anybody on the call hey siri i know you joined um a little bit ago we didn't we didn't have a formal hello","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1971s"},{"start_seconds":1980,"text":"um sorry he did a lot of work on the javascript sdk that we just got shipped yeah super super stoked","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1980s"},{"start_seconds":1987,"text":"still still working on it still working yes of course","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1987s"},{"start_seconds":1994,"text":"cool yeah or if anyone just has any questions about what's possible with abi we definitely have the time and ability to chat about that so yeah don't","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=1994s"},{"start_seconds":2002,"text":"don't uh feel free to uh to send a message and chat in this last minute but yeah yeah absolutely","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2002s"},{"start_seconds":2014,"text":"awkward silence yeah it's like it's like you want to give that the the time for people to ask questions","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2014s"},{"start_seconds":2021,"text":"uh and and also i feel really awkward just sitting here silently being recorded blasting should we just start counting back from ten","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2021s"},{"start_seconds":2033,"text":"um oh we got we have something coming in i would here love to hear more about an idea on how to use abi in the front end","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2033s"},{"start_seconds":2041,"text":"yeah so maybe this is even something i can touch on because it would be a good point for feedback is um the two strategies that we were kind of","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2041s"},{"start_seconds":2049,"text":"identifying or the two paths that we could go for um generating javascript code from the abi is","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2049s"},{"start_seconds":2056,"text":"um is through um some run time like so through sometimes","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2056s"},{"start_seconds":2064,"text":"through some uh javascript runtime object which is somewhat similar if you've used like web3.js like their contract interface where basically you","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2064s"},{"start_seconds":2072,"text":"input the actual abi file as a parameter to a function and at runtime it'll it'll add on all the all the methods and functions that you can call with it um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2072s"},{"start_seconds":2081,"text":"this is obviously better for javascript and like maybe you don't need require the extra step to be able to like um generate some code but it does come","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2081s"},{"start_seconds":2090,"text":"at a lot of like downsides as well because then you don't have really the ability to generate like the typescript declaration files which make it a lot","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2090s"},{"start_seconds":2097,"text":"easier to use with uh with typescript with typescript files uh or like with typescript projects you want to actually","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2097s"},{"start_seconds":2105,"text":"have like type inference on this stuff so generally the path that we're going towards is is is not really like that","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2105s"},{"start_seconds":2112,"text":"but something that's definitely less done where um we're basically going to be generating","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2112s"},{"start_seconds":2120,"text":"javascript and typescript declarations for um from the actual api to be able to be interacted with uh and that way you just","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2120s"},{"start_seconds":2129,"text":"you're able to like see the interface more clearly and you don't have to like debug things at runtime um it just like kind of makes that whole process more","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2129s"},{"start_seconds":2136,"text":"streamlined and less error-prone um but yeah if anyone does have you know opinions on what this interface should look like if you've used some some tool","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2136s"},{"start_seconds":2143,"text":"in the past and then like hey i really like you know this interface like maybe you've used like type chain or you've used like web3.js or or or however","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2143s"},{"start_seconds":2151,"text":"you've used um like an abi within any sort of tooling within ethereum or any other ecosystem um","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2151s"},{"start_seconds":2158,"text":"yeah please feel free to to share that like we're going in a direction that um we think has like the most possible","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2158s"},{"start_seconds":2165,"text":"functionality um but yeah if anyone has any opinions on like what this workflow should look like or what this interface should look like if you've used a good one in the past uh","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2165s"},{"start_seconds":2174,"text":"we're more than we're more than open to hear it i'm not sure when you said you want to hear more about the the javascript usage","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2174s"},{"start_seconds":2182,"text":"with an avi in the front end um if that was what you were referring to but um yeah maybe i can also just get share","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2182s"},{"start_seconds":2190,"text":"also that from from this like code generation you can also generate ui components from it and be able to like dynamically","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2190s"},{"start_seconds":2198,"text":"include ui or just like generate components based on that avi that make it that make it a lot simpler to um to develop on so like","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2198s"},{"start_seconds":2208,"text":"there's there's tons of possibilities and people can build so much on top of this that unlocks so many different functionalities um so hopefully that sparks some sparks","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2208s"},{"start_seconds":2216,"text":"some ideas from people and yeah hopefully that answers some of the questions i was taking that vague question and just kind of running with it in different directions so hopefully","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2216s"},{"start_seconds":2224,"text":"that was helpful awesome think thanks austin yeah again any any any question ama","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2224s"},{"start_seconds":2232,"text":"total total total ask ask away if you have them uh give it another minute before we close early","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2232s"},{"start_seconds":2242,"text":"likes the idea of generating an object on runtime yeah that's what currently exists within","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2242s"},{"start_seconds":2249,"text":"our like proof of concept um so it's possible that we might support both um but there's obviously like more uh","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2249s"},{"start_seconds":2258,"text":"more interface bloat if we do do that like it is better if things are more streamlined um but there might be you know some way of","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2258s"},{"start_seconds":2266,"text":"exposing this so that if people did really want to use that yeah they'd be able to like it isn't that that much overhead to support this but it might","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2266s"},{"start_seconds":2274,"text":"just not be like officially supported um but yeah definitely definitely very possible and uh is is what is","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2274s"},{"start_seconds":2282,"text":"easily possible yeah cool i did repeat the question right","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2282s"},{"start_seconds":2291,"text":"before i started giving that yeah i actually said the question before okay cool sometimes i do that where i just","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2291s"},{"start_seconds":2300,"text":"give an answer yeah totally cool well well awesome well thank you so","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2300s"},{"start_seconds":2308,"text":"much everyone uh for joining us this week on our tooling team update again please feel free to give us some feedback we'll","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2308s"},{"start_seconds":2317,"text":"be posting this on youtube uh with links for feedback we have a feedback developer feedback channel in discord","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2317s"},{"start_seconds":2325,"text":"under engineering uh section so please feel free to drop any feedback you have there or you know directly in the repositories","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2325s"},{"start_seconds":2333,"text":"in the github discussions definitely uh yeah makes sense to have those discussions right in the repo directly","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2333s"},{"start_seconds":2341,"text":"but yeah until then uh we will see you next time next month um and uh yeah i think that's pretty much","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2341s"},{"start_seconds":2349,"text":"it thanks again austin and sergey for joining us we'll see you next time take care thanks thanks josh","url":"https://www.youtube.com/watch?v=RnM5BB0iCGE&t=2349s"}],"youtube_url":"https://youtube.com/watch?v=RnM5BB0iCGE","url":"https://near-pedia.xyz/videos/RnM5BB0iCGE"}