@wormhole-labs/cctp-executor-route 0.4.0 → 0.5.0-beta.0

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.
Files changed (148) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/aptos/executor.d.ts +1 -1
  3. package/dist/cjs/aptos/executor.d.ts.map +1 -1
  4. package/dist/cjs/aptos/executor.js +1 -1
  5. package/dist/cjs/aptos/executor.js.map +1 -1
  6. package/dist/cjs/consts.d.ts +22 -1
  7. package/dist/cjs/consts.d.ts.map +1 -1
  8. package/dist/cjs/consts.js +223 -5
  9. package/dist/cjs/consts.js.map +1 -1
  10. package/dist/cjs/evm/executor.d.ts +1 -1
  11. package/dist/cjs/evm/executor.d.ts.map +1 -1
  12. package/dist/cjs/evm/executor.js +1 -1
  13. package/dist/cjs/evm/executor.js.map +1 -1
  14. package/dist/cjs/evm/executorV2.d.ts +25 -0
  15. package/dist/cjs/evm/executorV2.d.ts.map +1 -0
  16. package/dist/cjs/evm/executorV2.js +100 -0
  17. package/dist/cjs/evm/executorV2.js.map +1 -0
  18. package/dist/cjs/evm/index.d.ts +1 -0
  19. package/dist/cjs/evm/index.d.ts.map +1 -1
  20. package/dist/cjs/evm/index.js +3 -0
  21. package/dist/cjs/evm/index.js.map +1 -1
  22. package/dist/cjs/index.d.ts +1 -91
  23. package/dist/cjs/index.d.ts.map +1 -1
  24. package/dist/cjs/index.js +15 -334
  25. package/dist/cjs/index.js.map +1 -1
  26. package/dist/cjs/layouts/circle.d.ts +161 -0
  27. package/dist/cjs/layouts/circle.d.ts.map +1 -0
  28. package/dist/cjs/layouts/circle.js +48 -0
  29. package/dist/cjs/layouts/circle.js.map +1 -0
  30. package/dist/cjs/layouts/index.d.ts +1 -1
  31. package/dist/cjs/layouts/index.d.ts.map +1 -1
  32. package/dist/cjs/layouts/index.js +1 -1
  33. package/dist/cjs/layouts/index.js.map +1 -1
  34. package/dist/cjs/routes/cctpV1.d.ts +92 -0
  35. package/dist/cjs/routes/cctpV1.d.ts.map +1 -0
  36. package/dist/cjs/routes/cctpV1.js +190 -0
  37. package/dist/cjs/routes/cctpV1.js.map +1 -0
  38. package/dist/cjs/routes/cctpV2Base.d.ts +57 -0
  39. package/dist/cjs/routes/cctpV2Base.d.ts.map +1 -0
  40. package/dist/cjs/routes/cctpV2Base.js +179 -0
  41. package/dist/cjs/routes/cctpV2Base.js.map +1 -0
  42. package/dist/cjs/routes/cctpV2Fast.d.ts +42 -0
  43. package/dist/cjs/routes/cctpV2Fast.d.ts.map +1 -0
  44. package/dist/cjs/routes/cctpV2Fast.js +138 -0
  45. package/dist/cjs/routes/cctpV2Fast.js.map +1 -0
  46. package/dist/cjs/routes/cctpV2Standard.d.ts +42 -0
  47. package/dist/cjs/routes/cctpV2Standard.d.ts.map +1 -0
  48. package/dist/cjs/routes/cctpV2Standard.js +126 -0
  49. package/dist/cjs/routes/cctpV2Standard.js.map +1 -0
  50. package/dist/cjs/routes/helpers.d.ts +12 -0
  51. package/dist/cjs/routes/helpers.d.ts.map +1 -0
  52. package/dist/cjs/routes/helpers.js +181 -0
  53. package/dist/cjs/routes/helpers.js.map +1 -0
  54. package/dist/cjs/routes/index.d.ts +5 -0
  55. package/dist/cjs/routes/index.d.ts.map +1 -0
  56. package/dist/cjs/routes/index.js +21 -0
  57. package/dist/cjs/routes/index.js.map +1 -0
  58. package/dist/cjs/sui/executor.d.ts +1 -1
  59. package/dist/cjs/sui/executor.d.ts.map +1 -1
  60. package/dist/cjs/svm/executor.d.ts +1 -1
  61. package/dist/cjs/svm/executor.d.ts.map +1 -1
  62. package/dist/cjs/svm/executor.js +1 -1
  63. package/dist/cjs/svm/executor.js.map +1 -1
  64. package/dist/cjs/types.d.ts +8 -1
  65. package/dist/cjs/types.d.ts.map +1 -1
  66. package/dist/cjs/utils.d.ts +20 -1
  67. package/dist/cjs/utils.d.ts.map +1 -1
  68. package/dist/cjs/utils.js +86 -2
  69. package/dist/cjs/utils.js.map +1 -1
  70. package/dist/esm/aptos/executor.d.ts +1 -1
  71. package/dist/esm/aptos/executor.d.ts.map +1 -1
  72. package/dist/esm/aptos/executor.js +2 -2
  73. package/dist/esm/aptos/executor.js.map +1 -1
  74. package/dist/esm/consts.d.ts +22 -1
  75. package/dist/esm/consts.d.ts.map +1 -1
  76. package/dist/esm/consts.js +216 -4
  77. package/dist/esm/consts.js.map +1 -1
  78. package/dist/esm/evm/executor.d.ts +1 -1
  79. package/dist/esm/evm/executor.d.ts.map +1 -1
  80. package/dist/esm/evm/executor.js +2 -2
  81. package/dist/esm/evm/executor.js.map +1 -1
  82. package/dist/esm/evm/executorV2.d.ts +25 -0
  83. package/dist/esm/evm/executorV2.d.ts.map +1 -0
  84. package/dist/esm/evm/executorV2.js +96 -0
  85. package/dist/esm/evm/executorV2.js.map +1 -0
  86. package/dist/esm/evm/index.d.ts +1 -0
  87. package/dist/esm/evm/index.d.ts.map +1 -1
  88. package/dist/esm/evm/index.js +3 -0
  89. package/dist/esm/evm/index.js.map +1 -1
  90. package/dist/esm/index.d.ts +1 -91
  91. package/dist/esm/index.d.ts.map +1 -1
  92. package/dist/esm/index.js +1 -331
  93. package/dist/esm/index.js.map +1 -1
  94. package/dist/esm/layouts/circle.d.ts +161 -0
  95. package/dist/esm/layouts/circle.d.ts.map +1 -0
  96. package/dist/esm/layouts/circle.js +43 -0
  97. package/dist/esm/layouts/circle.js.map +1 -0
  98. package/dist/esm/layouts/index.d.ts +1 -1
  99. package/dist/esm/layouts/index.d.ts.map +1 -1
  100. package/dist/esm/layouts/index.js +1 -1
  101. package/dist/esm/layouts/index.js.map +1 -1
  102. package/dist/esm/routes/cctpV1.d.ts +92 -0
  103. package/dist/esm/routes/cctpV1.d.ts.map +1 -0
  104. package/dist/esm/routes/cctpV1.js +185 -0
  105. package/dist/esm/routes/cctpV1.js.map +1 -0
  106. package/dist/esm/routes/cctpV2Base.d.ts +57 -0
  107. package/dist/esm/routes/cctpV2Base.d.ts.map +1 -0
  108. package/dist/esm/routes/cctpV2Base.js +175 -0
  109. package/dist/esm/routes/cctpV2Base.js.map +1 -0
  110. package/dist/esm/routes/cctpV2Fast.d.ts +42 -0
  111. package/dist/esm/routes/cctpV2Fast.d.ts.map +1 -0
  112. package/dist/esm/routes/cctpV2Fast.js +133 -0
  113. package/dist/esm/routes/cctpV2Fast.js.map +1 -0
  114. package/dist/esm/routes/cctpV2Standard.d.ts +42 -0
  115. package/dist/esm/routes/cctpV2Standard.d.ts.map +1 -0
  116. package/dist/esm/routes/cctpV2Standard.js +121 -0
  117. package/dist/esm/routes/cctpV2Standard.js.map +1 -0
  118. package/dist/esm/routes/helpers.d.ts +12 -0
  119. package/dist/esm/routes/helpers.d.ts.map +1 -0
  120. package/dist/esm/routes/helpers.js +177 -0
  121. package/dist/esm/routes/helpers.js.map +1 -0
  122. package/dist/esm/routes/index.d.ts +5 -0
  123. package/dist/esm/routes/index.d.ts.map +1 -0
  124. package/dist/esm/routes/index.js +5 -0
  125. package/dist/esm/routes/index.js.map +1 -0
  126. package/dist/esm/sui/executor.d.ts +1 -1
  127. package/dist/esm/sui/executor.d.ts.map +1 -1
  128. package/dist/esm/svm/executor.d.ts +1 -1
  129. package/dist/esm/svm/executor.d.ts.map +1 -1
  130. package/dist/esm/svm/executor.js +2 -2
  131. package/dist/esm/svm/executor.js.map +1 -1
  132. package/dist/esm/types.d.ts +8 -1
  133. package/dist/esm/types.d.ts.map +1 -1
  134. package/dist/esm/utils.d.ts +20 -1
  135. package/dist/esm/utils.d.ts.map +1 -1
  136. package/dist/esm/utils.js +83 -3
  137. package/dist/esm/utils.js.map +1 -1
  138. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  139. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  140. package/package.json +8 -8
  141. package/dist/cjs/layouts/requestForExecution.d.ts +0 -18
  142. package/dist/cjs/layouts/requestForExecution.d.ts.map +0 -1
  143. package/dist/cjs/layouts/requestForExecution.js +0 -15
  144. package/dist/cjs/layouts/requestForExecution.js.map +0 -1
  145. package/dist/esm/layouts/requestForExecution.d.ts +0 -18
  146. package/dist/esm/layouts/requestForExecution.d.ts.map +0 -1
  147. package/dist/esm/layouts/requestForExecution.js +0 -12
  148. package/dist/esm/layouts/requestForExecution.js.map +0 -1
