Class: AptosChain
Defined in: aptos/index.ts:86
Aptos chain implementation supporting Aptos networks.
Extends
Indexable
[key: symbol]: () => string
Constructors
Constructor
new AptosChain(
provider:Aptos,network:NetworkInfo,ctx?:ChainContext):AptosChain
Defined in: aptos/index.ts:109
Creates a new AptosChain instance.
Parameters
| Parameter | Type | Description |
|---|---|---|
provider | Aptos | Aptos SDK provider instance. |
network | NetworkInfo | Network information for this chain. |
ctx? | ChainContext | - |
Returns
AptosChain
Overrides
Chain<typeof ChainFamily.Aptos>.constructor
Properties
apiClient
readonlyapiClient:CCIPAPIClient|null
Defined in: chain.ts:427
CCIP API client (null if opted out)
Inherited from
apiRetryConfig
readonlyapiRetryConfig:Required<ApiRetryConfig> |null
Defined in: chain.ts:429
Retry configuration for API fallback operations (null if API client is disabled)
Inherited from
destroy$
readonlydestroy$:Promise<void>
Defined in: aptos/index.ts:95
getTokenInfo()
getTokenInfo: (
token:string) =>Promise<TokenInfo>
Defined in: aptos/index.ts:100
Retrieves token information for a given token address.
Parameters
| Parameter | Type |
|---|---|
token | string |
Returns
Promise<TokenInfo>
Overrides
logger
logger:
Logger
Defined in: chain.ts:425
Inherited from
network
readonlynetwork:NetworkInfo<"APTOS">
Defined in: chain.ts:424
Inherited from
provider
provider:
Aptos
Defined in: aptos/index.ts:97
The Aptos SDK provider for blockchain interactions.
decimals
readonlystaticdecimals:8=8
Defined in: aptos/index.ts:93
Native token decimals (8 for APT).
family
readonlystaticfamily:"APTOS"=ChainFamily.Aptos
Defined in: aptos/index.ts:91
Chain family identifier for Aptos networks.
Methods
destroy()?
optionaldestroy():void|Promise<void>
Defined in: chain.ts:463
Cleanup method to release resources (e.g., close connections).
Returns
void | Promise<void>
Inherited from
estimateReceiveExecution()?
optionalestimateReceiveExecution(opts: {message: {data?:BytesLike;destTokenAmounts?: readonly {amount:bigint;token:string; }[];messageId:string;sender?:string;sourceChainSelector:bigint; };offRamp:string;receiver:string; }):Promise<number>
Defined in: chain.ts:1502
Estimate ccipReceive execution cost (gas, computeUnits) for this dest
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | { message: { data?: BytesLike; destTokenAmounts?: readonly { amount: bigint; token: string; }[]; messageId: string; sender?: string; sourceChainSelector: bigint; }; offRamp: string; receiver: string; } | estimation options |
opts.message | { data?: BytesLike; destTokenAmounts?: readonly { amount: bigint; token: string; }[]; messageId: string; sender?: string; sourceChainSelector: bigint; } | - |
opts.message.data? | BytesLike | - |
opts.message.destTokenAmounts? | readonly { amount: bigint; token: string; }[] | - |
opts.message.messageId | string | - |
opts.message.sender? | string | - |
opts.message.sourceChainSelector | bigint | - |
opts.offRamp | string | - |
opts.receiver | string | - |
Returns
Promise<number>
estimated execution cost (gas or computeUnits)
Inherited from
Chain.estimateReceiveExecution
execute()
execute(
opts:ExecuteOpts& {wallet:unknown; }):Promise<CCIPExecution>
Defined in: aptos/index.ts:589
Execute messages in report in an offRamp.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | ExecuteOpts & { wallet: unknown; } | ExecuteOpts with chain-specific wallet to sign and send tx. |
Returns
Promise<CCIPExecution>
Promise resolving to transaction of the execution.
Throws
CCIPAptosWalletInvalidError if wallet is not a valid Aptos account
Overrides
generateUnsignedExecute()
generateUnsignedExecute(
__namedParameters:ExecuteOpts& {payer:string; }):Promise<UnsignedAptosTx>
Defined in: aptos/index.ts:559
Generate unsigned tx to manuallyExecute a message.
Parameters
| Parameter | Type | Description |
|---|---|---|
__namedParameters | ExecuteOpts & { payer: string; } | ExecuteOpts with payer address which will send the exec tx |
Returns
Promise<UnsignedAptosTx>
Promise resolving to chain-family specific unsigned txs
Throws
CCIPAptosExtraArgsV2RequiredError if message missing EVMExtraArgsV2 fields
Overrides
generateUnsignedSendMessage()
generateUnsignedSendMessage(
opts:SendMessageOpts& {sender:string; }):Promise<UnsignedAptosTx>
Defined in: aptos/index.ts:497
Generate unsigned txs for ccipSend'ing a message.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | SendMessageOpts & { sender: string; } | SendMessageOpts with sender address |
Returns
Promise<UnsignedAptosTx>
Promise resolving to chain-family specific unsigned txs
Overrides
Chain.generateUnsignedSendMessage
getBalance()
getBalance(
opts:GetBalanceOpts):Promise<bigint>
Defined in: aptos/index.ts:327
Query token balance for an address.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | GetBalanceOpts | Balance query options |
Returns
Promise<bigint>
Token balance information including raw and formatted values
Overrides
getBlockTimestamp()
getBlockTimestamp(
version:number|"finalized"):Promise<number>
Defined in: aptos/index.ts:199
Fetch the timestamp of a given block.
Parameters
| Parameter | Type | Description |
|---|---|---|
version | number | "finalized" | Positive block number, negative finality depth, or 'finalized' tag |
Returns
Promise<number>
Promise resolving to timestamp of the block, in seconds
Overrides
getExecutionInput()
getExecutionInput(
opts: {request:CCIPRequest;verifications:CCIPVerifications; } &Pick<LogFilter,"page">):Promise<ExecutionInput>
Defined in: chain.ts:717
Fetch input data needed for executing messages Should be called on the source instance
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | { request: CCIPRequest; verifications: CCIPVerifications; } & Pick<LogFilter, "page"> | getExecutionInput options containing request and verifications |
Returns
Promise<ExecutionInput>
input payload to be passed to [[execute]]
See
execute - method to execute a message
Inherited from
getExecutionReceipts()
getExecutionReceipts(
opts: {messageId?:string;offRamp:string;sourceChainSelector?:bigint;verifications?:CCIPVerifications; } &Pick<LogFilter,"startBlock"|"startTime"|"watch"|"page">):AsyncIterableIterator<CCIPExecution>
Defined in: chain.ts:1217
Default/generic implementation of getExecutionReceipts. Yields execution receipts for a given offRamp.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | { messageId?: string; offRamp: string; sourceChainSelector?: bigint; verifications?: CCIPVerifications; } & Pick<LogFilter, "startBlock" | "startTime" | "watch" | "page"> | getExecutionReceipts options |
Returns
AsyncIterableIterator<CCIPExecution>
Async generator of CCIPExecution receipts
Example
for await (const exec of dest.getExecutionReceipts({
offRamp: offRampAddress,
messageId: request.message.messageId,
startBlock: commit.log.blockNumber,
})) {
console.log(`State: ${exec.receipt.state}`)
if (exec.receipt.state === ExecutionState.Success) break
}
Inherited from
getFee()
getFee(
__namedParameters:Omit<SendMessageOpts,"approveMax">):Promise<bigint>
Defined in: aptos/index.ts:487
Fetch the current fee for a given intended message.
Parameters
| Parameter | Type | Description |
|---|---|---|
__namedParameters | Omit<SendMessageOpts, "approveMax"> | SendMessageOpts without approveMax |
Returns
Promise<bigint>
Fee amount in the feeToken's smallest units
Overrides
getFeeTokens()
getFeeTokens(
router:string):Promise<Record<string,TokenInfo>>
Defined in: aptos/index.ts:826
Fetch list and info of supported feeTokens.
Parameters
| Parameter | Type | Description |
|---|---|---|
router | string | Router address on this chain |
Returns
Promise<Record<string, TokenInfo>>
Promise resolving to mapping of token addresses to TokenInfo objects
Overrides
getLaneFeatures()
getLaneFeatures(
_opts: {destChainSelector:bigint;router:string;token?:string; }):Promise<Partial<LaneFeatures>>
Defined in: chain.ts:1190
Retrieve features for a lane (router/destChainSelector/token triplet).
Parameters
| Parameter | Type | Description |
|---|---|---|
_opts | { destChainSelector: bigint; router: string; token?: string; } | Options containing router address, destChainSelector, and optional token address (the token to be transferred in a hypothetical message on this lane) |
_opts.destChainSelector | bigint | - |
_opts.router | string | - |
_opts.token? | string | - |
Returns
Promise<Partial<LaneFeatures>>
Promise resolving to partial lane features record
Throws
CCIPNotImplementedError if not implemented for this chain family
Example
const features = await chain.getLaneFeatures({
router: '0x...',
destChainSelector: 4949039107694359620n,
})
// MIN_BLOCK_CONFIRMATIONS has three states:
// - undefined: FTF is not supported on this lane (pre-v2.0)
// - 0: the lane supports FTF, but it is not enabled for this token
// - > 0: FTF is enabled with this many block confirmations
const ftf = features.MIN_BLOCK_CONFIRMATIONS
if (ftf != null && ftf > 0) {
console.log(`FTF enabled with ${ftf} confirmations`)
} else if (ftf === 0) {
console.log('FTF supported on this lane but not enabled for this token')
}
Inherited from
getLaneLatency()
getLaneLatency(
destChainSelector:bigint):Promise<LaneLatencyResponse>
Defined in: chain.ts:1156
Fetches estimated lane latency to a destination chain. Uses this chain's selector as the source.
Parameters
| Parameter | Type | Description |
|---|---|---|
destChainSelector | bigint | Destination CCIP chain selector (bigint) |
Returns
Promise<LaneLatencyResponse>
Promise resolving to LaneLatencyResponse containing:
lane.sourceNetworkInfo- Source chain metadata (name, selector, chainId)lane.destNetworkInfo- Destination chain metadatalane.routerAddress- Router contract address on source chaintotalMs- Estimated delivery time in milliseconds
Throws
CCIPApiClientNotAvailableError if apiClient was disabled (set to null)
Throws
CCIPHttpError if API request fails (network error, 4xx, 5xx status)
Remarks
Each call makes a fresh API request. Consider caching results if making frequent calls for the same lane.
Example
const chain = await EVMChain.fromUrl('https://eth-mainnet.example.com')
try {
const latency = await chain.getLaneLatency(4949039107694359620n) // Arbitrum
console.log(`Estimated delivery: ${Math.round(latency.totalMs / 60000)} minutes`)
console.log(`Router: ${latency.lane.routerAddress}`)
} catch (err) {
if (err instanceof CCIPHttpError) {
console.error(`API error: ${err.context.apiErrorCode}`)
}
}
Inherited from
getLogs()
getLogs(
opts:LogFilter& {versionAsHash?:boolean; }):AsyncIterableIterator<ChainLog>
Defined in: aptos/index.ts:238
An async generator that yields logs based on the provided options.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | LogFilter & { versionAsHash?: boolean; } | Options object containing: - startBlock: if provided, fetch and generate logs forward starting from this block; otherwise, returns logs backwards in time from endBlock; optionally, startTime may be provided to fetch logs forward starting from this time - startTime: instead of a startBlock, a start timestamp may be provided; if either is provided, fetch logs forward from this starting point; otherwise, backwards - endBlock: if omitted, use latest block; can be a block number, 'latest', 'finalized' or negative finality block depth - endBefore: optional hint signature for end of iteration, instead of endBlock - address: if provided, fetch logs for this address only (may be required in some networks/implementations) - topics: if provided, fetch logs for these topics only; if string[], it's assumed to be a list of topic0s (i.e. string[] or string[][0], event_ids); some networks/implementations may not be able to filter topics other than topic0s, so one may want to assume those are optimization hints, instead of hard filters, and verify results - page: if provided, try to use this page/range for batches - watch: true or cancellation promise, getLogs continuously after initial fetch |
Returns
AsyncIterableIterator<ChainLog>
An async iterable iterator of logs.
Overrides
getMessageById()
getMessageById(
messageId:string,_opts?: {onRamp?:string;page?:number; }):Promise<CCIPRequest<CCIPVersion>>
Defined in: chain.ts:669
Fetch a CCIP message by its unique message ID.
Parameters
| Parameter | Type | Description |
|---|---|---|
messageId | string | The unique message ID (0x + 64 hex chars) |
_opts? | { onRamp?: string; page?: number; } | Optional: onRamp hint for non-EVM chains |
_opts.onRamp? | string | - |
_opts.page? | number | - |
Returns
Promise<CCIPRequest<CCIPVersion>>
CCIPRequest with metadata populated from API
Remarks
Uses the CCIP API to retrieve message details. The returned request includes
a metadata field with API-specific information.
Example
const request = await chain.getMessageById(messageId)
console.log(`Sender: ${request.message.sender}`)
if (request.metadata) {
console.log(`Status: ${request.metadata.status}`)
if (request.metadata.deliveryTime) {
console.log(`Delivered in ${request.metadata.deliveryTime}ms`)
}
}
Throws
CCIPApiClientNotAvailableError if API disabled
Throws
CCIPMessageIdNotFoundError if message not found
Throws
CCIPOnRampRequiredError if onRamp is required but not provided
Throws
CCIPHttpError if API request fails
Inherited from
getMessagesInBatch()
getMessagesInBatch<
R>(request:R,range:Pick<CommitReport,"minSeqNr"|"maxSeqNr">,opts?: {page?:number; }):Promise<R["message"][]>
Defined in: aptos/index.ts:243
Fetches all CCIP messages contained in a given commit batch. To be implemented for chains supporting CCIPVersion <= v1.6.0
Type Parameters
| Type Parameter | Description |
|---|---|
R extends { lane: Lane<CCIPVersion>; log: { } & { } & { }; message: { sequenceNumber: bigint; } | { sequenceNumber: bigint; } | { sequenceNumber: bigint; } | { sequenceNumber: bigint; } | { sequenceNumber: bigint; } | { sequenceNumber: bigint; }; } |
Parameters
| Parameter | Type | Description |
|---|---|---|
request | R | CCIPRequest to fetch batch for |
range | Pick<CommitReport, "minSeqNr" | "maxSeqNr"> | batch range { minSeqnr, maxSeqNr }, e.g. from [[CommitReport]] |
opts? | { page?: number; } | Optional parameters (e.g., page for pagination width) |
opts.page? | number | - |
Returns
Promise<R["message"][]>
Array of messages in the batch
Overrides
getMessagesInTx()
getMessagesInTx(
tx:string|ChainTransaction):Promise<CCIPRequest<CCIPVersion>[]>
Defined in: chain.ts:613
Fetch all CCIP requests in a transaction.
Parameters
| Parameter | Type | Description |
|---|---|---|
tx | string | ChainTransaction | ChainTransaction or txHash to fetch requests from |
Returns
Promise<CCIPRequest<CCIPVersion>[]>
Promise resolving to CCIP messages in the transaction (at least one)
Throws
CCIPTransactionNotFoundError if transaction does not exist
Throws
CCIPMessageNotFoundInTxError if no CCIPSendRequested events in tx
Example
const chain = await EVMChain.fromUrl('https://eth-mainnet.example.com')
const requests = await chain.getMessagesInTx('0xabc123...')
for (const req of requests) {
console.log(`Message ID: ${req.message.messageId}`)
}
Inherited from
getNativeTokenForRouter()
getNativeTokenForRouter(
_router:string):Promise<string>
Defined in: aptos/index.ts:279
Get the native token address for a Router.
Parameters
| Parameter | Type | Description |
|---|---|---|
_router | string | Router contract address |
Returns
Promise<string>
Promise resolving to native token address (usually wrapped)
Overrides
getOffchainTokenData()
getOffchainTokenData(
request: {message: {data:string;feeToken:string;feeTokenAmount:bigint;gasLimit:bigint;messageId:string;nonce:bigint;receiver:string;sender:string;sequenceNumber:bigint;sourceChainSelector:bigint;sourceTokenData: readonlystring[];strict:boolean;tokenAmounts: readonly {amount:bigint;token:string; }[]; } |CCIPMessage_V1_5_EVM|CCIPMessage_V1_6_EVM|CCIPMessage_V1_6_Solana| {ccipReceiveGasLimit:number;ccvAndExecutorHash:string;data:string;destBlob:string;destChainSelector:bigint;encodedMessage:string;executionGasLimit:number;feeToken:string;feeTokenAmount:bigint;finality:number;messageId:string;messageNumber:bigint;offRampAddress:string;onRampAddress:string;receipts: readonly {destBytesOverhead:bigint;destGasLimit:bigint;extraArgs:string;feeTokenAmount:bigint;issuer:string; }[];receiver:string;sender:string;sequenceNumber:bigint;sourceChainSelector:bigint;tokenAmountBeforeTokenPoolFees:bigint;tokenAmounts: readonlyTokenTransferV1[];verifierBlobs: readonlystring[]; } |CCIPMessage_V1_6_Sui;tx: {hash:string; }; }):Promise<OffchainTokenData[]>
Defined in: chain.ts:1014
Fetch supported offchain token data for a request from this network. It logs but doesn't throw in case it can't fetch attestation, as the transfers may not be from the expected attestation providers. It returns default offchainData=undefined for those.
Parameters
| Parameter | Type | Description |
|---|---|---|
request | { message: { data: string; feeToken: string; feeTokenAmount: bigint; gasLimit: bigint; messageId: string; nonce: bigint; receiver: string; sender: string; sequenceNumber: bigint; sourceChainSelector: bigint; sourceTokenData: readonly string[]; strict: boolean; tokenAmounts: readonly { amount: bigint; token: string; }[]; } | CCIPMessage_V1_5_EVM | CCIPMessage_V1_6_EVM | CCIPMessage_V1_6_Solana | { ccipReceiveGasLimit: number; ccvAndExecutorHash: string; data: string; destBlob: string; destChainSelector: bigint; encodedMessage: string; executionGasLimit: number; feeToken: string; feeTokenAmount: bigint; finality: number; messageId: string; messageNumber: bigint; offRampAddress: string; onRampAddress: string; receipts: readonly { destBytesOverhead: bigint; destGasLimit: bigint; extraArgs: string; feeTokenAmount: bigint; issuer: string; }[]; receiver: string; sender: string; sequenceNumber: bigint; sourceChainSelector: bigint; tokenAmountBeforeTokenPoolFees: bigint; tokenAmounts: readonly TokenTransferV1[]; verifierBlobs: readonly string[]; } | CCIPMessage_V1_6_Sui; tx: { hash: string; }; } | CCIP request, with tx.hash and message |
request.message | { data: string; feeToken: string; feeTokenAmount: bigint; gasLimit: bigint; messageId: string; nonce: bigint; receiver: string; sender: string; sequenceNumber: bigint; sourceChainSelector: bigint; sourceTokenData: readonly string[]; strict: boolean; tokenAmounts: readonly { amount: bigint; token: string; }[]; } | CCIPMessage_V1_5_EVM | CCIPMessage_V1_6_EVM | CCIPMessage_V1_6_Solana | { ccipReceiveGasLimit: number; ccvAndExecutorHash: string; data: string; destBlob: string; destChainSelector: bigint; encodedMessage: string; executionGasLimit: number; feeToken: string; feeTokenAmount: bigint; finality: number; messageId: string; messageNumber: bigint; offRampAddress: string; onRampAddress: string; receipts: readonly { destBytesOverhead: bigint; destGasLimit: bigint; extraArgs: string; feeTokenAmount: bigint; issuer: string; }[]; receiver: string; sender: string; sequenceNumber: bigint; sourceChainSelector: bigint; tokenAmountBeforeTokenPoolFees: bigint; tokenAmounts: readonly TokenTransferV1[]; verifierBlobs: readonly string[]; } | CCIPMessage_V1_6_Sui | - |
request.tx | { hash: string; } | Transaction that emitted the request. |
request.tx.hash | string | Transaction hash. |
Returns
Promise<OffchainTokenData[]>
Promise resolving to array with one offchain token data for each token transfer
Example
const offchainData = await source.getOffchainTokenData(request)
// Use in execution report
Inherited from
getOffRampsForRouter()
getOffRampsForRouter(
router:string,_sourceChainSelector:bigint):Promise<string[]>
Defined in: aptos/index.ts:284
Fetch the OffRamps allowlisted in a Router. Used to discover OffRamp connected to an OnRamp.
Parameters
| Parameter | Type | Description |
|---|---|---|
router | string | Router contract address |
_sourceChainSelector | bigint | Source chain selector |
Returns
Promise<string[]>
Promise resolving to array of OffRamp addresses
Overrides
getOnRampForRouter()
getOnRampForRouter(
router:string,_destChainSelector:bigint):Promise<string>
Defined in: aptos/index.ts:289
Fetch the OnRamp registered in a Router for a destination chain.
Parameters
| Parameter | Type | Description |
|---|---|---|
router | string | Router contract address |
_destChainSelector | bigint | Destination chain selector |
Returns
Promise<string>
Promise resolving to OnRamp address
Overrides
getOnRampsForOffRamp()
getOnRampsForOffRamp(
offRamp:string,sourceChainSelector:bigint):Promise<string[]>
Defined in: aptos/index.ts:294
Fetch the OnRamps addresses set in OffRamp config. Used to discover OffRamp connected to an OnRamp.
Parameters
| Parameter | Type | Description |
|---|---|---|
offRamp | string | OffRamp contract address |
sourceChainSelector | bigint | Source chain selector |
Returns
Promise<string[]>
Promise resolving to OnRamps addresses
Overrides
getRegistryTokenConfig()
getRegistryTokenConfig(
registry:string,token:string):Promise<{administrator:string;pendingAdministrator?:string;tokenPool?:string; }>
Defined in: aptos/index.ts:655
Fetch token configuration from a TokenAdminRegistry.
Parameters
| Parameter | Type | Description |
|---|---|---|
registry | string | TokenAdminRegistry contract address. |
token | string | Token address to query. |
Returns
Promise<{ administrator: string; pendingAdministrator?: string; tokenPool?: string; }>
RegistryTokenConfig containing administrator and pool information.
Remarks
The TokenAdminRegistry is a contract that tracks token administrators and their associated pools. Each token has an administrator who can update pool configurations.
Throws
CCIPAptosTokenNotRegisteredError if token is not registered
Overrides
getRouterForOffRamp()
getRouterForOffRamp(
offRamp:string,_sourceChainSelector:bigint):Promise<string>
Defined in: aptos/index.ts:274
Fetch the Router address set in OffRamp config.
Parameters
| Parameter | Type | Description |
|---|---|---|
offRamp | string | OffRamp contract address |
_sourceChainSelector | bigint | Source chain selector |
Returns
Promise<string>
Promise resolving to Router address
Overrides
getRouterForOnRamp()
getRouterForOnRamp(
onRamp:string,_destChainSelector:bigint):Promise<string>
Defined in: aptos/index.ts:268
Fetch the Router address set in OnRamp config. Used to discover OffRamp connected to OnRamp.
Parameters
| Parameter | Type | Description |
|---|---|---|
onRamp | string | OnRamp contract address |
_destChainSelector | bigint | Destination chain selector |
Returns
Promise<string>
Promise resolving to Router address
Overrides
getSupportedTokens()
getSupportedTokens(
address:string,opts?: {page?:number; }):Promise<string[]>
Defined in: aptos/index.ts:633
List tokens supported by given TokenAdminRegistry contract.
Parameters
| Parameter | Type | Description |
|---|---|---|
address | string | Usually TokenAdminRegistry, but chain may support receiving Router, OnRamp, etc. |
opts? | { page?: number; } | Optional parameters (e.g., page for pagination range) |
opts.page? | number | - |
Returns
Promise<string[]>
Promise resolving to array of supported token addresses
Overrides
getTokenAdminRegistryFor()
getTokenAdminRegistryFor(
address:string):Promise<string>
Defined in: aptos/index.ts:342
Fetch TokenAdminRegistry configured in a given OnRamp, Router, etc. Needed to map a source token to its dest counterparts.
Parameters
| Parameter | Type | Description |
|---|---|---|
address | string | Contract address (OnRamp, Router, etc.) |
Returns
Promise<string>
Promise resolving to TokenAdminRegistry address
Throws
CCIPAptosRegistryTypeInvalidError if registry type is invalid
Overrides
Chain.getTokenAdminRegistryFor
getTokenForTokenPool()
getTokenForTokenPool(
tokenPool:string):Promise<string>
Defined in: aptos/index.ts:306
Fetch the TokenPool's token/mint.
Parameters
| Parameter | Type | Description |
|---|---|---|
tokenPool | string | TokenPool address |
Returns
Promise<string>
Promise resolving to token or mint address
Overrides
getTokenPoolConfig()
getTokenPoolConfig(
tokenPool:string):Promise<{router:string;token:string;typeAndVersion?:string; }>
Defined in: aptos/index.ts:681
Fetch configuration of a token pool.
Parameters
| Parameter | Type | Description |
|---|---|---|
tokenPool | string | Token pool contract address. |
Returns
Promise<{ router: string; token: string; typeAndVersion?: string; }>
TokenPoolConfig containing token, router, and version info.
Remarks
Return type varies by chain:
- EVM:
typeAndVersionis always present (required) - Solana: Includes extra
tokenPoolProgramfield - Aptos: Standard fields only
- Sui/TON: Throws CCIPNotImplementedError
Overrides
getTokenPoolRemote()
getTokenPoolRemote(
tokenPool:string,remoteChainSelector:bigint):Promise<TokenPoolRemote>
Defined in: chain.ts:1416
Fetch remote chain configuration for a token pool for a specific destination.
Parameters
| Parameter | Type | Description |
|---|---|---|
tokenPool | string | Token pool address on the current chain. |
remoteChainSelector | bigint | Chain selector of the desired remote chain. |
Returns
Promise<TokenPoolRemote>
TokenPoolRemote config for the specified remote chain.
Remarks
Convenience wrapper around getTokenPoolRemotes that returns a single configuration instead of a Record. Use this when you need configuration for a specific destination chain.
Example
const arbitrumSelector = 4949039107694359620n
const remote = await chain.getTokenPoolRemote(poolAddress, arbitrumSelector)
console.log(`Remote token: ${remote.remoteToken}`)
console.log(`Remote pools: ${remote.remotePools.join(', ')}`)
Throws
CCIPTokenPoolChainConfigNotFoundError if no configuration found for the specified remote chain.
Inherited from
getTokenPoolRemotes()
getTokenPoolRemotes(
tokenPool:string,remoteChainSelector?:bigint):Promise<Record<string,TokenPoolRemote>>
Defined in: aptos/index.ts:720
Fetch remote chain configurations for a token pool.
Parameters
| Parameter | Type | Description |
|---|---|---|
tokenPool | string | Token pool address on the current chain. |
remoteChainSelector? | bigint | Optional chain selector to filter results to a single destination. |
Returns
Promise<Record<string, TokenPoolRemote>>
Record where keys are chain names (e.g., "ethereum-mainnet") and values are TokenPoolRemote configs.
Remarks
A token pool maintains configurations for each destination chain it supports. The returned Record maps chain names to their respective configurations.
Overrides
getTransaction()
getTransaction(
hashOrVersion:string|number):Promise<ChainTransaction>
Defined in: aptos/index.ts:208
Fetch a transaction by its hash.
Parameters
| Parameter | Type | Description |
|---|---|---|
hashOrVersion | string | number | Transaction hash |
Returns
Promise<ChainTransaction>
Promise resolving to generic transaction details
Throws
CCIPAptosTransactionInvalidError if hash/version format is invalid
Throws
CCIPAptosTransactionTypeInvalidError if transaction is not a user transaction
Overrides
getVerifications()
getVerifications(
opts: {offRamp:string;request: {lane:Lane<CCIPVersion>;message: {sequenceNumber:bigint; } | {sequenceNumber:bigint; } | {sequenceNumber:bigint; } | {sequenceNumber:bigint; } | {sequenceNumber:bigint; } | {sequenceNumber:bigint; } & {messageId:string; } | {messageId:string; } | {messageId:string; } | {messageId:string; } | {messageId:string; } | {messageId:string; };tx: {timestamp:number; }; }; } &Pick<LogFilter,"startBlock"|"watch"|"page">):Promise<CCIPVerifications>
Defined in: chain.ts:1108
Look for a CommitReport at dest for given CCIP request. May be specialized by some subclasses.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | { offRamp: string; request: { lane: Lane<CCIPVersion>; message: { sequenceNumber: bigint; } | { sequenceNumber: bigint; } | { sequenceNumber: bigint; } | { sequenceNumber: bigint; } | { sequenceNumber: bigint; } | { sequenceNumber: bigint; } & { messageId: string; } | { messageId: string; } | { messageId: string; } | { messageId: string; } | { messageId: string; } | { messageId: string; }; tx: { timestamp: number; }; }; } & Pick<LogFilter, "startBlock" | "watch" | "page"> | getVerifications options |
Returns
Promise<CCIPVerifications>
CCIPVerifications
Throws
CCIPCommitNotFoundError if no commit found for the request (transient)
Example
const verifications = await dest.getVerifications({
offRamp: offRampAddress,
request,
})
console.log(`Committed at block: ${verifications.log.blockNumber}`)
Inherited from
resolveExecuteOpts()
protectedresolveExecuteOpts(opts:ExecuteOpts):Promise<Omit<ExecuteOpts,"messageId"> & {input:ExecutionInput;offRamp:string; }>
Defined in: chain.ts:1030
Resolves ExecuteOpts that may contain a messageId (API shorthand) into the
canonical { offRamp, input } form required by generateUnsignedExecute.
When opts already contains input the method is a no-op and returns it unchanged.
When opts contains only a messageId it calls apiClient.getExecutionInput and merges
the result back with any extra opts fields (e.g. gasLimit).
Parameters
| Parameter | Type |
|---|---|
opts | ExecuteOpts |
Returns
Promise<Omit<ExecuteOpts, "messageId"> & { input: ExecutionInput; offRamp: string; }>
Throws
CCIPApiClientNotAvailableError if messageId is provided but no apiClient
Inherited from
sendMessage()
sendMessage(
opts:SendMessageOpts& {wallet:unknown; }):Promise<CCIPRequest<CCIPVersion>>
Defined in: aptos/index.ts:527
Send a CCIP message through a router using provided wallet.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | SendMessageOpts & { wallet: unknown; } | SendMessageOpts with chain-specific wallet for signing |
Returns
Promise<CCIPRequest<CCIPVersion>>
Promise resolving to CCIP request with message details
Throws
CCIPAptosWalletInvalidError if wallet is not a valid Aptos account
Overrides
typeAndVersion()
typeAndVersion(
address:string):Promise<[string,string,string,string]>
Defined in: aptos/index.ts:257
Fetch typeAndVersion for a given CCIP contract address.
Parameters
| Parameter | Type | Description |
|---|---|---|
address | string | CCIP contract address |
Returns
Promise<[string, string, string, string]>
Promise resolving to tuple:
type- Parsed type of the contract, e.g.OnRampversion- Parsed version of the contract, e.g.1.6.0typeAndVersion- Original (unparsed) typeAndVersion() stringsuffix- Suffix of the version, if any (e.g.-dev)
Overrides
waitFinalized()
waitFinalized(
opts: {cancel$?:Promise<unknown>;finality?:number|"finalized";request: {log: { } & { } & { } & { } & {tx?: {timestamp:number; }; };tx?: {timestamp:number; }; }; }):Promise<true>
Defined in: chain.ts:529
Confirm a log tx is finalized or wait for it to be finalized.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | { cancel$?: Promise<unknown>; finality?: number | "finalized"; request: { log: { } & { } & { } & { } & { tx?: { timestamp: number; }; }; tx?: { timestamp: number; }; }; } | Options containing the request, finality level, and optional cancel promise |
opts.cancel$? | Promise<unknown> | - |
opts.finality? | number | "finalized" | - |
opts.request | { log: { } & { } & { } & { } & { tx?: { timestamp: number; }; }; tx?: { timestamp: number; }; } | - |
opts.request.log | { } & { } & { } & { } & { tx?: { timestamp: number; }; } | - |
opts.request.tx? | { timestamp: number; } | Transaction that emitted the request. |
opts.request.tx.timestamp | number | Unix timestamp of the block. |
Returns
Promise<true>
true when the transaction is finalized
Throws
CCIPTransactionNotFinalizedError if the transaction is not included (e.g., due to a reorg)
Example
const request = await source.getMessagesInTx(txHash)
try {
await source.waitFinalized({ request: request[0] })
console.log('Transaction finalized')
} catch (err) {
if (err instanceof CCIPTransactionNotFinalizedError) {
console.log('Transaction not yet finalized')
}
}
Inherited from
buildMessageForDest()
staticbuildMessageForDest(message:MessageInput):AnyMessage
Defined in: chain.ts:1459
Returns a copy of a message, populating missing fields like extraArgs with defaults.
It's expected to return a message suitable at least for basic token transfers.
Parameters
| Parameter | Type | Description |
|---|---|---|
message | MessageInput | AnyMessage (from source), containing at least receiver. |
Returns
AnyMessage
A message suitable for sendMessage to this destination chain family.
Remarks
V3 (GenericExtraArgsV3) is auto-detected when any V3-only field is present
(e.g. blockConfirmations, ccvs, ccvArgs, executor, executorArgs,
tokenReceiver, tokenArgs). Otherwise defaults to V2 (EVMExtraArgsV2).
Throws
CCIPArgumentInvalidError if extraArgs contains unknown fields for the detected version.
Inherited from
Chain.buildMessageForDest
decodeCommits()
staticdecodeCommits(log:Pick<ChainLog,"data">,lane?:Lane<CCIPVersion>): {maxSeqNr:bigint;merkleRoot:string;minSeqNr:bigint;onRampAddress:string;sourceChainSelector:bigint; }[] |undefined
Defined in: aptos/index.ts:417
Decodes commit reports from an Aptos log event.
Parameters
| Parameter | Type | Description |
|---|---|---|
log | Pick<ChainLog, "data"> | Log with data field. |
lane? | Lane<CCIPVersion> | Lane info for filtering. |
Returns
{ maxSeqNr: bigint; merkleRoot: string; minSeqNr: bigint; onRampAddress: string; sourceChainSelector: bigint; }[] | undefined
Array of CommitReport or undefined if not valid.
Throws
CCIPAptosLogInvalidError if log data format is invalid
decodeExtraArgs()
staticdecodeExtraArgs(extraArgs:BytesLike):EVMExtraArgsV1& {allowOutOfOrderExecution:boolean; } & {_tag:"EVMExtraArgsV2"; } |SVMExtraArgsV1& {_tag:"SVMExtraArgsV1"; } |undefined
Defined in: aptos/index.ts:379
Decodes extra arguments from Aptos CCIP messages.
Parameters
| Parameter | Type | Description |
|---|---|---|
extraArgs | BytesLike | Encoded extra arguments bytes. |
Returns
EVMExtraArgsV1 & { allowOutOfOrderExecution: boolean; } & { _tag: "EVMExtraArgsV2"; }
SVMExtraArgsV1 & { _tag: "SVMExtraArgsV1"; }
undefined
Decoded extra arguments or undefined if unknown format.
decodeMessage()
staticdecodeMessage(log: {data:Record<string,unknown> |BytesLike; }):CCIPMessage|undefined
Defined in: aptos/index.ts:357
Decodes a CCIP message from an Aptos log event.
Parameters
| Parameter | Type | Description |
|---|---|---|
log | { data: Record<string, unknown> | BytesLike; } | Log with data field. |
log.data | Record<string, unknown> | BytesLike | - |
Returns
CCIPMessage | undefined
Decoded CCIPMessage or undefined if not valid.
Throws
CCIPAptosLogInvalidError if log data format is invalid
decodeReceipt()
staticdecodeReceipt(log:Pick<ChainLog,"data">):ExecutionReceipt|undefined
Defined in: aptos/index.ts:451
Decodes an execution receipt from an Aptos log event.
Parameters
| Parameter | Type | Description |
|---|---|---|
log | Pick<ChainLog, "data"> | Log with data field. |
Returns
ExecutionReceipt | undefined
ExecutionReceipt or undefined if not valid.
Throws
CCIPAptosLogInvalidError if log data format is invalid
encodeExtraArgs()
staticencodeExtraArgs(extraArgs:ExtraArgs):string
Defined in: aptos/index.ts:394
Encodes extra arguments for Aptos CCIP messages.
Parameters
| Parameter | Type | Description |
|---|---|---|
extraArgs | ExtraArgs | Extra arguments to encode. |
Returns
string
Encoded extra arguments as hex string.
Throws
CCIPAptosExtraArgsEncodingError if extra args format is not supported
fromAptosConfig()
staticfromAptosConfig(config:AptosConfig,ctx?:WithLogger):Promise<AptosChain>
Defined in: aptos/index.ts:166
Creates an AptosChain instance from an Aptos configuration.
Parameters
| Parameter | Type | Description |
|---|---|---|
config | AptosConfig | Aptos configuration object. |
ctx? | WithLogger | context containing logger. |
Returns
Promise<AptosChain>
A new AptosChain instance.
fromProvider()
staticfromProvider(provider:Aptos,ctx?:WithLogger):Promise<AptosChain>
Defined in: aptos/index.ts:156
Creates an AptosChain instance from an existing Aptos provider.
Parameters
| Parameter | Type | Description |
|---|---|---|
provider | Aptos | Aptos SDK provider instance. |
ctx? | WithLogger | context containing logger. |
Returns
Promise<AptosChain>
A new AptosChain instance.
fromUrl()
staticfromUrl(url:string| readonly [string,Network],ctx?:ChainContext):Promise<AptosChain>
Defined in: aptos/index.ts:178
Creates an AptosChain instance from a URL or network identifier.
Parameters
| Parameter | Type | Description |
|---|---|---|
url | string | readonly [string, Network] | RPC URL, Aptos Network enum value or [fullNodeUrl, Network] tuple. |
ctx? | ChainContext | context containing logger |
Returns
Promise<AptosChain>
A new AptosChain instance.
Throws
CCIPAptosNetworkUnknownError if network cannot be determined from URL
getAddress()
staticgetAddress(bytes:BytesLike| readonlynumber[]):string
Defined in: aptos/index.ts:466
Converts bytes to an Aptos address.
Parameters
| Parameter | Type | Description |
|---|---|---|
bytes | BytesLike | readonly number[] | Bytes to convert. |
Returns
string
Aptos address (0x-prefixed hex, 32 bytes padded).
Throws
CCIPDataFormatUnsupportedError if bytes length exceeds 32
getDestLeafHasher()
staticgetDestLeafHasher(lane:Lane,_ctx?:WithLogger):LeafHasher
Defined in: aptos/index.ts:482
Gets the leaf hasher for Aptos destination chains.
Parameters
| Parameter | Type | Description |
|---|---|---|
lane | Lane | Lane configuration. |
_ctx? | WithLogger | - |
Returns
LeafHasher
Leaf hasher function.
isTxHash()
staticisTxHash(v:unknown):v is `0x${string}`
Defined in: aptos/index.ts:473
Validates a transaction hash format for Aptos
Parameters
| Parameter | Type |
|---|---|
v | unknown |
Returns
v is `0x${string}`
parse()
staticparse(data:unknown):EVMExtraArgsV1& {allowOutOfOrderExecution:boolean; } & {_tag:"EVMExtraArgsV2"; } |SVMExtraArgsV1& {_tag:"SVMExtraArgsV1"; } |undefined
Defined in: aptos/index.ts:621
Parses raw Aptos data into typed structures.
Parameters
| Parameter | Type | Description |
|---|---|---|
data | unknown | Raw data to parse. |
Returns
EVMExtraArgsV1 & { allowOutOfOrderExecution: boolean; } & { _tag: "EVMExtraArgsV2"; }
SVMExtraArgsV1 & { _tag: "SVMExtraArgsV1"; }
undefined
Parsed data or undefined.