@stable-io/cctp-sdk-cctpr-evm
Version:
EVM support for the CCTPR corridor of the CCTP SDK
24 lines • 1.59 kB
TypeScript
import type { SupportedDomain } from "@stable-io/cctp-sdk-cctpr-definitions";
import type { GasTokenOf, Duration, Network, Usdc, Percentage } from "@stable-io/cctp-sdk-definitions";
import { v2 } from "@stable-io/cctp-sdk-definitions";
import type { EvmClient } from "@stable-io/cctp-sdk-evm";
import type { RoArray } from "@stable-io/map-utils";
import type { Corridor } from "./contractSdk/layouts/index.js";
import type { SupportedEvmDomain } from "./contractSdk/index.js";
type SensibleV2Corridor<N extends Network, S extends SupportedEvmDomain<N>, D extends SupportedDomain<N>> = S extends "Avalanche" ? never : S extends v2.SupportedDomain<N> ? D extends v2.SupportedDomain<N> ? "v2Direct" : "avaxHop" : never;
type SensibleCorridor<N extends Network, S extends SupportedEvmDomain<N>, D extends SupportedDomain<N>> = "v1" | SensibleV2Corridor<N, S, D>;
export type CorridorStats<N extends Network, S extends SupportedEvmDomain<N>, C extends Corridor> = {
corridor: C;
cost: {
relay: readonly [usdcCost: Usdc, gasCost: GasTokenOf<S>];
fast?: Percentage;
};
transferTime: Duration;
};
type Corridors<N extends Network, S extends SupportedEvmDomain<N>, C extends Corridor> = {
fastBurnAllowance: Usdc;
stats: RoArray<CorridorStats<N, S, C>>;
};
export declare const getCorridors: <N extends Network>() => <S extends SupportedEvmDomain<N>, D extends SupportedDomain<N>>(client: EvmClient<N, S>, destination: D, gasDropoff?: GasTokenOf<D>) => Promise<Corridors<N, S, SensibleCorridor<N, S, D>>>;
export {};
//# sourceMappingURL=getCorridors.d.ts.map