Contract Standards Working Group Meeting – November 18, 2022
Nothing is loaded from YouTube until you press play, and then without tracking cookies.
About this video
The second NEAR Contract Standards Working Group Meeting!
Today the working group covered some of the recent NEAR Enhancement Proposals (NEPs) and voted to approve NEP-276, an extension proposal to the Payout NFT standard.
Chapters: 00:13 Agenda 00:39 Update on Developer Governance and the NEP process 03:55 Introductions 06:30 NEP Discussion: NEP-200 08:36 NEP Discussion: NEP-249 10:23 NEP Discussion: NEP-276 14:01 Voting 19:42 Q&A 21:37 Getting Involved
Learn about Developer Governance: Website: neardevgov.org Twitter: / neardevgov NEP Process: https://github.com/near/NEPs/blob/mas...
💬 Join the Contract Standards Community Group: Telegram: t.me/nearnft
Review the NEPs from today's call: 👉 github.com/near/NEPs/pull/200 👉 github.com/near/NEPs/pull/249 👉 github.com/near/NEPs/pull/276
Join NEAR's community: Website: near.org Reddit: / nearprotocol Discord: near.chat Medium: / nearprotocol Blog: near.org/blog Twitter: / nearprotocol GitHub: github.com/near github.com/nearprotocol Dev Docs: docs.near.org Create a wallet: wallet.near.org/create Apps on NEAR: awesomenear.com Learn to Build On NEAR: near.university Grants & Funding: near.org/grants #Blockchain #FutureisNEAR #NEAR #nearprotocol #nft #dao
Transcript
3,765 wordsCaptions as YouTube publishes them, usually machine-generated, so product and people names can be misheard.
- 0:03
good morning hi everyone my name is Ori Applebaum and I'm super excited to welcome you to The second contract standards working group meeting so just to go over our agenda today first I'm gonna do a quick overview of developer governance then we're going to do brief introductions then we'll jump into the main discussion which includes some recent naps that we took a look at as well as the main one that we want to
- 0:28
formalize a decision on which is payout and if the standard extension and then we'll open it up to q a and lastly talk about next steps and how you can get involved so just to go into developer governance updates uh for those of you who may not be familiar we've been engaging with the community over this concept uh for the last few months and really this is about decentralizing nearest development and empowering anyone in the community to contribute to evolving the ecosystem and we've been bucketing developer
- 0:59
governance into three areas or stages I should say ideas voting and implementation and just to go into the ideas basically anyone can submit an idea for improving the the protocol of standards and it starts with the community from individuals to uh to groups and there are several Community groups that have self-organized around various topics and they have been meeting and coming up with ideas and submitting next and
- 1:30
that's really cool and you're welcome to join any of these Community groups or start one yourself and once you have an idea yeah you can submit it through a net in your enhancement proposal and this is a similar process to other open source projects like rust and basically we've introduced working groups in the voting stage which allows them to basically take a look at these naps help move them
- 1:56
forward make decisions and we've we've picked several subject matter experts to stand each working group and already bootstrap this process and had recent meetings and yeah very excited to be doing that today with the contract standards group so just to highlight the roles that are involved in case you're not familiar there are four key ones author moderator reviewer and approval the author is the person who writes the nap and presents presents it here in the
- 2:28
call the moderator is the person who facilitates the the process and helps ensure that MEPS move forward reviewer provide technical expertise and just make sure that you know the net is viable and then the approvers are the working group members who make the final decision and they do that through this process that is outlined in nep001 it includes three stages draft review and voting and two outcomes approved and
- 2:54
rejected and most of the activities in this process happen asynchronously like on GitHub except for the voting stage which is what we are doing today that's when we schedule an actual meeting with the author and the working group members to formalize the vote so just to touch on the last stage implementation this is an area that we're still actively developing but the idea is that once an app gets approved we want to be able to enable anyone whether it's the author or somebody from the community to actually implement it
- 3:25
and so we're currently working on an overarching Dao which will be responsible for funding distribution from the near foundation and other orgs and there will be more information coming soon so just again to put it all together we have Community which submits ideas using apps working groups which vote in those naps and help them move them forward and then implementers who Implement them for the benefit of the community
- 3:49
so with that super quick overview I'm going to jump right into today and do the introductions so first I'd like to welcome the working group members and introduce them so I'll hand it over to Marcelo yeah thank you Eddie uh hi everyone uh again uh I am Marcelo from from Aurora I've been involved in your community since uh probably for years now and yeah looking forward to see uh like make this uh built in heaven my name is I am
- 4:28
working at Pagoda for more than three years and I'm working on the core protocol and cryptography at in near and hey everybody uh I'm Vlad I also work for God and joined quite early on and I've been involved in developing the Explorer and the indexers so we have and well I helped to shape some of the Naps previously and I'm happy to be part of the working group members these days so thanks everybody so just uh moderator in
- 5:06
the process today is myself so I already said hello but just hi again and excited to be here and now I'd like to move it over to the author of the nap that we have today William so hi William hi I'm Willem I used to work at UH Pagoda well before it was Pagoda and now I have a company called aha labs and we develop uh develop tooling for near and now with the new grant for uh sorbon Stellar's near the VM Charles also in wasm so
- 5:37
um I've also written probably the most popular uh nft contract for launching collections and um that's how I got involved with this NEP because I was one of the first to develop what the payouts or use the payout standard and so this NEP is just trying to fix some issues that I found with it and um you know my implementation is probably the most widespread so it doesn't match the standard so I just wanted to you know have parody later
- 6:09
well welcome William and we're super excited that you're still actively participating and and contributing and we're excited to get to that next discussion in just a moment so cool before we do that uh we're going to start as I mentioned with the other two recent maps that we looked at and I'm going to hand it over to Vlad to talk uh through them so let's start with NEP 200 so yeah just a little bit of context so
- 6:35
as already mentioned we actually started this developer Gardens not so long ago and it's all only the second call for this group and we were actively looking into the backlog of different proposals that were sitting there for too long to be honest but it's it's still the time to uh to address them and this was the nap 200 which suggested to extend the nap uh nft nap 171 the the the proposal was to add three new methods into the the reality
- 7:19
that we first of all lost the momentum when it was proposed the second we haven't seen any demand to have those methods and if we introduce them these days we would need to arrive to some migration strategy how to how to make sure that all the new contracts can reliably work together I mean the the old wouldn't be hurt in any way but the new ones adding those methods uh would not have a huge help because the
- 7:53
um from the user's point of view they would need to account for the chance that these methods are not implemented there so overall uh together with the author we decided to reject this map and keep it in in the Box uh and but still like if if you want to pick it up feel free to follow up with the discussion it's all we try to communicate everything on the GitHub pull request so if you think that you can improve and propose a new nap please go ahead and do so
- 8:32
so let's move to the next one so the next snap that was proposed quite some time ago was about adding in a standardized method called ft mint to the fungible token contract for fungible token standard uh and the the reason we rejected it is to fold first of all the main purpose of that method was to introduce observability uh from the outside world like indexers to notice that something
- 9:07
some new tokens were minted this was actually addressed with later in time but quite some time ago as well they through the fungible token Json events which are already implemented in in the standard sdks and the second reason for rejecting this proposal is that the there is usually no standard way to mean tokens they are usually minted when the contract is created on initialization you initialize you mint the initials total Supply
- 9:48
and then after that rarely there is like a standardized way to meet new tokens so this was the was discussed extensively in the comments and we agreed that together with the author as well that it's not needed anymore and we closed it with the rejection so now we are coming to the uh more exciting news and then this nap 276 right and I I'm passing the stage to William who is the author but
- 10:27
yeah so um basically this was an extension of the nft transfer um API and and I noticed when I was implementing it that that was missing the memo uh parameter which meant that internally the you would always pass none now I haven't used memo in any of the things that are you know I but at the same time this is you know it should be used by any uh you know third party that's trying to facilitate a a sale so if they want to use a memo for whatever
- 10:58
reason this this allows them to do it um I also uh the the max uh Lynn method was uh also required um with the idea that you know this contract would uh not allow a certain number of payouts uh and fail but um I think that that's also a little too strict considering that you know the contract itself will understand the the run out of gas if that's an issue and then have a fallback so you either fail because of that option or you fail because of gas but they have the same result
- 11:38
and I guess I guess that approval lady became optional right well uh did that change too I guess so yeah um well I guess that is that also optional on the nft transfer Yeah so basically reflect reflect reflected the state of things there okay cool so let's uh go to the next slide and I will take it from here I I wanted to summarize the benefits of that I identified when I was reviewing the the snap that we finally resolved the misalignment of this method which should be very similar to nft
- 12:20
transfer in Ft transfer call uh as William already mentioned memo was missing approvalid he was required which shouldn't be and the Max land was not always useful in all the cases so it's great and this there is no breaking changes there is no system Fork so I think it's safe to move forward and if we like if we would talk about the blockers and potential concerns uh I haven't found any uh that are still
- 12:57
outstanding so um I think it's uh overall all good to move forward to the voting stage right already yeah unless there's anyone else that has any concerns that they'd like to surface so okay I see a comment from Nate and I'll read it one technicality that William pointed out the assert one yokto should still exist as hashtag payable only specifies that you can attach near to a function call everything else looks good
- 13:36
yeah that's uh I I added the payable back and that that's still um you know uh yeah the change was rewarded and like now we are all good yeah thanks for mentioning Nate yeah thanks Nate Nate says neat so I think we're good to continue unless anyone else has any other comments cool all right so now we are coming to the final uh voting stage and I guess I would like one of the working group member to maybe uh present a decision on
- 14:11
behalf of the group or if you each want to speak individually that works well uh yeah I'd like to take a word here but uh I I well I want to ask Marcelo and you need to maybe just also chip in and waste their decisions out loud so we are like kind of have the the Quorum here um how do you feel guys um yeah thank you Vlad um I myself have uh read the snap I'm not that involved in the development of smart contract using this standard but it kind of under understood the description and I think this is a pretty
- 14:50
easy decision that it's mostly improving and have no drawback so yeah on my side I'm uh onboarding yes um so yeah thanks Marcela you're gay I'm also voting yes mostly for the same reason that were already mentioned here it makes the IPA more consistent and it doesn't it doesn't introduce any new real functionality it just makes the API more consistent and it doesn't have any downsides that they could share
- 15:31
yeah totally agree thanks Phil for like fixing this misalignment for sure I feel like this is a small but yet very important uh nap to to make sure like like the standards are clear and aligned and uh useful and also reflect this the reality that we have as you said in the most used uh implementation out there so I was supporting for yes uh merging it right moving forward right yeah I wish we had this process
- 16:04
when we first wrote the payout because I don't think this would have fallen through also the one thing that I started out when I wanted to with this NEP was to you know Paris at the time was just using a hash map to represent the the payouts and uh but the the standard says that that the hash map should be embedded inside of a struct um but then as Nate will attest to the mint base it already
- 16:29
uh used that because it was in the standard so they didn't want to have to deal with two different data types so we're stuck with the it's extra wrapping I see a c well it's good to know that we we recognize that there is potential breakage of the ecosystem if we do certain sharp moves and yeah yeah and there should be like more eyes on on a standard before it you know gets uh widely spread because then yeah thanks
- 17:00
yeah so very exciting so I guess uh I heard we formally are voting yes to approve this move forward so we can definitely uh after the meeting uh add that to the nap and take the next steps speaking of the next steps let's talk about that Yeah so basically I noticed that there is already Implement uh implementation submitted to near SDK arrest which is almost ready I I think uh and
- 17:29
the only missing bit is just addressing the remaining comments uh this is quite an old PR it's from April this year and uh I'm not sure like how we'll address it um given that the author could have potentially moved on so if you if somebody who is watching this or like willing to take it on it would be awesome to to see this follow-up from the community uh JavaScript SDK seems to be not having
- 18:02
um support for this at all like at least at least I haven't seen the it's in the pull request State um but given that the structure the project is almost identical maybe it's it's not that uh problematic to Port it once the rust version will be there so I'm definitely encouraging um Community to chip in with with the contribution to those is the case and the in terms of like next steps from our from the working group point of view um Ori and I serene's moderators for the
- 18:42
naps and collect process will need to merge this pull request and making sure that we have all the meeting notes and summary of the decision recorded there so just FYI we're keeping track of all those things on GitHub is our single source of truth truth so you will find if necessary all the references there I don't think we we need to do anything like beyond that I think this nap will
- 19:15
be adopted well is already adopted as Lily mentioned uh implicitly through the implementation on the contract side um but we can also like add it to we still I think should add it to the SDK so it's more widespread um cool um awesome yeah so I think now our next step is just to open it up to q a and I already see that Albert posted something so we can look at that but also what I
- 19:49
want to add is uh if you have any feedback on the process uh and just how we can make it even better we'd love to hear it as well so yeah we encourage anyone to speak up you can either type in the Q a or in the chat or request to speak and we can let anyone do that so yeah let's start with Albert's uh first uh Point here which is I would love to help with the JavaScript libraries I'm not the best java Dev but I'm learning and growing let me know how I can help
- 20:20
yeah I can probably take it from here I guess all the contributions are welcome for sure uh please follow up with the near SDK GS repo and start from learning from there how like the nap 171 was like smart non-fungible tokens is implemented there and consider adding also inspecting how it's done in in Rust SDK this uh pull request that I just mentioned and maybe just Port it almost file by file into it
- 20:59
and see how that goes but I think it's uh it could be have a lift for somebody who is just starting uh with with like learning JavaScript um but yeah I'm encouraging and I would love to see you succeed for sure any other questions do we have or feedback it's like no no other questions okay cool all right so just to touch on more ways to get involved in addition to uh Albert's uh comments so uh I want to say that there are many ways to get involved
- 21:44
and as Vlad mentioned we just recently kind of started uh developer governance and and this process so very much we're bootstrapping this and we're open to feedback but let me share some of the ways that anyone uh can get involved so if you have a specific idea in mind uh we absolutely welcome you to author and submit a nap on GitHub you can check out the net001 Just for information and best
- 22:09
practices or you can talk to William who who's just went through this process and can probably share uh insights the other thing you could do is discuss upcoming next uh so just join uh discussions that are happening uh here are some open contract standards and apps that are in their review stage that are probably going to be good candidates for uh close to decision uh stage so please take a look at these and then oh wait I see a question let me
- 22:41
know Albert just asked let's say I need help with something if I had a question on the library who can I contact is there a form you can always ask questions on Discord but I think opening an issue or discussion on the relevant repos the best way yes or there's a really good vlogger sorry we're gonna say something uh yeah I was saying that totally second that uh suggestion to follow up on the relevant people
- 23:16
yes or if if you maybe uh have an idea or you don't necessarily know exactly what you want to build you just want to discuss something in an early phase another great way is to join Community groups as I mentioned earlier on the call and there's actually a telegram channel for the near contract standards community group it has about 141 people as the last time that I checked uh so
- 23:40
feel free to join that telegram Channel but also to you can start your own community group if you have a topic uh in a different area Albert Rhodes thanks a lot I will follow up on repo can you send a Discord link too do you have links to these groups perfect thank you bye for posting that uh then the other thing I wanted to mention is you can join other working group calls and I just wanted to put a plug for the next working group meeting which is happening this Monday it's the protocol working group and we're going
- 24:11
to be making a decision on net 366 which is meta transaction so if you're interested the link is over there and also I will share another URL that's a little bit easier to to copy and paste actually let me copy this and put it in the chat so yeah and this is the general link so near.org developer governance has information about everything we discussed and the ways to get involved and we also recently launched a Twitter account near devgov so we encourage you to follow that and and over there we'll
- 24:45
be posting about more naps and more meetings in the future so this brings us to the end and I want to say a huge thank you to William for submitting the snap and for taking the time to come here to discuss it with us and with the community and also for the working group members who took the time to review it and give your your your thoughts and to the community and those who attended it's really awesome that we're starting to make progress and hopefully we'll continue to do that so
- 25:15
thank you all take care