@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 buildClean
Delete the build artifacts and cache directories:
$ forge cleanCompile
Compile the contracts:
$ forge buildValidate
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 prettierGas Usage
Get a gas report:
$ forge test --gas-reportLint
Lint the contracts:
$ yarn lintTest
Foundry
Solidity tests are executed using Foundry Run the tests:
$ forge testLicense
MIT © Paul Razvan Berg