EIP Editing Office Hour #5

EIP Editing Office Hours · 1 Nov 2022 · 56:34

Meeting 5 of the EIP Editing Office Hour, held on 1 November 2022. EIP editors and proposal authors work through open pull requests and questions about the Ethereum standards process. This meeting covers open proposals in Draft, Review, Last Call and Final status and an open question and answer session.

Topics

From EIP Editing Office Hours, hosted by ECH Institute.

Transcript

welcome to EIP editing office our meeting 5 I have shared agenda and chat in which we have already listed a couple of pull requests actually more than a couple so we will be going through all those pull requests but first we'll like to address uh PRS or eips with authors present I know um there is one proposal that is here for last call the number is eip5496 so maybe we can start from there over to you Sam and anyone joining the call if you have a proposal please list your number here in the chat so we can take that one by one this is the uh correct Eep

that's right yes okay cool it's uh so did every particular questions about it or did you just want to go through it or yeah we just wanted you to yeah go through it like two weeks ago we you had some feedbacks and uh we changed according to your feedback just get an idea sure yeah I'll take a look thank you all right let's take a look

if I look down here there it is all right so let's take a look at the docs for so time iteration should be less than 30 days okay so did you clear up whether expires was a duration or a um deadline or or

um okay yeah we we did so it's time stamp okay yes yes yeah I put the experimentation here okay yeah that's perfect and then we've got uh we'll turn the expiry timestamp privilege yep that's good okay six okay if the owner of this standard energy

should be transfers foreign Ty transfers yeah oh to another user there's no impact on privileges but Iris May occur and there we go when the under tried to withdraw the original token from okay so uh but errors may occur when the owner tries to withdraw the original Eep 712 token from yeah actually yeah you if you want to

use the multiple probabilities you need to wrap that's the deposit your original nft 771 yeah into the yeah yeah yeah um from a whatever something like that so generally speaking we try to discourage uh like linking to your own EIP in the EIP um if that's all right just use this if it's not just use a slightly different wording whatever you think is right oh okay weird functions unwrapping our implementation

okay yeah there's no impact on privileges but charismatic when the United um if any available privilege is still valid or gong ongoing yeah I'm just yeah just ongoing is kind of a it's not specific enough I guess if any available privilege is still like on loan least shared something like that um yeah valid yeah probably about it is yeah ballads all right valid and we protect

the right to the holders of the Privileges by checking the last expired data privilege yep so that's fine so we'll do that [Music] um okay yeah okay the stranders yeah so that seems fine every contract yep that's good the 712 identified this interface is good me now do you define what total privilege

is here or is that just what any privileges change uh yeah privilege total changed okay and then yeah okay foreign so so when you say done here do you mean

that you have a commit that removes these or um just remove that uh prevent it transformed yeah yeah but it like it hasn't actually been done right because it's still here so don't forget to remove it if you you might last the commit I think I already removed the last commit is not successful I think like it's not merged like still it's not yeah last commit already yeah this one

in 99 20 27 90 49e that's just the last one and at the bottom of this list yes and now this area yes it doesn't look like it has that change in here it's not a huge deal I think it just needs to be uh yeah just just don't forget to remove that um that event it doesn't line up with the standard here that's all okay yeah and looks like there cool yeah we will update it right away

yeah sure and feel free to ping me like what like on Discord or or Twitter or wherever you want um okay yeah okay cool did you have any other questions about this one or or uh if not we'll move on to uh whoever the next author is okay is that in no need no question then we're good right yeah sounds good okay thank you okay thank you so the next one we have is five seven seven three sure uh it looks like it is added as review but to me it looks more like a new proposal so maybe you could take a look yeah so it looks like it's draft here so

that that should be fun because all right okay so I guess these are like comments that come out all the time when I'm reviewing eips um and I'm very bad at making suggestions so uh your title and description don't give enough context for somebody who's looking through a list of VIPs to kind of understand what this EIP does so I I'd recommend probably expanding on these a little bit um so

maybe use cases yeah yeah exactly yeah we we do have a lot of that explanation but maybe in the abstract and motivation but we will try to put something there like summarizing the title okay perfect yeah um okay so the multi-resource energy standard