@@ -1,96 +1,6 @@
1
- import type { Chain, Network } from "@wormhole-foundation/sdk-base";
2
- import { amount } from "@wormhole-foundation/sdk-base";
3
- import { EmptyPlatformMap, type ChainAddress, type ChainContext, type Signer, type TokenId } from "@wormhole-foundation/sdk-definitions";
4
- import { routes, Wormhole } from "@wormhole-foundation/sdk-connect";
5
- import { CCTPExecutor } from "./types";
6
1
  import "./aptos/index.js";
7
2
  import "./evm/index.js";
8
3
  import "./sui/index.js";
9
4
  import "./svm/index.js";
10
- export declare namespace CCTPExecutorRoute {
11
- type Options = {
12
- nativeGas?: number;
13
- };
14
- type NormalizedParams = {
15
- amount: amount.Amount;
16
- };
17
- interface ValidatedParams extends routes.ValidatedTransferParams<Options> {
18
- normalizedParams: NormalizedParams;
19
- }
20
- }
21
- type Op = CCTPExecutorRoute.Options;
22
- type Vp = CCTPExecutorRoute.ValidatedParams;
23
- type Tp = routes.TransferParams<Op>;
24
- type Vr = routes.ValidationResult<Op>;
25
- export type QuoteDetails = {
26
- signedQuote: Uint8Array;
27
- relayInstructions: Uint8Array;
28
- estimatedCost: bigint;
29
- referrer: ChainAddress;
30
- referrerFee: bigint;
31
- remainingAmount: bigint;
32
- referrerFeeDbps: bigint;
33
- };
34
- type Q = routes.Quote<Op, Vp, QuoteDetails>;
35
- type QR = routes.QuoteResult<Op, Vp>;
36
- type AT = {
37
- id: string;
38
- attestation: {};
39
- };
40
- type R = routes.Receipt<AT>;
41
- export declare namespace CCTPExecutorRoute {
42
- type Config = {
43
- referrerFeeDbps: bigint;
44
- };
45
- }
46
- export declare function cctpExecutorRoute(config?: CCTPExecutorRoute.Config): {
47
- new <N extends Network>(wh: Wormhole<N>): {
48
- readonly staticConfig: any;
49
- getDefaultOptions(): Op;
50
- validate(request: routes.RouteTransferRequest<N>, params: Tp): Promise<Vr>;
51
- quote(request: routes.RouteTransferRequest<N>, params: Vp): Promise<QR>;
52
- initiate(request: routes.RouteTransferRequest<N>, signer: Signer, quote: Q, to: ChainAddress): Promise<R>;
53
- track(receipt: R, timeout?: number): AsyncGenerator<import("@wormhole-foundation/sdk-connect").SourceInitiatedTransferReceipt<"Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").FailedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").SourceFinalizedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").AttestedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").CompletedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia">, R, unknown>;
54
- wh: Wormhole<N>;
55
- transferUrl(txid: string): string;
56
- };
57
- config: CCTPExecutorRoute.Config;
58
- NATIVE_GAS_DROPOFF_SUPPORTED: boolean;
59
- meta: {
60
- name: string;
61
- provider: string;
62
- };
63
- supportedNetworks(): Network[];
64
- supportedChains(network: Network): Chain[];
65
- supportedDestinationTokens<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): Promise<TokenId[]>;
66
- IS_AUTOMATIC: boolean;
67
- };
68
- export declare class CCTPExecutorRoute<N extends Network> extends routes.AutomaticRoute<N, Op, Vp, R> implements routes.StaticRouteMethods<typeof CCTPExecutorRoute> {
69
- static NATIVE_GAS_DROPOFF_SUPPORTED: boolean;
70
- readonly staticConfig: any;
71
- static config: CCTPExecutorRoute.Config;
72
- static meta: {
73
- name: string;
74
- provider: string;
75
- };
76
- static supportedNetworks(): Network[];
77
- static supportedChains(network: Network): Chain[];
78
- static supportedDestinationTokens<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): Promise<TokenId[]>;
79
- getDefaultOptions(): Op;
80
- validate(request: routes.RouteTransferRequest<N>, params: Tp): Promise<Vr>;
81
- quote(request: routes.RouteTransferRequest<N>, params: Vp): Promise<QR>;
82
- initiate(request: routes.RouteTransferRequest<N>, signer: Signer, quote: Q, to: ChainAddress): Promise<R>;
83
- track(receipt: R, timeout?: number): AsyncGenerator<import("@wormhole-foundation/sdk-connect").SourceInitiatedTransferReceipt<"Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").FailedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").SourceFinalizedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").AttestedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").CompletedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia">, R, unknown>;
84
- }
85
- declare module "@wormhole-foundation/sdk-definitions" {
86
- namespace WormholeRegistry {
87
- interface ProtocolToInterfaceMapping<N, C> {
88
- CCTPExecutor: CCTPExecutor<N, C>;
89
- }
90
- interface ProtocolToPlatformMapping {
91
- CCTPExecutor: EmptyPlatformMap<"CCTPExecutor">;
92
- }
93
- }
94
- }
95
- export {};
5
+ export * from "./routes";
96
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,gBAAgB,CAAC;AACxB,OAAO,gBAAgB,CAAC;AACxB,OAAO,gBAAgB,CAAC;AAExB,cAAc,UAAU,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -1,342 +1,23 @@
1
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
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CCTPExecutorRoute = void 0;
4
- exports.cctpExecutorRoute = cctpExecutorRoute;
5
- const sdk_base_1 = require("@wormhole-foundation/sdk-base");
6
- const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
7
- const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
8
- const utils_1 = require("./utils");
9
- const layouts_1 = require("./layouts");
10
- const consts_1 = require("./consts");
11
- const sdk_solana_1 = require("@wormhole-foundation/sdk-solana");
12
17
  // IMPORTANT: register the platform specific implementations of the protocol
