JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6
  • Score
    100M100P100Q35809F
  • License Apache-2.0

An open source repository for smart contract reference implementations of ERCs.

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@ercref/contracts) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    ERCRef Contracts

    Discord

    A repository for Ethereum builders to build ERC reference implementations.

    Getting Started

    Here is how you can start using this repo.

    Use npm package

    npm i -D @ercref/contracts

    Useful Templates

    Import dependencies

    Import the contracts like you would from OpenZeppelin's contract. e.g.

    import "@ercref/contracts/drafts/IERC5732.sol";
    import "@ercref/contracts/drafts/BlocknumGapCommit.sol";

    Here is a full example:

    pragma solidity ^0.8.17;
    
    import "@ercref/contracts/drafts/IERC5732.sol";
    import "@ercref/contracts/drafts/BlocknumGapCommit.sol";
    import "@openzeppelin/contracts/utils/introspection/ERC165.sol";
    import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
    
    contract CommitableERC721 is ERC721, BlocknumGapCommit {
        constructor(uint256 _version) ERC721("CommitToMintImpl", "CTMI") {
        }
    
        function safeMint(
            address _to,
            uint256 _tokenId,
            bytes calldata _extraData
        )   onlyCommited(
                abi.encodePacked(_to, _tokenId),
                bytes32(_extraData[0:32]),
                6 // number of blocks required to reveal
            )
            external {
            _safeMint(_to, _tokenId); // ignoring _extraData in this simple reference implementation.
        }
    
        function supportsInterface(bytes4 interfaceId)
            public
            view
            virtual
            override(ERC721, BlocknumGapCommit)
            returns (bool)
        {
            return super.supportsInterface(interfaceId);
        }
    }

    Contributors of ERCRef

    Publish npm

    yarn publish --access public

    Disclaimer and Warnings

    WARNING: This repository is meant to be cutting (bleeding) edge and pioneer. Please make sure to conduct security audit before using in production.