allows for the construction of a new simple clearly defined structure for context-dependent output of multimedia information per single nft interesting so I assume this extend 721 it does okay so another particular multiple resources outputs and orders then by priority I do have a a question about yeah context dependent output uh can you like give me an example of like context dependent is it like formatting of the asset or is it like all the visual well yeah this is the context so it

basically means depending on how you try to access the nft your server you are served a different resource so for example if you open it with an audio book reader then you'll get an audio file if you open it with an ebook reader you would get a PDF file I see I understood correctly then thank you to do okay so you have to make sure okay so um

did you have to imagine mine kept up in your eye you know that depend on one another okay so something I'd probably like to add into the abstract here is how this is actually represented in the contract so like this is just like a key Value Store kind of thing or is it more complicated than that yeah it's a bit more complex uh because in order to to know ways much gas uh we have but we use lists but we also use mappings so yeah we could be more detail here yeah just like um just like a very very brief like

description of how the interface is meant to look so that somebody reading the abstract can kind of get an idea of what a contract would look like okay yeah there's something uh like maybe different we do and it's that we store Resources by ID so we can reuse resources in different tokens okay a lot of storage in gas uh but also yeah that kind of would provide a sample implementation on this but there are obviously different ways to do it so would we explain like how we suggest to do it or um just just what's in the interface generally so like if your design has like a the special feature being able to

reuse these these outputs these resources then you'd want to you know mention that that's possible in your abstract I think okay um that's right yeah I guess that's fine cool and the yourself especially for additional functionalities okay [Music] thank you

what caused my name is not about what can be because okay it's all about the metaverse definition um it is still like vague right because everyone has a different definition about metaverse yeah exactly that's why I'm asking here yeah yeah I think we should do the best part is to actually remove this and make more uh specific samples because there is yeah there's no clear definition of that yet exactly yeah okay so there is actually another EAP

that does something similar to this cross metaverse compatibility um I'm not sure if you guys know about it or or or or are on the team I think it was um uh um there it is so um this one's somewhat similar um it also lets you add specific uh assets and resources that depend on the viewer to your nft um so I don't know if you want to take a look at this one as well I can put it on your discussion thread if you haven't already seen it yeah please uh yeah we will definitely look at it

yeah I think this is actually the third um EIP I've seen that tries to provide different types of assets to different types of viewers so um yeah I'd recommend you know everybody getting together and talking about it at some point because it seems like everybody's trying to solve similar ideas yep of course foreign

and um the comments I'm leaving are are not questions to answer me either to put in the EIP itself um just so you're aware um yeah many please I'm enhancing without best practices okay thank you okay

um excuse me let's stand again and if experience has been collected

usage like a little trademark there that's it's cute and stuff experience has been contained trainer can change is necessary let's see yeah so I would definitely in this section go into a little bit of how this is different from just changing the token URI because I don't think that that's like what you're describing here isn't that different I don't think it's just maybe the fact that the owner can

accept or reject the change but I'm not entirely sure so I'd probably clear that up a little bit in there yeah it's okay it's different we will explain further okay whatever resource is set foreign

proposed okay so if you have a resource that overwrites an existing resource would that admit both resource added to token and resource override proposed or just a resource overlay I proposed it would emit both okay why do you need do you need both or um yeah I think thinking of indexers is feels much easier to to keep track of

uh but maybe well yeah actually we could merge them if we have if we always include the overwrites and it's just zero when it's not trying to override anything and just use the other one the so it's an overwrite like a removing a resource like with the new okay so I haven't read the rest of the interface obviously I'm just going off the events here so bear with me but um so is overwriting a resource like removing an old resource ID and adding a new resource ID or that's exactly it okay so would it maybe make more sense just to have a resource removed and a

resource added or something is we have our next proposed accept mechanism so maybe we could have the override see on the proposed event okay yeah I'm just I'm always nervous about events doing too much because like if the code that emits the event has to like be aware of like whether it's removing something or adding something and then there's a lot of gas to calculate that so or there might be a lot of gas to calculate that so I I don't know I just I'm always leery about that so I I you you can feel free to ignore I'm not like an expert on solidity or anything but

