- Foundry
- Run anvil in one terminal:
anvil - Deploy the token
make deploy-token - Write down the token proxy address that is printed in the console output. Do this in the
config.example.jsonfile, under thetokenProxykey. - Deploy the claimable contract
make deploy-claimable-local - Write down the claimable contract proxy address that is printed in the console output.
- Approve the claimable contract to spend the token from the distributor
make approve-claimable TOKEN=<token-proxy-address> AIRDROP=<claimable-proxy-address> PRIVATE_KEY=0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d
- Foundry
- Etherscan API key
- Create a file
script-config/config.sepolia.jsonfollowing the example inscript-config/config.sepolia.example.json. - Deploy the token
make deploy-token-testnet RPC_URL=<sepolia-rpc-url> PRIVATE_KEY=<sepolia-funded-account-private-key> - Write down the
token-proxy-addressthat is printed in the console output. Do this in theconfig.sepolia.jsonfile, under thetokenProxykey. - Deploy the claimable contract
make deploy-claimable-testnet RPC_URL=<sepolia-rpc-url> PRIVATE_KEY=<sepolia-funded-account-private-key> ETHERSCAN_API_KEY=<etherscan-api-key> - Write down the
claimable-proxy-addressthat is printed in the console output. - Approve the claimable contract to spend the token from the distributor
make approve-claimable TOKEN=<token-proxy-address> AIRDROP=<claimable-proxy-address> PRIVATE_KEY=<sepolia-funded-distributor-private-key>
- Deploy the claimable contract as explained above.
- Set the correct merkle root
make claimable-update-root RPC_URL=http://localhost:8545 PRIVATE_KEY=0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a MERKLE_ROOT=<claims-merkle-root> - Set the correct claim time limit
make claimable-update-timestamp RPC_URL=http://localhost:8545 PRIVATE_KEY=0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a TIMESTAMP=2733427549 - Approve the claimable contract to spend the token from the distributor
make approve-claimable RPC_URL=http://localhost:8545 TOKEN=<token-proxy-address> AIRDROP=<claimable-proxy-address> PRIVATE_KEY=0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d - Unpause the claimable contract
make unpause RPC_URL=http://localhost:8545 PRIVATE_KEY=0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a AIRDROP=<claimable-proxy-address>