@aptos-labs/cross-chain-core 5.5.0 → 5.6.0-alpha.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/CrossChainCore.d.ts +1 -1
- package/dist/CrossChainCore.d.ts.map +1 -1
- package/dist/config/mainnet/chains.d.ts.map +1 -1
- package/dist/config/testnet/chains.d.ts.map +1 -1
- package/dist/config/types.d.ts +2 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/index.d.mts +3 -2
- package/dist/index.js +94 -57
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +94 -57
- package/dist/index.mjs.map +1 -1
- package/dist/providers/wormhole/signers/AptosLocalSigner.d.ts.map +1 -1
- package/dist/providers/wormhole/signers/Signer.d.ts.map +1 -1
- package/dist/providers/wormhole/signers/SuiSigner.d.ts.map +1 -1
- package/dist/providers/wormhole/wormhole.d.ts.map +1 -1
- package/dist/utils/getUsdcBalance.d.ts +1 -0
- package/dist/utils/getUsdcBalance.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/package.json +13 -12
- package/src/CrossChainCore.ts +10 -1
- package/src/config/mainnet/chains.ts +11 -15
- package/src/config/mainnet/tokens.ts +10 -10
- package/src/config/testnet/chains.ts +11 -15
- package/src/config/testnet/tokens.ts +10 -10
- package/src/config/types.ts +1 -0
- package/src/providers/wormhole/signers/AptosLocalSigner.ts +4 -3
- package/src/providers/wormhole/signers/Signer.ts +15 -8
- package/src/providers/wormhole/signers/SuiSigner.ts +42 -0
- package/src/providers/wormhole/wormhole.ts +17 -13
- package/src/utils/getUsdcBalance.ts +24 -6
- package/src/version.ts +1 -1
package/dist/CrossChainCore.d.ts
CHANGED
|
@@ -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;
|
|
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,
|
|
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,
|
|
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"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -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;
|
|
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
|
|
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
|
|
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 ?? (
|
|
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
|
-
|
|
1290
|
-
|
|
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
|
}
|