Skip to main content
Version: 0.96.0

Function: decodeExtraArgs()

decodeExtraArgs(data: BytesLike, from?: ChainFamily): EVMExtraArgsV1 & { _tag: "EVMExtraArgsV1"; } | EVMExtraArgsV1 & { allowOutOfOrderExecution: boolean; } & { _tag: "EVMExtraArgsV2"; } | GenericExtraArgsV3 & { _tag: "GenericExtraArgsV3"; } | SVMExtraArgsV1 & { _tag: "SVMExtraArgsV1"; } | EVMExtraArgsV1 & { allowOutOfOrderExecution: boolean; } & { receiverObjectIds: string[]; tokenReceiver: string; } & { _tag: "SuiExtraArgsV1"; } | undefined

Defined in: extra-args.ts:194

Parses extra arguments from CCIP messages.

Parameters

ParameterTypeDescription
dataBytesLikeExtra arguments bytearray data.
from?ChainFamilyOptional chain family to narrow decoding attempts.

Returns

EVMExtraArgsV1 & { _tag: "EVMExtraArgsV1"; }

EVMExtraArgsV1 & { allowOutOfOrderExecution: boolean; } & { _tag: "EVMExtraArgsV2"; }

GenericExtraArgsV3 & { _tag: "GenericExtraArgsV3"; }

SVMExtraArgsV1 & { _tag: "SVMExtraArgsV1"; }

EVMExtraArgsV1 & { allowOutOfOrderExecution: boolean; } & { receiverObjectIds: string[]; tokenReceiver: string; } & { _tag: "SuiExtraArgsV1"; }

undefined

Extra arguments object if found, undefined otherwise.

Throws

CCIPChainFamilyUnsupportedError if specified chain family not supported

Throws

CCIPExtraArgsParseError if data cannot be parsed as valid extra args

Example

TypeScript
import { decodeExtraArgs } from '@chainlink/ccip-sdk'

const decoded = decodeExtraArgs('0x181dcf10...')
if (decoded?._tag === 'EVMExtraArgsV2') {
console.log('Gas limit:', decoded.gasLimit)
console.log('Out of order:', decoded.allowOutOfOrderExecution)
}

See

encodeExtraArgs - Encode extra arguments to bytes