-
Notifications
You must be signed in to change notification settings - Fork 5.3k
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
Submit EIP-4973 - Account-bound tokens #4973
Conversation
All tests passed; auto-merging...(pass) eip-4973.md
(pass) assets/eip-4973/src/ERC165.sol
(pass) assets/eip-4973/src/ERC4973.sol
(pass) assets/eip-4973/src/ERC4973.t.sol
(pass) assets/eip-4973/src/interfaces/IERC165.sol
(pass) assets/eip-4973/src/interfaces/IERC4973.sol
(pass) assets/eip-4973/src/interfaces/IERC721Metadata.sol
|
@SamWilsn I've addressed all your comments and generally edited the text such that it now complies better with the structure outlined in ERC-1. I've also now renamed it finally to ERC4973, the number of this issue. Please let me know how to proceed. |
Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com>
Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com>
Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com>
Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com>
Updates from 2022-04-18:
|
Co-authored-by: Micah Zoltu <micah@zoltu.net>
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.
I think the remaining comments can be fixed while this EIP is a draft.
--- | ||
eip: 4973 | ||
title: Account-bound Tokens | ||
description: A standard interface for non-transferrable non-fungible tokens, also known as "account-bound" or "soulbound tokens" or "badges". |
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.
I'd recommend removing "standard", but I think it's fine to leave in for the draft.
description: A standard interface for non-transferrable non-fungible tokens, also known as "account-bound" or "soulbound tokens" or "badges". | |
description: An interface for non-transferrable non-fungible tokens, also known as "account-bound" or "soulbound tokens" or "badges". |
Co-authored-by: Pandapip1 <45835846+Pandapip1@users.noreply.github.com>
No idea why CI is failing... kicking to try to resolve it. |
CI is failing with this error, but that file does exist so I'm not sure what the problem is:
|
If someone can help me track down exactly why CI is failing for this that would be super helpful! Maybe there is some non-ascii character somewhere or something? |
Co-authored-by: Pandapip1 <45835846+Pandapip1@users.noreply.github.com>
Head branch was pushed to by a user without write access
* Add EIP-1238.md * Rename from 1238 to 4966 * Address feedback from PR * Change name from 4966 to 4973 * Fix header property order * Remove 79 character manual word wrapping * Fix syntax error for incomplete link tag * Remove Caveat section (for now) * Clarify standards text * Run through grammarly * Update discussion link * Update EIPS/eip-4973.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> * Update EIPS/eip-4973.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> * Update EIPS/eip-4973.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> * Update EIPS/eip-4973.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> * Relicense to CC0-1.0 * More copyediting * Rename from "Soulbound" to "Account-bound" tokens * Add section on "Exception handling" * Add section on revocation * Update EIPS/eip-4973.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> * Rename to 'Account-bound Tokens' * Correct co-author section * Correct TLA from non-sensical 'ACT' to 'ABT' - ABT stands for "Account-bound token" * Remove superfluous, explicit interface definitions * Add 'Naming' section * Consistently use EIP-XXXX format * Remove reference to badge concept * Correctly apply camelCase in tests * Update reference implementation - Vendor all third-party code (OZ) - Allowing to mint to third-party address - Rename `_bonds` to `_owners` - Fix TLA from ACT to ABT - Fix ABT name in tests * Replace `event Transfer` w/ Attest/Revoke * Fix username prefix in author field Co-authored-by: Micah Zoltu <micah@zoltu.net> * Fix broken link to eip-721.md Co-authored-by: Micah Zoltu <micah@zoltu.net> * Fix typo Co-authored-by: Micah Zoltu <micah@zoltu.net> * Fix link to reference implementation Co-authored-by: Micah Zoltu <micah@zoltu.net> * Update EIPS/eip-4973.md Co-authored-by: Pandapip1 <45835846+Pandapip1@users.noreply.github.com> * Update EIPS/eip-4973.md Co-authored-by: Pandapip1 <45835846+Pandapip1@users.noreply.github.com> Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> Co-authored-by: Micah Zoltu <micah@zoltu.net> Co-authored-by: Pandapip1 <45835846+Pandapip1@users.noreply.github.com>
@TimDaub I think it would be good to have hooks _beforeTokenTransfer and _afterTokenTransfer (on _mint and _burn) for extensibility (to allow extension like ERC4973Enumerable to be build in the future), like on ERC721. |
@inso- I recommend commenting on the discussions-to link in the EIP so your comment gets appropriate visibility. |
the reference implementation has _burn and _mint. We're tracking commits as a separate repo here: https://github.com/rugpullindex/ERC4973 |
* Add EIP-1238.md * Rename from 1238 to 4966 * Address feedback from PR * Change name from 4966 to 4973 * Fix header property order * Remove 79 character manual word wrapping * Fix syntax error for incomplete link tag * Remove Caveat section (for now) * Clarify standards text * Run through grammarly * Update discussion link * Update EIPS/eip-4973.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> * Update EIPS/eip-4973.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> * Update EIPS/eip-4973.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> * Update EIPS/eip-4973.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> * Relicense to CC0-1.0 * More copyediting * Rename from "Soulbound" to "Account-bound" tokens * Add section on "Exception handling" * Add section on revocation * Update EIPS/eip-4973.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> * Rename to 'Account-bound Tokens' * Correct co-author section * Correct TLA from non-sensical 'ACT' to 'ABT' - ABT stands for "Account-bound token" * Remove superfluous, explicit interface definitions * Add 'Naming' section * Consistently use EIP-XXXX format * Remove reference to badge concept * Correctly apply camelCase in tests * Update reference implementation - Vendor all third-party code (OZ) - Allowing to mint to third-party address - Rename `_bonds` to `_owners` - Fix TLA from ACT to ABT - Fix ABT name in tests * Replace `event Transfer` w/ Attest/Revoke * Fix username prefix in author field Co-authored-by: Micah Zoltu <micah@zoltu.net> * Fix broken link to eip-721.md Co-authored-by: Micah Zoltu <micah@zoltu.net> * Fix typo Co-authored-by: Micah Zoltu <micah@zoltu.net> * Fix link to reference implementation Co-authored-by: Micah Zoltu <micah@zoltu.net> * Update EIPS/eip-4973.md Co-authored-by: Pandapip1 <45835846+Pandapip1@users.noreply.github.com> * Update EIPS/eip-4973.md Co-authored-by: Pandapip1 <45835846+Pandapip1@users.noreply.github.com> Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> Co-authored-by: Micah Zoltu <micah@zoltu.net> Co-authored-by: Pandapip1 <45835846+Pandapip1@users.noreply.github.com>
I played wow in my old days, the idea of soulbound items is that they couldn't be transferred and the only way to remove them was to destroy them This goes against the specification that the I don't think this should be re-equipable Look this case:
|
ok I‘m open to it |
Changes made after initial submission based on discussion on Ethereum Magicians forum: