GithubHelp home page GithubHelp logo

casper-ecosystem / cep-78-enhanced-nft Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 27.0 5.86 MB

License: Apache License 2.0

Rust 91.31% Makefile 0.91% Shell 0.17% JavaScript 0.10% TypeScript 7.50%
cspr nft

cep-78-enhanced-nft's People

Contributors

acstonecl avatar cryofracture avatar darthsiroftardis avatar davidatwhiletrue avatar deuszex avatar dylanireland avatar edhastingscasperassociation avatar euanmcf-cl avatar groussac avatar gskerry avatar hanswestman74 avatar hoffmannjan avatar ipopescu avatar jekennedy avatar jonas089 avatar mssteuer avatar tomvasile avatar zhmakas avatar zie1ony avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

cep-78-enhanced-nft's Issues

Whitelisting Support

Update the CEP 78 contract: Create a new modality for minting called "limited". This can be used to support whitelisting capabilities in either the contract or account.

Multiple Metadata (Contract Modality)

Provide contract compatibility for multiple, simultaneous consumers - via a modality for multiple metadata schemas at once (for the same contract).

i.e. extension of nftmetadatakind to support multiple schemas.

TBD:
Configuration settings around Required, Optional, Default.

V1.1 - CEP-78 Gas Cost Stabilization

gas cost of minting tokens should be consistent regardless of how many have previously been minted; currently the costs can be cumulative due to ownership tracking implementation details.

Amend transfer function in the NFT contract to provide a read only reference

Problem Statement - Currently, there is a gap in the Assigned and Transfer mode, where the owner of an NFT token doesn't obtain the read-only reference they would if they minted it themselves.
Solution - The transfer function should additionally send the read-only reference allowing users to "claim" their NFT.

Check for burnt tokens in set_approve_all

Currently the only problem we identify is that set_approve_all function has missing entry point parameters, and also it does not check if a token is burnt or not, but we didn't see any high security issue with this.

Multiple Metadata (Contract Modality)

Provide contract compatibility for multiple, simultaneous consumers - via a modality for multiple metadata schemas at once (for the same contract).

i.e. extension of nftmetadatakind to support multiple schemas.

TBD:
Configuration settings around Required, Optional, Default.

init() entry point lacks 2 parameters. Only 14/16 are defined => error when calling metadata() and other.

When calling the metadata() function an error is raised that says the NFT_METADATA_KIND is not set.
METADATA_MUTABILITY is also not found in storage.
I think I have identified the reason for this issue and will try to resolve it.
The attached screenshots show that the 2 missing parameters are passed to the init() function, but are not defined as parameters for the init() entry point => this explains why they are not set.
I test my fix tomorrow and propose a commit.

1662415712953
1662415694775

Add metadata and schema enforcement to the enhanced NFT standard

Update the NFT contract to allow users to specify a schema and provide the functionality to enforce that a minted token's metadata conforms to the schema. Additionally, introduce and implement the MetadataMutability modality that allows users to modify (or prevent) the metadata.

Update CI/CD to publish npm package

To support the updated SDK for CEP-78, we need to include npm - possibly other libraries. Please work with the engineers to ensure the pipeline is updated to include all dependencies.

CEP47 => CEP78

Objective - The objective of this epic is to analyse, and create example code and scripts for teams to migrate from cep-47-nft to cep-78-enhanced-nft.

Following are the related tickets created and will be tracked as part of this epic.
Note - There are two possible migration strategies that require a detailed feasibility study as part of this epic/plan.

  1. Vanilla cep-47-nft to Vanilla(Enhanced) cep-78-enhanced-nft migration
  2. Custom cep-47-nft to Enhanced cep-78-enhanced-nft

Produce a design specification for `cep-78`

Objective - Solution Architect(s) to produce a design specification for the implementation of cep-78

Definition of Done - Create a design specification that can be referred and used by developers and other teams to build their NFT solution using the cep-78 standard.

CEP78 -NFTIdentifierMode - 'UserDefined'

ordinal, hash - add another "let me decide".

use case: token already has an id in production that does not conform to ordinal or hash.

NEEDS FURTHER IDEATION

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.