@stable-io/cctp-sdk-cctpr-evm
Version:
EVM support for the CCTPR corridor of the CCTP SDK
1,310 lines • 59.5 kB
TypeScript
import type { DeriveType } from "binary-layout";
import { Network } from "@stable-io/cctp-sdk-definitions";
declare const corridorVariantItem: {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "type";
readonly layouts: [[[0, "v1"], readonly []], [[1, "v2Direct"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxFastFeeUsdc";
}]], [[2, "avaxHop"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxFastFeeUsdc";
}]]];
};
export type CorridorVariant = DeriveType<typeof corridorVariantItem>;
declare const userQuoteVariantItem: {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "type";
readonly layouts: [[[0, "offChain"], readonly [{
readonly binary: "uint";
readonly size: 4;
readonly custom: {
readonly to: (value: number) => Date;
readonly from: (value: Date) => number;
};
readonly name: "expirationTime";
}, {
readonly name: "feePaymentVariant";
} & {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "payIn";
readonly layouts: [[[0, "usdc"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "relayFeeUsdc";
}]], [[1, "gasToken"], readonly [{
readonly binary: "uint";
readonly size: 16;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "EvmGasToken";
readonly units: readonly [{
readonly symbol: "EvmGasToken";
readonly scale: 1n;
}, {
readonly symbol: "nEvmGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "aEvmGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "EvmGasToken";
readonly atomic: "aEvmGasToken";
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "EvmGasToken";
readonly units: readonly [{
readonly symbol: "EvmGasToken";
readonly scale: 1n;
}, {
readonly symbol: "nEvmGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "aEvmGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "EvmGasToken";
readonly atomic: "aEvmGasToken";
}>) => bigint;
};
readonly name: "relayFeeGasToken";
}]]];
}, {
readonly binary: "bytes";
readonly size: 65;
readonly name: "quoterSignature";
}]], [[1, "onChainUsdc"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxRelayFeeUsdc";
}, {
readonly binary: "uint";
readonly size: 1;
readonly custom: {
readonly to: (encoded: number) => boolean;
readonly from: (value: boolean) => number;
};
readonly name: "takeRelayFeeFromInput";
}]], [[2, "onChainGas"], readonly []]];
};
export type UserQuoteVariant = DeriveType<typeof userQuoteVariantItem>;
declare const gaslessQuoteVariantItem: {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "type";
readonly layouts: [[[0, "offChain"], readonly [{
readonly binary: "uint";
readonly size: 4;
readonly custom: {
readonly to: (value: number) => Date;
readonly from: (value: Date) => number;
};
readonly name: "expirationTime";
}, {
readonly name: "feePaymentVariant";
} & {
readonly binary: "bytes";
readonly layout: readonly [{
readonly binary: "uint";
readonly size: 1;
readonly custom: {
readonly to: "usdc";
readonly from: 1;
};
readonly name: "payIn";
}, {
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "relayFeeUsdc";
}];
}, {
readonly binary: "bytes";
readonly size: 65;
readonly name: "quoterSignature";
}]], [[1, "onChainUsdc"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxRelayFeeUsdc";
}, {
readonly binary: "uint";
readonly size: 1;
readonly custom: {
readonly to: (encoded: number) => boolean;
readonly from: (value: boolean) => number;
};
readonly name: "takeRelayFeeFromInput";
}]]];
};
export type GaslessQuoteVariant = DeriveType<typeof gaslessQuoteVariantItem>;
export declare const transferLayout: <N extends Network>(network: N) => {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "approvalType";
readonly layouts: readonly [readonly [readonly [1, "Permit"], readonly [{
readonly binary: "bytes";
readonly layout: readonly [{
readonly binary: "uint";
readonly size: 32;
readonly name: "value";
}, {
readonly binary: "uint";
readonly size: 32;
readonly name: "deadline";
}, {
readonly binary: "bytes";
readonly size: 65;
readonly name: "signature";
}];
readonly name: "permit";
}, {
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "inputAmountUsdc";
}, {
readonly size: 1;
readonly custom: {
to: (val: number) => import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
}[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>;
from: (val: import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
}[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>) => number;
};
readonly binary: "uint";
readonly name: "destinationDomain";
}, {
readonly binary: "bytes";
readonly size: import("@stable-io/utils").Size;
readonly custom: {
to: (encoded: Uint8Array) => import("@stable-io/cctp-sdk-definitions").UniversalAddress;
from: (addr: import("@stable-io/cctp-sdk-definitions").UniversalAddress) => Uint8Array<ArrayBufferLike>;
};
readonly name: "mintRecipient";
}, {
readonly binary: "uint";
readonly size: 4;
readonly custom: {
to: (val: number) => import("@stable-io/amount").Amount<{
readonly name: "GasToken";
readonly units: readonly [{
readonly symbol: "GasToken";
readonly scale: 1n;
}, {
readonly symbol: "mGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "\u00B5GasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "nGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "aGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "GasToken";
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "GasToken";
readonly units: readonly [{
readonly symbol: "GasToken";
readonly scale: 1n;
}, {
readonly symbol: "mGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "\u00B5GasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "nGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "aGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "GasToken";
}>) => number;
};
readonly name: "gasDropoff";
}, {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "type";
readonly layouts: [[[0, "v1"], readonly []], [[1, "v2Direct"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxFastFeeUsdc";
}]], [[2, "avaxHop"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxFastFeeUsdc";
}]]];
readonly name: "corridorVariant";
}, {
readonly name: "quoteVariant";
} & {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "type";
readonly layouts: [[[0, "offChain"], readonly [{
readonly binary: "uint";
readonly size: 4;
readonly custom: {
readonly to: (value: number) => Date;
readonly from: (value: Date) => number;
};
readonly name: "expirationTime";
}, {
readonly name: "feePaymentVariant";
} & {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "payIn";
readonly layouts: [[[0, "usdc"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "relayFeeUsdc";
}]], [[1, "gasToken"], readonly [{
readonly binary: "uint";
readonly size: 16;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "EvmGasToken";
readonly units: readonly [{
readonly symbol: "EvmGasToken";
readonly scale: 1n;
}, {
readonly symbol: "nEvmGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "aEvmGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "EvmGasToken";
readonly atomic: "aEvmGasToken";
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "EvmGasToken";
readonly units: readonly [{
readonly symbol: "EvmGasToken";
readonly scale: 1n;
}, {
readonly symbol: "nEvmGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "aEvmGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "EvmGasToken";
readonly atomic: "aEvmGasToken";
}>) => bigint;
};
readonly name: "relayFeeGasToken";
}]]];
}, {
readonly binary: "bytes";
readonly size: 65;
readonly name: "quoterSignature";
}]], [[1, "onChainUsdc"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxRelayFeeUsdc";
}, {
readonly binary: "uint";
readonly size: 1;
readonly custom: {
readonly to: (encoded: number) => boolean;
readonly from: (value: boolean) => number;
};
readonly name: "takeRelayFeeFromInput";
}]], [[2, "onChainGas"], readonly []]];
}]], readonly [readonly [2, "Preapproval"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "inputAmountUsdc";
}, {
readonly size: 1;
readonly custom: {
to: (val: number) => import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
}[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>;
from: (val: import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
}[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>) => number;
};
readonly binary: "uint";
readonly name: "destinationDomain";
}, {
readonly binary: "bytes";
readonly size: import("@stable-io/utils").Size;
readonly custom: {
to: (encoded: Uint8Array) => import("@stable-io/cctp-sdk-definitions").UniversalAddress;
from: (addr: import("@stable-io/cctp-sdk-definitions").UniversalAddress) => Uint8Array<ArrayBufferLike>;
};
readonly name: "mintRecipient";
}, {
readonly binary: "uint";
readonly size: 4;
readonly custom: {
to: (val: number) => import("@stable-io/amount").Amount<{
readonly name: "GasToken";
readonly units: readonly [{
readonly symbol: "GasToken";
readonly scale: 1n;
}, {
readonly symbol: "mGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "\u00B5GasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "nGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "aGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "GasToken";
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "GasToken";
readonly units: readonly [{
readonly symbol: "GasToken";
readonly scale: 1n;
}, {
readonly symbol: "mGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "\u00B5GasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "nGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "aGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "GasToken";
}>) => number;
};
readonly name: "gasDropoff";
}, {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "type";
readonly layouts: [[[0, "v1"], readonly []], [[1, "v2Direct"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxFastFeeUsdc";
}]], [[2, "avaxHop"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxFastFeeUsdc";
}]]];
readonly name: "corridorVariant";
}, {
readonly name: "quoteVariant";
} & {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "type";
readonly layouts: [[[0, "offChain"], readonly [{
readonly binary: "uint";
readonly size: 4;
readonly custom: {
readonly to: (value: number) => Date;
readonly from: (value: Date) => number;
};
readonly name: "expirationTime";
}, {
readonly name: "feePaymentVariant";
} & {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "payIn";
readonly layouts: [[[0, "usdc"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "relayFeeUsdc";
}]], [[1, "gasToken"], readonly [{
readonly binary: "uint";
readonly size: 16;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "EvmGasToken";
readonly units: readonly [{
readonly symbol: "EvmGasToken";
readonly scale: 1n;
}, {
readonly symbol: "nEvmGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "aEvmGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "EvmGasToken";
readonly atomic: "aEvmGasToken";
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "EvmGasToken";
readonly units: readonly [{
readonly symbol: "EvmGasToken";
readonly scale: 1n;
}, {
readonly symbol: "nEvmGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "aEvmGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "EvmGasToken";
readonly atomic: "aEvmGasToken";
}>) => bigint;
};
readonly name: "relayFeeGasToken";
}]]];
}, {
readonly binary: "bytes";
readonly size: 65;
readonly name: "quoterSignature";
}]], [[1, "onChainUsdc"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxRelayFeeUsdc";
}, {
readonly binary: "uint";
readonly size: 1;
readonly custom: {
readonly to: (encoded: number) => boolean;
readonly from: (value: boolean) => number;
};
readonly name: "takeRelayFeeFromInput";
}]], [[2, "onChainGas"], readonly []]];
}]], readonly [readonly [3, "Gasless"], readonly [{
readonly binary: "bytes";
readonly layout: readonly [{
readonly binary: "bytes";
readonly size: 20;
readonly custom: {
to: (encoded: Uint8Array) => import("@stable-io/cctp-sdk-evm").EvmAddress;
from: (addr: import("@stable-io/cctp-sdk-evm").EvmAddress) => Uint8Array<ArrayBufferLike>;
};
readonly name: "owner";
}, {
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "amount";
}, {
readonly binary: "bytes";
readonly size: 32;
readonly name: "nonce";
}, {
readonly binary: "uint";
readonly size: 4;
readonly custom: {
readonly to: (value: number) => Date;
readonly from: (value: Date) => number;
};
readonly name: "deadline";
}, {
readonly binary: "bytes";
readonly size: 65;
readonly name: "signature";
}];
readonly name: "permit2Data";
}, {
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "gaslessFeeUsdc";
}, {
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "inputAmountUsdc";
}, {
readonly size: 1;
readonly custom: {
to: (val: number) => import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
}[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>;
from: (val: import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
}[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>) => number;
};
readonly binary: "uint";
readonly name: "destinationDomain";
}, {
readonly binary: "bytes";
readonly size: import("@stable-io/utils").Size;
readonly custom: {
to: (encoded: Uint8Array) => import("@stable-io/cctp-sdk-definitions").UniversalAddress;
from: (addr: import("@stable-io/cctp-sdk-definitions").UniversalAddress) => Uint8Array<ArrayBufferLike>;
};
readonly name: "mintRecipient";
}, {
readonly binary: "uint";
readonly size: 4;
readonly custom: {
to: (val: number) => import("@stable-io/amount").Amount<{
readonly name: "GasToken";
readonly units: readonly [{
readonly symbol: "GasToken";
readonly scale: 1n;
}, {
readonly symbol: "mGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "\u00B5GasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "nGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "aGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "GasToken";
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "GasToken";
readonly units: readonly [{
readonly symbol: "GasToken";
readonly scale: 1n;
}, {
readonly symbol: "mGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "\u00B5GasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "nGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}, {
readonly symbol: "aGasToken";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "GasToken";
}>) => number;
};
readonly name: "gasDropoff";
}, {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "type";
readonly layouts: [[[0, "v1"], readonly []], [[1, "v2Direct"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxFastFeeUsdc";
}]], [[2, "avaxHop"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxFastFeeUsdc";
}]]];
readonly name: "corridorVariant";
}, {
readonly name: "quoteVariant";
} & {
readonly binary: "switch";
readonly idSize: 1;
readonly idTag: "type";
readonly layouts: [[[0, "offChain"], readonly [{
readonly binary: "uint";
readonly size: 4;
readonly custom: {
readonly to: (value: number) => Date;
readonly from: (value: Date) => number;
};
readonly name: "expirationTime";
}, {
readonly name: "feePaymentVariant";
} & {
readonly binary: "bytes";
readonly layout: readonly [{
readonly binary: "uint";
readonly size: 1;
readonly custom: {
readonly to: "usdc";
readonly from: 1;
};
readonly name: "payIn";
}, {
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "relayFeeUsdc";
}];
}, {
readonly binary: "bytes";
readonly size: 65;
readonly name: "quoterSignature";
}]], [[1, "onChainUsdc"], readonly [{
readonly binary: "uint";
readonly size: 8;
readonly custom: {
to: (val: bigint) => import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>;
from: (amount: import("@stable-io/amount").Amount<{
readonly name: "Usdc";
readonly units: readonly [{
readonly symbol: "USDC";
readonly scale: 1;
}, {
readonly symbol: "\u00B5USDC";
readonly scale: bigint | import("@stable-io/amount").Rational;
}];
readonly human: "USDC";
readonly atomic: "\u00B5USDC";
readonly stringify: (val: import("@stable-io/amount").Rational) => string;
}>) => bigint;
};
readonly name: "maxRelayFeeUsdc";
}, {
readonly binary: "uint";
readonly size: 1;
readonly custom: {
readonly to: (encoded: number) => boolean;
readonly from: (value: boolean) => number;
};
readonly name: "takeRelayFeeFromInput";
}]]];
}]]];
};
export type Transfer<N extends Network> = DeriveType<ReturnType<typeof transferLayout<N>>>;
export {};
//# sourceMappingURL=transfer.d.ts.map