Skip to content
by Unity Nodes
NEAR DevHub

Tools Community Call #18 - near/dev/hub

about 53:48 long

Nothing is loaded from YouTube until you press play, and then without tracking cookies.

About this video

Links: WalletSelector Release - https://github.com/near/wallet-select... NEAR-SDK-PY - github.com/r-near/near-sdk-py NEAR-SDK-RS - github.com/near/near-sdk-rs

Initial Proposals: Lucid - https://docs.google.com/document/d/1Z... Hot Labs - https://docs.google.com/document/d/14... Peersyst: FastAuth - https://docs.google.com/document/d/1U... OneClick Connect - https://docs.google.com/document/d/10...

Telegram Groups: Tools Community - t.me/NEAR_Tools_Community_Group Python Tooling Community - t.me/nearpythontooling

DevHub Newsletter - dev.near.org/newsletter DevHub Streams -    / @neardevhub   Events: dev.near.org.events

Timestamps: 00:00 - 01:36 - Intro 01:36 - 05:01 - Wallet Selector Release 9.0 05:01 - 08:00 - Lucid Introduction 10:45 - 14:22 - More context on Wallet Selector 15:44 - 31:13 - Peeryst on FastAuth and OneClick Connect 31:32 - 41:50 - Python SDK Updates 41:50 - 48:34 - Rust SDK - deny_unknown_arguments 48:34 - 52:37 - AI TypeScript SDK with Zahid 53:21 - Outro

Transcript

8,247 words

