@aptos-labs/cross-chain-core 6.0.0 → 6.1.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 (72) hide show
  1. package/dist/CrossChainCore.d.ts +2 -2
  2. package/dist/CrossChainCore.d.ts.map +1 -1
  3. package/dist/config/index.d.ts +1 -1
  4. package/dist/config/mainnet/chains.d.ts +1 -1
  5. package/dist/config/mainnet/chains.d.ts.map +1 -1
  6. package/dist/config/mainnet/tokens.d.ts +1 -1
  7. package/dist/config/mainnet/tokens.d.ts.map +1 -1
  8. package/dist/config/testnet/chains.d.ts +1 -1
  9. package/dist/config/testnet/chains.d.ts.map +1 -1
  10. package/dist/config/testnet/tokens.d.ts +1 -1
  11. package/dist/config/testnet/tokens.d.ts.map +1 -1
  12. package/dist/config/types.d.ts +1 -1
  13. package/dist/config/types.d.ts.map +1 -1
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +1366 -1297
  17. package/dist/index.js.map +1 -1
  18. package/dist/index.mjs +1377 -1302
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/providers/wormhole/index.d.ts +4 -4
  21. package/dist/providers/wormhole/index.d.ts.map +1 -1
  22. package/dist/providers/wormhole/signers/AptosLocalSigner.d.ts +5 -5
  23. package/dist/providers/wormhole/signers/AptosLocalSigner.d.ts.map +1 -1
  24. package/dist/providers/wormhole/signers/AptosSigner.d.ts +6 -6
  25. package/dist/providers/wormhole/signers/AptosSigner.d.ts.map +1 -1
  26. package/dist/providers/wormhole/signers/EthereumSigner.d.ts +3 -3
  27. package/dist/providers/wormhole/signers/EthereumSigner.d.ts.map +1 -1
  28. package/dist/providers/wormhole/signers/Signer.d.ts +6 -6
  29. package/dist/providers/wormhole/signers/Signer.d.ts.map +1 -1
  30. package/dist/providers/wormhole/signers/SolanaLocalSigner.d.ts +4 -4
  31. package/dist/providers/wormhole/signers/SolanaLocalSigner.d.ts.map +1 -1
  32. package/dist/providers/wormhole/signers/SolanaSigner.d.ts +8 -9
  33. package/dist/providers/wormhole/signers/SolanaSigner.d.ts.map +1 -1
  34. package/dist/providers/wormhole/signers/SuiSigner.d.ts +3 -3
  35. package/dist/providers/wormhole/signers/SuiSigner.d.ts.map +1 -1
  36. package/dist/providers/wormhole/signers/solanaUtils.d.ts +1 -1
  37. package/dist/providers/wormhole/signers/solanaUtils.d.ts.map +1 -1
  38. package/dist/providers/wormhole/types.d.ts +10 -4
  39. package/dist/providers/wormhole/types.d.ts.map +1 -1
  40. package/dist/providers/wormhole/utils.d.ts +2 -2
  41. package/dist/providers/wormhole/utils.d.ts.map +1 -1
  42. package/dist/providers/wormhole/wormhole.d.ts +3 -3
  43. package/dist/providers/wormhole/wormhole.d.ts.map +1 -1
  44. package/dist/utils/getUsdcBalance.d.ts +1 -1
  45. package/dist/utils/getUsdcBalance.d.ts.map +1 -1
  46. package/dist/utils/receiptSerialization.d.ts +1 -1
  47. package/dist/utils/receiptSerialization.d.ts.map +1 -1
  48. package/dist/version.d.ts +1 -1
  49. package/package.json +6 -8
  50. package/src/CrossChainCore.ts +15 -17
  51. package/src/config/index.ts +1 -1
  52. package/src/config/mainnet/chains.ts +1 -1
  53. package/src/config/mainnet/tokens.ts +1 -1
  54. package/src/config/testnet/chains.ts +1 -1
  55. package/src/config/testnet/tokens.ts +1 -1
  56. package/src/config/types.ts +1 -1
  57. package/src/index.ts +1 -1
  58. package/src/providers/wormhole/index.ts +4 -4
  59. package/src/providers/wormhole/signers/AptosLocalSigner.ts +12 -16
  60. package/src/providers/wormhole/signers/AptosSigner.ts +29 -22
  61. package/src/providers/wormhole/signers/EthereumSigner.ts +6 -6
  62. package/src/providers/wormhole/signers/Signer.ts +20 -22
  63. package/src/providers/wormhole/signers/SolanaLocalSigner.ts +7 -7
  64. package/src/providers/wormhole/signers/SolanaSigner.ts +13 -14
  65. package/src/providers/wormhole/signers/SuiSigner.ts +8 -8
  66. package/src/providers/wormhole/signers/solanaUtils.ts +43 -25
  67. package/src/providers/wormhole/types.ts +28 -16
  68. package/src/providers/wormhole/utils.ts +3 -4
  69. package/src/providers/wormhole/wormhole.ts +50 -48
  70. package/src/utils/getUsdcBalance.ts +8 -10
  71. package/src/utils/receiptSerialization.ts +2 -3
  72. package/src/version.ts +1 -1
