-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nep-393: add class metadata interface #528
Conversation
Your Render PR Server URL is https://nomicon-pr-528.onrender.com. Follow its progress at https://dashboard.render.com/static/srv-cmp9unuv3ddc73f65bk0. |
Thank you @robert-zaremba for submitting this NEP extension. As a moderator, I reviewed this NEP and it meets the proposed template guidelines. I am moving this NEP to the REVIEW stage and would like to ask the @near/wg-contract-standards working group members to assign 2 Technical Reviewers to complete a technical review (see expectations below). Just for clarity, Technical Reviewers play a crucial role in scaling NEAR ecosystem as they provide their in-depth expertise in the niche topic while work group members can stay on guard of the NEAR ecosystem. The discussions may get too deep and it would be inefficient for each WG member to dive into every single comment, so NEAR Developer Governance designed this process that includes subject matter experts helping us to scale by writing a summary with the raised concerns and how they were addressed. Technical Review Guidelines
Technical Summary guidelines:
Here is a nice example and a template for your convenience:
Please tag the @near/nep-moderators once you are done, so we can move this NEP to the voting stage. Thanks again. |
I would like to ask @fadeevab and @KazanderDad to review this PR. Both provided valuable comments and reviewed the #393 . |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Recommendation
Fix the broken references in the documentation, typos, and wording.
Benefits
Overall, the patch is not complex, everything looks fine.
Concerns
# | Concern | Resolution | Status |
---|---|---|---|
1 | Broken references after renaming the struct | Fixes suggested | Done |
2 | Wording and typos | Fixes suggested | Done |
Co-authored-by: Alexander Fadeev <[email protected]>
Thanks @fadeevab . I've applied all suggestions. I'm not sure if we should use |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All suggestions are implemented, table updated: #528 (review)
As a SME I've reviewed this NEP and find that it fills a useful purpose. It clarifies some of the potential points of confusion for anyone wishing to implement SBTs, including some that I ran into myself when deploying a new issuer recently. I might suggest rethinking the hashing requirement of Base64 encoded SHA256. While we can recognize that this - if done right - is a little more compact with 44 characters; it is not a commonly available method and the risk for implementing wrong is high. Casual users who try to find online SHA256 hashing tools will almost exclusively find tools that instead output hexadecimal characters, resulting in a 64-character string. A very likely risk is that they will attempt to Base64-encode this string (instead of the binary), resulting in a much longer output than intended, and resulting in a lot of confusion. A more usable requirement might be "a SHA256 hash expressed as a hexadecimal string" |
Base64 is used in Near more often than hex. I think we are fine with base64. Moreover it is also recommend for nft metadata |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a Contract Standards Work Group member, I reviewed and lean to approving this NEP. That said, I believe we reached the quorum here to approve it, and since it is just an extension to the existing NEP, I suggest we go ahead and merge it.
@robert-zaremba Please, update the CHANGELOG section with 1.1.0 version summarizing the change and the decision.
Changelog added. |
NEP Status (Updated by NEP Moderators)Status: Approved SME reviews:
Contract Standards Work Group voting indications (❔ | 👍 | 👎 ): |
In #393 we defined Issuer (an entity authorized to mint SBTs in the registry) and SBT Class. We also defined Issuer Metadata and Token Metadata, but we didn't provide interface for class metadata. This was implemented in the reference implementation (in one of the subsequent revisions), but was not backported to the NEP. In this PR
SBTContract
toSBTIssuer
. The original name is wrong and we oversight it in reviews. We talk everywhere about the issuer entity and issuer contract (even the header is SBT Issuer interface).ContractMetadata
toIssuerMetadata
.ClassMetadata
struct andsbt_class_metadata
function to theSBTIssuer
.