Skip to main content
Version: 1.15.0

Function: readLockboxToken()

readLockboxToken(chain: EVMChain, lockbox: string): Promise<{ erc20: TypedContract<readonly [{ inputs: readonly [{ internalType: "string"; name: "name"; type: "string"; }, { internalType: "string"; name: "symbol"; type: "string"; }, { internalType: "uint8"; name: "decimals_"; type: "uint8"; }, { internalType: "uint256"; name: "maxSupply_"; type: "uint256"; }, { internalType: "uint256"; name: "preMint"; type: "uint256"; }, { internalType: "address"; name: "newOwner"; type: "address"; }]; stateMutability: "nonpayable"; type: "constructor"; }, { inputs: readonly []; name: "acceptOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "owner"; type: "address"; }, { internalType: "address"; name: "spender"; type: "address"; }]; name: "allowance"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "spender"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "approve"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }]; name: "balanceOf"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "burn"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "burn"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "burnFrom"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "decimals"; outputs: readonly [{ internalType: "uint8"; name: ""; type: "uint8"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "spender"; type: "address"; }, { internalType: "uint256"; name: "subtractedValue"; type: "uint256"; }]; name: "decreaseAllowance"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "spender"; type: "address"; }, { internalType: "uint256"; name: "subtractedValue"; type: "uint256"; }]; name: "decreaseApproval"; outputs: readonly [{ internalType: "bool"; name: "success"; type: "bool"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "getBurners"; outputs: readonly [{ internalType: "address[]"; name: ""; type: "address[]"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "getCCIPAdmin"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "getMinters"; outputs: readonly [{ internalType: "address[]"; name: ""; type: "address[]"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "burner"; type: "address"; }]; name: "grantBurnRole"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "burnAndMinter"; type: "address"; }]; name: "grantMintAndBurnRoles"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "minter"; type: "address"; }]; name: "grantMintRole"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "spender"; type: "address"; }, { internalType: "uint256"; name: "addedValue"; type: "uint256"; }]; name: "increaseAllowance"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "spender"; type: "address"; }, { internalType: "uint256"; name: "addedValue"; type: "uint256"; }]; name: "increaseApproval"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "burner"; type: "address"; }]; name: "isBurner"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "minter"; type: "address"; }]; name: "isMinter"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "maxSupply"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "mint"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "name"; outputs: readonly [{ internalType: "string"; name: ""; type: "string"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "owner"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "burner"; type: "address"; }]; name: "revokeBurnRole"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "minter"; type: "address"; }]; name: "revokeMintRole"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "newAdmin"; type: "address"; }]; name: "setCCIPAdmin"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "bytes4"; name: "interfaceId"; type: "bytes4"; }]; name: "supportsInterface"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "pure"; type: "function"; }, { inputs: readonly []; name: "symbol"; outputs: readonly [{ internalType: "string"; name: ""; type: "string"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "totalSupply"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "to"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "transfer"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "from"; type: "address"; }, { internalType: "address"; name: "to"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "transferFrom"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "to"; type: "address"; }]; name: "transferOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "owner"; type: "address"; }, { indexed: true; internalType: "address"; name: "spender"; type: "address"; }, { indexed: false; internalType: "uint256"; name: "value"; type: "uint256"; }]; name: "Approval"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "burner"; type: "address"; }]; name: "BurnAccessGranted"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "burner"; type: "address"; }]; name: "BurnAccessRevoked"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousAdmin"; type: "address"; }, { indexed: true; internalType: "address"; name: "newAdmin"; type: "address"; }]; name: "CCIPAdminTransferred"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "minter"; type: "address"; }]; name: "MintAccessGranted"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "minter"; type: "address"; }]; name: "MintAccessRevoked"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "from"; type: "address"; }, { indexed: true; internalType: "address"; name: "to"; type: "address"; }]; name: "OwnershipTransferRequested"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "from"; type: "address"; }, { indexed: true; internalType: "address"; name: "to"; type: "address"; }]; name: "OwnershipTransferred"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "from"; type: "address"; }, { indexed: true; internalType: "address"; name: "to"; type: "address"; }, { indexed: false; internalType: "uint256"; name: "value"; type: "uint256"; }]; name: "Transfer"; type: "event"; }, { inputs: readonly []; name: "CannotTransferToSelf"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "supplyAfterMint"; type: "uint256"; }]; name: "MaxSupplyExceeded"; type: "error"; }, { inputs: readonly []; name: "MustBeProposedOwner"; type: "error"; }, { inputs: readonly []; name: "OnlyCallableByOwner"; type: "error"; }, { inputs: readonly []; name: "OwnerCannotBeZero"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "sender"; type: "address"; }]; name: "SenderNotBurner"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "sender"; type: "address"; }]; name: "SenderNotMinter"; type: "error"; }]>; token: string; }>

Defined in: cct/evm/lockbox/contracts.ts:131

The token a lockbox escrows, plus an ERC-20 handle to it, in one eth_call. Mirrors token-pool/contracts.ts's readTokenPoolToken.

