-
Notifications
You must be signed in to change notification settings - Fork 11.8k
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
Contract Module to support ERC5169 (TokenScript) #4869
base: master
Are you sure you want to change the base?
Conversation
🦋 Changeset detectedLatest commit: 60dd533 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Hello @oleggrib Thank you for raising attention to this ERC. I'm honestly not a fan of it, and I'm worried it got finalize in the current format. In particular my concerns are:
Overall I'm very sceptical, and I don't think we should implement that unless there is "significant" request from the community. By significant, I mean I would expect at least 2 or 3 independant projects (not related to the EIP authors or to one another) to plan on using this ERC, and to ask for us to provide the implementation. |
I'd love to hear @ernestognw and @frangio 's opinions. |
Hi, @Amxx , thank you for your response.
Actions to set/update script list very rare and in most cases it will contain single sring, so code can be simple and stay as is.
it makes sense
TokenScript file related to whole contract, so we can use contractURI, not tokenURI
I dont think its a problem, because any web-app , which interacts with contracts can have same problems. |
I agree with @Amxx on not accepting this ERC implementation for the moment. It seems experimental, it might turn out to be a good idea but at this early stage it should be tried and iterated on by other projects, which merging into OpenZeppelin Contracts is not a prerequisite for. |
The ERC is marked as final. Iterations (if any) will have to go through a new ERC... |
Hello
This PR created to support ERC5169.
Basically its option to add list of URLs to the contract.
We have to save URLs to contracts because URLs will be links to the TokenScript files, which are XML bundles with code , which describes interface and code to interact with contract.
Tokenscript is a framework designed to make contract interaction easy.
https://www.tokenscript.org/docs/TokenScript-Component.html
A popular example of TokenScript usage is https://www.smartlayer.network/smartcat
SmartCat is NFT token, rated # 21 on OpenSea. Users can do actions with their tokens using SmartCat TokenScript file
Users can use TokenScript viewer to open their own SmartCat NFTs and interact with the contract with TokenScript UI. UI and code embedded in the TokenScript file, thereby eliminating the need to create/host webpage or app to help user interact with the contract.
TokenScript can automate most of contract interactions with and require a bit of coding on Svelte/React/VanillaJS
We are working with multiple projects which will support TokenScript and going to allow everyone to code TokenScript interfaces to their contracts. This is the reason, why we are asking to add this ERC5169 to the OpenZeppelin repo - let users add support of ERC5169 using only OpenZeppelin repo.
Currently developers have to use https://www.npmjs.com/package/stl-contracts to add support of ERC5169, but it can be more easy to use OpenZeppelin repo only.
Developer docs - https://launchpad-doc.vercel.app/
TokenScript Examples - https://github.com/SmartTokenLabs/TokenScript-Templates
PR Checklist
npx changeset add
)