@wormhole-foundation/sdk-connect 4.23.0 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/indexers/__tests__/balances.test.js +1 -0
- package/dist/esm/indexers/__tests__/balances.test.js.map +1 -1
- package/dist/esm/routes/cctp/automatic.d.ts +1 -1
- package/dist/esm/routes/cctp/manual.d.ts +1 -1
- package/dist/esm/routes/common.d.ts +1 -1
- package/dist/esm/routes/common.d.ts.map +1 -1
- package/dist/esm/routes/portico/automatic.d.ts +2 -2
- package/dist/esm/routes/tbtc/tbtc.d.ts +1 -1
- package/dist/esm/routes/tokenBridge/automatic.d.ts +1 -1
- package/dist/esm/routes/tokenBridge/executor.d.ts +6 -6
- package/dist/esm/routes/tokenBridge/manual.d.ts +1 -1
- package/package.json +32 -126
- package/dist/cjs/circle-api.d.ts +0 -20
- package/dist/cjs/circle-api.d.ts.map +0 -1
- package/dist/cjs/circle-api.js +0 -67
- package/dist/cjs/circle-api.js.map +0 -1
- package/dist/cjs/common.d.ts +0 -6
- package/dist/cjs/common.d.ts.map +0 -1
- package/dist/cjs/common.js +0 -60
- package/dist/cjs/common.js.map +0 -1
- package/dist/cjs/config.d.ts +0 -41
- package/dist/cjs/config.d.ts.map +0 -1
- package/dist/cjs/config.js +0 -65
- package/dist/cjs/config.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -22
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -71
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/indexers/AlchemyClient.d.ts +0 -17
- package/dist/cjs/indexers/AlchemyClient.d.ts.map +0 -1
- package/dist/cjs/indexers/AlchemyClient.js +0 -112
- package/dist/cjs/indexers/AlchemyClient.js.map +0 -1
- package/dist/cjs/indexers/GoldRushClient.d.ts +0 -14
- package/dist/cjs/indexers/GoldRushClient.d.ts.map +0 -1
- package/dist/cjs/indexers/GoldRushClient.js +0 -90
- package/dist/cjs/indexers/GoldRushClient.js.map +0 -1
- package/dist/cjs/indexers/__tests__/balances.test.d.ts +0 -2
- package/dist/cjs/indexers/__tests__/balances.test.d.ts.map +0 -1
- package/dist/cjs/indexers/__tests__/balances.test.js +0 -323
- package/dist/cjs/indexers/__tests__/balances.test.js.map +0 -1
- package/dist/cjs/indexers/__tests__/utils.test.d.ts +0 -2
- package/dist/cjs/indexers/__tests__/utils.test.d.ts.map +0 -1
- package/dist/cjs/indexers/__tests__/utils.test.js +0 -71
- package/dist/cjs/indexers/__tests__/utils.test.js.map +0 -1
- package/dist/cjs/indexers/balances.d.ts +0 -5
- package/dist/cjs/indexers/balances.d.ts.map +0 -1
- package/dist/cjs/indexers/balances.js +0 -70
- package/dist/cjs/indexers/balances.js.map +0 -1
- package/dist/cjs/indexers/index.d.ts +0 -3
- package/dist/cjs/indexers/index.d.ts.map +0 -1
- package/dist/cjs/indexers/index.js +0 -21
- package/dist/cjs/indexers/index.js.map +0 -1
- package/dist/cjs/indexers/types.d.ts +0 -30
- package/dist/cjs/indexers/types.d.ts.map +0 -1
- package/dist/cjs/indexers/types.js +0 -3
- package/dist/cjs/indexers/types.js.map +0 -1
- package/dist/cjs/indexers/utils.d.ts +0 -2
- package/dist/cjs/indexers/utils.d.ts.map +0 -1
- package/dist/cjs/indexers/utils.js +0 -21
- package/dist/cjs/indexers/utils.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/protocols/cctp/cctpTransfer.d.ts +0 -46
- package/dist/cjs/protocols/cctp/cctpTransfer.d.ts.map +0 -1
- package/dist/cjs/protocols/cctp/cctpTransfer.js +0 -498
- package/dist/cjs/protocols/cctp/cctpTransfer.js.map +0 -1
- package/dist/cjs/protocols/gateway/gatewayTransfer.d.ts +0 -43
- package/dist/cjs/protocols/gateway/gatewayTransfer.d.ts.map +0 -1
- package/dist/cjs/protocols/gateway/gatewayTransfer.js +0 -399
- package/dist/cjs/protocols/gateway/gatewayTransfer.js.map +0 -1
- package/dist/cjs/protocols/index.d.ts +0 -5
- package/dist/cjs/protocols/index.d.ts.map +0 -1
- package/dist/cjs/protocols/index.js +0 -21
- package/dist/cjs/protocols/index.js.map +0 -1
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.d.ts +0 -68
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.d.ts.map +0 -1
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.js +0 -800
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.js.map +0 -1
- package/dist/cjs/protocols/wormholeTransfer.d.ts +0 -20
- package/dist/cjs/protocols/wormholeTransfer.d.ts.map +0 -1
- package/dist/cjs/protocols/wormholeTransfer.js +0 -3
- package/dist/cjs/protocols/wormholeTransfer.js.map +0 -1
- package/dist/cjs/routes/cctp/automatic.d.ts +0 -47
- package/dist/cjs/routes/cctp/automatic.d.ts.map +0 -1
- package/dist/cjs/routes/cctp/automatic.js +0 -159
- package/dist/cjs/routes/cctp/automatic.js.map +0 -1
- package/dist/cjs/routes/cctp/index.d.ts +0 -3
- package/dist/cjs/routes/cctp/index.d.ts.map +0 -1
- package/dist/cjs/routes/cctp/index.js +0 -19
- package/dist/cjs/routes/cctp/index.js.map +0 -1
- package/dist/cjs/routes/cctp/manual.d.ts +0 -46
- package/dist/cjs/routes/cctp/manual.d.ts.map +0 -1
- package/dist/cjs/routes/cctp/manual.js +0 -139
- package/dist/cjs/routes/cctp/manual.js.map +0 -1
- package/dist/cjs/routes/common.d.ts +0 -13
- package/dist/cjs/routes/common.d.ts.map +0 -1
- package/dist/cjs/routes/common.js +0 -51
- package/dist/cjs/routes/common.js.map +0 -1
- package/dist/cjs/routes/index.d.ts +0 -10
- package/dist/cjs/routes/index.d.ts.map +0 -1
- package/dist/cjs/routes/index.js +0 -26
- package/dist/cjs/routes/index.js.map +0 -1
- package/dist/cjs/routes/portico/automatic.d.ts +0 -48
- package/dist/cjs/routes/portico/automatic.d.ts.map +0 -1
- package/dist/cjs/routes/portico/automatic.js +0 -232
- package/dist/cjs/routes/portico/automatic.js.map +0 -1
- package/dist/cjs/routes/portico/index.d.ts +0 -3
- package/dist/cjs/routes/portico/index.d.ts.map +0 -1
- package/dist/cjs/routes/portico/index.js +0 -18
- package/dist/cjs/routes/portico/index.js.map +0 -1
- package/dist/cjs/routes/request.d.ts +0 -29
- package/dist/cjs/routes/request.d.ts.map +0 -1
- package/dist/cjs/routes/request.js +0 -72
- package/dist/cjs/routes/request.js.map +0 -1
- package/dist/cjs/routes/resolver.d.ts +0 -14
- package/dist/cjs/routes/resolver.d.ts.map +0 -1
- package/dist/cjs/routes/resolver.js +0 -58
- package/dist/cjs/routes/resolver.js.map +0 -1
- package/dist/cjs/routes/route.d.ts +0 -79
- package/dist/cjs/routes/route.d.ts.map +0 -1
- package/dist/cjs/routes/route.js +0 -63
- package/dist/cjs/routes/route.js.map +0 -1
- package/dist/cjs/routes/tbtc/index.d.ts +0 -2
- package/dist/cjs/routes/tbtc/index.d.ts.map +0 -1
- package/dist/cjs/routes/tbtc/index.js +0 -18
- package/dist/cjs/routes/tbtc/index.js.map +0 -1
- package/dist/cjs/routes/tbtc/tbtc.d.ts +0 -44
- package/dist/cjs/routes/tbtc/tbtc.d.ts.map +0 -1
- package/dist/cjs/routes/tbtc/tbtc.js +0 -244
- package/dist/cjs/routes/tbtc/tbtc.js.map +0 -1
- package/dist/cjs/routes/token.d.ts +0 -13
- package/dist/cjs/routes/token.d.ts.map +0 -1
- package/dist/cjs/routes/token.js +0 -45
- package/dist/cjs/routes/token.js.map +0 -1
- package/dist/cjs/routes/tokenBridge/automatic.d.ts +0 -47
- package/dist/cjs/routes/tokenBridge/automatic.d.ts.map +0 -1
- package/dist/cjs/routes/tokenBridge/automatic.js +0 -205
- package/dist/cjs/routes/tokenBridge/automatic.js.map +0 -1
- package/dist/cjs/routes/tokenBridge/executor.d.ts +0 -107
- package/dist/cjs/routes/tokenBridge/executor.d.ts.map +0 -1
- package/dist/cjs/routes/tokenBridge/executor.js +0 -245
- package/dist/cjs/routes/tokenBridge/executor.js.map +0 -1
- package/dist/cjs/routes/tokenBridge/index.d.ts +0 -4
- package/dist/cjs/routes/tokenBridge/index.d.ts.map +0 -1
- package/dist/cjs/routes/tokenBridge/index.js +0 -20
- package/dist/cjs/routes/tokenBridge/index.js.map +0 -1
- package/dist/cjs/routes/tokenBridge/manual.d.ts +0 -45
- package/dist/cjs/routes/tokenBridge/manual.d.ts.map +0 -1
- package/dist/cjs/routes/tokenBridge/manual.js +0 -135
- package/dist/cjs/routes/tokenBridge/manual.js.map +0 -1
- package/dist/cjs/routes/types.d.ts +0 -59
- package/dist/cjs/routes/types.d.ts.map +0 -1
- package/dist/cjs/routes/types.js +0 -31
- package/dist/cjs/routes/types.js.map +0 -1
- package/dist/cjs/tasks.d.ts +0 -7
- package/dist/cjs/tasks.d.ts.map +0 -1
- package/dist/cjs/tasks.js +0 -65
- package/dist/cjs/tasks.js.map +0 -1
- package/dist/cjs/tokens.d.ts +0 -3
- package/dist/cjs/tokens.d.ts.map +0 -1
- package/dist/cjs/tokens.js +0 -19
- package/dist/cjs/tokens.js.map +0 -1
- package/dist/cjs/types.d.ts +0 -131
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/cjs/types.js +0 -66
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/warnings.d.ts +0 -10
- package/dist/cjs/warnings.d.ts.map +0 -1
- package/dist/cjs/warnings.js +0 -3
- package/dist/cjs/warnings.js.map +0 -1
- package/dist/cjs/whscan-api.d.ts +0 -173
- package/dist/cjs/whscan-api.d.ts.map +0 -1
- package/dist/cjs/whscan-api.js +0 -238
- package/dist/cjs/whscan-api.js.map +0 -1
- package/dist/cjs/wormhole.d.ts +0 -244
- package/dist/cjs/wormhole.d.ts.map +0 -1
- package/dist/cjs/wormhole.js +0 -377
- package/dist/cjs/wormhole.js.map +0 -1
- package/index.d.cts +0 -22
- package/index.d.mts +0 -22
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import type { Chain, Network } from "@wormhole-foundation/sdk-base";
|
|
2
|
-
import { amount as sdkAmount } from "@wormhole-foundation/sdk-base";
|
|
3
|
-
import type { CapabilitiesResponse, ExecutorTokenBridge, UnsignedTransaction } from "@wormhole-foundation/sdk-definitions";
|
|
4
|
-
import { type ChainAddress, type ChainContext, type Signer, type TokenId, type TransactionId } from "@wormhole-foundation/sdk-definitions";
|
|
5
|
-
import type { AttestationReceipt, TransferReceipt } from "../../types.js";
|
|
6
|
-
import { Wormhole } from "../../wormhole.js";
|
|
7
|
-
import type { StaticRouteMethods } from "../route.js";
|
|
8
|
-
import { AutomaticRoute } from "../route.js";
|
|
9
|
-
import type { Quote, QuoteResult, TransferParams, ValidatedTransferParams, ValidationResult } from "../types.js";
|
|
10
|
-
import type { RouteTransferRequest } from "../request.js";
|
|
11
|
-
export declare namespace ExecutorTokenBridgeRoute {
|
|
12
|
-
type Config = {
|
|
13
|
-
executor?: {
|
|
14
|
-
/** Override the default capabilities fetcher (e.g. to cache or use a custom endpoint). */
|
|
15
|
-
getCapabilities?: (network: Network) => Promise<CapabilitiesResponse>;
|
|
16
|
-
};
|
|
17
|
-
getFee?: GetFeeCallback;
|
|
18
|
-
tokenOverrides?: Partial<Record<Network, Record<Chain, Record<string, {
|
|
19
|
-
gasLimit?: bigint;
|
|
20
|
-
}>>>>;
|
|
21
|
-
};
|
|
22
|
-
type GetFeeResult = {
|
|
23
|
-
transferTokenFee: bigint;
|
|
24
|
-
nativeTokenFee: bigint;
|
|
25
|
-
referrerAddress: string;
|
|
26
|
-
};
|
|
27
|
-
type GetFeeCallback = (params: {
|
|
28
|
-
amount: bigint;
|
|
29
|
-
sourceChain: Chain;
|
|
30
|
-
sourceToken: string;
|
|
31
|
-
destinationChain: Chain;
|
|
32
|
-
destinationToken: string;
|
|
33
|
-
}) => Promise<GetFeeResult>;
|
|
34
|
-
type Options = {
|
|
35
|
-
nativeGas?: number;
|
|
36
|
-
};
|
|
37
|
-
type NormalizedParams = {
|
|
38
|
-
amount: sdkAmount.Amount;
|
|
39
|
-
};
|
|
40
|
-
interface ValidatedParams extends ValidatedTransferParams<Options> {
|
|
41
|
-
normalizedParams: NormalizedParams;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
type Op = ExecutorTokenBridgeRoute.Options;
|
|
45
|
-
type Vp = ExecutorTokenBridgeRoute.ValidatedParams;
|
|
46
|
-
type Tp = TransferParams<Op>;
|
|
47
|
-
type Vr = ValidationResult<Op>;
|
|
48
|
-
type D = {
|
|
49
|
-
executorQuote: ExecutorTokenBridge.ExecutorQuote;
|
|
50
|
-
referrerFee?: ExecutorTokenBridge.ReferrerFee;
|
|
51
|
-
};
|
|
52
|
-
type QR = QuoteResult<Op, Vp, D>;
|
|
53
|
-
type Q = Quote<Op, Vp, D>;
|
|
54
|
-
type R = TransferReceipt<AttestationReceipt<"ExecutorTokenBridge">>;
|
|
55
|
-
export declare function executorTokenBridgeRoute(config?: ExecutorTokenBridgeRoute.Config): {
|
|
56
|
-
new <N extends "Mainnet" | "Testnet" | "Devnet">(wh: Wormhole<N>): {
|
|
57
|
-
readonly staticConfig: ExecutorTokenBridgeRoute.Config;
|
|
58
|
-
getDefaultOptions(): ExecutorTokenBridgeRoute.Options;
|
|
59
|
-
validate(request: RouteTransferRequest<N>, params: Tp): Promise<Vr>;
|
|
60
|
-
quote(request: RouteTransferRequest<N>, params: ExecutorTokenBridgeRoute.ValidatedParams): Promise<QR>;
|
|
61
|
-
initiate(request: RouteTransferRequest<N>, signer: Signer, quote: Q, to: ChainAddress): Promise<R>;
|
|
62
|
-
complete(signer: Signer, receipt: R): Promise<R>;
|
|
63
|
-
resume(txid: TransactionId): Promise<R>;
|
|
64
|
-
track(receipt: R, timeout?: number | undefined): AsyncGenerator<R, void, unknown>;
|
|
65
|
-
_buildInitiateXfer(request: RouteTransferRequest<N>, sender: ChainAddress, recipient: ChainAddress, quote: Q): Promise<AsyncGenerator<UnsignedTransaction<N, "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Arc" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble">, any, unknown>>;
|
|
66
|
-
_buildCompleteXfer(sender: ChainAddress, receipt: R): Promise<AsyncGenerator<UnsignedTransaction<N, "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Arc" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble">, any, unknown>>;
|
|
67
|
-
buildInitiateTransactions(request: RouteTransferRequest<N>, sender: ChainAddress, recipient: ChainAddress, quote: Q): Promise<UnsignedTransaction<N, "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Arc" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble">[]>;
|
|
68
|
-
buildCompleteTransactions(sender: ChainAddress, receipt: R): Promise<UnsignedTransaction<N, "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Arc" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble">[]>;
|
|
69
|
-
wh: Wormhole<N>;
|
|
70
|
-
transferUrl(txid: string): string;
|
|
71
|
-
};
|
|
72
|
-
config: ExecutorTokenBridgeRoute.Config;
|
|
73
|
-
IS_EXECUTOR_ROUTE: boolean;
|
|
74
|
-
NATIVE_GAS_DROPOFF_SUPPORTED: boolean;
|
|
75
|
-
meta: {
|
|
76
|
-
name: string;
|
|
77
|
-
};
|
|
78
|
-
supportedNetworks(): ("Mainnet" | "Testnet" | "Devnet")[];
|
|
79
|
-
supportedChains(network: "Mainnet" | "Testnet" | "Devnet"): ("Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Arc" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble")[];
|
|
80
|
-
supportedDestinationTokens<N_1 extends "Mainnet" | "Testnet" | "Devnet">(sourceToken: TokenId, fromChain: ChainContext<N_1, "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Arc" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble", import("@wormhole-foundation/sdk-base").ChainToPlatform<"Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Arc" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble">>, toChain: ChainContext<N_1, "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Arc" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble", import("@wormhole-foundation/sdk-base").ChainToPlatform<"Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Arc" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble">>): Promise<TokenId[]>;
|
|
81
|
-
IS_AUTOMATIC: boolean;
|
|
82
|
-
};
|
|
83
|
-
export declare class ExecutorTokenBridgeRoute<N extends Network> extends AutomaticRoute<N, Op, Vp, R> implements StaticRouteMethods<typeof ExecutorTokenBridgeRoute> {
|
|
84
|
-
static IS_EXECUTOR_ROUTE: boolean;
|
|
85
|
-
static NATIVE_GAS_DROPOFF_SUPPORTED: boolean;
|
|
86
|
-
readonly staticConfig: ExecutorTokenBridgeRoute.Config;
|
|
87
|
-
static config: ExecutorTokenBridgeRoute.Config;
|
|
88
|
-
static meta: {
|
|
89
|
-
name: string;
|
|
90
|
-
};
|
|
91
|
-
static supportedNetworks(): Network[];
|
|
92
|
-
static supportedChains(network: Network): Chain[];
|
|
93
|
-
static supportedDestinationTokens<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): Promise<TokenId[]>;
|
|
94
|
-
getDefaultOptions(): Op;
|
|
95
|
-
validate(request: RouteTransferRequest<N>, params: Tp): Promise<Vr>;
|
|
96
|
-
quote(request: RouteTransferRequest<N>, params: Vp): Promise<QR>;
|
|
97
|
-
initiate(request: RouteTransferRequest<N>, signer: Signer, quote: Q, to: ChainAddress): Promise<R>;
|
|
98
|
-
complete(signer: Signer, receipt: R): Promise<R>;
|
|
99
|
-
resume(txid: TransactionId): Promise<R>;
|
|
100
|
-
track(receipt: R, timeout?: number): AsyncGenerator<R, void, unknown>;
|
|
101
|
-
_buildInitiateXfer(request: RouteTransferRequest<N>, sender: ChainAddress, recipient: ChainAddress, quote: Q): Promise<AsyncGenerator<UnsignedTransaction<N, Chain>>>;
|
|
102
|
-
_buildCompleteXfer(sender: ChainAddress, receipt: R): Promise<AsyncGenerator<UnsignedTransaction<N, Chain>>>;
|
|
103
|
-
buildInitiateTransactions(request: RouteTransferRequest<N>, sender: ChainAddress, recipient: ChainAddress, quote: Q): Promise<UnsignedTransaction<N, Chain>[]>;
|
|
104
|
-
buildCompleteTransactions(sender: ChainAddress, receipt: R): Promise<UnsignedTransaction<N, Chain>[]>;
|
|
105
|
-
}
|
|
106
|
-
export {};
|
|
107
|
-
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExecutorTokenBridgeRoute = exports.executorTokenBridgeRoute = void 0;
|
|
4
|
-
const sdk_base_1 = require("@wormhole-foundation/sdk-base");
|
|
5
|
-
const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
|
|
6
|
-
const tokenTransfer_js_1 = require("../../protocols/tokenBridge/tokenTransfer.js");
|
|
7
|
-
const types_js_1 = require("../../types.js");
|
|
8
|
-
const wormhole_js_1 = require("../../wormhole.js");
|
|
9
|
-
const route_js_1 = require("../route.js");
|
|
10
|
-
const common_js_1 = require("../../common.js");
|
|
11
|
-
function executorTokenBridgeRoute(config = {}) {
|
|
12
|
-
class ExecutorTokenBridgeRouteImpl extends ExecutorTokenBridgeRoute {
|
|
13
|
-
static config = config;
|
|
14
|
-
}
|
|
15
|
-
return ExecutorTokenBridgeRouteImpl;
|
|
16
|
-
}
|
|
17
|
-
exports.executorTokenBridgeRoute = executorTokenBridgeRoute;
|
|
18
|
-
class ExecutorTokenBridgeRoute extends route_js_1.AutomaticRoute {
|
|
19
|
-
static IS_EXECUTOR_ROUTE = true;
|
|
20
|
-
static NATIVE_GAS_DROPOFF_SUPPORTED = true;
|
|
21
|
-
// @ts-ignore
|
|
22
|
-
// Since we set the config on the static class, access it with this param
|
|
23
|
-
// the ExecutorTokenBridgeRoute.config will always be empty
|
|
24
|
-
staticConfig = this.constructor.config;
|
|
25
|
-
static config = {};
|
|
26
|
-
static meta = {
|
|
27
|
-
name: "TokenBridgeExecutorRoute",
|
|
28
|
-
};
|
|
29
|
-
static supportedNetworks() {
|
|
30
|
-
return ["Mainnet", "Testnet"];
|
|
31
|
-
}
|
|
32
|
-
static supportedChains(network) {
|
|
33
|
-
if (network === "Devnet")
|
|
34
|
-
return [];
|
|
35
|
-
return sdk_base_1.contracts.executorTokenBridgeChains(network);
|
|
36
|
-
}
|
|
37
|
-
static async supportedDestinationTokens(sourceToken, fromChain, toChain) {
|
|
38
|
-
try {
|
|
39
|
-
return [await tokenTransfer_js_1.TokenTransfer.lookupDestinationToken(fromChain, toChain, sourceToken)];
|
|
40
|
-
}
|
|
41
|
-
catch (e) {
|
|
42
|
-
return [];
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
getDefaultOptions() {
|
|
46
|
-
return { nativeGas: 0.0 };
|
|
47
|
-
}
|
|
48
|
-
async validate(request, params) {
|
|
49
|
-
// Check that source and destination chains are different
|
|
50
|
-
if (request.fromChain.chain === request.toChain.chain) {
|
|
51
|
-
return {
|
|
52
|
-
valid: false,
|
|
53
|
-
params,
|
|
54
|
-
error: new Error("Source and destination chains cannot be the same"),
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
const amt = sdk_base_1.amount.parse(params.amount, request.source.decimals);
|
|
58
|
-
const options = params.options ?? this.getDefaultOptions();
|
|
59
|
-
if (options.nativeGas && (options.nativeGas > 1.0 || options.nativeGas < 0.0))
|
|
60
|
-
throw new Error("Native gas must be between 0.0 and 1.0 (0% and 100%)");
|
|
61
|
-
const validatedParams = {
|
|
62
|
-
amount: params.amount,
|
|
63
|
-
normalizedParams: { amount: amt },
|
|
64
|
-
options,
|
|
65
|
-
};
|
|
66
|
-
return { valid: true, params: validatedParams };
|
|
67
|
-
}
|
|
68
|
-
async quote(request, params) {
|
|
69
|
-
const supportedChains = ExecutorTokenBridgeRoute.supportedChains(request.fromChain.network);
|
|
70
|
-
// Check if the fromChain and toChain are supported by the Executor Token Bridge
|
|
71
|
-
if (!supportedChains.includes(request.fromChain.chain) ||
|
|
72
|
-
!supportedChains.includes(request.toChain.chain)) {
|
|
73
|
-
return {
|
|
74
|
-
success: false,
|
|
75
|
-
error: new Error(`Executor Token Bridge does not support transfers from ${request.fromChain.chain} to ${request.toChain.chain}`),
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
try {
|
|
79
|
-
const dstTb = await request.toChain.getExecutorTokenBridge();
|
|
80
|
-
let { gasLimit, msgValue } = await dstTb.estimateMsgValueAndGasLimit(request.destination.id, request.recipient);
|
|
81
|
-
// Check for per-token gas limit overrides
|
|
82
|
-
if (this.staticConfig.tokenOverrides) {
|
|
83
|
-
const dstTokenAddress = (0, sdk_definitions_1.canonicalAddress)(request.destination.id);
|
|
84
|
-
const dstOverride = this.staticConfig.tokenOverrides[this.wh.network]?.[request.destination.id.chain]?.[dstTokenAddress];
|
|
85
|
-
if (dstOverride?.gasLimit !== undefined) {
|
|
86
|
-
gasLimit = dstOverride.gasLimit;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
let referrerFee;
|
|
90
|
-
if (this.staticConfig.getFee) {
|
|
91
|
-
// Pass the truncated amount (what will actually be bridged) so the
|
|
92
|
-
// callback sees the same value that downstream fee math operates on.
|
|
93
|
-
const truncatedAmount = sdk_base_1.amount.truncate(params.normalizedParams.amount, tokenTransfer_js_1.TokenTransfer.MAX_DECIMALS);
|
|
94
|
-
const result = await this.staticConfig.getFee({
|
|
95
|
-
amount: sdk_base_1.amount.units(truncatedAmount),
|
|
96
|
-
sourceChain: request.fromChain.chain,
|
|
97
|
-
sourceToken: (0, sdk_definitions_1.canonicalAddress)(request.source.id),
|
|
98
|
-
destinationChain: request.toChain.chain,
|
|
99
|
-
destinationToken: (0, sdk_definitions_1.canonicalAddress)(request.destination.id),
|
|
100
|
-
});
|
|
101
|
-
if (result.transferTokenFee > 0n || result.nativeTokenFee > 0n) {
|
|
102
|
-
if (!result.referrerAddress) {
|
|
103
|
-
throw new Error(`getFee returned a referrer fee (transferTokenFee=${result.transferTokenFee}, nativeTokenFee=${result.nativeTokenFee}) but no referrerAddress for ${request.fromChain.chain}`);
|
|
104
|
-
}
|
|
105
|
-
referrerFee = {
|
|
106
|
-
transferTokenFee: result.transferTokenFee,
|
|
107
|
-
nativeTokenFee: result.nativeTokenFee,
|
|
108
|
-
referrer: wormhole_js_1.Wormhole.chainAddress(request.fromChain.chain, result.referrerAddress),
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
// Convert nativeGas percentage to actual amount if provided
|
|
113
|
-
let nativeGas;
|
|
114
|
-
if (params.options.nativeGas !== undefined) {
|
|
115
|
-
const gasDropOffLimit = await tokenTransfer_js_1.TokenTransfer.getExecutorGasDropOffLimit(this.wh, request.toChain, this.staticConfig.executor?.getCapabilities);
|
|
116
|
-
nativeGas =
|
|
117
|
-
gasDropOffLimit > 0n
|
|
118
|
-
? (BigInt(Math.round(params.options.nativeGas * 100)) * gasDropOffLimit) / 100n
|
|
119
|
-
: 0n;
|
|
120
|
-
}
|
|
121
|
-
const q = await tokenTransfer_js_1.TokenTransfer.quoteTransfer(this.wh, request.fromChain, request.toChain, {
|
|
122
|
-
token: request.source.id,
|
|
123
|
-
amount: sdk_base_1.amount.units(params.normalizedParams.amount),
|
|
124
|
-
protocol: "ExecutorTokenBridge",
|
|
125
|
-
nativeGas,
|
|
126
|
-
msgValue,
|
|
127
|
-
gasLimit,
|
|
128
|
-
referrerFee,
|
|
129
|
-
}, this.staticConfig.executor?.getCapabilities);
|
|
130
|
-
return request.displayQuote(q, params, q.details);
|
|
131
|
-
}
|
|
132
|
-
catch (e) {
|
|
133
|
-
return {
|
|
134
|
-
success: false,
|
|
135
|
-
error: e,
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
async initiate(request, signer, quote, to) {
|
|
140
|
-
const { fromChain } = request;
|
|
141
|
-
const sender = wormhole_js_1.Wormhole.chainAddress(signer.chain(), signer.address());
|
|
142
|
-
const xfer = await this._buildInitiateXfer(request, sender, to, quote);
|
|
143
|
-
const txids = await (0, common_js_1.signSendWait)(fromChain, xfer, signer);
|
|
144
|
-
// Status the transfer immediately before returning
|
|
145
|
-
let statusAttempts = 0;
|
|
146
|
-
const statusTransferImmediately = async () => {
|
|
147
|
-
while (statusAttempts < 20) {
|
|
148
|
-
try {
|
|
149
|
-
const [txStatus] = await this.wh.getExecutorTxStatus(txids.at(-1).txid, fromChain.chain);
|
|
150
|
-
if (txStatus) {
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
catch (_) {
|
|
155
|
-
// is ok we just try again!
|
|
156
|
-
}
|
|
157
|
-
statusAttempts++;
|
|
158
|
-
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
// Spawn a loop in the background that will status this transfer until
|
|
162
|
-
// the API gives a successful response. We don't await the result
|
|
163
|
-
// here because we don't need it for the return value.
|
|
164
|
-
statusTransferImmediately();
|
|
165
|
-
return {
|
|
166
|
-
from: fromChain.chain,
|
|
167
|
-
to: to.chain,
|
|
168
|
-
state: types_js_1.TransferState.SourceInitiated,
|
|
169
|
-
originTxs: txids,
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
async complete(signer, receipt) {
|
|
173
|
-
if (!(0, types_js_1.isAttested)(receipt) && !(0, types_js_1.isFailed)(receipt)) {
|
|
174
|
-
throw new Error("The source must be finalized in order to complete the transfer");
|
|
175
|
-
}
|
|
176
|
-
if (!receipt.attestation) {
|
|
177
|
-
throw new Error("The receipt must have an attestation to complete the transfer");
|
|
178
|
-
}
|
|
179
|
-
const sender = wormhole_js_1.Wormhole.chainAddress(signer.chain(), signer.address());
|
|
180
|
-
const xfer = await this._buildCompleteXfer(sender, receipt);
|
|
181
|
-
const toChain = this.wh.getChain(receipt.to);
|
|
182
|
-
const dstTxIds = await (0, common_js_1.signSendWait)(toChain, xfer, signer);
|
|
183
|
-
return {
|
|
184
|
-
...receipt,
|
|
185
|
-
state: types_js_1.TransferState.DestinationInitiated,
|
|
186
|
-
attestation: receipt.attestation,
|
|
187
|
-
destinationTxs: dstTxIds,
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
async resume(txid) {
|
|
191
|
-
const xfer = await tokenTransfer_js_1.TokenTransfer.from(this.wh, txid, 10 * 1000);
|
|
192
|
-
if (xfer.transfer.protocol !== "ExecutorTokenBridge") {
|
|
193
|
-
throw new Error("Can only resume ExecutorTokenBridge transfers");
|
|
194
|
-
}
|
|
195
|
-
return tokenTransfer_js_1.TokenTransfer.getReceipt(xfer);
|
|
196
|
-
}
|
|
197
|
-
async *track(receipt, timeout) {
|
|
198
|
-
for await (const r of tokenTransfer_js_1.TokenTransfer.track(this.wh, receipt, timeout)) {
|
|
199
|
-
yield r;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
async _buildInitiateXfer(request, sender, recipient, quote) {
|
|
203
|
-
if (!quote.details) {
|
|
204
|
-
throw new Error("Missing quote details");
|
|
205
|
-
}
|
|
206
|
-
const { executorQuote, referrerFee } = quote.details;
|
|
207
|
-
if (!executorQuote) {
|
|
208
|
-
throw new Error("ExecutorTokenBridge transfer requires an executorQuote");
|
|
209
|
-
}
|
|
210
|
-
// Set gas drop-off recipient if zero
|
|
211
|
-
const gasDropOffInstruction = executorQuote.relayInstructions.requests.find((r) => r.request.type === "GasDropOffInstruction");
|
|
212
|
-
if (gasDropOffInstruction &&
|
|
213
|
-
gasDropOffInstruction.request.type === "GasDropOffInstruction" &&
|
|
214
|
-
gasDropOffInstruction.request.recipient.equals(sdk_definitions_1.UniversalAddress.ZERO)) {
|
|
215
|
-
// @ts-ignore
|
|
216
|
-
gasDropOffInstruction.request.recipient = recipient.address.toUniversalAddress();
|
|
217
|
-
}
|
|
218
|
-
const token = (0, sdk_definitions_1.isTokenId)(request.source.id) ? request.source.id.address : request.source.id;
|
|
219
|
-
const senderAddress = (0, sdk_definitions_1.toNative)(sender.chain, sender.address.toString());
|
|
220
|
-
const tb = await request.fromChain.getExecutorTokenBridge();
|
|
221
|
-
return tb.transfer(senderAddress, recipient, token, sdk_base_1.amount.units(quote.params.normalizedParams.amount), executorQuote, referrerFee);
|
|
222
|
-
}
|
|
223
|
-
async _buildCompleteXfer(sender, receipt) {
|
|
224
|
-
const toChain = this.wh.getChain(receipt.to);
|
|
225
|
-
const tb = await toChain.getExecutorTokenBridge();
|
|
226
|
-
const senderAddress = (0, sdk_definitions_1.toNative)(sender.chain, sender.address.toString());
|
|
227
|
-
const vaa = receipt
|
|
228
|
-
.attestation.attestation;
|
|
229
|
-
return tb.redeem(senderAddress, vaa);
|
|
230
|
-
}
|
|
231
|
-
async buildInitiateTransactions(request, sender, recipient, quote) {
|
|
232
|
-
return (0, common_js_1.collectTransactions)(await this._buildInitiateXfer(request, sender, recipient, quote));
|
|
233
|
-
}
|
|
234
|
-
async buildCompleteTransactions(sender, receipt) {
|
|
235
|
-
if (!(0, types_js_1.isAttested)(receipt) && !(0, types_js_1.isFailed)(receipt)) {
|
|
236
|
-
throw new Error("The source must be finalized in order to complete the transfer");
|
|
237
|
-
}
|
|
238
|
-
if (!receipt.attestation) {
|
|
239
|
-
throw new Error("The receipt must have an attestation to complete the transfer");
|
|
240
|
-
}
|
|
241
|
-
return (0, common_js_1.collectTransactions)(await this._buildCompleteXfer(sender, receipt));
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
exports.ExecutorTokenBridgeRoute = ExecutorTokenBridgeRoute;
|
|
245
|
-
//# sourceMappingURL=executor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./automatic.js"), exports);
|
|
18
|
-
__exportStar(require("./executor.js"), exports);
|
|
19
|
-
__exportStar(require("./manual.js"), exports);
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,gDAA8B;AAC9B,8CAA4B"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import type { Chain, Network } from "@wormhole-foundation/sdk-base";
|
|
2
|
-
import { amount } from "@wormhole-foundation/sdk-base";
|
|
3
|
-
import type { ChainAddress, ChainContext, Signer, TokenId, TransactionId } from "@wormhole-foundation/sdk-definitions";
|
|
4
|
-
import { TokenTransfer } from "../../protocols/tokenBridge/tokenTransfer.js";
|
|
5
|
-
import type { AttestationReceipt, TransferReceipt } from "../../types.js";
|
|
6
|
-
import type { StaticRouteMethods } from "../route.js";
|
|
7
|
-
import { ManualRoute } from "../route.js";
|
|
8
|
-
import type { Quote, QuoteResult, TransferParams, ValidatedTransferParams, ValidationResult } from "../types.js";
|
|
9
|
-
import type { RouteTransferRequest } from "../request.js";
|
|
10
|
-
export declare namespace TokenBridgeRoute {
|
|
11
|
-
type Options = {
|
|
12
|
-
payload?: Uint8Array;
|
|
13
|
-
};
|
|
14
|
-
type NormalizedParams = {
|
|
15
|
-
amount: amount.Amount;
|
|
16
|
-
};
|
|
17
|
-
interface ValidatedParams extends ValidatedTransferParams<Options> {
|
|
18
|
-
normalizedParams: NormalizedParams;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
type Op = TokenBridgeRoute.Options;
|
|
22
|
-
type Vp = TokenBridgeRoute.ValidatedParams;
|
|
23
|
-
type Tp = TransferParams<Op>;
|
|
24
|
-
type Vr = ValidationResult<Op>;
|
|
25
|
-
type QR = QuoteResult<Op, Vp>;
|
|
26
|
-
type Q = Quote<Op, Vp>;
|
|
27
|
-
type R = TransferReceipt<AttestationReceipt<"TokenBridge">>;
|
|
28
|
-
export declare class TokenBridgeRoute<N extends Network> extends ManualRoute<N, Op, Vp, R> implements StaticRouteMethods<typeof TokenBridgeRoute> {
|
|
29
|
-
static meta: {
|
|
30
|
-
name: string;
|
|
31
|
-
};
|
|
32
|
-
static supportedNetworks(): Network[];
|
|
33
|
-
static supportedChains(network: Network): Chain[];
|
|
34
|
-
static supportedDestinationTokens<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): Promise<TokenId[]>;
|
|
35
|
-
getDefaultOptions(): Op;
|
|
36
|
-
validate(request: RouteTransferRequest<N>, params: Tp): Promise<Vr>;
|
|
37
|
-
quote(request: RouteTransferRequest<N>, params: Vp): Promise<QR>;
|
|
38
|
-
initiate(request: RouteTransferRequest<N>, signer: Signer, quote: Q, to: ChainAddress): Promise<R>;
|
|
39
|
-
complete(signer: Signer, receipt: R): Promise<R>;
|
|
40
|
-
resume(txid: TransactionId): Promise<R>;
|
|
41
|
-
track(receipt: R, timeout?: number): AsyncGenerator<TokenTransfer.TransferReceipt<"Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Arc" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble", "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Arc" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble">, void, unknown>;
|
|
42
|
-
private toTransferDetails;
|
|
43
|
-
}
|
|
44
|
-
export {};
|
|
45
|
-
//# sourceMappingURL=manual.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manual.d.ts","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/manual.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TokenBridgeRoute = void 0;
|
|
4
|
-
const sdk_base_1 = require("@wormhole-foundation/sdk-base");
|
|
5
|
-
const tokenTransfer_js_1 = require("../../protocols/tokenBridge/tokenTransfer.js");
|
|
6
|
-
const types_js_1 = require("../../types.js");
|
|
7
|
-
const wormhole_js_1 = require("../../wormhole.js");
|
|
8
|
-
const route_js_1 = require("../route.js");
|
|
9
|
-
const sdk_base_2 = require("@wormhole-foundation/sdk-base");
|
|
10
|
-
class TokenBridgeRoute extends route_js_1.ManualRoute {
|
|
11
|
-
static meta = {
|
|
12
|
-
name: "ManualTokenBridge",
|
|
13
|
-
};
|
|
14
|
-
static supportedNetworks() {
|
|
15
|
-
return ["Mainnet", "Testnet"];
|
|
16
|
-
}
|
|
17
|
-
// get the list of chains this route supports
|
|
18
|
-
static supportedChains(network) {
|
|
19
|
-
return sdk_base_1.contracts.tokenBridgeChains(network);
|
|
20
|
-
}
|
|
21
|
-
// get the list of destination tokens that may be received on the destination chain
|
|
22
|
-
static async supportedDestinationTokens(sourceToken, fromChain, toChain) {
|
|
23
|
-
try {
|
|
24
|
-
return [await tokenTransfer_js_1.TokenTransfer.lookupDestinationToken(fromChain, toChain, sourceToken)];
|
|
25
|
-
}
|
|
26
|
-
catch (e) {
|
|
27
|
-
return [];
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
getDefaultOptions() {
|
|
31
|
-
return { payload: undefined };
|
|
32
|
-
}
|
|
33
|
-
async validate(request, params) {
|
|
34
|
-
// Check that source and destination chains are different
|
|
35
|
-
if (request.fromChain.chain === request.toChain.chain) {
|
|
36
|
-
return {
|
|
37
|
-
valid: false,
|
|
38
|
-
params,
|
|
39
|
-
error: new Error("Source and destination chains cannot be the same"),
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
// Prevent transfers to/from SVM chains if the destination token is Token2022
|
|
43
|
-
// except when using ExecutorTokenBridge
|
|
44
|
-
// Attempting to manually redeem Token2022 tokens will fail if recipient account
|
|
45
|
-
// has the immutableOwner extension, so just disable such transfers here
|
|
46
|
-
// Executor route creates temporary account without the extension
|
|
47
|
-
if ((0, sdk_base_2.chainToPlatform)(request.fromChain.chain) === "Solana") {
|
|
48
|
-
const isToken2022 = await request.fromChain.isToken2022(request.source.id.address);
|
|
49
|
-
if (isToken2022) {
|
|
50
|
-
return {
|
|
51
|
-
valid: false,
|
|
52
|
-
params,
|
|
53
|
-
error: new Error("Transfers of Token-2022 assets from SVM chains are not supported via the Manual Token Bridge route. Please use the Executor Token Bridge route instead."),
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
if ((0, sdk_base_2.chainToPlatform)(request.toChain.chain) === "Solana") {
|
|
58
|
-
const isToken2022 = await request.toChain.isToken2022(request.destination.id.address);
|
|
59
|
-
if (isToken2022) {
|
|
60
|
-
return {
|
|
61
|
-
valid: false,
|
|
62
|
-
params,
|
|
63
|
-
error: new Error("Transfers of Token-2022 assets to SVM chains are not supported via the Manual Token Bridge route. Please use the Executor Token Bridge route instead."),
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
const amt = sdk_base_1.amount.parse(params.amount, request.source.decimals);
|
|
68
|
-
const validatedParams = {
|
|
69
|
-
amount: params.amount,
|
|
70
|
-
normalizedParams: { amount: amt },
|
|
71
|
-
options: {},
|
|
72
|
-
};
|
|
73
|
-
return { valid: true, params: validatedParams };
|
|
74
|
-
}
|
|
75
|
-
async quote(request, params) {
|
|
76
|
-
try {
|
|
77
|
-
return request.displayQuote(await tokenTransfer_js_1.TokenTransfer.quoteTransfer(this.wh, request.fromChain, request.toChain, {
|
|
78
|
-
token: request.source.id,
|
|
79
|
-
amount: sdk_base_1.amount.units(params.normalizedParams.amount),
|
|
80
|
-
protocol: "TokenBridge",
|
|
81
|
-
...params.options,
|
|
82
|
-
}), params);
|
|
83
|
-
}
|
|
84
|
-
catch (e) {
|
|
85
|
-
return {
|
|
86
|
-
success: false,
|
|
87
|
-
error: e,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
async initiate(request, signer, quote, to) {
|
|
92
|
-
const { params } = quote;
|
|
93
|
-
const transfer = await tokenTransfer_js_1.TokenTransfer.destinationOverrides(request.fromChain, request.toChain, this.toTransferDetails(request, params, wormhole_js_1.Wormhole.chainAddress(signer.chain(), signer.address()), to));
|
|
94
|
-
const txids = await tokenTransfer_js_1.TokenTransfer.transfer(request.fromChain, transfer, signer);
|
|
95
|
-
return {
|
|
96
|
-
from: transfer.from.chain,
|
|
97
|
-
to: transfer.to.chain,
|
|
98
|
-
state: types_js_1.TransferState.SourceInitiated,
|
|
99
|
-
originTxs: txids,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
async complete(signer, receipt) {
|
|
103
|
-
if (!(0, types_js_1.isAttested)(receipt))
|
|
104
|
-
throw new Error("The source must be finalized in order to complete the transfer");
|
|
105
|
-
const toChain = this.wh.getChain(receipt.to);
|
|
106
|
-
const dstTxIds = await tokenTransfer_js_1.TokenTransfer.redeem(toChain, receipt.attestation.attestation, signer);
|
|
107
|
-
return {
|
|
108
|
-
...receipt,
|
|
109
|
-
state: types_js_1.TransferState.DestinationInitiated,
|
|
110
|
-
destinationTxs: dstTxIds,
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
async resume(txid) {
|
|
114
|
-
const xfer = await tokenTransfer_js_1.TokenTransfer.from(this.wh, txid, 10 * 1000);
|
|
115
|
-
if (xfer.transfer.protocol !== "TokenBridge") {
|
|
116
|
-
throw new Error("Transfer is not a TokenBridge transfer");
|
|
117
|
-
}
|
|
118
|
-
return tokenTransfer_js_1.TokenTransfer.getReceipt(xfer);
|
|
119
|
-
}
|
|
120
|
-
async *track(receipt, timeout) {
|
|
121
|
-
yield* tokenTransfer_js_1.TokenTransfer.track(this.wh, receipt, timeout);
|
|
122
|
-
}
|
|
123
|
-
toTransferDetails(request, params, from, to) {
|
|
124
|
-
return {
|
|
125
|
-
from,
|
|
126
|
-
to,
|
|
127
|
-
protocol: "TokenBridge",
|
|
128
|
-
token: request.source.id,
|
|
129
|
-
amount: sdk_base_1.amount.units(params.normalizedParams.amount),
|
|
130
|
-
...params.options,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
exports.TokenBridgeRoute = TokenBridgeRoute;
|
|
135
|
-
//# sourceMappingURL=manual.js.map
|