@@ -1,62 +1,64 @@
1
+ import type { EIP1193DerivedWallet } from "@aptos-labs/derived-wallet-ethereum";
2
+ import type { SolanaDerivedWallet } from "@aptos-labs/derived-wallet-solana";
3
+ import type { SuiDerivedWallet } from "@aptos-labs/derived-wallet-sui";
4
+ import { Network, sleep } from "@aptos-labs/ts-sdk";
1
5
  import {
6
+ type PlatformLoader,
2
7
  routes,
8
+ TransferState,
3
9
  Wormhole,
4
10
  wormhole,
5
- PlatformLoader,
6
- TransferState,
7
11
  } from "@wormhole-foundation/sdk";
8
- import { Network, sleep } from "@aptos-labs/ts-sdk";
9
12
  import aptos from "@wormhole-foundation/sdk/aptos";
10
- import solana from "@wormhole-foundation/sdk/solana";
11
13
  import evm from "@wormhole-foundation/sdk/evm";
14
+ import solana from "@wormhole-foundation/sdk/solana";
12
15
  import sui from "@wormhole-foundation/sdk/sui";
13
-
14
16
  import {
15
- Chain,
16
- CrossChainProvider,
17
- CrossChainCore,
17
+ type Chain,
18
+ type CrossChainCore,
19
+ type CrossChainProvider,
18
20
  EVM_CHAIN_NAMES,
19
21
  } from "../../CrossChainCore";
22
+ import type { ChainConfig } from "../../config";
20
23
  import { logger } from "../../utils/logger";
21
24
  import { serializeReceipt } from "../../utils/receiptSerialization";
22
25
  import { AptosLocalSigner } from "./signers/AptosLocalSigner";
23
26
  import { isAccount } from "./signers/AptosSigner";
24
27
  import { Signer } from "./signers/Signer";
25
- import { ChainConfig } from "../../config";
26
- import { createCCTPRoute } from "./utils";
27
28
  import {
28
- WormholeQuoteRequest,
29
- WormholeQuoteResponse,
30
- WormholeTransferRequest,
31
- WormholeTransferResponse,
32
- WormholeRouteResponse,
33
- WormholeRequest,
34
- WormholeSubmitTransferRequest,
35
- WormholeStartTransferResponse,
36
- WormholeClaimTransferRequest,
37
- WormholeWithdrawRequest,
38
- WormholeWithdrawResponse,
39
- WormholeInitiateWithdrawRequest,
40
- WormholeInitiateWithdrawResponse,
41
- WormholeClaimWithdrawRequest,
42
- WormholeClaimWithdrawResponse,
43
- RetryWithdrawClaimRequest,
44
- RetryWithdrawClaimResponse,
45
- WithdrawError,
29
+ type RetryWithdrawClaimRequest,
30
+ type RetryWithdrawClaimResponse,
46
31
  TransferError,
32
+ WithdrawError,
33
+ type WormholeClaimTransferRequest,
34
+ type WormholeClaimWithdrawRequest,
35
+ type WormholeClaimWithdrawResponse,
36
+ type WormholeInitiateWithdrawRequest,
37
+ type WormholeInitiateWithdrawResponse,
38
+ type WormholeQuoteRequest,
39
+ type WormholeQuoteResponse,
40
+ type WormholeRequest,
41
+ type WormholeRouteResponse,
42
+ type WormholeStartTransferResponse,
43
+ type WormholeSubmitTransferRequest,
44
+ type WormholeTransferRequest,
45
+ type WormholeTransferResponse,
46
+ type WormholeWithdrawRequest,
47
+ type WormholeWithdrawResponse,
47
48
  } from "./types";