yeah okay so let's go we'll take a look yeah so just a question before you will continue on I don't forget uh regarding the this uh emps that also try to address the multi-resource problem uh we will of course take a look at them and review where we are different so where should we put that in can we like specifically name like this is different from EAP uh X on this or how how should it be so um if you specifically they'll so you can be like uh you know this this EIP differs from other proposals because and then put some texts there you can link to other eaps if you want but if your EIP let's say you know goes like you're

trying to go to final um and the other EIP is still in draft your EIP will be blocked if you directly link to it so I I recommend just avoiding linking to it directly but you can definitely say something like you know we're different from other other proposals because and that's fine okay that's a great recommendation thanks yeah I think if you can actually State the key differentiators and the functionality that would be uh you know visible to everyone okay perfect all right just give me one sec sorry okay so we sort of written

okay because that's the resource from pending resources okay so is this a um like a race condition if uh like let's say I don't know I don't know if this is possible it just bear with me for a sec but let's say two people have the like let's say you have an approval on your token for somebody else and the operator and you both have uh permission to accept resources if I send a transaction accepting a resource and it reorders the array and the operator uh sends a transaction accepting a resource and it

also reorders the array would that cause like the wrong resource to get approved uh so they are both approved uh but yeah yeah you're right actually if both try to approve the same one uh maybe you we will be accepting an additional one exactly yeah not intended yeah this is a really good point so put a note for that on your discussion thread one thing we've thinked off uh because we I kind of seen this uh um as to pass the idea of the resource

you're trying to accept we pass here here the index because uh the resources like that we have a list of pending resources which is what is a list so you need the index and so you don't have to go through it looking for an ID which is more expensive but we could also pass the ID just to to be extra safe that when once it finds the index it's actually that resource that is expected to avoid these race conditions so the second one would fail because the one the resource you want to accept is no longer in that index completely off chain like could you use like a 712 signed permit data that the like contract owner would provide and give to the owner off chain and then the owner

provides that con that that signed message and the approval so that you don't need to keep track of it on chain at all not sure I need to to dig on that sure if you would like an example the die like dai's permit function is it would be similar okay okay we'll take a look thanks what was that called it was accepting resources foreign

give me one second I'll be right back sorry just need to go and deal with something all right I'm back sorry about that all right um foreign

so that removes it from the pending array yeah so that like doing it off chain would be so nice um because you wouldn't have to maintain this array of changes you wouldn't have to worry about um like out of out of order transaction executions I think like if if you can do that approach with a signature instead of a um array of pending that that might be really nice uh rejects our resources yeah so reject our resources clears everything again there's probably a race condition here as well because you might clear something that gets added and you didn't mean to clear it so I'd be careful of that maybe just do a list of resources um get a priority so this is more intended to avoid a pump

because uh oh I see yeah because maybe maybe you'll have a lot of resources although this is there's actually not a problem here uh because only the issuer into the full implementation like we expect only the issuer of the collection is supposed to send tokens so it would be weird if he was spamming right but yeah yeah this is also a possible race conditioning right um um okay so the priority is like if you have

two Resources with the same ID pick like the one with the higher priority is the one that's returned first or no oh you cannot have two Resources with the same ID but you can have multiple resources so by default a Marketplace for instance would look for the one with the highest uh priority oh I see so it's like if they're so the marketplace let's say it can't render 3D models but it can render images if the first priority is a 3D model it would move on to the priority two yep okay interesting you'll find the highest priority which which matches what you're looking for what you can display foreign so I've seen it before that these kind

of functions here um often take a length and a get index and I think it's because if uh like like that lets you do pagitation um I don't know if you want to maybe look into that or not I'm not going to make a comment about it but it might be worth looking at um yes it might be necessary on active resources because we limit the size of pending resources but active resources is unbounded so if the laser is too long you might get out of gusts okay so that's also very all right thanks which was the Earth Resources that would be offered except for the penny where

