UNPKG

@stable-io/cctp-sdk-cctpr-evm

Version:

EVM support for the CCTPR corridor of the CCTP SDK

24 lines 1.59 kB
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