Deployment (Fuji)
Deployment script:
apps/contracts/script/DeployFuji.s.sol
1) Configure Environment
cd apps/contracts
cp .env.example .env
set -a
source .env
set +a
At minimum, provide:
FUJI_RPC_URL- deployer private key env var used by your script profile
2) Deploy
cd apps/contracts
forge script script/DeployFuji.s.sol:DeployFuji \
--rpc-url "$FUJI_RPC_URL" \
--broadcast
3) Post-Deploy Verification
Set deployed address:
TOKEN_ADDRESS=0xREPLACE_WITH_DEPLOYED_ADDRESS
Check symbol/decimals:
cast call "$TOKEN_ADDRESS" "symbol()(string)" --rpc-url "$FUJI_RPC_URL"
cast call "$TOKEN_ADDRESS" "decimals()(uint8)" --rpc-url "$FUJI_RPC_URL"
Check role hashes:
MINTER_ROLE=$(cast keccak "MINTER_ROLE")
PAUSER_ROLE=$(cast keccak "PAUSER_ROLE")
DEFAULT_ADMIN_ROLE=0x0000000000000000000000000000000000000000000000000000000000000000
Check role members:
cast call "$TOKEN_ADDRESS" "hasRole(bytes32,address)(bool)" "$DEFAULT_ADMIN_ROLE" "$ADMIN_ADDRESS" --rpc-url "$FUJI_RPC_URL"
cast call "$TOKEN_ADDRESS" "hasRole(bytes32,address)(bool)" "$MINTER_ROLE" "$MINTER_ADDRESS" --rpc-url "$FUJI_RPC_URL"
cast call "$TOKEN_ADDRESS" "hasRole(bytes32,address)(bool)" "$PAUSER_ROLE" "$PAUSER_ADDRESS" --rpc-url "$FUJI_RPC_URL"