@network-goods/hypercerts-protocol v0.0.9
hypercerts-protocol
Contracts
IHypercertToken
This interface is the requirements set for hypercert compliant tokens. This enables developer to use their own prefered token implementation or standard.
HypercertMinter
Example implementation for a hypercert token that is an ERC1155 NFT
under the hood with an Allowlist
extension.
Goerli
HypercertMinter (UUPS Proxy) is deployed to proxy address: 0x94a04Ce2e537eaf2Bdabd629dE503797e7021E87
Usage
Here's a list of the most frequently needed commands.
Build
Build the contracts:
$ forge build
Clean
Delete the build artifacts and cache directories:
$ forge clean
Compile
Compile the contracts:
$ forge build
Validate
Validate contract upgradeability agains deployment.
For example goerli
deployment:
yarn validate:upgrade --network goerli --proxy 0xcC08266250930E98256182734913Bf1B36102072
Deploy
Deployment of the contract to EVM compatible net is managed by OpenZeppelin. Primarily because of proxy management and safety checks.
Run: yarn hardhat deploy --network goerli
Format
Format the contracts with Prettier:
$ yarn prettier
Gas Usage
Get a gas report:
$ forge test --gas-report
Lint
Lint the contracts:
$ yarn lint
Test
Foundry
Solidity tests are executed using Foundry Run the tests:
$ forge test
License
MIT © Paul Razvan Berg