you surrounds with yeah so this this one also seems a little weird because [Music] um so this is looking in the pending resources right this function get resource overrides not exactly when we add a resource and and we are trying like that resource intends to overwrite some other one uh it gets stored in a different list or actually mapping of ID to ID to be replaced so this is uh how you would get like if you accept this resource ID on this token what would it be replacing uh can you can you not have multiple

um like overrides in the pending list or [Music] um so multiple resources ID could be uh pointing to replace the same one but you cannot have multiple times the same resource ID on the pending or on the active list for a token okay so so yeah so you can't so you're saying you cannot have two different pending updates that update that overwrite the same resource right okay that makes sense so wait not actually not this can happen What cannot happen is like you have this

two times the same resource trying to overwrite something so that would be a problem because this mapping is token or resource ID and I would have two keys for resource ID but that's not possible what can happen is that two different resources like two different resources on the same token are proposed to overwrite the same one so in this case oh this is the new so this is the new resource ID not the overwritten resource ID exactly that makes sense so in this case uh the first one which is accepted would override the other one and the second one it would just ignore the override because it wouldn't find the the one to to overwrite yep I like it thanks

here we go we're trying to meditated the resources associated with research ID okay okay so I'm hoping this is defined okay so the spec ends here and this isn't defined so um okay infectious resources for

pedestrian's research data foreign experience

okay so foreign fields

um racism started with it okay that's fine foreign foreign

projects that are already using this interface they also use other interfaces we plan to propose in the near future is that a problem or should it be like a project that only uses this it should be the smallest possible implementation you can if you can get it down to just like one solidity file that's like simple that would be best okay Yeah we actually have that one too okay perfect examples of like projects and real projects using it yeah so the reference implementation is more for like if somebody wants to understand how the spec works so it's good to just have something really simple and small if you can okay

okay okay

okay cool so that's that's pretty much it for this one um hopefully that's some useful feedback um I'm not the the best of solidity um this is huge help some thank you very much I have another question or one of course we have it's uh it's a standalone contract that could be used uh to to query any other uh any contract that implements this EIP how should we handle that should it be like Annex because

it's not really an extension uh so that's that's um yeah this one render utils okay yeah so um do you expect there'd be multiple implementations of it or just a single implementation of it uh no I think a single single implementation would do okay that it doesn't need to be an EIP then so you can just make it to put it up on like a website or or um like try to get it into open Zeppelin maybe or anything along those lines um but it doesn't need an EIP if there's only going to be one implementation of it okay thanks and thank you very much for joining no

problem thanks for proposing it's uh I I don't know much about the NFP space but it just seems to be a problem that a lot of people are working on so I'm happy to see people working on it yeah we actually plan to propose another two one for nesting and one for equipping and all those three work together very nicely and oh perfect it's a bunch of possibilities so there is another EIP um that's about layering svgs together on chain um and I think the use case was something like you could equip items onto your character and the the um items would appear in the thumbnails um not exactly related but I think

they're working on a similar kind of problem so um take a look out for that EIP I don't remember it offhand but uh yeah we've seen a couple we've seen one which has nesting from like child School Parents Club and also for years to 20s and that one I think I saw it but it's limited to svgs so when we suppose we will make sure to to clarify these differences perfect well so um do you think there'd be any value in getting uh all of the people who are working on these nft composability projects together to talk about it is that is that something you'd find useful or yeah yeah of course okay I'll I'll see if I can organize that or maybe Puja you can look into it but yeah we will look into that we talked to a couple of

other proposals of NFC [Music] awesome thanks so much thank you thank you all right the next one that we have here is five eight five seven sorry um Felix do you have any question or anyone yeah quick question from from Jeremy yeah I came back to the 5496 system sorry Sam to interrupt you oh no worries yeah yeah uh back to the file you just point out that you see someone still there uh or I can share my screen is that impossible yeah it should be yeah okay

yeah let me stop this [Music] yeah can I see my screen yes looks good oh yes because you just point out this is the line still here right you can see if I click here to View files ready to jump here you see there's no probability transfer but I think the property is not I don't think this merge into the main branch there right here's the membrane so you can see this one still here is that this is why you still see that one or