48
- import { SolanaDerivedWallet } from "@aptos-labs/derived-wallet-solana";
49
- import { EIP1193DerivedWallet } from "@aptos-labs/derived-wallet-ethereum";
50
- import { SuiDerivedWallet } from "@aptos-labs/derived-wallet-sui";
51
-
52
- export class WormholeProvider implements CrossChainProvider<
53
- WormholeQuoteRequest,
54
- WormholeQuoteResponse,
55
- WormholeTransferRequest,
56
- WormholeTransferResponse,
57
- WormholeWithdrawRequest,
58
- WormholeWithdrawResponse
59
- > {
49
+ import { createCCTPRoute } from "./utils";
50
+
51
+ export class WormholeProvider
52
+ implements
53
+ CrossChainProvider<
54
+ WormholeQuoteRequest,
55
+ WormholeQuoteResponse,
56
+ WormholeTransferRequest,
57
+ WormholeTransferResponse,
58
+ WormholeWithdrawRequest,
59
+ WormholeWithdrawResponse
60
+ >
61
+ {
60
62
  private crossChainCore: CrossChainCore;
61
63
 
62
64
  private _wormholeContext: Wormhole<"Mainnet" | "Testnet"> | undefined;
@@ -92,9 +94,9 @@ export class WormholeProvider implements CrossChainProvider<
92
94
  const chains = this.crossChainCore.CHAINS;
93
95
 
94
96
  const solanaRpc =
95
- dappConfig?.solanaConfig?.rpc ?? chains["Solana"]?.defaultRpc;
97
+ dappConfig?.solanaConfig?.rpc ?? chains.Solana?.defaultRpc;
96
98
 
97
- const suiRpc = dappConfig?.suiConfig?.rpc ?? chains["Sui"]?.defaultRpc;
99
+ const suiRpc = dappConfig?.suiConfig?.rpc ?? chains.Sui?.defaultRpc;
98
100
 
99
101
  const evmChainsConfig: Record<string, { rpc: string }> = {};
100
102
  for (const name of EVM_CHAIN_NAMES) {
@@ -212,7 +214,7 @@ export class WormholeProvider implements CrossChainProvider<
212
214
  signerAddress =
213
215
  (wallet as SuiDerivedWallet).suiWallet.accounts[0].address || "";
214
216
  } else {
215
- throw new Error("Unsupported chain context: " + chainContext);
217
+ throw new Error(`Unsupported chain context: ${chainContext}`);
216
218
  }
217
219
  logger.log("signerAddress", signerAddress);
218
220
 
@@ -230,7 +232,7 @@ export class WormholeProvider implements CrossChainProvider<
230
232
  logger.log("wormholeRequest", this.wormholeRequest);
231
233
  logger.log("wormholeQuote", this.wormholeQuote);
232
234
 
233
- let receipt = await this.wormholeRoute.initiate(
235
+ const receipt = await this.wormholeRoute.initiate(
234
236
  this.wormholeRequest,
235
237
  signer,
236
238
  this.wormholeQuote,
@@ -304,7 +306,7 @@ export class WormholeProvider implements CrossChainProvider<
304
306
  `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`,
305
307
  e,
306
308
  );
307
- const delay = baseDelay * Math.pow(2, retries); // Exponential backoff
309
+ const delay = baseDelay * 2 ** retries; // Exponential backoff
308
310
  await sleep(delay);
309
311
  retries++;
310
312
  }
@@ -334,7 +336,7 @@ export class WormholeProvider implements CrossChainProvider<
334
336
  });
335
337
  }
336
338
  // Submit transfer transaction from origin chain
337
- let { originChainTxnId, receipt } = await this.submitCCTPTransfer(input);
339
+ const { originChainTxnId, receipt } = await this.submitCCTPTransfer(input);
338
340
  // Claim transfer transaction on destination chain
