Management Guide

1

Claim Roles

Assign the mint and burn roles to the token pools, enabling them to control how tokens are minted and burned during cross-chain transfers.

README.md
ETH_SEPOLIA_RPC=$(grep ETH_SEPOLIA_RPC .env | cut -d '=' -f2)
WALLET_ADDRESS=$(grep WALLET_ADDRESS .env | cut -d '=' -f2)
PRIVATE_KEY=$(grep PRIVATE_KEY .env | cut -d '=' -f2)
forge script ./script/admin/ClaimAdmin.s.sol:ClaimAdmin --rpc-url $ETH_SEPOLIA_RPC --broadcast --sender $WALLET_ADDRESS --private-key $PRIVATE_KEY
2

Accept Admin Role

Use the registerAdminViaOwner function of the RegistryModuleOwnerCustom contract to register your EOA as the token admin. This role is required for enabling the token on CCIP. Once registered, use the acceptAdminRole function of the TokenAdminRegistry contract to finalize the admin role assignment.

README.md
  ETH_SEPOLIA_RPC=$(grep ETH_SEPOLIA_RPC .env | cut -d '=' -f2)
  WALLET_ADDRESS=$(grep WALLET_ADDRESS .env | cut -d '=' -f2)
  PRIVATE_KEY=$(grep PRIVATE_KEY .env | cut -d '=' -f2)
  forge script ./script/admin/AcceptAdmin.s.sol:AcceptAdmin --rpc-url $ETH_SEPOLIA_RPC --broadcast --sender $WALLET_ADDRESS --private-key $PRIVATE_KEY
3

Link Tokens to Pools

Use the setPool function of the TokenAdminRegistry contract to associate each token with its respective token pool.

README.md
 ETH_SEPOLIA_RPC=$(grep ETH_SEPOLIA_RPC .env | cut -d '=' -f2)
 WALLET_ADDRESS=$(grep WALLET_ADDRESS .env | cut -d '=' -f2)
 PRIVATE_KEY=$(grep PRIVATE_KEY .env | cut -d '=' -f2)
 forge script ./script/manage/SetPool.s.sol:SetPool --rpc-url $ETH_SEPOLIA_RPC --broadcast --sender $WALLET_ADDRESS --private-key $PRIVATE_KEY
4

Configure Pools

Configure each token pool by calling the applyChainUpdates function. This includes setting cross-chain transfer parameters, such as rate limits and enabled destination chains.

README.md
ETH_SEPOLIA_RPC=$(grep ETH_SEPOLIA_RPC .env | cut -d '=' -f2)
WALLET_ADDRESS=$(grep WALLET_ADDRESS .env | cut -d '=' -f2)
PRIVATE_KEY=$(grep PRIVATE_KEY .env | cut -d '=' -f2)
forge script ./script/manage/ApplyChain.s.sol:ApplyChain --rpc-url $ETH_SEPOLIA_RPC --broadcast --sender $WALLET_ADDRESS --private-key $PRIVATE_KEY
5

Mint Tokens

Mint tokens on Base Sepolia using the mint function for your EOA. These tokens will be used to test cross-chain transfers to Ethereum Sepolia.

README.md
 ETH_SEPOLIA_RPC=$(grep ETH_SEPOLIA_RPC .env | cut -d '=' -f2)
 WALLET_ADDRESS=$(grep WALLET_ADDRESS .env | cut -d '=' -f2)
 PRIVATE_KEY=$(grep PRIVATE_KEY .env | cut -d '=' -f2)
 forge script ./script/mint/MintTokens.s.sol:MintTokens --rpc-url $ETH_SEPOLIA_RPC --broadcast --sender $WALLET_ADDRESS --private-key $PRIVATE_KEY
6

Transfer Cross-Chain

Transfer tokens from Base Sepolia to Ethereum Sepolia via CCIP. CCIP fees can be paid using either LINK tokens or native gas tokens.

README.md
ETH_SEPOLIA_RPC=$(grep ETH_SEPOLIA_RPC .env | cut -d '=' -f2)
WALLET_ADDRESS=$(grep WALLET_ADDRESS .env | cut -d '=' -f2)
PRIVATE_KEY=$(grep PRIVATE_KEY .env | cut -d '=' -f2)
forge script ./script/transfer/TransferTokens.s.sol:TransferTokens --rpc-url $ETH_SEPOLIA_RPC --broadcast --sender $WALLET_ADDRESS --private-key $PRIVATE_KEY