@aptos-labs/cross-chain-core 5.4.16 → 5.6.0-alpha.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.
@@ -16,7 +16,7 @@ export interface CrossChainDappConfig {
16
16
  export type { AccountAddressInput } from "@aptos-labs/ts-sdk";
17
17
  export { NetworkToChainId, NetworkToNodeAPI } from "@aptos-labs/ts-sdk";
18
18
  export type AptosAccount = Account;
19
- export type Chain = "Solana" | "Ethereum" | "Sepolia" | "Aptos" | "BaseSepolia" | "ArbitrumSepolia" | "Avalanche" | "Base" | "Arbitrum" | "PolygonSepolia" | "Polygon";
19
+ export type Chain = "Solana" | "Ethereum" | "Sepolia" | "Aptos" | "BaseSepolia" | "ArbitrumSepolia" | "Avalanche" | "Base" | "Arbitrum" | "PolygonSepolia" | "Polygon" | "Sui";
20
20
  export declare const EthereumChainIdToTestnetChain: Record<string, ChainConfig>;
21
21
  export declare const EthereumChainIdToMainnetChain: Record<string, ChainConfig>;
22
22
  export type CCTPProviders = "Wormhole";
@@ -1 +1 @@
1
- {"version":3,"file":"CrossChainCore.d.ts","sourceRoot":"","sources":["../src/CrossChainCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAYtD,OAAO,EACL,YAAY,EAKZ,WAAW,EACX,WAAW,EACZ,MAAM,UAAU,CAAC;AAOlB,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,iBAAiB,CAAC,EAAE;YAClB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;YAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;CACH;AACD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;AAGnC,MAAM,MAAM,KAAK,GACb,QAAQ,GACR,UAAU,GACV,SAAS,GACT,OAAO,GACP,aAAa,GACb,iBAAiB,GACjB,WAAW,GACX,MAAM,GACN,UAAU,GACV,gBAAgB,GAChB,SAAS,CAAC;AAGd,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAMrE,CAAC;AAGF,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAMrE,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AAEvC,MAAM,WAAW,kBAAkB,CACjC,aAAa,GAAG,GAAG,EACnB,cAAc,GAAG,GAAG,EACpB,gBAAgB,GAAG,GAAG,EACtB,iBAAiB,GAAG,GAAG,EACvB,gBAAgB,GAAG,GAAG,EACtB,iBAAiB,GAAG,GAAG;IAEvB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/D,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChE;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAExC;IAEF,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAiB;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAiB;gBAEjD,IAAI,EAAE;QAAE,UAAU,EAAE,oBAAoB,CAAA;KAAE;IAWtD,WAAW,CAAC,YAAY,EAAE,aAAa,GAAG,kBAAkB;IAgBtD,oBAAoB,CACxB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,KAAK,GACjB,OAAO,CAAC,MAAM,CAAC;CAsCnB"}
1
+ {"version":3,"file":"CrossChainCore.d.ts","sourceRoot":"","sources":["../src/CrossChainCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAYtD,OAAO,EACL,YAAY,EAKZ,WAAW,EACX,WAAW,EACZ,MAAM,UAAU,CAAC;AAQlB,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,iBAAiB,CAAC,EAAE;YAClB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;YAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;CACH;AACD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;AAGnC,MAAM,MAAM,KAAK,GACb,QAAQ,GACR,UAAU,GACV,SAAS,GACT,OAAO,GACP,aAAa,GACb,iBAAiB,GACjB,WAAW,GACX,MAAM,GACN,UAAU,GACV,gBAAgB,GAChB,SAAS,GACT,KAAK,CAAC;AAGV,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAMrE,CAAC;AAGF,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAMrE,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AAEvC,MAAM,WAAW,kBAAkB,CACjC,aAAa,GAAG,GAAG,EACnB,cAAc,GAAG,GAAG,EACpB,gBAAgB,GAAG,GAAG,EACtB,iBAAiB,GAAG,GAAG,EACvB,gBAAgB,GAAG,GAAG,EACtB,iBAAiB,GAAG,GAAG;IAEvB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/D,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChE;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAExC;IAEF,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAiB;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAiB;gBAEjD,IAAI,EAAE;QAAE,UAAU,EAAE,oBAAoB,CAAA;KAAE;IAWtD,WAAW,CAAC,YAAY,EAAE,aAAa,GAAG,kBAAkB;IAgBtD,oBAAoB,CACxB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,KAAK,GACjB,OAAO,CAAC,MAAM,CAAC;CA6CnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../src/config/mainnet/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,YAAY,EAAE,MAAM,UAAU,CAAC;AAEjD,eAAO,MAAM,aAAa,EAAE,YA6F3B,CAAC"}
1
+ {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../src/config/mainnet/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,YAAY,EAAE,MAAM,UAAU,CAAC;AAEjD,eAAO,MAAM,aAAa,EAAE,YAyF3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../src/config/testnet/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,YAAY,EAAE,MAAM,UAAU,CAAC;AAEjD,eAAO,MAAM,aAAa,EAAE,YA8F3B,CAAC"}
1
+ {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../src/config/testnet/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,YAAY,EAAE,MAAM,UAAU,CAAC;AAEjD,eAAO,MAAM,aAAa,EAAE,YA0F3B,CAAC"}
@@ -2,7 +2,8 @@ import { Chain } from "../CrossChainCore";
2
2
  export declare enum Context {
3
3
  ETH = "Ethereum",
4
4
  SOLANA = "Solana",
5
- APTOS = "Aptos"
5
+ APTOS = "Aptos",
6
+ SUI = "Sui"
6
7
  }
7
8
  export type BaseChainConfig = {
8
9
  key: Chain;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,oBAAY,OAAO;IACjB,GAAG,aAAa;IAChB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,KAAK,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG;KACxB,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,WAAW;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,KAAK,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,oBAAY,OAAO;IACjB,GAAG,aAAa;IAChB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,KAAK,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG;KACxB,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,WAAW;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,KAAK,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC"}
package/dist/index.d.mts CHANGED
@@ -8,7 +8,8 @@ import { AptosChains } from '@wormhole-foundation/sdk-aptos';
8
8
  declare enum Context {
9
9
  ETH = "Ethereum",
10
10
  SOLANA = "Solana",
11
- APTOS = "Aptos"
11
+ APTOS = "Aptos",
12
+ SUI = "Sui"
12
13
  }
13
14
  type BaseChainConfig = {
14
15
  key: Chain;
@@ -62,7 +63,7 @@ interface CrossChainDappConfig {
62
63
  }
63
64
 
64
65
  type AptosAccount = Account;
65
- type Chain = "Solana" | "Ethereum" | "Sepolia" | "Aptos" | "BaseSepolia" | "ArbitrumSepolia" | "Avalanche" | "Base" | "Arbitrum" | "PolygonSepolia" | "Polygon";
66
+ type Chain = "Solana" | "Ethereum" | "Sepolia" | "Aptos" | "BaseSepolia" | "ArbitrumSepolia" | "Avalanche" | "Base" | "Arbitrum" | "PolygonSepolia" | "Polygon" | "Sui";
66
67
  declare const EthereumChainIdToTestnetChain: Record<string, ChainConfig>;
67
68
  declare const EthereumChainIdToMainnetChain: Record<string, ChainConfig>;
68
69
  type CCTPProviders = "Wormhole";
package/dist/index.js CHANGED
@@ -56,6 +56,7 @@ var import_ts_sdk3 = require("@aptos-labs/ts-sdk");
56
56
  var import_aptos = __toESM(require("@wormhole-foundation/sdk/aptos"));
57
57
  var import_solana = __toESM(require("@wormhole-foundation/sdk/solana"));
58
58
  var import_evm = __toESM(require("@wormhole-foundation/sdk/evm"));
59
+ var import_sui = __toESM(require("@wormhole-foundation/sdk/sui"));
59
60
 
60
61
  // src/utils/logger.ts
61
62
  var logger = {
@@ -519,6 +520,24 @@ function extractFunctionArguments(functionArguments) {
519
520
  return [amount, destination_domain, mint_recipient, burn_token];
520
521
  }
521
522
 
523
+ // src/providers/wormhole/signers/SuiSigner.ts
524
+ async function signAndSendTransaction5(request, wallet) {
525
+ if (!wallet) {
526
+ throw new Error("wallet is undefined");
527
+ }
528
+ const suiDerivedWallet = wallet;
529
+ const signAndExecuteTransactionFeature = suiDerivedWallet.suiWallet.features["sui:signAndExecuteTransaction"];
530
+ if (!signAndExecuteTransactionFeature) {
531
+ throw new Error("wallet does not support signAndExecuteTransaction");
532
+ }
533
+ const { digest } = await signAndExecuteTransactionFeature.signAndExecuteTransaction({
534
+ transaction: request.transaction,
535
+ account: suiDerivedWallet.suiWallet.accounts[0],
536
+ chain: `sui:${request.network.toLocaleLowerCase()}`
537
+ });
538
+ return digest;
539
+ }
540
+
522
541
  // src/providers/wormhole/signers/Signer.ts
523
542
  var Signer = class {
524
543
  constructor(chain, address, options, wallet, crossChainCore, sponsorAccount) {
@@ -542,7 +561,7 @@ var Signer = class {
542
561
  async signAndSend(txs) {
543
562
  const txHashes = [];
544
563
  for (const tx of txs) {
545
- const txId = await signAndSendTransaction5(
564
+ const txId = await signAndSendTransaction6(
546
565
  this._chain,
547
566
  tx,
548
567
  this._wallet,
@@ -556,7 +575,7 @@ var Signer = class {
556
575
  return txHashes;
557
576
  }
558
577
  };
559
- var signAndSendTransaction5 = async (chain, request, wallet, options = {}, crossChainCore, sponsorAccount) => {
578
+ var signAndSendTransaction6 = async (chain, request, wallet, options = {}, crossChainCore, sponsorAccount) => {
560
579
  if (!wallet) {
561
580
  throw new Error("wallet is undefined");
562
581
  }
@@ -576,6 +595,12 @@ var signAndSendTransaction5 = async (chain, request, wallet, options = {}, cross
576
595
  options
577
596
  );
578
597
  return tx;
598
+ } else if (chain.context === "Sui") {
599
+ const tx = await signAndSendTransaction5(
600
+ request,
601
+ wallet
602
+ );
603
+ return tx;
579
604
  } else if (chain.context === "Aptos") {
580
605
  const tx = await signAndSendTransaction4(
581
606
  request,
@@ -605,7 +630,7 @@ var WormholeProvider = class {
605
630
  throw new Error("Origin chain not selected");
606
631
  }
607
632
  const isMainnet = dappNetwork === import_ts_sdk3.Network.MAINNET;
608
- const platforms = [import_aptos.default, import_solana.default, import_evm.default];
633
+ const platforms = [import_aptos.default, import_solana.default, import_evm.default, import_sui.default];
609
634
  const wh = await (0, import_sdk.wormhole)(isMainnet ? "Mainnet" : "Testnet", platforms);
610
635
  this._wormholeContext = wh;
611
636
  }
@@ -684,10 +709,14 @@ var WormholeProvider = class {
684
709
  const chainContext = this.getChainConfig(sourceChain).context;
685
710
  if (chainContext === "Solana") {
686
711
  signerAddress = wallet.solanaWallet.publicKey?.toBase58() || "";
687
- } else {
712
+ } else if (chainContext === "Ethereum") {
688
713
  [signerAddress] = await wallet.eip1193Provider.request({
689
714
  method: "eth_requestAccounts"
690
715
  });
716
+ } else if (chainContext === "Sui") {
717
+ signerAddress = wallet.suiWallet.accounts[0].address || "";
718
+ } else {
719
+ throw new Error("Unsupported chain context: " + chainContext);
691
720
  }
692
721
  logger.log("signerAddress", signerAddress);
693
722
  const signer = new Signer(
@@ -897,6 +926,7 @@ var Context = /* @__PURE__ */ ((Context2) => {
897
926
  Context2["ETH"] = "Ethereum";
898
927
  Context2["SOLANA"] = "Solana";
899
928
  Context2["APTOS"] = "Aptos";
929
+ Context2["SUI"] = "Sui";
900
930
  return Context2;
901
931
  })(Context || {});
902
932
 
@@ -978,22 +1008,18 @@ var testnetChains = {
978
1008
  icon: "Aptos",
979
1009
  symbol: "APT",
980
1010
  defaultRpc: "https://fullnode.testnet.aptos.dev"
1011
+ },
1012
+ Sui: {
1013
+ key: "Sui",
1014
+ context: "Sui" /* SUI */,
1015
+ displayName: "Sui",
1016
+ explorerUrl: "https://suiscan.xyz/testnet",
1017
+ explorerName: "Suiscan",
1018
+ chainId: 0,
1019
+ icon: "Sui",
1020
+ symbol: "SUI",
1021
+ defaultRpc: "https://fullnode.testnet.sui.io:443"
981
1022
  }
982
- // Sui: {
983
- // key: "Sui",
984
- // id: 21,
985
- // context: Context.SUI,
986
- // finalityThreshold: 0,
987
- // displayName: "Sui",
988
- // explorerUrl: "https://suiscan.xyz/testnet/",
989
- // explorerName: "Suiscan",
990
- // gasToken: "SUI",
991
- // chainId: 0,
992
- // icon: "Sui",
993
- // maxBlockSearch: 0,
994
- // symbol: "SUI",
995
- // sdkName: "Sui",
996
- // },
997
1023
  };
998
1024
 
999
1025
  // src/config/testnet/tokens.ts
@@ -1060,17 +1086,16 @@ var testnetTokens = {
1060
1086
  chain: "PolygonSepolia",
1061
1087
  address: "0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582"
1062
1088
  }
1089
+ },
1090
+ Sui: {
1091
+ symbol: "USDC",
1092
+ tokenId: {
1093
+ chain: "Sui",
1094
+ address: "0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC"
1095
+ },
1096
+ icon: "USDC",
1097
+ decimals: 6
1063
1098
  }
1064
- // Sui: {
1065
- // symbol: "USDC",
1066
- // tokenId: {
1067
- // chain: "Sui",
1068
- // address:
1069
- // "0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC",
1070
- // },
1071
- // icon: "USDC",
1072
- // decimals: 6,
1073
- // },
1074
1099
  };
1075
1100
 
1076
1101
  // src/config/mainnet/chains.ts
@@ -1151,22 +1176,18 @@ var mainnetChains = {
1151
1176
  icon: "Polygon",
1152
1177
  symbol: "MATIC",
1153
1178
  defaultRpc: "https://polygon-bor-rpc.publicnode.com"
1179
+ },
1180
+ Sui: {
1181
+ key: "Sui",
1182
+ context: "Sui" /* SUI */,
1183
+ displayName: "Sui",
1184
+ explorerUrl: "https://suiscan.xyz/",
1185
+ explorerName: "Suiscan",
1186
+ chainId: 0,
1187
+ icon: "Sui",
1188
+ symbol: "SUI",
1189
+ defaultRpc: "https://fullnode.mainnet.sui.io:443"
1154
1190
  }
1155
- // Sui: {
1156
- // key: "Sui",
1157
- // id: 21,
1158
- // context: Context.SUI,
1159
- // finalityThreshold: 0,
1160
- // displayName: "Sui",
1161
- // sdkName: "Sui",
1162
- // explorerUrl: "https://suiscan.xyz/",
1163
- // explorerName: "Suiscan",
1164
- // gasToken: "SUI",
1165
- // chainId: 0,
1166
- // icon: "Sui",
1167
- // maxBlockSearch: 0,
1168
- // symbol: "SUI",
1169
- // },
1170
1191
  };
1171
1192
 
1172
1193
  // src/config/mainnet/tokens.ts
@@ -1233,23 +1254,23 @@ var mainnetTokens = {
1233
1254
  chain: "Polygon",
1234
1255
  address: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"
1235
1256
  }
1257
+ },
1258
+ Sui: {
1259
+ symbol: "USDC",
1260
+ decimals: 6,
1261
+ tokenId: {
1262
+ chain: "Sui",
1263
+ address: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"
1264
+ },
1265
+ icon: "USDC"
1236
1266
  }
1237
- // Sui: {
1238
- // symbol: "USDC",
1239
- // decimals: 6,
1240
- // tokenId: {
1241
- // chain: "Sui",
1242
- // address:
1243
- // "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
1244
- // },
1245
- // icon: "USDC",
1246
- // },
1247
1267
  };
1248
1268
 
1249
1269
  // src/utils/getUsdcBalance.ts
1250
1270
  var import_ts_sdk4 = require("@aptos-labs/ts-sdk");
1251
1271
  var import_web33 = require("@solana/web3.js");
1252
1272
  var import_ethers2 = require("ethers");
1273
+ var import_client = require("@mysten/sui/client");
1253
1274
  var getSolanaWalletUSDCBalance = async (walletAddress, aptosNetwork, rpc) => {
1254
1275
  const address = new import_web33.PublicKey(walletAddress);
1255
1276
  const tokenAddress = aptosNetwork === import_ts_sdk4.Network.MAINNET ? mainnetTokens["Solana"].tokenId.address : testnetTokens["Solana"].tokenId.address;
@@ -1259,7 +1280,7 @@ var getSolanaWalletUSDCBalance = async (walletAddress, aptosNetwork, rpc) => {
1259
1280
  });
1260
1281
  const checkAddress = splToken.value.length > 0 ? splToken.value[0].pubkey : address;
1261
1282
  const balance = await connection.getTokenAccountBalance(checkAddress);
1262
- return balance.value.uiAmountString ?? (Number(balance.value.amount) / 10 ** balance.value.decimals).toString();
1283
+ return balance.value.uiAmountString ?? import_ethers2.ethers.formatUnits(BigInt(balance.value.amount), balance.value.decimals);
1263
1284
  };
1264
1285
  var getEthereumWalletUSDCBalance = async (walletAddress, aptosNetwork, chain, rpc) => {
1265
1286
  const token = aptosNetwork === import_ts_sdk4.Network.MAINNET ? mainnetTokens[chain] : testnetTokens[chain];
@@ -1286,8 +1307,18 @@ var getAptosWalletUSDCBalance = async (walletAddress, aptosNetwork) => {
1286
1307
  if (response.length === 0) {
1287
1308
  return "0";
1288
1309
  }
1289
- const balance = (Number(response[0].amount) / 10 ** token.decimals).toString();
1290
- return balance;
1310
+ return import_ethers2.ethers.formatUnits(BigInt(response[0].amount), token.decimals);
1311
+ };
1312
+ var getSuiWalletUSDCBalance = async (walletAddress, aptosNetwork, rpc) => {
1313
+ const token = aptosNetwork === import_ts_sdk4.Network.MAINNET ? mainnetTokens["Sui"] : testnetTokens["Sui"];
1314
+ const client = new import_client.SuiClient({
1315
+ url: rpc
1316
+ });
1317
+ const balance = await client.getBalance({
1318
+ owner: walletAddress,
1319
+ coinType: token.tokenId.address
1320
+ });
1321
+ return import_ethers2.ethers.formatUnits(BigInt(balance.totalBalance), token.decimals);
1291
1322
  };
1292
1323
 
1293
1324
  // src/CrossChainCore.ts
@@ -1363,6 +1394,12 @@ var CrossChainCore = class {
1363
1394
  // TODO: maybe let the user config it
1364
1395
  this.CHAINS[sourceChain].defaultRpc
1365
1396
  );
1397
+ case "Sui":
1398
+ return await getSuiWalletUSDCBalance(
1399
+ walletAddress,
1400
+ this._dappConfig.aptosNetwork,
1401
+ this.CHAINS[sourceChain].defaultRpc
1402
+ );
1366
1403
  default:
1367
1404
  throw new Error(`Unsupported chain: ${sourceChain}`);
1368
1405
  }