Captions as YouTube publishes them, usually machine-generated, so product and people names can be misheard.

  1. 0:04

    Hi friends, my name is Ludmil and I'm de contributor at Devub. Welcome to this month's tools community called those are informal sessions where we share updates, discuss and present tooling projects from the ecosystem. If you want to get involved, join the reach chat in our telegram group. You can find the links for down in the description below.

  2. 0:23

    On today's call, a part of the friendly familiar faces of amazing contributors in our ecosystem, I'm glad to be joined by representatives from the teams of Lucid, Hotlaps, and Pierces, which recently were selected for maintaining on boarding tools such as wallet selector, fast and oneclick connect. Uh, additionally, we are joined by Gilmo, lead dear dev. And also just last minute uh Zahit has joined around. You might uh

  3. 0:53

    remember him from quite a few couples of calls ago on Jutsu. Zahit has been around near for quite some time now and he's also going to be sharing some updates with us so of what he has been up to. So um I suggest we start with u the uh wallet selector and uh recently wallet selector had um a proposed um beta version version 9 which was which effort was led by Gil Gilmo but it also had other contributors uh to it like Trentin

  4. 1:29

    Matias and a few more. Uh so um Gilmo can you uh just quickly um talk us over of uh what's this uh beta version is including? Yes, of course. Uh if you can I share my screen here? I think I should be able. Yes. Yeah, this will take over. Yes.

  5. 1:51

    Okay. So I will you know keep it sweet and short. The main idea of the of the new wallet selector is that uh there are two important wallets. PM wallet and miner wallet who they used to work by you will want to sign a transaction or login and they will just reload the co the the page so you know like for example if we were here in hello near I will click into login and then my I will be going away from local host uh in this case because I'm working locally right

  6. 2:23

    like from the local host to the page of my wallet and then I will be brought back and now with version 9 uh we made some substantial changes into those wallets. So now you loging in in a completely separate tab and what that allows you to do or like what that allows devs to do is that they don't have to worry anymore about like okay my my application is just load is it because you know the user just loaded the app or because they logged in or because they signed a transaction. Now

  7. 2:55

    you just treat the the miner wallet as any other wallet out there. uh in like for example metal wallet. In metal wallet you always had this thing where it will open a part and then you will have to to to login in a separate page.

  8. 3:10

    Uh and the same was happening before for um and beta was follow was having like similar not problems but you know like a similar interface where it will just like open on the same page and therefore like reload for like completely your application and now it's just like opening on the side again. So now wallet selector you know like will all of the wallets in wallet selector will not stop your your normal user flow which is very nice and then there are like other minor improvements such that it it loads

  9. 3:43

    faster it it knows faster if you're signing in or not but I would say that the most important part is that now all of the wallets just don't stop the flow of your application they open separately and then you act you interact with them separately and your application never has to be you to be like guesstimating if it was like they just loaded the page. No, they actually are coming back from a from a redirect from login. No, they are coming back from a redirect for a transaction. So yeah, uh hopefully we

  10. 4:14

    are aiming to release it by Friday. We are just polishing you know when you do mpm install we want to see fewer warnings because dependencies need to be updated and every time you update that anyone that works with JavaScript knows that as soon as you update one dependency it's hell so now we're just dealing with like like the all the functionality is there we're just dealing with you know like making sure

  11. 4:38

    that installation is smooth that you don't have any problem if you want to use near PHGS4 any five that you don't have to, you know, go guesstimating also like should I use npm, yarn, pmppm or what like and we want it to work everywhere which in JavaScript means that we have a lot of like you know little things to tweak but yeah hopefully we release it by this Friday.

  12. 5:02

    Amazing. Thanks. And uh talking um um talking about wallet selector, we have Clemens who presents uh Lucid team which have been selected to maintain or take over maintainance for wallet selector. Uh Clemens can you talk a little bit about um yourself, your team and uh perhaps your proposal? I will put down the link to it.

  13. 5:28

    Good to have by the way and thanks for taking such a heavy task. So yeah, thank you very much for having me first of all. For those who don't know me, I'm finance. Um I've been in the near ecosystem for three years. Uh now I first started um as a grantee to the near ecosystem building out small little applications uh in 2022. Um then I joined the new foundation in 2023 where I worked in ecosystem relations for

  14. 5:54

    close to a year. Um before I decided to go back into building applications around last year. Um build smaller application using uh you know conditional payments. Um took the conference app um near con to the universities of Oxford and London business school. Um and I've been just dabbling in various little application.

  15. 6:13

    I've been taking a very product focused approach to everything I've done here. And I think that's why um the wallet select proposal have been so interesting to us um just because we really see uh the amount of friction that there still currently exists for the average consumer to enter agree there's a very high requirement when it comes to um software and wallets that people are

  16. 6:33

    already familiar with um for an end user to even interact with and this is something that we've consistently been facing and I think this is sort of the approach we want to take into dealing with a wallet selector we really want to focus on simplification We want to make sure that we can make an experience that is a simple um for the um users and b for the um for the app developers as well. That gives them enough modularity to really you know decide to what extent do they

  17. 7:03

    want to um have users select u wallets or do they want to just be able to log in with pass keys and so on and so forth. And I think there's been a lot of really interesting um points brought up within the um you know the RFP itself.

  18. 7:17

    Um and I think the examples of near near intense um or near AI I think have been fantastic because it does show you know significant improvements. Um although I still think we can go that one step further and I think for that there's a handful of different um you know comparable software kits in the EDM ecosystem that I think are worth looking at. Um, and we really want to make sure that we have a very design focused

  19. 7:42

    approach. Um, one that works, you know, for app developers, uh, like ourselves, uh, as well as for, you know, um, the average user connecting with with these applications, whether they're near veterans or just, you know, first-time crypto users looking to, um, try out a product. Um, because I think at the end of the day, what we want to focus on is selling products and mouse crypto. Um, and I think that's where you really want to make sure you're able to reduce as

  20. 8:08

    much friction as possible. Uh, in terms of the team that we have, so I'll just be in the coordinating role, but the the main lift will be carried by Valerio, uh, who couldn't make it to this call today, but, uh, he used to work with me at PWC. Um, you know, as a software developer with over 26 years in experience across banking grade applications and solutions for major European banks. Um, we built the mobile banking apps for Italy's largest bank.

  21. 8:34

    um together um while at PWC um and we've also dabbled around a lot in the DeFi space um building near contracts um and he additionally also brings with him a lot of experience in building DeFi on Phantom um so that's just a bit of more color and background on sort of who we are and what our approach is towards this um topic amazing and obviously I believe that your work still haven't uh started because there is like quite of other things before you can be set up to take over. But uh can you share a little bit

  22. 9:10

    about your milestones uh for the upcoming like u months? Yeah. So for the milestones that we're we're still um going back and forth with legal on that just to move it back maybe a couple more weeks because there's been a quite a like a large delay in sort of getting through the ad administrative stuff. But um once that is nailed down um we'll definitely you know to share that with you through the appropriate channels.

  23. 9:35

    Amazing. That's um that's great to hear. Um I would put down to the link below um your initial proposal. Uh but uh yeah uh as things settle uh we will share more updates perhaps even in the next to community call next month uh where things when things are uh cleared out.

  24. 9:54

    Thanks a lot for sharing uh sharing that with us. And um do you guys anyone of the call has any questions for Clemens or something that you want to add? That's pretty much good to go. Thanks. Uh I have a bit of context there. So we actually chatted with Clemens before he submitted the proposal and identified the pain points uh and shared that it's it's it's it's it's a common pain uh

  25. 10:27

    from from near dev side of uh trying to to to to provide the best experience on near and also the wallets that are um they they need to support certain standards and we need to uh align with the standards. So it's a lot of work actually uh to to pull out and there I just want to remind everyone that there are mobile mobile uh uh apps um telegram wallets uh web wallets, web extension

  26. 11:00

    wallets um and you can interact you you may open a web app that would require a a mo a a wallet on your mobile and then you would need to be able to redirect uh to the application instead of scanning a QR code because that's pointless to scan a QR code on when you already on a mobile device. So there are so many different corner cases to consider and we need to multiply it by various near features that are out there. uh sign in with

  27. 11:31

    adding an access key. Sign in without adding an access key. Uh signing a message uh signing a transaction and not sending it but instead redirecting back to the application and let application to the send the transaction support metatransactions. So sign not a transaction but a delegate action on behalf of the user and send it back to the application and let them to uh you know send that uh delegate action through the layer. So this is what uh

  28. 12:02

    was actually delaying a lot of work uh for beta um wallet. They wanted to build a like integrated uh experience for app developers but without wallet selector features. It was either developers would need to integrate directly with beta wallet or uh and give up on any other wallets or create this either or or build basically the wallet selector themselves. And we've seen near intense and near AI hub actually went that path.

  29. 12:39

    They just used their own integration with the wallets of their choice and implemented the integration from scratch and we didn't want we don't want every single team in New York system to do that over and over again. That's just totally pain pointless and painful experience. Also we want to uh I want to mention that there are uh in addition to various wallets and various features of

  30. 13:05

    the of the of the of the near there are also like applications on different platforms. So your uh as a developer I want to build a native mobile app for uh iOS for Android. So those are swift or cotlin SDKs that are needed. So those those are not web uh applications anymore and world selector is currently exclusively sitting uh for a JavaScript um web uh platform basically and uh if we do not design the proper protocols we will

  31. 13:42

    have to reimplement all that logic for every single wallet uh on all the platforms and that is just not not a good direction to Well, so I'm excited to hear uh to see the the proposal from Lucid. I'm also looking forward for uh what hot will uh propose from their side because they were also selected to work on the on this protocol uh design uh and hopefully we'll see a better future for

  32. 14:13

    the wallet selector and in general and finally get the apps having the superb user experience for the end users. Yeah. um hot team was uh they were actually invited but they were not able to join the today's call. So I hope that we can get them on the next call because uh when Lucid was selected for maintaining the current version of uh wallet selector uh hot was selected to further develop it and enhance it. So uh I hope that we can get them on the next call and talk a little bit more of what will be coming up next from them.

  33. 14:49

    So yeah, thanks a lot for putting up the context of that. Any questions, something to add by anyone else? Otherwise, I would like to invite Peron from Persist which were selected to take for take over two other key components for onboarding solutions on near and that's fast out and one click connect.

  34. 15:13

    We knew uh for some time like since actually fast out started being a thing it was quickly used by quite a lot of people and we saw that it made a very big uh impact on the ecosystem and like on boarding in general. So uh this is yet another important project and uh the if you can talk a little bit your about your experience uh your proposal and your team that would be amazing. Sure.

  35. 15:43

    Um yeah so first of all hi everyone uh first time on on this call glad to be here and hopefully you'll see us more and maybe with some other team members uh including our CTO here because I think he will be the best suited for for this calls but yeah just as a quick introduction so I'm fine I'm the CEO of Persist uh we've been building blockchain product for nine years now so we've been u started building uh products on one of the first proof ofstake chains

  36. 16:13

    which was called NEM back in 2016 and since then we've been working um shoulderto-shoulder with uh different foundations um to build core products. So we've been maintaining core wallets and core products uh with different protocols uh for a long time right now.

  37. 16:32

    Um we have been mostly recently working um with uh companies like Ripple where we are one of the main contributors. We are building the equivalent of the Aurora uh on the Ripple space which is called the exorp side chain but we've been doing many other stuff there. Uh with near uh also we've been contributing for three to four years now. Um you may recognize near mobile wallet which is one of the products we our team has been building uh which has

  38. 17:03

    uh been one of the largest uh used wallets uh on the ecosystem and we are still uh very actively maintaining and uh improving it and during the last two three years we also been contributing with uh to near uh more in the B2B side um we've been implementing solutions uh for large organizations such as group on Nutra in Latin America to tokenize all the loyalty points uh of it's a Nutric it's a company of about 50,000 people so you to realize and also

  39. 17:38

    we've been doing last year an integration with Lulo Bank which is also digital bank in Latin America and we've been doing this implementation so yeah long story short we've been uh long time on the ecosystem uh in the blockchain space long time with other ecosystems We've been contributing to many of them with near we've done uh multiple implementations and most of them uh has been very focused on user experience and on boarding. So for near mobile we are very

  40. 18:08

    obsessed with the UX and the UI and trying to make boarding as um easy as possible. For the banks or the uh multinational projects people didn't even know they were using blockchain. So the level of abstraction was even higher. Uh and we've been uh trying to work on these solutions and we thought that we were qualified to apply for passive and one click connect because we will be one of the main users as well uh

  41. 18:37

    for them on our products. Um so yeah I think that's that's an introduction. Great. And um can you um share a little bit more from your proposals if you have them on hand? I have put link downs below on them but yeah. Sure. Yeah. Um basically well same as Clemens um we are still you know back and forth with legal uh to get all the things on point. So there's not a super big progress let's say or or anything that I will mention now it's legally uh

  42. 19:12

    binded yet. But uh I can share some stuff. Basically what we've been doing it's for one click connect for those interested. The design we've put in the proposal um was kind of uh well created. Um so that will continue as it is. We've been sharing this design uh to the near infra committee and some of the on to some of the main stakeholders uh and everyone seems to be happy with that. Um so the design and the proposal is what

  43. 19:44

    you guys can expect as a product and as you can see the we have a couple of milestones uh but basically we have a fields milestone um to uh build the product in six weeks uh from the signature and then we will have a first version we will encourage people on the ecosystem to use it and as a developer tool we will gather feedback to keep improving it to a newer version. Um also we do uh we do have the intention to

  44. 20:13

    integrate this and also fast out with wallet selector um to provide uh seamless user experience. So hope to collaborate with the Lucid and the hot teams on on these integrations as well. And um as a third milestone very similar to FA out as well, it's to use chain signatures to basically uh get all these products completely multi-chain and being used uh out of the near ecosystem as well as a as a blue chip products uh

  45. 20:44

    on the industry. That's the plan for one click connect. For fast out um threequarters of the same uh we've had a more difficult time uh with fast out because uh there was almost no documentation for the first version u and almost no one to ask uh how everything was set up. So it it was difficult for us to figure out. But we've uh made a design proposal for fast out too and we've been implementing a proof of concept to make sure this is something that it's doable and it seems

  46. 21:19

    uh to be true. Uh we shared that also with the infra committee they they seems to be happy. uh as I can get super technical here unfortunately but as a highlight basically we we are uh going to use out zero uh in order to uh as a third party service instead of self-hosting um for more reliability up time and scalability. Um we will share more details on that as well. And then the the following phases are quite similar but we expect to have a first

  47. 21:51

    version in uh maximum eight weeks probably we'll have it uh prior than that and then we will do a migration of all the users from fast one to fast out two that's another complex process because there's uh in the order of millions of users here so we will need to be very you know created and do it in a decentralized way so no one has full access of the keys at any given point of this migration and then uh we will uh you know collect this um integrators

  48. 22:23

    feedback uh and try to uh improve uh with this feedback integrate on wallet selector and make it multi-chain. So that's in a nutshell a road map for the products that we still have right now but I'm sure I will have much more details over the coming weeks.

  49. 22:42

    Amazing. Um thanks a lot. Um, does anyone have any questions for Faren or Vlad? Do you want to add any more context to it? No additional context yet. Uh um indeed near mobile is one of the uh widely used uh wallets on the mobile platform for near and we saw that uh there was a lot of uh interest from the team to contribute to New York system and evolve the user experience uh to next level. So

  50. 23:17

    I'm really excited to see um those such teams apply for the infrastructure committee call for uh participation and propose their funding uh their their making their proposals to um contribute there. German. Yes. I wanted to take the opportunity to ask uh about fast off. Is is it going to be compatible you know with the previous version in the sense that you know we used to be able to login with gags at whatever right gile.org and that will get me like a

  51. 23:53

    specific account like an account. Now you know in the new version of fast out when I do login with my same email will I get you know like recover that previous email version or this is just like same functionality but we starting all over again.

  52. 24:07

    Yeah as as I mentioned it's don't take anything for granted that from what I will say uh but the idea is that yes the the migration is going to be compatible and it's going to be uh no input from the user. So basically if we do it properly we should be able to migrate fast out one to fast out two and one day the users login and they are on fast two but they don't have to do any there is no friction let's say in terms of user experience and all these accounts will be migrated uh with the same data that's

  53. 24:40

    the that's the plan or at least what they told me right now I see that you raised your hand yeah um so I remember like in back in Jutsu like when we were building the IDE so we wanted to add fast but the challenge there was like a we had to kind of use uh that time I think they were using Firebase now you are saying you are going to use odd zero but what if like a as a platform not like a user if I want

  54. 25:14

    to use fast kind of a social login like a can I host in my ecosystem So like let's say I want to host my like a uh instead of depending on kind of odd zero or firebase because the last implementation when I saw that it was like a it's just a social login implementation right it's not like a how I'm just asking because like a if you want there are two type of user one is like a user that are using pass from a side but then there are platform who

  55. 25:52

    want to include fast o as a login mechanism. So have you thought about like this separation of concern and you also mentioned about decentralization if you put uh someone have to have access to odd zero because odd zero is just a you are probably using their API key. So how does that will work?

  56. 26:14

    That's kind of a deeply technical for me uh at this moment. Um I will ask the team. Uh but yeah if I had to guess somehow um I think like on one side we have the MPC that you can still use. Then there is this authentication part.

  57. 26:31

    This is what we are going to um basically delegate to out zero because uh it's more secure decentralized than if we do host that part. uh also in terms of infrastructure and scalability um having this in a third party let's say instead of a in a less professional team uh like our infrastructure I think it's it's more secure uh and in terms of um self-hosting to be honest I'm not

  58. 27:02

    sure uh but maybe you will have the option of you know using the MPC but have your self-hosted version of first out um but I need check with with the team on that. The last thing is like a near already have a NPC server right so it's using for different purpose but like a have you considered using your NPC server to kind of a store those uh the private key or whatever so um so the keys will be stored on the MPC um so the the out zero it's a it's another

  59. 27:39

    component um so that the key will be stored in the new MPC but for the authentication piece is there will be uh some sort of uh usage of this service. I need to to be honest uh let our team in because he will probably give you very easy answers to these questions. But maybe on the next call we can have Adria here or if you like we will we can chat also on Telegram.

  60. 28:06

    Amazing. Yeah. Well, uh we can have uh we hopefully can have them join on the next call and like uh things would be a little bit more settled with a clearer plan for pretty much everyone of of us. And so yeah, uh Sasha, I see that you have your hand up.

  61. 28:24

    Hey everyone, uh I have a question. Uh I'm not sure uh is it related to the wallet selector or one click connect or pass 12 like how do we how do we plan to utilize parties uh as a as a sign in methods like where where shall it uh be done from your perspective? I I I seen that like at near intense, right? And it looks quite cool or could would be nice to have it implemented for the entire system as well. Thank you.

  62. 29:06

    I'm sorry, Sasha, but I heard you very very hard. You were breaking up for me. I don't know if it was just me. Yeah, it's same same for me. I think I actually got the question. Uh so the question is where should login with pass keys live? How how is the the the the flow going to look like? Is it is this going to be like a a wallet selector thing? Is this going to be like a Was that your question Sasha?

  63. 29:34

    Yes, correct. Sorry about the quantity. No worries. I don't personally know the answer but I did get the question. I think um maybe as a as an input I think it can live in different places. So potentially you should be able to just connect fast out for example and just get this as a form of login. Then other option is for example you add wallet selector and then wallet selector may have passed out also included there.

  64. 30:05

    So then you have a wider range of options where you can choose from. Um or you can just add a couple of near wallets for example or EBM or other kind of wallets right so I think this is up to the the product itself or the app itself to to add that uh for example I think on near intense they have pass keys and then they have wallet selector uh among other selectors let's say uh not just the near one um so yeah that's

  65. 30:35

    part of the of the product itself and then one click connect lives on the app ite as well. So for example, if you are on uh near mobile and you click on one the app and you open it and the app has one click connect uh uh supported then you will be automatically connected. So then you don't need to use any kind of other authentication mechanism to start using this the app because you will be

  66. 30:59

    automatically connected with the with your wallet right uh but yeah that that's different levels I think they have some overlapping and this will be very up to the app to define uh what login mechanism they allow. Thanks. Yeah. Um well I would like to thank the both Clemens and Faren for for joining us today and um yeah representing their teams and their intentions. Uh once again

  67. 31:29

    congratulations on your proposals being accepted. We know that it's a heck a lot of work. So good luck and uh I'm sure that uh as my team and the entire community would do our best to support you in your endeavor. um because yeah the the entire uh ecosystem can get a whole lot easier if we solve like those onboarding solutions.

  68. 31:56

    So let's see. Uh and uh with that we earlier on the call we mentioned that wallet selector had a new beta release that's the version 9 well to be released. Uh but also in the previous months there was an update to the uh SDK for rust smart contracts and also there have been some updates on uh the python SDK. So Vlad, can you input us a little bit of like uh what has been going on around at least just briefly?

  69. 32:29

    Sure. Well, um just a quick reminder um this year started like a storm with um us actually having some breakthrough um implementation of Python SDK for contract development on near. So you can finally use not only Rust uh JavaScript, Zigg, C, C++ uh but also Python and actually right after that there was announcement of Go SDK. So if you're interested about that also check out the community updates uh in the chat. uh the uh on the Python SDK

  70. 33:08

    front, I was able to actually actively use it uh for the uh cost what did I do like three or four quests that I created for the community on the weekly basis and uh uh it's in a fairly stable uh state at the moment but we are still exploring better um Uh so it's it is feature complete.

  71. 33:38

    You can use all the uh host functions and uh um cross contract calls whatever you want. Um but we through that experience of using that we identified some pain points and we're trying to address the usability um concerns especially around the storage. Uh so historically just to uh brief you on it uh on in Rust SDK this is our um role model uh has been for a while that we used for all the new SDKs we offered. Uh in Rust SDK you center your

  72. 34:23

    smart contract functions uh around methods uh of a single strct that you define uh in your contract. So you define a strct a strct uh with your fields and then you implement methods uh for the strct. So you do impulse block and those methods will and you annotate it with uh near attribute near uh macro and it will automatically do some magic uh for you and expose those methods as

  73. 34:56

    um uh top level uh smart contract functions that uh users can call. um that uh works fairly well for um uh Rust uh implementation uh for Rust uh developers I would say. But for Python developers looking at such code when we tried to structure it around around classes uh we found some of the um like um magic around using that and defi using those uh interfaces. So let me share the screen so I can maybe uh

  74. 35:41

    illustrate it better. Uh so We actually have this already live on docs and thanks to our amazing DevHub contributors and Yerma leading this effort to um bring it up to speed and also Ricky who contributed to the um to documentation in the first place.

  75. 36:06

    Um so building the contracts quick uh start there is a python uh tab along with rust and javascript um how to install it that's uh not something that we want to talk about it right now so this is how let's start with the rest uh version rust version you wanted to define the strct with the state that will be loaded automatically for you on every function call um um magically and it it it feels like uh your program never is ever running. So

  76. 36:44

    it's uh just never ends and uh you can execute the methods at any point. Um and in uh in Python it would look like this. Uh fairly similar. Uh so you define a class, you inherit it from a contract and then you define the methods uh the functions that will be exposed on the contract level. Uh you define the parameters. So this is all the same. Uh and we had this uh self.

  77. 37:18

    uh concept and we had uh two other alternative versions of it uh using the global storage with a capital uh letter um object that you can interact with. So so far we are not settled on on this API. I find it a bit uh potentially misleading and could potentially cause some problems if this storage collides with the name of the function uh and um many other uh corner cases that uh we discussed. So this is still uh work in progress but there is a lot of uh

  78. 37:58

    discussion going on in the um rust uh sorry in the Python tooling community on telegram. So if you want to join and chapen and contribute there um share your opinion, feedback um that would be very helpful. So I hope there will be a link in the description of the video. Um yeah, I've already shared it here in the chat and I'll have it in the description down below in terms of naming functions but we still have like we do have similar cases similar corner

  79. 38:32

    cases with the rest SDK. I believe you are not able to name your functions new for example or something like that. So uh yeah curious to to know like what are other like common pitfalls that this pattern might implement. If you I I think the main motivation for me to change this uh approach was to was was the was the feedback that I was hearing from many of the developers who couldn't grasp the this concept that we tried to impose

  80. 39:07

    that oh it's just imagine that the program never shuts down it's it's all always there. I think while that is a nice concept uh it it was still very hard for developers to uh grasp and think about it as a like ever living singleton uh kind of thing uh on the blockchain.

  81. 39:32

    So we decided to go with simpler approach which is define the functions. So dev function name um parameters and uh throw a um decorator on it. That's uh those are fairly common concepts for projects like uh fast faster API uh in in uh in Python world and uh what what is what was another one uh flask as well. So micro frameworks for web development um that a lot of developers in Python ecosystem are very familiar with. So we are trying to model it around those familiar APIs.

  82. 40:23

    GMO I know that you have been somehow part of the the talks about this API. Do you want to uh share your opinion or anything to add? But to be honest, I don't think that there's much much more to be said. I'm very excited about this and I am I really like you know this is always like how blood works which is is always open to you know feedback and actually changing things.

  83. 40:52

    So more than saying thank you Vlad and you know and also thank you for those feedback and also kudos to Damian for working on the documentation and and Ricky like besides that I don't think I have nothing else to say. Yeah, mentioning Ricky, I was trying to get him to join this call as well because he simply could not make it to the last one, but unfortunately it was bad timing for him. But I certainly hope and I'm

  84. 41:18

    going to ping him right after this call to save the date for the next one. So we finally see the man himself and he himself to present all the amazing work that he did for the past couple of months. Uh actually couple I think it was like one and a half and we got to this stage very very very fast. So thanks again for the efforts of all contributors and hope to see you on the next call man. So and that would conclude the the near SDK Python and as

  85. 41:50

    I mentioned before we had uh some minor release of the Rust SDK which included I believe some macros and some cleanups. Did I get this correct? Let me quickly open. So uh there was an important release that we didn't cover uh 5.10 10 uh on the uh Rust SDK which added a new attribute that you can add to your function uh when when when you when to to to any of your smart contract function uh to

  86. 42:34

    deny any unknown uh unknown parameters uh that are passing to your that can be passed to your uh function call. Um you may ask why that is let's talk about what it is uh in in the first place. So uh the parameters to function calls in near ecosystem are usually you are not limited uh but usually you can uh you pass them by uh uh passing the JSON uh object and JSON object with the uh fields of the

  87. 43:12

    JSON object matching your uh function argument names. uh if you pass uh anything extra anything like blah blah uh colon 10 it will be just silently ignored. It's totally fine and safe. uh it doesn't affect the execution of the smart contracts in any way and it's uh it's usually uh even good to many of the smart contracts because you can uh potentially have multiple versions of the smart contract and the latest

  88. 43:46

    version would accept more parameters and the previous version would just simply ignore more parameters and then you you your UI will be passing the parameters and it will be ignored which is most of the time it's fine. uh and even uh can be considered as future proof and uh um brings you better compatibility for the future releases.

  89. 44:10

    So you can easily count on adding more parameters in the future without breaking the interface with the old contracts. But there are use cases uh which are uh more um sensitive uh to the uh for the users such as uh um tokens transfers um and uh for example DAO voting where adding ex like if if you pass more parameters uh the contract will be fine but the there could be malicious this actors. Uh some creating

  90. 44:50

    adding more parameters to to your um function call making it look like a legit one. making it look like you are sending the uh tokens to the proper account name but the proper account name will be actually just there as as a misleading name whereas the actual parameter will be somewhere down the line and user may not see it in their JSON object uh when they are reviewing the transaction uh in the wallet or in the on the ledger device.

  91. 45:26

    So to prevent those uh cases, we introduced this uh on the uh SDK level uh you can deny unknown arguments to be passed uh in your functions uh to ensure that only the relevant parameters are uh handled and uh no no garbage uh should be appended uh there. Um this was a reaction to the um uh hack of Gnosis safe project which uh was basically a um uh dependency supply chain attack where

  92. 46:11

    JavaScript dependencies were introducing some uh um fake UI. the UI was showing that you're sending the money to the proper account. the um but the transaction itself that was displayed on the um um on the ledger device was actually gibberish in because it was uh Ethereum uh chain if I remember correctly and it's it's always uh unreadable in in any way but on air the transactions can be

  93. 46:49

    reviewed and we wanted to provide full review power to the users and avoid any confusion possible there. So we introduced these measures uh on the Sputnik DA level. Uh and for that to introduce we we added this functionality to near SDK RS. So pretty long uh explanation where we all started and where it all ended.

  94. 47:16

    But it was um uh one plus billion hack uh end of last year that uh was uh um not properly addressed in New York system either. So we decided to be a bit more proactive. Sasha says learning on others mistakes and yeah well that's a costly mistake and indeed this hack not only this hack but there were many other cases where people have been tricked into signing transactions that are malicious and uh

  95. 47:49

    since all these transactions are gibberish when you see them to to be signed on EVM and probably other chains I'm not quite sure don't copy that uh so a lot of these scams are actually happening So that's a fortunate uh mis like a fortunate lesson to be learned but here we are and um so that's an important uh macro to be added indeed.

  96. 48:15

    So uh I think that for any relevant contracts that are handling large amount of assets or trading and so forth though having such kind of a macro would be a huge plus to begin uh having and utilizing and thanks a lot for both of the updates. And last but not least, uh as I said before, we had Liit around who just jumped in last minute and we are always happy to have around and Zahit

  97. 48:46

    said that he he would be able to uh share some updates of what uh him and his team has been up to. So Zahit. Yeah. So hey everyone, I'm Zahid. Uh I think I'm also in near ecosystem probably almost two years or two and a half years or something like that. Uh but always love to build something interesting. Um so some of you know about the Jutsu was a IDE for boss uh blockchain operating system if anyone remember I know few people know. Uh but then after that get

  98. 49:21

    dropped. So we focused on kind of a mostly AI because of my background. Some of you know like I uh I was in kind of a building AI system in the past. So currently um we are helping uh near AI team to kind of build the TypeScript SDK. So you some of you probably use their Python SDK. Uh, and I'm a kind of a JavaScript builder and I love how easy it is to kind of a build something

  99. 49:54

    quickly using TypeScript. So the goal for that project is uh like how fast you can go from zero to deployment without finding the system. So like a uh if anyone of you used near AI Python SDK so you know like the version like a conflict and how it is how difficult it is to kind of just set up your local environment. So we have currently in terms of progress we have a CLI TypeScript CLI where you can just say

  100. 50:27

    npm install uh near aits and then it will install the CLI and then you will you will say npm create. So it's more like if you are familiar with creating create react app or barcel nextjs app you should be able to do follow the same standard and all the other complexity that come with it we are just abstracting it it's not been easy but like we are trying to kind of a abstracting all these deployment and um like all the other things that you have

  101. 50:59

    to do we are also kind of a uh following uh javascript or TypeScript standard way of like a coding. So you know like a Python have this camel a snake case and then the way you write Python code is not intuitive for TypeScript developer.

  102. 51:16

    So we are keeping all the functionality similar but like a adding more uh familiar look for TypeScript developer. Uh and uh the project will be done um in two weeks. Right now the latest progress is we can uh deploy in um in near hub but it's uh still that thing need to get merged to uh reviewed by near AI team and then when it get merged then you will be able to kind of a um create a full typescript app and

  103. 51:56

    deploy it on near AI. So that's kind of the main thing that we are doing right now. So probably next uh I forget how often you do this thing but like a the next thing will be like if you want to give it a try uh the TypeScript uh SDK.

  104. 52:15

    So uh I want to kind of a ask some community member help to kind of a give it a try give early feedback so that we can continuously improve it before it goes to kind of a production. Uh so that's kind of the where we are and what we are doing and the goal.

  105. 52:37

    Amazing. Thanks a lot for for the blitz uh overview of what you have been up to. Uh we have these calls monthly. So every second Tuesday of the month. So perhaps uh by next month's call we will be able to share more about what we have built.

  106. 52:54

    And uh if you want to get into the sense of uh people to receive feedback uh just make sure you contact us and we'll try to propagate this information create like a group of people that uh we can get some feedback on for you. So thanks a lot for joining uh and then let me just quickly share my screen once again.

  107. 53:21

    So once so that would conclude the call. Once again I would like to thank you for joining today's call. We have these calls monthly. So if you wants to get involved, join and reach out in our telegram group. So you can find the links for it down in the description below. Meanwhile, if you want to be up to date with the ecosystem, make sure you subscribe to the Dev Cup newsletter which goes out weekly. Uh and as a reminder, we also have those DevOp

  108. 53:48

    sessions streamed on all major platforms every Thursday at 4 PM UTC. To get to know about future events as well as other events from the ecosystem, check out the events page on dev.near.org. Thank you very much and see you on the next one.