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
feat(platform)!: basic nft support #1829
Conversation
…nto feat/transferDocument
…try_from_schema/v0/mod.rs Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
…ment.rs Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
…on/state_transitions/documents_batch/action_validation/document_transfer_transition_action/structure_v0/mod.rs Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
…on/state_transitions/documents_batch/action_validation/document_delete_transition_action/structure_v0/mod.rs Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
…on/state_transitions/documents_batch/action_validation/document_replace_transition_action/structure_v0/mod.rs Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
I think NFT support should not be rushed into Platform v1.0 like this (on the Dash Roadmap both Fungable tokens and NFT support are reserved for Platform 2.0, not Platform 1.0). With the current Platform storage size restrictions (due to a fear of possible misuse of Platform to store 'illegal data') already preventing Dash users to store their Platform Identity profile picture directly on Drive with the MVP version of Platform (Platform 1.0), i think this NFT basic support feature will be pretty difficult to promote to Dash users (as NFT images themselves currently can't be stored on Drive). If this NFT basic support feature just serves as a framework for future NFT implementation, i think its too disruptive to other developers right now, who will need to analyze 5000 lines of additional code and suggest changes, all a few months before release of Platform v1.0 and on a feature thats not even on their immediate todo list. I also think Evonode owners should have a say in this NFT support, by voting it in through a Evonodes network polling vote after activation of Platform 1.0 on Dash Mainnet. This depends on the Masternode Voting feature, which unfortunetely is still not finished. If we want NFT support, we should do it the right way : implementing it after a solution has been found or consensus has been reached to what kind of data we want to store on Drive (all data ? certain data ? the ability to exclude certain 'illegal data' ?) and after the Platform storage size restrictions have been lifted. |
...ocuments_batch/document_transition/document_update_price_transition_action/v0/transformer.rs
Show resolved
Hide resolved
.../src/drive/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs
Outdated
Show resolved
Hide resolved
You might have some misconceptions about NFTs in blockchain, NFTs described in https://eips.ethereum.org/EIPS/eip-721 are just an identifier to other data in this case they are described as a token id uint256 (32 bytes). In our system our NFTs have slightly more capabilities as they represent not only the identifier but the document, that itself can have references. In either case pictures or other blobs of data are not inside the NFT, even though the NFT can reference them. This is pretty standard across blockchains. This isn't an afterthought either. This has been well thought out over years of development. Not having NFTs at release didn't make sense when the amount of work was so little. There was massive upside on having this feature, with little to no downside. |
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
…try_from_schema/v0/mod.rs Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
…ation/mod.rs Co-authored-by: Paul DeLucia <69597248+pauldelucia@users.noreply.github.com>
Yay, we now have NFTs. |
Issue being fixed or feature implemented
This PR implements the basic needs that were missing from supporting NFTs.
These are the ability to set the price of a NFT (document) and then have a purchaser pay that requested price to acquire the asset.
NFT stands for Non Fungible Token. NFTs in Dash can be bought and sold if the data contract specifies so.
What was done?
In this PR we also added the ability to restrict documents to only be created by the owner of the contract if this is specified in the contract.
How Has This Been Tested?
Breaking Changes
Checklist:
For repository code-owners and collaborators only