Parameters​

ParameterTypeDescription
chainEVMChainChain to read from.
lockboxstringLockbox to read getToken() from.

Returns​

Promise<{ erc20: TypedContract<readonly [{ inputs: readonly [{ internalType: "string"; name: "name"; type: "string"; }, { internalType: "string"; name: "symbol"; type: "string"; }, { internalType: "uint8"; name: "decimals_"; type: "uint8"; }, { internalType: "uint256"; name: "maxSupply_"; type: "uint256"; }, { internalType: "uint256"; name: "preMint"; type: "uint256"; }, { internalType: "address"; name: "newOwner"; type: "address"; }]; stateMutability: "nonpayable"; type: "constructor"; }, { inputs: readonly []; name: "acceptOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "owner"; type: "address"; }, { internalType: "address"; name: "spender"; type: "address"; }]; name: "allowance"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "spender"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "approve"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }]; name: "balanceOf"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "burn"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "burn"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "burnFrom"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "decimals"; outputs: readonly [{ internalType: "uint8"; name: ""; type: "uint8"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "spender"; type: "address"; }, { internalType: "uint256"; name: "subtractedValue"; type: "uint256"; }]; name: "decreaseAllowance"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "spender"; type: "address"; }, { internalType: "uint256"; name: "subtractedValue"; type: "uint256"; }]; name: "decreaseApproval"; outputs: readonly [{ internalType: "bool"; name: "success"; type: "bool"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "getBurners"; outputs: readonly [{ internalType: "address[]"; name: ""; type: "address[]"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "getCCIPAdmin"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "getMinters"; outputs: readonly [{ internalType: "address[]"; name: ""; type: "address[]"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "burner"; type: "address"; }]; name: "grantBurnRole"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "burnAndMinter"; type: "address"; }]; name: "grantMintAndBurnRoles"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "minter"; type: "address"; }]; name: "grantMintRole"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "spender"; type: "address"; }, { internalType: "uint256"; name: "addedValue"; type: "uint256"; }]; name: "increaseAllowance"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "spender"; type: "address"; }, { internalType: "uint256"; name: "addedValue"; type: "uint256"; }]; name: "increaseApproval"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "burner"; type: "address"; }]; name: "isBurner"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "minter"; type: "address"; }]; name: "isMinter"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "maxSupply"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "mint"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "name"; outputs: readonly [{ internalType: "string"; name: ""; type: "string"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "owner"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "burner"; type: "address"; }]; name: "revokeBurnRole"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "minter"; type: "address"; }]; name: "revokeMintRole"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "newAdmin"; type: "address"; }]; name: "setCCIPAdmin"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "bytes4"; name: "interfaceId"; type: "bytes4"; }]; name: "supportsInterface"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "pure"; type: "function"; }, { inputs: readonly []; name: "symbol"; outputs: readonly [{ internalType: "string"; name: ""; type: "string"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "totalSupply"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "to"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "transfer"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "from"; type: "address"; }, { internalType: "address"; name: "to"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "transferFrom"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "to"; type: "address"; }]; name: "transferOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "owner"; type: "address"; }, { indexed: true; internalType: "address"; name: "spender"; type: "address"; }, { indexed: false; internalType: "uint256"; name: "value"; type: "uint256"; }]; name: "Approval"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "burner"; type: "address"; }]; name: "BurnAccessGranted"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "burner"; type: "address"; }]; name: "BurnAccessRevoked"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousAdmin"; type: "address"; }, { indexed: true; internalType: "address"; name: "newAdmin"; type: "address"; }]; name: "CCIPAdminTransferred"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "minter"; type: "address"; }]; name: "MintAccessGranted"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "minter"; type: "address"; }]; name: "MintAccessRevoked"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "from"; type: "address"; }, { indexed: true; internalType: "address"; name: "to"; type: "address"; }]; name: "OwnershipTransferRequested"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "from"; type: "address"; }, { indexed: true; internalType: "address"; name: "to"; type: "address"; }]; name: "OwnershipTransferred"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "from"; type: "address"; }, { indexed: true; internalType: "address"; name: "to"; type: "address"; }, { indexed: false; internalType: "uint256"; name: "value"; type: "uint256"; }]; name: "Transfer"; type: "event"; }, { inputs: readonly []; name: "CannotTransferToSelf"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "supplyAfterMint"; type: "uint256"; }]; name: "MaxSupplyExceeded"; type: "error"; }, { inputs: readonly []; name: "MustBeProposedOwner"; type: "error"; }, { inputs: readonly []; name: "OnlyCallableByOwner"; type: "error"; }, { inputs: readonly []; name: "OwnerCannotBeZero"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "sender"; type: "address"; }]; name: "SenderNotBurner"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "sender"; type: "address"; }]; name: "SenderNotMinter"; type: "error"; }]>; token: string; }>

The escrowed token, checksummed, and an ERC-20 contract bound to it.