339
341
  try {
340
342
  const { destinationChainTxnId } = await this.claimCCTPTransfer({
@@ -430,7 +432,7 @@ export class WormholeProvider implements CrossChainProvider<
430
432
  `Error tracking withdraw (attempt ${retries + 1} / ${maxRetries}):`,
431
433
  e,
432
434
  );
433
- const delay = baseDelay * Math.pow(2, retries);
435
+ const delay = baseDelay * 2 ** retries;
434
436
  await sleep(delay);
435
437
  retries++;
436
438
  }
@@ -457,7 +459,7 @@ export class WormholeProvider implements CrossChainProvider<
457
459
  const serverClaimUrl =
458
460
  this.crossChainCore._dappConfig?.solanaConfig?.serverClaimUrl;
459
461
 
460
- if (claimChain === "Solana" && serverClaimUrl) {
462
+ if (claimChain === "Solana" && serverClaimUrl && !input.skipServerClaim) {
461
463
  logger.log("claimWithdraw: using server-side claim via", serverClaimUrl);
462
464
 
463
465
  const response = await fetch(serverClaimUrl, {
@@ -1,9 +1,9 @@
1
1
  import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";
2
+ import { SuiClient } from "@mysten/sui/client";
2
3
  import { Connection, PublicKey } from "@solana/web3.js";
3
- import { mainnetTokens, testnetTokens } from "../config";
4
4
  import { ethers, JsonRpcProvider } from "ethers";
5
- import { Chain } from "../CrossChainCore";
6
- import { SuiClient } from "@mysten/sui/client";
5
+ import type { Chain } from "../CrossChainCore";
6
+ import { mainnetTokens, testnetTokens } from "../config";
7
7
 
8
8
  export const getSolanaWalletUSDCBalance = async (
9
9
  walletAddress: string,
@@ -13,8 +13,8 @@ export const getSolanaWalletUSDCBalance = async (
13
13
  const address = new PublicKey(walletAddress);
14
14
  const tokenAddress =
15
15
  aptosNetwork === Network.MAINNET
16
- ? mainnetTokens["Solana"].tokenId.address
17
- : testnetTokens["Solana"].tokenId.address;
16
+ ? mainnetTokens.Solana.tokenId.address
17
+ : testnetTokens.Solana.tokenId.address;
18
18
 
19
19
  const connection = new Connection(rpc);
20
20
  // Find the token account for USDC
@@ -62,8 +62,8 @@ export const getAptosWalletUSDCBalance = async (
62
62
  ): Promise<string> => {
63
63
  const token =
64
64
  aptosNetwork === Network.MAINNET
65
- ? mainnetTokens["Aptos"]
66
- : testnetTokens["Aptos"];
65
+ ? mainnetTokens.Aptos
66
+ : testnetTokens.Aptos;
67
67
  const tokenAddress = token.tokenId.address;
68
68
  const aptosConfig = new AptosConfig({ network: aptosNetwork });
69
69
  const connection = new Aptos(aptosConfig);
@@ -87,9 +87,7 @@ export const getSuiWalletUSDCBalance = async (
87
87
  rpc: string,
88
88
  ): Promise<string> => {
89
89
  const token =
90
- aptosNetwork === Network.MAINNET
91
- ? mainnetTokens["Sui"]
92
- : testnetTokens["Sui"];
90
+ aptosNetwork === Network.MAINNET ? mainnetTokens.Sui : testnetTokens.Sui;
93
91
 
94
92
  const client = new SuiClient({
95
93
  url: rpc,
@@ -1,6 +1,6 @@
1
1
  import {
2
- routes,
3
- AttestationReceipt,
2
+ type AttestationReceipt,
3
+ type routes,
4
4
  UniversalAddress,
5
5
  } from "@wormhole-foundation/sdk";
6
6
 
@@ -138,4 +138,3 @@ export function deserializeReceipt(
138
138
 
139
139
  return revive(obj) as routes.Receipt<AttestationReceipt>;
140
140
  }
141
-
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const CROSS_CHAIN_CORE_VERSION = "6.0.0";
1
+ export const CROSS_CHAIN_CORE_VERSION = "6.1.0";