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
A repository for Ethereum builders to build ERC reference implementations.
Getting Started
Here is how you can start using this repo.
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.
Use npm package
npm i -D @ercref/contracts
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 {
event ErcRefImplDeploy(uint256 version, string name, string url);
constructor(uint256 _version) ERC721("CommitToMintImpl", "CTMI") {
emit ErcRefImplDeploy(_version, "CommitToMintImpl", "http://zzn.li/ercref");
}
function supportsInterface(bytes4 interfaceId)
public
view
virtual
override(ERC721, BlocknumGapCommit)
returns (bool)
{
return super.supportsInterface(interfaceId);
}
function safeMint(
address _to,
uint256 _tokenId,
bytes calldata _extraData
) onlyCommited(abi.encodePacked(_to, _tokenId), bytes32(_extraData[0:32]))
external {
_safeMint(_to, _tokenId); // ignoring _extraData in this simple reference implementation.
}
function get165Core() external pure returns (bytes4) {
return type(IERC_COMMIT_CORE).interfaceId;
}
function get165General() external pure returns (bytes4) {
return type(IERC_COMMIT_GENERAL).interfaceId;
}
}
Contributors of ERCRef
Publish npm
yarn publish --access public