13
18
  require("./aptos/index.js");
14
19
  require("./evm/index.js");
15
20
  require("./sui/index.js");
16
21
  require("./svm/index.js");
17
- // The minimum rent exemption amount for a 165 byte account (e.g. an ATA)
18
- // cache it here to avoid fetching it from the Solana RPC
19
- let ataMinRentAmount = undefined;
20
- // Use this function to create a new CCTPExecutorRoute with custom config
21
- function cctpExecutorRoute(config = { referrerFeeDbps: 0n }) {
22
- if (config.referrerFeeDbps < 0 || config.referrerFeeDbps > 65535n) {
23
- throw new Error("Referrer fee must be between 0 and 65535");
24
- }
25
- class CCTPExecutorRouteImpl extends CCTPExecutorRoute {
26
- static config = config;
27
- }
28
- return CCTPExecutorRouteImpl;
29
- }
30
- class CCTPExecutorRoute extends sdk_connect_1.routes.AutomaticRoute {
31
- static NATIVE_GAS_DROPOFF_SUPPORTED = true;
32
- // @ts-ignore
33
- // Since we set the config on the static class, access it with this param
34
- // the CCTPExecutorRoute.config will always be empty
35
- staticConfig = this.constructor.config;
36
- static config = { referrerFeeDbps: 0n };
37
- static meta = {
38
- name: "CCTPExecutorRoute",
39
- provider: "Circle",
40
- };
41
- static supportedNetworks() {
42
- return ["Mainnet", "Testnet"];
43
- }
44
- static supportedChains(network) {
45
- if (sdk_base_1.contracts.circleContractChains.has(network)) {
46
- return sdk_base_1.contracts.circleContractChains.get(network);
47
- }
48
- return [];
49
- }
50
- static async supportedDestinationTokens(sourceToken, fromChain, toChain) {
51
- // Ensure the source token is USDC
52
- const sourceChainUsdcContract = sdk_base_1.circle.usdcContract.get(fromChain.network, fromChain.chain);
53
- if (!(sourceChainUsdcContract &&
54
- (0, sdk_definitions_1.isSameToken)(sourceToken, sdk_connect_1.Wormhole.tokenId(fromChain.chain, sourceChainUsdcContract)))) {
55
- return [];
56
- }
57
- const { network, chain } = toChain;
58
- if (!sdk_base_1.circle.usdcContract.has(network, chain))
59
- return [];
60
- return [
61
- sdk_connect_1.Wormhole.chainAddress(chain, sdk_base_1.circle.usdcContract.get(network, chain)),
62
- ];
63
- }
64
- getDefaultOptions() {
65
- return {
66
- nativeGas: 0,
67
- };
68
- }
69
- async validate(request, params) {
70
- if (params.options?.nativeGas &&
71
- (params.options.nativeGas < 0 || params.options.nativeGas > 1)) {
72
- return {
73
- valid: false,
74
- error: new Error("Invalid native gas percentage"),
75
- params,
76
- };
77
- }
78
- const validatedParams = {
79
- normalizedParams: {
80
- amount: request.parseAmount(params.amount),
81
- },
82
- options: params.options ?? this.getDefaultOptions(),
83
- ...params,
84
- };
85
- return { valid: true, params: validatedParams };
86
- }
87
- async quote(request, params) {
88
- const { fromChain, toChain } = request;
89
- const srcUsdcAddress = sdk_base_1.circle.usdcContract.get(fromChain.network, fromChain.chain);
90
- if (!srcUsdcAddress) {
91
- throw new Error("Invalid transfer, no USDC contract on source");
92
- }
93
- const dstUsdcAddress = sdk_base_1.circle.usdcContract.get(toChain.network, toChain.chain);
94
- if (!dstUsdcAddress) {
95
- throw new Error("Invalid transfer, no USDC contract on destination");
96
- }
97
- const referrerAddress = consts_1.referrers[fromChain.network]?.[fromChain.chain];
98
- if (!referrerAddress) {
99
- return {
100
- success: false,
101
- error: new Error("No referrer address found"),
102
- };
103
- }
104
- const referrer = sdk_connect_1.Wormhole.chainAddress(fromChain.chain, referrerAddress);
105
- const referrerFeeDbps = this.staticConfig.referrerFeeDbps;
106
- const { referrerFee, remainingAmount } = (0, utils_1.calculateReferrerFee)(sdk_base_1.amount.units(params.normalizedParams.amount), this.staticConfig.referrerFeeDbps);
107
- if (remainingAmount <= 0n) {
108
- return {
109
- success: false,
110
- error: new Error("Amount after fee <= 0"),
111
- };
112
- }
113
- const gasLimit = consts_1.gasLimits[fromChain.network]?.[toChain.chain];
114
- if (!gasLimit) {
115
- return {
116
- success: false,
117
- error: new Error("Gas limit not found"),
118
- };
119
- }
120
- const capabilities = await (0, utils_1.fetchCapabilities)(fromChain.network);
121
- const srcCapabilities = capabilities[(0, sdk_base_1.toChainId)(fromChain.chain)];
122
- if (!srcCapabilities) {
123
- return {
124
- success: false,
125
- error: new Error("Unsupported source chain"),
126
- };
127
- }
128
- const dstCapabilities = capabilities[(0, sdk_base_1.toChainId)(toChain.chain)];
129
- if (!dstCapabilities || !dstCapabilities.requestPrefixes.includes("ERC1")) {
130
- return {
131
- success: false,
132
- error: new Error("Unsupported destination chain"),
133
- };
134
- }
135
- const { recipient } = request;
136
- let tokenAccountExists = true;
137
- // Check if the associated token account (ATA) exists on Solana.
138
- // If it doesn't, include a gas drop-off instruction so the relayer can create it.
139
- // Note: There's a potential race condition — the account might exist during this check,
140
- // but could be closed before the transfer completes.
141
- if (recipient && toChain.chain === "Solana") {
142
- const usdcAddress = sdk_connect_1.Wormhole.parseAddress("Solana", dstUsdcAddress);
143
- const ata = await toChain.getTokenAccount(recipient.address, usdcAddress);
144
- const connection = await toChain.getRpc();
145
- const ataAccount = await connection.getAccountInfo(new sdk_solana_1.SolanaAddress(ata.address).unwrap());
146
- tokenAccountExists = ataAccount !== null;
147
- if (!tokenAccountExists && !ataMinRentAmount) {
148
- ataMinRentAmount = BigInt(await connection.getMinimumBalanceForRentExemption(165));
149
- }
150
- }
151
- let msgValue = 0n;
152
- if (toChain.chain === "Solana") {
153
- msgValue += consts_1.SOLANA_MSG_VALUE_BASE_FEE;
154
- if (!tokenAccountExists && ataMinRentAmount) {
155
- msgValue += ataMinRentAmount;
156
- }
157
- }
158
- const relayRequests = [];
159
- // Add the gas instruction
160
- relayRequests.push({
161
- request: {
162
- type: "GasInstruction",
163
- gasLimit,
164
- msgValue,
165
- },
166
- });
167
- // Calculate the gas dropOff value
168
- const gasDropOffLimit = BigInt(dstCapabilities.gasDropOffLimit);
169
- const dropOff = params.options.nativeGas && gasDropOffLimit > 0n
170
- ? (BigInt(Math.round(params.options.nativeGas * 100)) *
171
- gasDropOffLimit) /
172
- 100n
173
- : 0n;
174
- // Add the gas drop-off instruction if applicable
175
- if (dropOff > 0n || !tokenAccountExists) {
176
- relayRequests.push({
177
- request: {
178
- type: "GasDropOffInstruction",
179
- dropOff,
180
- // If the recipient is undefined (e.g. the user hasn’t connected their wallet yet),
181
- // we temporarily use a dummy address to fetch a quote.
182
- // The recipient address is validated later in the `initiate` method, which will throw if it's still missing.
183
- recipient: recipient
184
- ? recipient.address.toUniversalAddress()
185
- : new sdk_definitions_1.UniversalAddress(new Uint8Array(32)),
186
- },
187
- });
188
- }
189
- const relayInstructions = (0, sdk_base_1.serializeLayout)(layouts_1.relayInstructionsLayout, {
190
- requests: relayRequests,
191
- });
192
- const quote = await (0, utils_1.fetchSignedQuote)(fromChain.network, fromChain.chain, toChain.chain, sdk_base_1.encoding.hex.encode(relayInstructions, true));
193
- if (!quote.estimatedCost) {
194
- return {
195
- success: false,
196
- error: new Error("No estimated cost"),
197
- };
198
- }
199
- const signedQuoteBytes = sdk_base_1.encoding.hex.decode(quote.signedQuote);
200
- const signedQuote = (0, sdk_base_1.deserializeLayout)(layouts_1.signedQuoteLayout, signedQuoteBytes);
201
- // https://developers.circle.com/stablecoins/docs/required-block-confirmations
202
- const eta = fromChain.chain === "Polygon"
203
- ? 2_000 * 200
204
- : sdk_base_1.finality.estimateFinalityTime(fromChain.chain) + 1_000; // buffer for the relayer
205
- const estimatedCost = BigInt(quote.estimatedCost);
206
- const details = {
207
- signedQuote: signedQuoteBytes,
208
- relayInstructions: relayInstructions,
209
- estimatedCost,
210
- referrer,
211
- referrerFee,
212
- remainingAmount,
213
- referrerFeeDbps,
214
- };
215
- const [srcNativeDecimals, dstNativeDecimals] = await Promise.all([
216
- fromChain.getDecimals("native"),
217
- toChain.getDecimals("native"),
218
- ]);
219
- return {
220
- success: true,
221
- params,
222
- sourceToken: {
223
- token: request.source.id,
224
- amount: params.normalizedParams.amount,
225
- },
226
- destinationToken: {
227
- token: request.destination.id,
228
- amount: sdk_base_1.amount.fromBaseUnits(remainingAmount, request.destination.decimals),
229
- },
230
- relayFee: {
231
- token: (0, sdk_definitions_1.nativeTokenId)(fromChain.chain),
232
- amount: sdk_base_1.amount.fromBaseUnits(estimatedCost, srcNativeDecimals),
233
- },
234
- destinationNativeGas: sdk_base_1.amount.fromBaseUnits(dropOff, dstNativeDecimals),
235
- eta,
236
- expires: signedQuote.quote.expiryTime,
237
- details,
238
- };
239
- }
240
- async initiate(request, signer, quote, to) {
241
- if (!quote.details) {
242
- throw new Error("Missing quote details");
243
- }
244
- const relayInstructions = (0, sdk_base_1.deserializeLayout)(layouts_1.relayInstructionsLayout, quote.details.relayInstructions);
245
- // Make sure that the gas drop-off recipient matches the actual recipient
246
- relayInstructions.requests.forEach(({ request }) => {
247
- if (request.type === "GasDropOffInstruction" &&
248
- !request.recipient.equals(to.address.toUniversalAddress())) {
249
- throw new Error("Gas drop-off recipient does not match");
250
- }
251
- });
252
- const executor = await request.fromChain.getProtocol("CCTPExecutor");
253
- const sender = sdk_connect_1.Wormhole.parseAddress(signer.chain(), signer.address());
254
- // When transferring to Solana, the recipient address is the ATA for CCTP transfers
255
- let cctpRecipient = to;
256
- if (to.chain === "Solana") {
257
- const usdcAddress = sdk_connect_1.Wormhole.parseAddress("Solana", sdk_base_1.circle.usdcContract.get(request.toChain.network, request.toChain.chain));
258
- cctpRecipient = await request.toChain.getTokenAccount(to.address, usdcAddress);
259
- }
260
- const xfer = await executor.transfer(sender, cctpRecipient, quote.details);
261
- const txids = await (0, sdk_connect_1.signSendWait)(request.fromChain, xfer, signer);
262
- // Status the transfer immediately before returning
263
- let statusAttempts = 0;
264
- const statusTransferImmediately = async () => {
265
- while (statusAttempts < 20) {
266
- try {
267
- const [txStatus] = await (0, utils_1.fetchStatus)(this.wh.network, txids.at(-1).txid, request.fromChain.chain);
268
- if (txStatus) {
269
- break;
270
- }
271
- }
272
- catch (_) {
273
- // is ok we just try again!
274
- }
275
- statusAttempts++;
276
- await (0, utils_1.sleep)(2_000);
277
- }
278
- };
279
- // Spawn a loop in the background that will status this transfer until
280
- // the API gives a successful response. We don't await the result
281
- // here because we don't need it for the return value.
282
- statusTransferImmediately();
283
- return {
284
- from: request.fromChain.chain,
285
- to: request.toChain.chain,
286
- state: sdk_connect_1.TransferState.SourceInitiated,
287
- originTxs: txids,
288
- };
289
- }
290
- async *track(receipt, timeout) {
291
- if ((0, sdk_connect_1.isCompleted)(receipt) || (0, sdk_connect_1.isFailed)(receipt))
292
- return receipt;
293
- let leftover = timeout ? timeout : 60 * 60 * 1000;
294
- while (leftover > 0) {
295
- const start = Date.now();
296
- if ((0, sdk_connect_1.isSourceInitiated)(receipt) ||
297
- (0, sdk_connect_1.isSourceFinalized)(receipt) ||
298
- (0, sdk_connect_1.isAttested)(receipt)) {
299
- try {
300
- const [txStatus] = await (0, utils_1.fetchStatus)(this.wh.network, receipt.originTxs.at(-1).txid, receipt.from);
301
- if (!txStatus) {
302
- throw new Error("No transaction status found");
303
- }
304
- const relayStatus = txStatus?.status;
305
- if (relayStatus === utils_1.RelayStatus.Failed || // this could happen if simulation fails
306
- relayStatus === utils_1.RelayStatus.Underpaid || // only happens if you don't pay at least the costEstimate
307
- relayStatus === utils_1.RelayStatus.Unsupported || // capabilities check didn't pass
308
- relayStatus === utils_1.RelayStatus.Aborted // An unrecoverable error indicating the attempt should stop (bad data, pre-flight checks failed, or chain-specific conditions)
309
- ) {
310
- receipt = {
311
- ...receipt,
312
- state: sdk_connect_1.TransferState.Failed,
313
- error: new sdk_connect_1.routes.RelayFailedError(`Relay failed with status: ${relayStatus}`),
314
- };
315
- }
316
- if (relayStatus === utils_1.RelayStatus.Submitted) {
317
- receipt = {
318
- ...receipt,
319
- state: sdk_connect_1.TransferState.DestinationFinalized,
320
- attestation: { id: txStatus.id, attestation: {} },
321
- };
322
- }
323
- // Important to yield before checking for completion
324
- // so the caller can update the receipt state
325
- yield receipt;
326
- if ((0, sdk_connect_1.isCompleted)(receipt) || (0, sdk_connect_1.isFailed)(receipt)) {
327
- return receipt;
328
- }
329
- }
330
- catch (error) {
331
- console.error(`Error fetching transaction status: ${error.message || error}`);
332
- }
333
- }
334
- // Sleep so we don't spam the endpoint
335
- await new Promise((resolve) => setTimeout(resolve, 3000));
336
- leftover -= Date.now() - start;
337
- }
338
- return receipt;
339
- }
340
- }
341
- exports.CCTPExecutorRoute = CCTPExecutorRoute;
22
+ __exportStar(require("./routes"), exports);
342
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4EAA4E;AAC5E,4BAA0B;AAC1B,0BAAwB;AACxB,0BAAwB;AACxB,0BAAwB;AAExB,2CAAyB"}