anything I missed so impact from here yeah you see these lines they're here right but I think yeah this is my problem tonight and that's my commit right here let me look into this a little bit I yeah yeah the question is we already committed committed the new file but it's the submit doesn't probably doesn't is not merged and that's why I probably didn't see it and but we don't know why yeah okay so 54.96 and that was in the

texture yeah IRC okay so that's in the assets directory um 496. Sam uh if you're aware it's fine I just wanted to let you know we can't see your screen anymore yeah yeah I'm just digging through git right now there's nothing super interesting okay that's all good and yeah there was another proposals author uh joined in the call today um so we can if possible we'll take it today otherwise we'll have it on the following week uh but karang and uh came Raj if you have any specific question

that you can uh type it in the chat in the meanwhile while we are looking into 54.96 here please go ahead uh so so before we jump to that um so on on the um privilege transfer thing and get I have no idea what's going on there I will I guess take I'll try to do the review on my computer it might have something to do with the fact that you're using the master branch on your repository but I really don't know I'll I'll look into it thank you thank you Sam okay uh so I have shared the number here five eight five seven Sam for the next discussion five eight five seven

oh this one right here okay cool let's dive into this yeah ASAP hey can you guys yes how's it going good good oh this is this is a nice short one I'm I'm happy with shorts yeah okay so um yeah this time it's not intentional there we go share yeah so uh we haven't like made through changes to our VIP and that PR is much and now we want to take this from draft to real estate so that's the first thing all right so let's just see the full file here

foreign okay this is actually remarks seems like it's solving a remarkably similar problem to the previous proposal um where each item has platform specific data associated with it okay

okay oh sure sorry uh can you hear me now yeah okay so this seems similar like very similar to the previous eipers reviewing um because I guess the idea of this one is that each platform gets its own um specific information about the nft the only difference is that this one is implemented as like sub nfts and the previous one was implemented as like metadata on the same nft yeah yeah it's interesting yeah but like that could be a case like let's take an example like multiple met office has their own contracts and the nfts so just having 150 I'm not sure the code

like those nifties can be used in multiple on multiple platforms because sandbox will not allow decentralize the Central and empty right yeah I think this one would probably work with less support from the like vendors whereas I think the first the the previous one we're looking at would work better for like if the vendors are on board so uh I'm going to assume that do do either of you authors work on a platform that renders nfts in-game cool all right I'm glad that there is at

least someone uh on on the the rendering side that's also working on this stuff so that's good okay um okay so that looks fine uh foreign okay yeah I have no problems with this

it looks like it's ready to go into review so um I assume you're aware we're going to say it anyways um so the review process is up to you you need to go out and find people that you think are relevant to review the CIP get them to comment on your discussions thread and you know try to come to a consensus on what the best implementation is and then when you decide is ready to move to last call um that's up to you guys to to make the pr to do that okay okay yeah how long does it stay in the review

please um foreign usually too long I think um but not the fault of the authors that's usually my fault I don't review very often but um yeah leave it here until you are relatively confident that you have solved the problems in the EIP that anybody else who might be interested in implementing it has had a chance to comment on it um usually this is a good time to build prototypes and Integrations because the review the review status kind of indicates that the EIP is mostly done so it's safe to start implementing so

yeah I guess try to get some implementations going and uh socialize it with other people who'd be interested in and would be using it okay all right so we are almost close to a time but if we have time to take one last one um maybe we can take the one proposal which is uh ready for moving into final that is two six one two and the pull request number is five seven eight two we do not have the author on call but looks like he has done whatever was requested by another EIP editor okay ah why didn't I merge this that's

fine I guess um so it's approved and why does this need to be manually merged because it's failing that why is it failing that foreign this is totally fine to merge all right thanks for coming out everybody I hope I was somewhat helpful in answering any EAP related questions um feel free to come back if you have any more and we'll see you in two weeks thank you Sam thank you yeah and just

one important reminder for everyone it's going to be at 1500 UTC especially for people living in the United States because we are hitting uh Daylight Saving next week so the next meeting will be at 1500 UTC please be sure to be there in according to your time zone thank you for joining have a good one and thank you Sam for all these hard work here have a good one