- Cruzo1155
- CruzoMarket
- Factory
- CruzoGift
- CruzoAirdrop
- CruzoPassSale
Blockchain | Network | Name |
---|---|---|
Ethereum | mainnet | ethMainnet |
Ethereum | testnet | ethGoerli |
Binance | mainnet | bscMainnet |
Binance | testnet | bscTestnet |
Polygon | mainnet | polygonMainnet |
Polygon | testnet | polygonMumbai |
Cronos | mainnet | cronosMainnetBeta |
Cronos | testnet | cronosTestnet |
Avalanche | mainnet | avaxMainnet |
Avalanche | testnet | avaxFuji |
Moonbeam | mainnet | moonbeam |
Moonbeam | testnet | moonbaseAlpha |
Boba | mainnet | bobaMainnet |
Boba | testnet | bobaRinkeby |
BitTorrent | mainnet | bitTorrentMainnet |
BitTorrent | testnet | bitTorrentDonau |
XDC | mainnet | xdcMainnet |
XDC | testnet | xdcApothem |
Lukso | testnet | l16Testnet |
Evmos | testnet | evmosTestnet |
Cube | mainnet | cubeMainnet |
Cube | testnet | cubeTestnet |
Klaytn | mainnet | klaytnMainnet |
Klaytn | testnet | klaytnTestnet |
ADDRESS_MAPPING_FILENAME
should point to environment specific JSON file
yarn compile
yarn typegen
yarn test
yarn lint
yarn deployTransferProxy --network <network>
yarn deployMarket --network <network>
yarn deployGift --network <network>
yarn deployAirdrop --network <network>
yarn setTransferProxyOperators --network <network>
yarn deployBeacon --network <network>
yarn deployFactory --network <network>
yarn deployToken --network <network>
yarn abi
yarn verify --contract <contract source:contract name> --network <network> <contract> [<arg1> <arg2> ...]
yarn verify --network <network> --contract contracts/transfer-proxy/TransferProxy.sol:TransferProxy <address>
yarn verify --network <network> --contract contracts/marketplace/CruzoMarket.sol:CruzoMarket <address>
yarn verify --network <network> --contract contracts/factory/Cruzo1155Factory.sol:Cruzo1155Factory <address> <beaconAddress> <transferProxyAddress>
TBD
yarn verify --network <network> --contract contracts/gift/CruzoGift.sol:CruzoGift <address>
yarn verify --network <network> --contract contracts/airdrop/CruzoAirdrop.sol:CruzoAirdrop <address>
yarn verify --network <network> --contract contracts/pass-sale/CruzoPassSale.sol:CruzoPassSale --constructor-args data/pass-sale/verify-args.js <address>
We use UUPS proxy pattern for TransferProxy, CruzoMarket, CruzoGift, CruzoAirdrop contracts and BeaconProxy for instances of Cruzo1155 contracts.
Requires: openzeppelin/hardhat-upgrades
- Don't forget to implement upgrade method inside implementation(_authorizeUpgrade)(for UUPS proxy pattern).
- Append new variables to the end of the variables list.
- Don't delete old variables.
upgrades.deployProxy(ContractFactory, [contructor args], { kind : "uups" })
upgrades.upgradeProxy(address of old impl, newContractFactory)
await upgrades.deployBeacon(TokenFactory)
await upgrades.upgradeBeacon(beaconAddress, newTokenFactory)
yarn upgradeMarket --network <network>
yarn upgradeBeacon --network <network>
yarn upgradeGift --network <network>
yarn upgradeAirdrop --network <network>
yarn upgradeTransferProxy --network <network>
# open https://nft.storage/manage/ to get a token
$ NFTSTORAGE_TOKEN=<token> yarn run ts-node scripts/pass-sale/generate-uris.ts
data/pass-sale/signatures.json
$ SIGNER_KEY=<key> yarn run ts-node scripts/pass-sale/sign.ts
# make sure you deploy these contracts before
# yarn deployBeacon --network <network>
# yarn deployMarket --network <network>
# yarn deployFactory --network <network>
$ SIGNER_ADDRESS=<address> REWARDS_ADDRESS=<address> yarn deployPassSale --network <network>