Skip to content

Ucs03.ts

This module handles interaction with the UCS03 protocol.

Added in v2.0.0

Contract ABI

Signature

export declare const Abi: readonly [
{
readonly type: "function"
readonly name: "ensureExported"
readonly inputs: readonly [
{
readonly name: ""
readonly type: "tuple"
readonly internalType: "struct ZkgmPacket"
readonly components: readonly [
{ readonly name: "salt"; readonly type: "bytes32"; readonly internalType: "bytes32" },
{ readonly name: "path"; readonly type: "uint256"; readonly internalType: "uint256" },
{
readonly name: "instruction"
readonly type: "tuple"
readonly internalType: "struct Instruction"
readonly components: readonly [
{ readonly name: "version"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "opcode"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "operand"; readonly type: "bytes"; readonly internalType: "bytes" }
]
}
]
},
{
readonly name: ""
readonly type: "tuple"
readonly internalType: "struct Instruction"
readonly components: readonly [
{ readonly name: "version"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "opcode"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "operand"; readonly type: "bytes"; readonly internalType: "bytes" }
]
},
{
readonly name: ""
readonly type: "tuple"
readonly internalType: "struct Forward"
readonly components: readonly [
{ readonly name: "path"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "timeoutHeight"; readonly type: "uint64"; readonly internalType: "uint64" },
{ readonly name: "timeoutTimestamp"; readonly type: "uint64"; readonly internalType: "uint64" },
{
readonly name: "instruction"
readonly type: "tuple"
readonly internalType: "struct Instruction"
readonly components: readonly [
{ readonly name: "version"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "opcode"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "operand"; readonly type: "bytes"; readonly internalType: "bytes" }
]
}
]
},
{
readonly name: ""
readonly type: "tuple"
readonly internalType: "struct Multiplex"
readonly components: readonly [
{ readonly name: "sender"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "eureka"; readonly type: "bool"; readonly internalType: "bool" },
{ readonly name: "contractAddress"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "contractCalldata"; readonly type: "bytes"; readonly internalType: "bytes" }
]
},
{
readonly name: ""
readonly type: "tuple"
readonly internalType: "struct Batch"
readonly components: readonly [
{
readonly name: "instructions"
readonly type: "tuple[]"
readonly internalType: "struct Instruction[]"
readonly components: readonly [
{ readonly name: "version"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "opcode"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "operand"; readonly type: "bytes"; readonly internalType: "bytes" }
]
}
]
},
{
readonly name: ""
readonly type: "tuple"
readonly internalType: "struct FungibleAssetOrder"
readonly components: readonly [
{ readonly name: "sender"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "receiver"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "baseToken"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "baseAmount"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "baseTokenSymbol"; readonly type: "string"; readonly internalType: "string" },
{ readonly name: "baseTokenName"; readonly type: "string"; readonly internalType: "string" },
{ readonly name: "baseTokenDecimals"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "baseTokenPath"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "quoteToken"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "quoteAmount"; readonly type: "uint256"; readonly internalType: "uint256" }
]
},
{
readonly name: ""
readonly type: "tuple"
readonly internalType: "struct Ack"
readonly components: readonly [
{ readonly name: "tag"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "innerAck"; readonly type: "bytes"; readonly internalType: "bytes" }
]
},
{
readonly name: ""
readonly type: "tuple"
readonly internalType: "struct BatchAck"
readonly components: readonly [
{ readonly name: "acknowledgements"; readonly type: "bytes[]"; readonly internalType: "bytes[]" }
]
},
{
readonly name: ""
readonly type: "tuple"
readonly internalType: "struct FungibleAssetOrderAck"
readonly components: readonly [
{ readonly name: "fillType"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "marketMaker"; readonly type: "bytes"; readonly internalType: "bytes" }
]
}
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "constructor"
readonly inputs: readonly [
{ readonly name: "_ibcHandler"; readonly type: "address"; readonly internalType: "contract IIBCModulePacket" },
{ readonly name: "_weth"; readonly type: "address"; readonly internalType: "contract IWETH" },
{ readonly name: "_erc20Impl"; readonly type: "address"; readonly internalType: "contract ZkgmERC20" },
{ readonly name: "_rateLimitEnabled"; readonly type: "bool"; readonly internalType: "bool" },
{ readonly name: "_sendImpl"; readonly type: "address"; readonly internalType: "contract UCS03ZkgmSendImpl" },
{ readonly name: "_stakeImpl"; readonly type: "address"; readonly internalType: "contract UCS03ZkgmStakeImpl" }
]
readonly stateMutability: "nonpayable"
},
{ readonly type: "receive"; readonly stateMutability: "payable" },
{
readonly type: "function"
readonly name: "ERC20_IMPL"
readonly inputs: readonly []
readonly outputs: readonly [
{ readonly name: ""; readonly type: "address"; readonly internalType: "contract ZkgmERC20" }
]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "EXEC_MIN_GAS"
readonly inputs: readonly []
readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "IBC_HANDLER"
readonly inputs: readonly []
readonly outputs: readonly [
{ readonly name: ""; readonly type: "address"; readonly internalType: "contract IIBCModulePacket" }
]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "RATE_LIMIT_ENABLED"
readonly inputs: readonly []
readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; readonly internalType: "bool" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "SEND_IMPL"
readonly inputs: readonly []
readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "STAKE_IMPL"
readonly inputs: readonly []
readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "UPGRADE_INTERFACE_VERSION"
readonly inputs: readonly []
readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "WETH"
readonly inputs: readonly []
readonly outputs: readonly [
{ readonly name: ""; readonly type: "address"; readonly internalType: "contract IWETH" }
]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "authority"
readonly inputs: readonly []
readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "channelBalance"
readonly inputs: readonly [
{ readonly name: ""; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" }
]
readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "channelGovernanceToken"
readonly inputs: readonly [{ readonly name: ""; readonly type: "uint32"; readonly internalType: "uint32" }]
readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes"; readonly internalType: "bytes" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "execute"
readonly inputs: readonly [
{ readonly name: "caller"; readonly type: "address"; readonly internalType: "address" },
{
readonly name: "ibcPacket"
readonly type: "tuple"
readonly internalType: "struct IBCPacket"
readonly components: readonly [
{ readonly name: "sourceChannelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "destinationChannelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "data"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "timeoutHeight"; readonly type: "uint64"; readonly internalType: "uint64" },
{ readonly name: "timeoutTimestamp"; readonly type: "uint64"; readonly internalType: "uint64" }
]
},
{ readonly name: "relayer"; readonly type: "address"; readonly internalType: "address" },
{ readonly name: "relayerMsg"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "intent"; readonly type: "bool"; readonly internalType: "bool" }
]
readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes"; readonly internalType: "bytes" }]
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "getBucket"
readonly inputs: readonly [{ readonly name: "token"; readonly type: "address"; readonly internalType: "address" }]
readonly outputs: readonly [
{
readonly name: ""
readonly type: "tuple"
readonly internalType: "struct TokenBucket.Bucket"
readonly components: readonly [
{ readonly name: "capacity"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "available"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "refillRate"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "lastRefill"; readonly type: "uint256"; readonly internalType: "uint256" }
]
}
]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "gitRev"
readonly inputs: readonly []
readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string" }]
readonly stateMutability: "pure"
},
{
readonly type: "function"
readonly name: "ibcAddress"
readonly inputs: readonly []
readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "inFlightPacket"
readonly inputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32" }]
readonly outputs: readonly [
{ readonly name: "sourceChannelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "destinationChannelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "data"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "timeoutHeight"; readonly type: "uint64"; readonly internalType: "uint64" },
{ readonly name: "timeoutTimestamp"; readonly type: "uint64"; readonly internalType: "uint64" }
]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "initialize"
readonly inputs: readonly [
{ readonly name: "_authority"; readonly type: "address"; readonly internalType: "address" }
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "isConsumingScheduledOp"
readonly inputs: readonly []
readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes4"; readonly internalType: "bytes4" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "onAcknowledgementPacket"
readonly inputs: readonly [
{ readonly name: "caller"; readonly type: "address"; readonly internalType: "address" },
{
readonly name: "ibcPacket"
readonly type: "tuple"
readonly internalType: "struct IBCPacket"
readonly components: readonly [
{ readonly name: "sourceChannelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "destinationChannelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "data"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "timeoutHeight"; readonly type: "uint64"; readonly internalType: "uint64" },
{ readonly name: "timeoutTimestamp"; readonly type: "uint64"; readonly internalType: "uint64" }
]
},
{ readonly name: "ack"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "relayer"; readonly type: "address"; readonly internalType: "address" }
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "onChanCloseConfirm"
readonly inputs: readonly [
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" },
{ readonly name: ""; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" }
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "onChanCloseInit"
readonly inputs: readonly [
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" },
{ readonly name: ""; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" }
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "onChanOpenAck"
readonly inputs: readonly [
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" },
{ readonly name: "channelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: ""; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "counterpartyVersion"; readonly type: "string"; readonly internalType: "string" },
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" }
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "onChanOpenConfirm"
readonly inputs: readonly [
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" },
{ readonly name: "channelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" }
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "onChanOpenInit"
readonly inputs: readonly [
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" },
{ readonly name: ""; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: ""; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "version"; readonly type: "string"; readonly internalType: "string" },
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" }
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "onChanOpenTry"
readonly inputs: readonly [
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" },
{ readonly name: ""; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: ""; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: ""; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "version"; readonly type: "string"; readonly internalType: "string" },
{ readonly name: "counterpartyVersion"; readonly type: "string"; readonly internalType: "string" },
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" }
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "onRecvIntentPacket"
readonly inputs: readonly [
{ readonly name: "caller"; readonly type: "address"; readonly internalType: "address" },
{
readonly name: "packet"
readonly type: "tuple"
readonly internalType: "struct IBCPacket"
readonly components: readonly [
{ readonly name: "sourceChannelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "destinationChannelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "data"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "timeoutHeight"; readonly type: "uint64"; readonly internalType: "uint64" },
{ readonly name: "timeoutTimestamp"; readonly type: "uint64"; readonly internalType: "uint64" }
]
},
{ readonly name: "relayer"; readonly type: "address"; readonly internalType: "address" },
{ readonly name: "relayerMsg"; readonly type: "bytes"; readonly internalType: "bytes" }
]
readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes"; readonly internalType: "bytes" }]
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "onRecvPacket"
readonly inputs: readonly [
{ readonly name: "caller"; readonly type: "address"; readonly internalType: "address" },
{
readonly name: "packet"
readonly type: "tuple"
readonly internalType: "struct IBCPacket"
readonly components: readonly [
{ readonly name: "sourceChannelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "destinationChannelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "data"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "timeoutHeight"; readonly type: "uint64"; readonly internalType: "uint64" },
{ readonly name: "timeoutTimestamp"; readonly type: "uint64"; readonly internalType: "uint64" }
]
},
{ readonly name: "relayer"; readonly type: "address"; readonly internalType: "address" },
{ readonly name: "relayerMsg"; readonly type: "bytes"; readonly internalType: "bytes" }
]
readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes"; readonly internalType: "bytes" }]
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "onTimeoutPacket"
readonly inputs: readonly [
{ readonly name: "caller"; readonly type: "address"; readonly internalType: "address" },
{
readonly name: "ibcPacket"
readonly type: "tuple"
readonly internalType: "struct IBCPacket"
readonly components: readonly [
{ readonly name: "sourceChannelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "destinationChannelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "data"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "timeoutHeight"; readonly type: "uint64"; readonly internalType: "uint64" },
{ readonly name: "timeoutTimestamp"; readonly type: "uint64"; readonly internalType: "uint64" }
]
},
{ readonly name: "relayer"; readonly type: "address"; readonly internalType: "address" }
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "pause"
readonly inputs: readonly []
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "paused"
readonly inputs: readonly []
readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; readonly internalType: "bool" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "predictStakeManagerAddress"
readonly inputs: readonly []
readonly outputs: readonly [
{ readonly name: ""; readonly type: "address"; readonly internalType: "contract ZkgmERC721" }
]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "predictWrappedToken"
readonly inputs: readonly [
{ readonly name: "path"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "channel"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "token"; readonly type: "bytes"; readonly internalType: "bytes" }
]
readonly outputs: readonly [
{ readonly name: ""; readonly type: "address"; readonly internalType: "address" },
{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32" }
]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "proxiableUUID"
readonly inputs: readonly []
readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "registerGovernanceToken"
readonly inputs: readonly [
{ readonly name: "channelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "unwrappedGovernanceToken"; readonly type: "bytes"; readonly internalType: "bytes" }
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "send"
readonly inputs: readonly [
{ readonly name: "channelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "timeoutHeight"; readonly type: "uint64"; readonly internalType: "uint64" },
{ readonly name: "timeoutTimestamp"; readonly type: "uint64"; readonly internalType: "uint64" },
{ readonly name: "salt"; readonly type: "bytes32"; readonly internalType: "bytes32" },
{
readonly name: "instruction"
readonly type: "tuple"
readonly internalType: "struct Instruction"
readonly components: readonly [
{ readonly name: "version"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "opcode"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "operand"; readonly type: "bytes"; readonly internalType: "bytes" }
]
}
]
readonly outputs: readonly []
readonly stateMutability: "payable"
},
{
readonly type: "function"
readonly name: "setAuthority"
readonly inputs: readonly [
{ readonly name: "newAuthority"; readonly type: "address"; readonly internalType: "address" }
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "setBucketConfig"
readonly inputs: readonly [
{ readonly name: "token"; readonly type: "address"; readonly internalType: "address" },
{ readonly name: "capacity"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "refillRate"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "reset"; readonly type: "bool"; readonly internalType: "bool" }
]
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "stakes"
readonly inputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256" }]
readonly outputs: readonly [
{ readonly name: "state"; readonly type: "uint8"; readonly internalType: "enum ZkgmStakeState" },
{ readonly name: "channelId"; readonly type: "uint32"; readonly internalType: "uint32" },
{ readonly name: "validator"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "unstakingCompletion"; readonly type: "uint256"; readonly internalType: "uint256" }
]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "tokenOrigin"
readonly inputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address" }]
readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256" }]
readonly stateMutability: "view"
},
{
readonly type: "function"
readonly name: "unpause"
readonly inputs: readonly []
readonly outputs: readonly []
readonly stateMutability: "nonpayable"
},
{
readonly type: "function"
readonly name: "upgradeToAndCall"
readonly inputs: readonly [
{ readonly name: "newImplementation"; readonly type: "address"; readonly internalType: "address" },
{ readonly name: "data"; readonly type: "bytes"; readonly internalType: "bytes" }
]
readonly outputs: readonly []
readonly stateMutability: "payable"
},
{
readonly type: "event"
readonly name: "AuthorityUpdated"
readonly inputs: readonly [
{
readonly name: "authority"
readonly type: "address"
readonly indexed: false
readonly internalType: "address"
}
]
readonly anonymous: false
},
{
readonly type: "event"
readonly name: "Initialized"
readonly inputs: readonly [
{ readonly name: "version"; readonly type: "uint64"; readonly indexed: false; readonly internalType: "uint64" }
]
readonly anonymous: false
},
{
readonly type: "event"
readonly name: "Paused"
readonly inputs: readonly [
{ readonly name: "account"; readonly type: "address"; readonly indexed: false; readonly internalType: "address" }
]
readonly anonymous: false
},
{
readonly type: "event"
readonly name: "TokenBucketUpdate"
readonly inputs: readonly [
{ readonly name: "token"; readonly type: "address"; readonly indexed: true; readonly internalType: "address" },
{
readonly name: "capacity"
readonly type: "uint256"
readonly indexed: false
readonly internalType: "uint256"
},
{
readonly name: "refillRate"
readonly type: "uint256"
readonly indexed: false
readonly internalType: "uint256"
}
]
readonly anonymous: false
},
{
readonly type: "event"
readonly name: "Unpaused"
readonly inputs: readonly [
{ readonly name: "account"; readonly type: "address"; readonly indexed: false; readonly internalType: "address" }
]
readonly anonymous: false
},
{
readonly type: "event"
readonly name: "Upgraded"
readonly inputs: readonly [
{
readonly name: "implementation"
readonly type: "address"
readonly indexed: true
readonly internalType: "address"
}
]
readonly anonymous: false
},
{
readonly type: "error"
readonly name: "AccessManagedInvalidAuthority"
readonly inputs: readonly [
{ readonly name: "authority"; readonly type: "address"; readonly internalType: "address" }
]
},
{
readonly type: "error"
readonly name: "AccessManagedRequiredDelay"
readonly inputs: readonly [
{ readonly name: "caller"; readonly type: "address"; readonly internalType: "address" },
{ readonly name: "delay"; readonly type: "uint32"; readonly internalType: "uint32" }
]
},
{
readonly type: "error"
readonly name: "AccessManagedUnauthorized"
readonly inputs: readonly [{ readonly name: "caller"; readonly type: "address"; readonly internalType: "address" }]
},
{
readonly type: "error"
readonly name: "AddressEmptyCode"
readonly inputs: readonly [{ readonly name: "target"; readonly type: "address"; readonly internalType: "address" }]
},
{
readonly type: "error"
readonly name: "ERC1967InvalidImplementation"
readonly inputs: readonly [
{ readonly name: "implementation"; readonly type: "address"; readonly internalType: "address" }
]
},
{ readonly type: "error"; readonly name: "ERC1967NonPayable"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "EnforcedPause"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrAsyncMultiplexUnsupported"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrBatchMustBeSync"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrChannelGovernanceTokenAlreadySet"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrInfiniteGame"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrInvalidBatchInstruction"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrInvalidFillType"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrInvalidForwardDestinationChannelId"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrInvalidForwardInstruction"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrInvalidHops"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrInvalidIBCVersion"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrNotIBC"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrOnlyMaker"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrTokenBucketRateLimitExceeded"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrTokenBucketZeroCapacity"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrTokenBucketZeroRefillRate"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrUnauthorized"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrUnknownOpcode"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ErrUnsupportedVersion"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "ExpectedPause"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "FailedCall"; readonly inputs: readonly [] },
{
readonly type: "error"
readonly name: "InsufficientBalance"
readonly inputs: readonly [
{ readonly name: "balance"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "needed"; readonly type: "uint256"; readonly internalType: "uint256" }
]
},
{ readonly type: "error"; readonly name: "InvalidInitialization"; readonly inputs: readonly [] },
{ readonly type: "error"; readonly name: "NotInitializing"; readonly inputs: readonly [] },
{
readonly type: "error"
readonly name: "SafeERC20FailedOperation"
readonly inputs: readonly [{ readonly name: "token"; readonly type: "address"; readonly internalType: "address" }]
},
{ readonly type: "error"; readonly name: "UUPSUnauthorizedCallContext"; readonly inputs: readonly [] },
{
readonly type: "error"
readonly name: "UUPSUnsupportedProxiableUUID"
readonly inputs: readonly [{ readonly name: "slot"; readonly type: "bytes32"; readonly internalType: "bytes32" }]
}
]

Source: src/Ucs03.ts:20

Added in v2.0.0

Signature

export declare const AckAbi: LazyArg<
readonly [
{ readonly name: "tag"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "innerAck"; readonly type: "bytes"; readonly internalType: "bytes" }
]
>

Source: src/Ucs03.ts:776

Added in v2.0.0

Signature

export declare const BatchAbi: LazyArg<
readonly [
{
readonly name: "instructions"
readonly type: "tuple[]"
readonly internalType: "struct Instruction[]"
readonly components: readonly [
{ readonly name: "version"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "opcode"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "operand"; readonly type: "bytes"; readonly internalType: "bytes" }
]
}
]
>

Source: src/Ucs03.ts:771

Added in v2.0.0

Signature

export declare const BatchAckAbi: LazyArg<
readonly [{ readonly name: "acknowledgements"; readonly type: "bytes[]"; readonly internalType: "bytes[]" }]
>

Source: src/Ucs03.ts:781

Added in v2.0.0

Signature

export declare const ForwardAbi: LazyArg<
readonly [
{ readonly name: "path"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "timeoutHeight"; readonly type: "uint64"; readonly internalType: "uint64" },
{ readonly name: "timeoutTimestamp"; readonly type: "uint64"; readonly internalType: "uint64" },
{
readonly name: "instruction"
readonly type: "tuple"
readonly internalType: "struct Instruction"
readonly components: readonly [
{ readonly name: "version"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "opcode"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "operand"; readonly type: "bytes"; readonly internalType: "bytes" }
]
}
]
>

Source: src/Ucs03.ts:761

Added in v2.0.0

Signature

export declare const FungibleAssetOrderAbi: LazyArg<
readonly [
{ readonly name: "sender"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "receiver"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "baseToken"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "baseAmount"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "baseTokenSymbol"; readonly type: "string"; readonly internalType: "string" },
{ readonly name: "baseTokenName"; readonly type: "string"; readonly internalType: "string" },
{ readonly name: "baseTokenDecimals"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "baseTokenPath"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "quoteToken"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "quoteAmount"; readonly type: "uint256"; readonly internalType: "uint256" }
]
>

Source: src/Ucs03.ts:746

Added in v2.0.0

Signature

export declare const FungibleAssetOrderAckAbi: LazyArg<
readonly [
{ readonly name: "fillType"; readonly type: "uint256"; readonly internalType: "uint256" },
{ readonly name: "marketMaker"; readonly type: "bytes"; readonly internalType: "bytes" }
]
>

Source: src/Ucs03.ts:786

Added in v2.0.0

Signature

export declare const InstructionAbi: LazyArg<
readonly [
{ readonly name: "version"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "opcode"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "operand"; readonly type: "bytes"; readonly internalType: "bytes" }
]
>

Source: src/Ucs03.ts:751

Added in v2.0.0

Signature

export declare const MultiplexAbi: LazyArg<
readonly [
{ readonly name: "sender"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "eureka"; readonly type: "bool"; readonly internalType: "bool" },
{ readonly name: "contractAddress"; readonly type: "bytes"; readonly internalType: "bytes" },
{ readonly name: "contractCalldata"; readonly type: "bytes"; readonly internalType: "bytes" }
]
>

Source: src/Ucs03.ts:766

Added in v2.0.0

Signature

export declare const ZkgmPacketAbi: LazyArg<
readonly [
{ readonly name: "salt"; readonly type: "bytes32"; readonly internalType: "bytes32" },
{ readonly name: "path"; readonly type: "uint256"; readonly internalType: "uint256" },
{
readonly name: "instruction"
readonly type: "tuple"
readonly internalType: "struct Instruction"
readonly components: readonly [
{ readonly name: "version"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "opcode"; readonly type: "uint8"; readonly internalType: "uint8" },
{ readonly name: "operand"; readonly type: "bytes"; readonly internalType: "bytes" }
]
}
]
>

Source: src/Ucs03.ts:756

Added in v2.0.0

Signature

export declare class Batch

Added in v2.0.0

Source: src/Ucs03.ts:944

Signature

export declare class Forward

Added in v2.0.0

Source: src/Ucs03.ts:884

Signature

export declare class FungibleAssetOrder

Added in v2.0.0

Source: src/Ucs03.ts:968

Signature

export declare const Instruction: {
readonly Forward: Data.Case.Constructor<Forward, "_tag">
readonly Multiplex: Data.Case.Constructor<Multiplex, "_tag">
readonly Batch: Data.Case.Constructor<Batch, "_tag">
readonly FungibleAssetOrder: Data.Case.Constructor<FungibleAssetOrder, "_tag">
readonly $is: <Tag>(
tag: Tag
) => (u: unknown) => u is Extract<Forward | Multiplex | Batch | FungibleAssetOrder, { readonly _tag: Tag }>
readonly $match: {
<Cases>(
cases: Cases
): (
value: Forward | Multiplex | Batch | FungibleAssetOrder
) => Unify<ReturnType<Cases["Forward" | "Multiplex" | "Batch" | "FungibleAssetOrder"]>>
<Cases>(
value: Forward | Multiplex | Batch | FungibleAssetOrder,
cases: Cases
): Unify<ReturnType<Cases["Forward" | "Multiplex" | "Batch" | "FungibleAssetOrder"]>>
}
}

Source: src/Ucs03.ts:1024

Added in v2.0.0

Signature

export type Instruction = typeof Schema.Type

Source: src/Ucs03.ts:1029

Added in v2.0.0

Signature

export declare class Multiplex

Added in v2.0.0

Source: src/Ucs03.ts:920

Signature

export declare const Operand: S.Union<
[
S.Tuple<
[
S.TemplateLiteral<`0x${string}`>,
typeof S.BigIntFromSelf,
S.Struct<{
version: S.filter<S.refine<number, typeof S.NonNegative>>
opcode: S.refine<number, typeof S.NonNegative>
operand: S.TemplateLiteral<`0x${string}`>
}>
]
>,
S.Tuple<[typeof S.Number, typeof S.Number, S.TemplateLiteral<`0x${string}`>]>,
S.Tuple<
[
typeof S.BigIntFromSelf,
typeof S.BigIntFromSelf,
typeof S.BigIntFromSelf,
S.Struct<{
version: S.filter<S.refine<number, typeof S.NonNegative>>
opcode: S.refine<number, typeof S.NonNegative>
operand: S.TemplateLiteral<`0x${string}`>
}>
]
>,
S.Tuple<
[
S.TemplateLiteral<`0x${string}`>,
typeof S.Boolean,
S.TemplateLiteral<`0x${string}`>,
S.TemplateLiteral<`0x${string}`>
]
>,
S.Tuple<
[
S.Array$<
S.Struct<{
version: S.filter<S.refine<number, typeof S.NonNegative>>
opcode: S.refine<number, typeof S.NonNegative>
operand: S.TemplateLiteral<`0x${string}`>
}>
>
]
>,
S.Tuple<
[
S.TemplateLiteral<`0x${string}`>,
S.TemplateLiteral<`0x${string}`>,
S.TemplateLiteral<`0x${string}`>,
typeof S.BigIntFromSelf,
typeof S.String,
typeof S.String,
typeof S.Uint8,
typeof S.BigIntFromSelf,
S.TemplateLiteral<`0x${string}`>,
typeof S.BigIntFromSelf
]
>,
S.Tuple2<typeof S.BigIntFromSelf, S.TemplateLiteral<`0x${string}`>>,
S.Tuple<[S.NonEmptyArray<S.TemplateLiteral<`0x${string}`>>]>
]
>

Source: src/Ucs03.ts:853

Added in v2.0.0

Signature

export type Operand = typeof Operand.Type

Source: src/Ucs03.ts:878

Added in v2.0.0

Signature

export declare const Schema: S.Union<[typeof Forward, typeof Multiplex, typeof Batch, typeof FungibleAssetOrder]>

Source: src/Ucs03.ts:1018

Added in v2.0.0

Signature

export type Schema = Forward | Multiplex | Batch | FungibleAssetOrder

Source: src/Ucs03.ts:992

Added in v2.0.0

Encodes an {@link Instruction} as as {@link Hex} for dispatching.

Signature

export declare const encode: (_: Instruction) => Hex

Source: src/Ucs03.ts:1039

Added in v2.0.0