@sodax/wallet-sdk-core 2.0.0-rc.2 → 2.0.0-rc.21
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/README.md +1 -2
- package/dist/index.cjs +530 -30
- package/dist/index.d.cts +63 -10
- package/dist/index.d.ts +63 -10
- package/dist/index.mjs +524 -24
- package/package.json +21 -15
- package/ai-exported/AGENTS.md +0 -139
- package/ai-exported/integration/README.md +0 -108
- package/ai-exported/integration/ai-rules.md +0 -141
- package/ai-exported/integration/architecture.md +0 -212
- package/ai-exported/integration/features/README.md +0 -22
- package/ai-exported/integration/features/bitcoin.md +0 -103
- package/ai-exported/integration/features/evm.md +0 -102
- package/ai-exported/integration/features/icon.md +0 -88
- package/ai-exported/integration/features/injective.md +0 -92
- package/ai-exported/integration/features/near.md +0 -92
- package/ai-exported/integration/features/solana.md +0 -104
- package/ai-exported/integration/features/stacks.md +0 -91
- package/ai-exported/integration/features/stellar.md +0 -95
- package/ai-exported/integration/features/sui.md +0 -96
- package/ai-exported/integration/quickstart.md +0 -259
- package/ai-exported/integration/recipes/README.md +0 -15
- package/ai-exported/integration/recipes/bridge-to-sdk.md +0 -145
- package/ai-exported/integration/recipes/defaults-and-overrides.md +0 -159
- package/ai-exported/integration/recipes/library-exports.md +0 -129
- package/ai-exported/integration/recipes/setup-browser-extension.md +0 -137
- package/ai-exported/integration/recipes/setup-private-key.md +0 -115
- package/ai-exported/integration/recipes/sign-and-broadcast.md +0 -201
- package/ai-exported/integration/recipes/testing.md +0 -163
- package/ai-exported/integration/reference/README.md +0 -13
- package/ai-exported/integration/reference/chain-support.md +0 -65
- package/ai-exported/integration/reference/glossary.md +0 -28
- package/ai-exported/integration/reference/interfaces.md +0 -131
- package/ai-exported/integration/reference/provider-classes.md +0 -54
- package/ai-exported/integration/reference/public-api.md +0 -128
- package/ai-exported/migration/README.md +0 -84
- package/ai-exported/migration/ai-rules.md +0 -139
- package/ai-exported/migration/breaking-changes/README.md +0 -14
- package/ai-exported/migration/breaking-changes/base-wallet-provider.md +0 -52
- package/ai-exported/migration/breaking-changes/defaults-config.md +0 -57
- package/ai-exported/migration/breaking-changes/folder-layout.md +0 -99
- package/ai-exported/migration/breaking-changes/library-exports.md +0 -58
- package/ai-exported/migration/checklist.md +0 -62
- package/ai-exported/migration/recipes/README.md +0 -12
- package/ai-exported/migration/recipes/adopt-defaults.md +0 -84
- package/ai-exported/migration/recipes/adopt-library-exports.md +0 -99
- package/ai-exported/migration/reference/README.md +0 -12
- package/ai-exported/migration/reference/added-fields.md +0 -71
- package/ai-exported/migration/reference/deleted-exports.md +0 -35
- package/ai-exported/migration/reference/renamed-symbols.md +0 -31
- package/ai-exported/migration/reference/return-shapes.md +0 -23
- package/dist/index.cjs.map +0 -1
- package/dist/index.mjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -5,16 +5,18 @@ var viem = require('viem');
|
|
|
5
5
|
var chains = require('viem/chains');
|
|
6
6
|
var client = require('@mysten/sui/client');
|
|
7
7
|
var ed25519$1 = require('@mysten/sui/keypairs/ed25519');
|
|
8
|
-
var transactions
|
|
8
|
+
var transactions = require('@mysten/sui/transactions');
|
|
9
9
|
var walletStandard = require('@mysten/wallet-standard');
|
|
10
10
|
var IconSdkRaw = require('icon-sdk-js');
|
|
11
11
|
var sdkTs = require('@injectivelabs/sdk-ts');
|
|
12
|
+
var tx_js = require('cosmjs-types/cosmos/tx/v1beta1/tx.js');
|
|
13
|
+
var tx_js$1 = require('cosmjs-types/cosmwasm/wasm/v1/tx.js');
|
|
14
|
+
var networks = require('@injectivelabs/networks');
|
|
12
15
|
var splToken = require('@solana/spl-token');
|
|
13
16
|
var web3_js = require('@solana/web3.js');
|
|
14
17
|
var stellarSdk = require('@stellar/stellar-sdk');
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var connect = require('@stacks/connect');
|
|
18
|
+
var core = require('@sodax/libs/stacks/core');
|
|
19
|
+
var connect = require('@sodax/libs/stacks/connect');
|
|
18
20
|
var bitcoin = require('bitcoinjs-lib');
|
|
19
21
|
var ecc = require('@bitcoinerlab/secp256k1');
|
|
20
22
|
var ecpair = require('ecpair');
|
|
@@ -137,7 +139,8 @@ var ChainKeys = {
|
|
|
137
139
|
BITCOIN_MAINNET: "bitcoin",
|
|
138
140
|
REDBELLY_MAINNET: "redbelly",
|
|
139
141
|
KAIA_MAINNET: "0x2019.kaia",
|
|
140
|
-
STACKS_MAINNET: "stacks"
|
|
142
|
+
STACKS_MAINNET: "stacks",
|
|
143
|
+
HEDERA_MAINNET: "hedera"
|
|
141
144
|
};
|
|
142
145
|
var CHAIN_KEYS = Object.values(ChainKeys);
|
|
143
146
|
new Set(CHAIN_KEYS);
|
|
@@ -180,6 +183,15 @@ var SodaTokens = {
|
|
|
180
183
|
hubAsset: "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d",
|
|
181
184
|
vault: "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d"
|
|
182
185
|
},
|
|
186
|
+
sodaWBTC: {
|
|
187
|
+
symbol: "sodaWBTC",
|
|
188
|
+
name: "Soda Wrapped BTC",
|
|
189
|
+
decimals: 18,
|
|
190
|
+
address: "0x811C3fCc13f9c2a23AE2Ae2DCadacFAC6eb5f0eB",
|
|
191
|
+
chainKey: ChainKeys.SONIC_MAINNET,
|
|
192
|
+
hubAsset: "0x811C3fCc13f9c2a23AE2Ae2DCadacFAC6eb5f0eB",
|
|
193
|
+
vault: "0x811C3fCc13f9c2a23AE2Ae2DCadacFAC6eb5f0eB"
|
|
194
|
+
},
|
|
183
195
|
sodaSOL: {
|
|
184
196
|
symbol: "sodaSOL",
|
|
185
197
|
name: "Soda SOL",
|
|
@@ -327,7 +339,7 @@ var SodaTokens = {
|
|
|
327
339
|
sodaNEAR: {
|
|
328
340
|
symbol: "sodaNEAR",
|
|
329
341
|
name: "SODA NEAR",
|
|
330
|
-
decimals:
|
|
342
|
+
decimals: 18,
|
|
331
343
|
address: "0xf4ba497c9b805e4bd88a8a9e6a7b8f74984c3e39",
|
|
332
344
|
chainKey: ChainKeys.SONIC_MAINNET,
|
|
333
345
|
hubAsset: "0xf4ba497c9b805e4bd88a8a9e6a7b8f74984c3e39",
|
|
@@ -359,6 +371,53 @@ var SodaTokens = {
|
|
|
359
371
|
chainKey: ChainKeys.SONIC_MAINNET,
|
|
360
372
|
hubAsset: "0x243b0c26c8b38793908d7C64e8510f21B19B4613",
|
|
361
373
|
vault: "0x243b0c26c8b38793908d7C64e8510f21B19B4613"
|
|
374
|
+
},
|
|
375
|
+
sodaHBAR: {
|
|
376
|
+
symbol: "sodaHBAR",
|
|
377
|
+
name: "Soda HBAR",
|
|
378
|
+
decimals: 18,
|
|
379
|
+
address: "0x3BB956cc8922E1Ba4148dc10eD1b4Fa19aa599c4",
|
|
380
|
+
chainKey: ChainKeys.SONIC_MAINNET,
|
|
381
|
+
hubAsset: "0x3BB956cc8922E1Ba4148dc10eD1b4Fa19aa599c4",
|
|
382
|
+
vault: "0x3BB956cc8922E1Ba4148dc10eD1b4Fa19aa599c4"
|
|
383
|
+
},
|
|
384
|
+
sodaJITOSOL: {
|
|
385
|
+
symbol: "sodaJITOSOL",
|
|
386
|
+
name: "Soda JITOSOL",
|
|
387
|
+
decimals: 18,
|
|
388
|
+
address: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0",
|
|
389
|
+
chainKey: ChainKeys.SONIC_MAINNET,
|
|
390
|
+
hubAsset: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0",
|
|
391
|
+
vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0"
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
var LsodaTokens = {
|
|
395
|
+
lsodaWEETH: {
|
|
396
|
+
symbol: "lsodaWEETH",
|
|
397
|
+
name: "Leveraged Soda weETH",
|
|
398
|
+
decimals: 18,
|
|
399
|
+
address: "0xD09de2f5070699A909c0FD32fb5A909d3886701D",
|
|
400
|
+
chainKey: ChainKeys.SONIC_MAINNET,
|
|
401
|
+
hubAsset: "0xD09de2f5070699A909c0FD32fb5A909d3886701D",
|
|
402
|
+
vault: "0xD09de2f5070699A909c0FD32fb5A909d3886701D"
|
|
403
|
+
},
|
|
404
|
+
lsodaWSTETH: {
|
|
405
|
+
symbol: "lsodaWSTETH",
|
|
406
|
+
name: "Leveraged Soda wstETH",
|
|
407
|
+
decimals: 18,
|
|
408
|
+
address: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a",
|
|
409
|
+
chainKey: ChainKeys.SONIC_MAINNET,
|
|
410
|
+
hubAsset: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a",
|
|
411
|
+
vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a"
|
|
412
|
+
},
|
|
413
|
+
lsodaJITOSOL: {
|
|
414
|
+
symbol: "lsodaJITOSOL",
|
|
415
|
+
name: "Leveraged Soda JITOSOL",
|
|
416
|
+
decimals: 18,
|
|
417
|
+
address: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78",
|
|
418
|
+
chainKey: ChainKeys.SONIC_MAINNET,
|
|
419
|
+
hubAsset: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78",
|
|
420
|
+
vault: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78"
|
|
362
421
|
}
|
|
363
422
|
};
|
|
364
423
|
var sonicSupportedTokens = {
|
|
@@ -425,7 +484,8 @@ var sonicSupportedTokens = {
|
|
|
425
484
|
hubAsset: "0x7c7d53EEcda37a87ce0D5bf8E0b24512A48dC963",
|
|
426
485
|
vault: SodaTokens.sodaSODA.address
|
|
427
486
|
},
|
|
428
|
-
...SodaTokens
|
|
487
|
+
...SodaTokens,
|
|
488
|
+
...LsodaTokens
|
|
429
489
|
};
|
|
430
490
|
var redbellySupportedTokens = {
|
|
431
491
|
RBNT: {
|
|
@@ -635,7 +695,7 @@ var solanaSupportedTokens = {
|
|
|
635
695
|
address: "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",
|
|
636
696
|
chainKey: ChainKeys.SOLANA_MAINNET,
|
|
637
697
|
hubAsset: "0x942f89a324d2652e447b9fcf08effc9f9776a680",
|
|
638
|
-
vault:
|
|
698
|
+
vault: SodaTokens.sodaJITOSOL.address
|
|
639
699
|
},
|
|
640
700
|
mSOL: {
|
|
641
701
|
symbol: "mSOL",
|
|
@@ -681,6 +741,78 @@ var solanaSupportedTokens = {
|
|
|
681
741
|
chainKey: ChainKeys.SOLANA_MAINNET,
|
|
682
742
|
hubAsset: "0x0076b67235bfc69b649d29dd7cb66e5b92b618aa",
|
|
683
743
|
vault: "0x0076b67235bfc69b649d29dd7cb66e5b92b618aa"
|
|
744
|
+
},
|
|
745
|
+
CRCLx: {
|
|
746
|
+
symbol: "CRCLx",
|
|
747
|
+
name: "Circle xStock",
|
|
748
|
+
decimals: 8,
|
|
749
|
+
address: "XsueG8BtpquVJX9LVLLEGuViXUungE6WmK5YZ3p3bd1",
|
|
750
|
+
chainKey: ChainKeys.SOLANA_MAINNET,
|
|
751
|
+
hubAsset: "0x64659130a3373b3527146b38fc1fccf017bc0c61",
|
|
752
|
+
vault: "0x64659130a3373b3527146b38fc1fccf017bc0c61"
|
|
753
|
+
},
|
|
754
|
+
TSLAx: {
|
|
755
|
+
symbol: "TSLAx",
|
|
756
|
+
name: "Tesla xStock",
|
|
757
|
+
decimals: 8,
|
|
758
|
+
address: "XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB",
|
|
759
|
+
chainKey: ChainKeys.SOLANA_MAINNET,
|
|
760
|
+
hubAsset: "0x3cc867f6f4d1817b6230b781125301363fce370c",
|
|
761
|
+
vault: "0x3cc867f6f4d1817b6230b781125301363fce370c"
|
|
762
|
+
},
|
|
763
|
+
SPYx: {
|
|
764
|
+
symbol: "SPYx",
|
|
765
|
+
name: "SP500 xStock",
|
|
766
|
+
decimals: 8,
|
|
767
|
+
address: "XsoCS1TfEyfFhfvj8EtZ528L3CaKBDBRqRapnBbDF2W",
|
|
768
|
+
chainKey: ChainKeys.SOLANA_MAINNET,
|
|
769
|
+
hubAsset: "0xea66dbe82ebcb6c3a55b2db3d722b676be63a26e",
|
|
770
|
+
vault: "0xea66dbe82ebcb6c3a55b2db3d722b676be63a26e"
|
|
771
|
+
},
|
|
772
|
+
NVDAx: {
|
|
773
|
+
symbol: "NVDAx",
|
|
774
|
+
name: "NVIDIA xStock",
|
|
775
|
+
decimals: 8,
|
|
776
|
+
address: "Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh",
|
|
777
|
+
chainKey: ChainKeys.SOLANA_MAINNET,
|
|
778
|
+
hubAsset: "0x48303c90f4136bc3101b308c8b50c55745aaf317",
|
|
779
|
+
vault: "0x48303c90f4136bc3101b308c8b50c55745aaf317"
|
|
780
|
+
},
|
|
781
|
+
QQQx: {
|
|
782
|
+
symbol: "QQQx",
|
|
783
|
+
name: "Nasdaq xStock",
|
|
784
|
+
decimals: 8,
|
|
785
|
+
address: "Xs8S1uUs1zvS2p7iwtsG3b6fkhpvmwz4GYU3gWAmWHZ",
|
|
786
|
+
chainKey: ChainKeys.SOLANA_MAINNET,
|
|
787
|
+
hubAsset: "0x4448b894740198ab76c83c8850d73f7dc8e4b9b3",
|
|
788
|
+
vault: "0x4448b894740198ab76c83c8850d73f7dc8e4b9b3"
|
|
789
|
+
},
|
|
790
|
+
MSTRx: {
|
|
791
|
+
symbol: "MSTRx",
|
|
792
|
+
name: "MicroStrategy xStock",
|
|
793
|
+
decimals: 8,
|
|
794
|
+
address: "XsP7xzNPvEHS1m6qfanPUGjNmdnmsLKEoNAnHjdxxyZ",
|
|
795
|
+
chainKey: ChainKeys.SOLANA_MAINNET,
|
|
796
|
+
hubAsset: "0xc46c34961802355c5223a115568fdf18a51ad6f6",
|
|
797
|
+
vault: "0xc46c34961802355c5223a115568fdf18a51ad6f6"
|
|
798
|
+
},
|
|
799
|
+
COINx: {
|
|
800
|
+
symbol: "COINx",
|
|
801
|
+
name: "Coinbase xStock",
|
|
802
|
+
decimals: 8,
|
|
803
|
+
address: "Xs7ZdzSHLU9ftNJsii5fCeJhoRWSC32SQGzGQtePxNu",
|
|
804
|
+
chainKey: ChainKeys.SOLANA_MAINNET,
|
|
805
|
+
hubAsset: "0xf444586e95166da0754052f03f344cf1152abe7d",
|
|
806
|
+
vault: "0xf444586e95166da0754052f03f344cf1152abe7d"
|
|
807
|
+
},
|
|
808
|
+
GOOGLx: {
|
|
809
|
+
symbol: "GOOGLx",
|
|
810
|
+
name: "Alphabet xStock",
|
|
811
|
+
decimals: 8,
|
|
812
|
+
address: "XsCPL9dNWBMvFtTmwcCA5v3xWPSMEBCszbQdiLLq6aN",
|
|
813
|
+
chainKey: ChainKeys.SOLANA_MAINNET,
|
|
814
|
+
hubAsset: "0x024230dd63b27df90d988d6f37a69d4de627ce89",
|
|
815
|
+
vault: "0x024230dd63b27df90d988d6f37a69d4de627ce89"
|
|
684
816
|
}
|
|
685
817
|
};
|
|
686
818
|
var avalancheSupportedTokens = {
|
|
@@ -783,7 +915,8 @@ var arbitrumSupportedTokens = {
|
|
|
783
915
|
address: "0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40",
|
|
784
916
|
chainKey: ChainKeys.ARBITRUM_MAINNET,
|
|
785
917
|
hubAsset: "0x96Fc8540736f1598b7E235e6dE8814062b3b5d3B",
|
|
786
|
-
vault: SodaTokens.sodaBTC.address
|
|
918
|
+
vault: SodaTokens.sodaBTC.address,
|
|
919
|
+
access: "withdrawOnly"
|
|
787
920
|
},
|
|
788
921
|
WBTC: {
|
|
789
922
|
symbol: "WBTC",
|
|
@@ -792,7 +925,17 @@ var arbitrumSupportedTokens = {
|
|
|
792
925
|
address: "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",
|
|
793
926
|
chainKey: ChainKeys.ARBITRUM_MAINNET,
|
|
794
927
|
hubAsset: "0xfB0ACB1b2720B620935F50a6dd3F7FEA52b2FCBe",
|
|
795
|
-
vault: SodaTokens.
|
|
928
|
+
vault: SodaTokens.sodaWBTC.address
|
|
929
|
+
},
|
|
930
|
+
WBTC_LEGACY: {
|
|
931
|
+
symbol: "WBTC.legacy",
|
|
932
|
+
name: "Wrapped BTC (Legacy)",
|
|
933
|
+
decimals: 8,
|
|
934
|
+
address: "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",
|
|
935
|
+
chainKey: ChainKeys.ARBITRUM_MAINNET,
|
|
936
|
+
hubAsset: "0xfB0ACB1b2720B620935F50a6dd3F7FEA52b2FCBe",
|
|
937
|
+
vault: SodaTokens.sodaBTC.address,
|
|
938
|
+
access: "withdrawOnly"
|
|
796
939
|
},
|
|
797
940
|
USDC: {
|
|
798
941
|
symbol: "USDC",
|
|
@@ -947,7 +1090,8 @@ var baseSupportedTokens = {
|
|
|
947
1090
|
address: "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf",
|
|
948
1091
|
chainKey: ChainKeys.BASE_MAINNET,
|
|
949
1092
|
hubAsset: "0x2803a23a3BA6b09e57D1c71deC0D9eFdBB00A27F",
|
|
950
|
-
vault: SodaTokens.sodaBTC.address
|
|
1093
|
+
vault: SodaTokens.sodaBTC.address,
|
|
1094
|
+
access: "withdrawOnly"
|
|
951
1095
|
},
|
|
952
1096
|
SODA: {
|
|
953
1097
|
symbol: "SODA",
|
|
@@ -984,6 +1128,15 @@ var baseSupportedTokens = {
|
|
|
984
1128
|
chainKey: ChainKeys.BASE_MAINNET,
|
|
985
1129
|
hubAsset: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9",
|
|
986
1130
|
vault: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9"
|
|
1131
|
+
},
|
|
1132
|
+
AERO: {
|
|
1133
|
+
symbol: "AERO",
|
|
1134
|
+
name: "Aerodrome Finance",
|
|
1135
|
+
decimals: 18,
|
|
1136
|
+
address: "0x940181a94A35A4569e4529A3CDfB74e38FD98631",
|
|
1137
|
+
chainKey: ChainKeys.BASE_MAINNET,
|
|
1138
|
+
hubAsset: "0x348e086ab6f424dfc575a325c28624ed23973173",
|
|
1139
|
+
vault: "0x348e086ab6f424dfc575a325c28624ed23973173"
|
|
987
1140
|
}
|
|
988
1141
|
};
|
|
989
1142
|
var optimismSupportedTokens = {
|
|
@@ -1666,6 +1819,33 @@ var stellarSupportedTokens = {
|
|
|
1666
1819
|
chainKey: ChainKeys.STELLAR_MAINNET,
|
|
1667
1820
|
hubAsset: "0xD749B5FfFED7cEDaa3239abDd16D677179C29AEc",
|
|
1668
1821
|
vault: SodaTokens.sodaSODA.address
|
|
1822
|
+
},
|
|
1823
|
+
sodaETH: {
|
|
1824
|
+
symbol: "sodaETH",
|
|
1825
|
+
name: "Soda ETH",
|
|
1826
|
+
decimals: 7,
|
|
1827
|
+
address: "CDK5EWVTZLGSLI6D5OSES7XUKWZUKBXDRNOWUVDNPP5RJRP5EYWCW7SL",
|
|
1828
|
+
chainKey: ChainKeys.STELLAR_MAINNET,
|
|
1829
|
+
hubAsset: "0x4985a4b72ac723723e9ae82382d12d77e9a715de",
|
|
1830
|
+
vault: SodaTokens.sodaETH.address
|
|
1831
|
+
},
|
|
1832
|
+
sodaBTC: {
|
|
1833
|
+
symbol: "sodaBTC",
|
|
1834
|
+
name: "Soda BTC",
|
|
1835
|
+
decimals: 7,
|
|
1836
|
+
address: "CD6XWBW74YVFDQQYUM2GALCULMA5MAWGP6NTCWF3ZYXP4Z7MEVY4JKBX",
|
|
1837
|
+
chainKey: ChainKeys.STELLAR_MAINNET,
|
|
1838
|
+
hubAsset: "0xddee01f63c18843e2bac30cb702864d7632c83a2",
|
|
1839
|
+
vault: SodaTokens.sodaBTC.address
|
|
1840
|
+
},
|
|
1841
|
+
sodaBNB: {
|
|
1842
|
+
symbol: "sodaBNB",
|
|
1843
|
+
name: "Soda BNB",
|
|
1844
|
+
decimals: 7,
|
|
1845
|
+
address: "CCXTXZAFLVNTMORVWYB6BGL7YEW3U3ONDAL2FGBRGDUQH7AGANVQPRS6",
|
|
1846
|
+
chainKey: ChainKeys.STELLAR_MAINNET,
|
|
1847
|
+
hubAsset: "0xa10be5f5c2dea7d272555dc73ea2a7317c3c5b63",
|
|
1848
|
+
vault: SodaTokens.sodaBNB.address
|
|
1669
1849
|
}
|
|
1670
1850
|
};
|
|
1671
1851
|
var suiSupportedTokens = {
|
|
@@ -1990,7 +2170,17 @@ var ethereumSupportedTokens = {
|
|
|
1990
2170
|
address: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
|
|
1991
2171
|
chainKey: ChainKeys.ETHEREUM_MAINNET,
|
|
1992
2172
|
hubAsset: "0x4ccbe4c2cf2aeed19314790622efd71dc0b67acb",
|
|
1993
|
-
vault: SodaTokens.
|
|
2173
|
+
vault: SodaTokens.sodaWBTC.address
|
|
2174
|
+
},
|
|
2175
|
+
WBTC_LEGACY: {
|
|
2176
|
+
symbol: "WBTC.legacy",
|
|
2177
|
+
name: "Wrapped Bitcoin (Legacy)",
|
|
2178
|
+
decimals: 8,
|
|
2179
|
+
address: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
|
|
2180
|
+
chainKey: ChainKeys.ETHEREUM_MAINNET,
|
|
2181
|
+
hubAsset: "0x4ccbe4c2cf2aeed19314790622efd71dc0b67acb",
|
|
2182
|
+
vault: SodaTokens.sodaBTC.address,
|
|
2183
|
+
access: "withdrawOnly"
|
|
1994
2184
|
},
|
|
1995
2185
|
sUSDat: {
|
|
1996
2186
|
symbol: "sUSDat",
|
|
@@ -2175,6 +2365,44 @@ var kaiaSupportedTokens = {
|
|
|
2175
2365
|
vault: SodaTokens.sodaSODA.address
|
|
2176
2366
|
}
|
|
2177
2367
|
};
|
|
2368
|
+
var hederaSupportedTokens = {
|
|
2369
|
+
HBAR: {
|
|
2370
|
+
symbol: "HBAR",
|
|
2371
|
+
name: "HBAR",
|
|
2372
|
+
decimals: 8,
|
|
2373
|
+
address: "0x0000000000000000000000000000000000000000",
|
|
2374
|
+
chainKey: ChainKeys.HEDERA_MAINNET,
|
|
2375
|
+
hubAsset: "0x5c18c543b6B6EA97dE739F48C49CfC291B3AD465",
|
|
2376
|
+
vault: SodaTokens.sodaHBAR.address
|
|
2377
|
+
},
|
|
2378
|
+
bnUSD: {
|
|
2379
|
+
symbol: "bnUSD",
|
|
2380
|
+
name: "bnUSD",
|
|
2381
|
+
decimals: 8,
|
|
2382
|
+
address: "0x0000000000000000000000000000000000a0286a",
|
|
2383
|
+
chainKey: ChainKeys.HEDERA_MAINNET,
|
|
2384
|
+
hubAsset: "0x44be1984cd279334a630469fa357305c7dba2837",
|
|
2385
|
+
vault: SodaTokens.bnUSD.address
|
|
2386
|
+
},
|
|
2387
|
+
SODA: {
|
|
2388
|
+
symbol: "SODA",
|
|
2389
|
+
name: "SODAX",
|
|
2390
|
+
decimals: 8,
|
|
2391
|
+
address: "0x0000000000000000000000000000000000a02869",
|
|
2392
|
+
chainKey: ChainKeys.HEDERA_MAINNET,
|
|
2393
|
+
hubAsset: "0x1217721376839dbffe78093ddd5d8e50d0239b3f",
|
|
2394
|
+
vault: SodaTokens.sodaSODA.address
|
|
2395
|
+
},
|
|
2396
|
+
USDC: {
|
|
2397
|
+
symbol: "USDC",
|
|
2398
|
+
name: "USD Coin",
|
|
2399
|
+
decimals: 6,
|
|
2400
|
+
address: "0x000000000000000000000000000000000006f89a",
|
|
2401
|
+
chainKey: ChainKeys.HEDERA_MAINNET,
|
|
2402
|
+
hubAsset: "0xafafae0c1476424c4b81f09095bd7dcb858047c8",
|
|
2403
|
+
vault: SodaTokens.sodaUSDC.address
|
|
2404
|
+
}
|
|
2405
|
+
};
|
|
2178
2406
|
var stacksSupportedTokens = {
|
|
2179
2407
|
STX: {
|
|
2180
2408
|
symbol: "STX",
|
|
@@ -2244,9 +2472,12 @@ var RelayChainIdMap = {
|
|
|
2244
2472
|
[ChainKeys.BITCOIN_MAINNET]: 627463n,
|
|
2245
2473
|
[ChainKeys.REDBELLY_MAINNET]: 726564n,
|
|
2246
2474
|
[ChainKeys.KAIA_MAINNET]: 27489n,
|
|
2247
|
-
[ChainKeys.STACKS_MAINNET]: 60n
|
|
2475
|
+
[ChainKeys.STACKS_MAINNET]: 60n,
|
|
2476
|
+
[ChainKeys.HEDERA_MAINNET]: 18501n
|
|
2248
2477
|
};
|
|
2249
|
-
|
|
2478
|
+
new Map(Object.entries(RelayChainIdMap).map(([chainKey, chainId]) => [chainId, chainKey]));
|
|
2479
|
+
var CHAIN_LOGO_BASE_URL = "https://raw.githubusercontent.com/icon-project/sodax-sdks/main/packages/assets/chain";
|
|
2480
|
+
var chainLogo = (key) => `${CHAIN_LOGO_BASE_URL}/${key}.png`;
|
|
2250
2481
|
var baseChainInfo = {
|
|
2251
2482
|
[ChainKeys.SONIC_MAINNET]: {
|
|
2252
2483
|
name: "Sonic",
|
|
@@ -2254,6 +2485,7 @@ var baseChainInfo = {
|
|
|
2254
2485
|
type: "EVM",
|
|
2255
2486
|
chainId: 146,
|
|
2256
2487
|
mainnet: true,
|
|
2488
|
+
logo: chainLogo(ChainKeys.SONIC_MAINNET),
|
|
2257
2489
|
explorer: {
|
|
2258
2490
|
baseUrl: "https://sonicscan.org/",
|
|
2259
2491
|
txUrl: "https://sonicscan.org/tx/",
|
|
@@ -2267,6 +2499,7 @@ var baseChainInfo = {
|
|
|
2267
2499
|
type: "SOLANA",
|
|
2268
2500
|
chainId: "solana",
|
|
2269
2501
|
mainnet: true,
|
|
2502
|
+
logo: chainLogo(ChainKeys.SOLANA_MAINNET),
|
|
2270
2503
|
explorer: {
|
|
2271
2504
|
baseUrl: "https://solscan.io/",
|
|
2272
2505
|
txUrl: "https://solscan.io/tx/",
|
|
@@ -2280,6 +2513,7 @@ var baseChainInfo = {
|
|
|
2280
2513
|
type: "EVM",
|
|
2281
2514
|
chainId: 43114,
|
|
2282
2515
|
mainnet: true,
|
|
2516
|
+
logo: chainLogo(ChainKeys.AVALANCHE_MAINNET),
|
|
2283
2517
|
explorer: {
|
|
2284
2518
|
baseUrl: "https://snowtrace.io/",
|
|
2285
2519
|
txUrl: "https://snowtrace.io/tx/",
|
|
@@ -2293,6 +2527,7 @@ var baseChainInfo = {
|
|
|
2293
2527
|
type: "EVM",
|
|
2294
2528
|
chainId: 42161,
|
|
2295
2529
|
mainnet: true,
|
|
2530
|
+
logo: chainLogo(ChainKeys.ARBITRUM_MAINNET),
|
|
2296
2531
|
explorer: {
|
|
2297
2532
|
baseUrl: "https://arbiscan.io/",
|
|
2298
2533
|
txUrl: "https://arbiscan.io/tx/",
|
|
@@ -2306,6 +2541,7 @@ var baseChainInfo = {
|
|
|
2306
2541
|
type: "EVM",
|
|
2307
2542
|
chainId: 8453,
|
|
2308
2543
|
mainnet: true,
|
|
2544
|
+
logo: chainLogo(ChainKeys.BASE_MAINNET),
|
|
2309
2545
|
explorer: {
|
|
2310
2546
|
baseUrl: "https://basescan.org/",
|
|
2311
2547
|
txUrl: "https://basescan.org/tx/",
|
|
@@ -2319,6 +2555,7 @@ var baseChainInfo = {
|
|
|
2319
2555
|
type: "EVM",
|
|
2320
2556
|
chainId: 10,
|
|
2321
2557
|
mainnet: true,
|
|
2558
|
+
logo: chainLogo(ChainKeys.OPTIMISM_MAINNET),
|
|
2322
2559
|
explorer: {
|
|
2323
2560
|
baseUrl: "https://optimistic.etherscan.io/",
|
|
2324
2561
|
txUrl: "https://optimistic.etherscan.io/tx/",
|
|
@@ -2332,6 +2569,7 @@ var baseChainInfo = {
|
|
|
2332
2569
|
type: "EVM",
|
|
2333
2570
|
chainId: 56,
|
|
2334
2571
|
mainnet: true,
|
|
2572
|
+
logo: chainLogo(ChainKeys.BSC_MAINNET),
|
|
2335
2573
|
explorer: {
|
|
2336
2574
|
baseUrl: "https://bscscan.com/",
|
|
2337
2575
|
txUrl: "https://bscscan.com/tx/",
|
|
@@ -2345,6 +2583,7 @@ var baseChainInfo = {
|
|
|
2345
2583
|
type: "EVM",
|
|
2346
2584
|
chainId: 137,
|
|
2347
2585
|
mainnet: true,
|
|
2586
|
+
logo: chainLogo(ChainKeys.POLYGON_MAINNET),
|
|
2348
2587
|
explorer: {
|
|
2349
2588
|
baseUrl: "https://polygonscan.com/",
|
|
2350
2589
|
txUrl: "https://polygonscan.com/tx/",
|
|
@@ -2358,6 +2597,7 @@ var baseChainInfo = {
|
|
|
2358
2597
|
type: "EVM",
|
|
2359
2598
|
chainId: 999,
|
|
2360
2599
|
mainnet: true,
|
|
2600
|
+
logo: chainLogo(ChainKeys.HYPEREVM_MAINNET),
|
|
2361
2601
|
explorer: {
|
|
2362
2602
|
baseUrl: "https://hyperevmscan.io/",
|
|
2363
2603
|
txUrl: "https://hyperevmscan.io/tx/",
|
|
@@ -2371,6 +2611,7 @@ var baseChainInfo = {
|
|
|
2371
2611
|
type: "EVM",
|
|
2372
2612
|
chainId: 1890,
|
|
2373
2613
|
mainnet: true,
|
|
2614
|
+
logo: chainLogo(ChainKeys.LIGHTLINK_MAINNET),
|
|
2374
2615
|
explorer: {
|
|
2375
2616
|
baseUrl: "https://phoenix.lightlink.io/",
|
|
2376
2617
|
txUrl: "https://phoenix.lightlink.io/tx/",
|
|
@@ -2384,6 +2625,7 @@ var baseChainInfo = {
|
|
|
2384
2625
|
type: "INJECTIVE",
|
|
2385
2626
|
chainId: "injective-1",
|
|
2386
2627
|
mainnet: true,
|
|
2628
|
+
logo: chainLogo(ChainKeys.INJECTIVE_MAINNET),
|
|
2387
2629
|
explorer: {
|
|
2388
2630
|
baseUrl: "https://www.mintscan.io/injective/",
|
|
2389
2631
|
txUrl: "https://www.mintscan.io/injective/tx/",
|
|
@@ -2397,6 +2639,7 @@ var baseChainInfo = {
|
|
|
2397
2639
|
type: "STELLAR",
|
|
2398
2640
|
chainId: "stellar",
|
|
2399
2641
|
mainnet: true,
|
|
2642
|
+
logo: chainLogo(ChainKeys.STELLAR_MAINNET),
|
|
2400
2643
|
explorer: {
|
|
2401
2644
|
baseUrl: "https://stellar.expert/explorer/public/",
|
|
2402
2645
|
txUrl: "https://stellar.expert/explorer/public/tx/",
|
|
@@ -2410,6 +2653,7 @@ var baseChainInfo = {
|
|
|
2410
2653
|
type: "SUI",
|
|
2411
2654
|
chainId: "sui",
|
|
2412
2655
|
mainnet: true,
|
|
2656
|
+
logo: chainLogo(ChainKeys.SUI_MAINNET),
|
|
2413
2657
|
explorer: {
|
|
2414
2658
|
baseUrl: "https://suivision.xyz/",
|
|
2415
2659
|
txUrl: "https://suivision.xyz/txblock/",
|
|
@@ -2423,6 +2667,7 @@ var baseChainInfo = {
|
|
|
2423
2667
|
type: "ICON",
|
|
2424
2668
|
chainId: "0x1.icon",
|
|
2425
2669
|
mainnet: true,
|
|
2670
|
+
logo: chainLogo(ChainKeys.ICON_MAINNET),
|
|
2426
2671
|
explorer: {
|
|
2427
2672
|
baseUrl: "https://tracker.icon.community/",
|
|
2428
2673
|
txUrl: "https://tracker.icon.community/transaction/",
|
|
@@ -2436,6 +2681,7 @@ var baseChainInfo = {
|
|
|
2436
2681
|
type: "NEAR",
|
|
2437
2682
|
chainId: "near",
|
|
2438
2683
|
mainnet: true,
|
|
2684
|
+
logo: chainLogo(ChainKeys.NEAR_MAINNET),
|
|
2439
2685
|
explorer: {
|
|
2440
2686
|
baseUrl: "https://nearblocks.io/",
|
|
2441
2687
|
txUrl: "https://nearblocks.io/txns/",
|
|
@@ -2449,6 +2695,7 @@ var baseChainInfo = {
|
|
|
2449
2695
|
type: "EVM",
|
|
2450
2696
|
chainId: 1,
|
|
2451
2697
|
mainnet: true,
|
|
2698
|
+
logo: chainLogo(ChainKeys.ETHEREUM_MAINNET),
|
|
2452
2699
|
explorer: {
|
|
2453
2700
|
baseUrl: "https://etherscan.io/",
|
|
2454
2701
|
txUrl: "https://etherscan.io/tx/",
|
|
@@ -2462,6 +2709,7 @@ var baseChainInfo = {
|
|
|
2462
2709
|
type: "BITCOIN",
|
|
2463
2710
|
chainId: "bitcoin",
|
|
2464
2711
|
mainnet: true,
|
|
2712
|
+
logo: chainLogo(ChainKeys.BITCOIN_MAINNET),
|
|
2465
2713
|
explorer: {
|
|
2466
2714
|
baseUrl: "https://mempool.space/",
|
|
2467
2715
|
txUrl: "https://mempool.space/tx/",
|
|
@@ -2475,6 +2723,7 @@ var baseChainInfo = {
|
|
|
2475
2723
|
type: "EVM",
|
|
2476
2724
|
chainId: 151,
|
|
2477
2725
|
mainnet: true,
|
|
2726
|
+
logo: chainLogo(ChainKeys.REDBELLY_MAINNET),
|
|
2478
2727
|
explorer: {
|
|
2479
2728
|
baseUrl: "https://redbelly.routescan.io/",
|
|
2480
2729
|
txUrl: "https://redbelly.routescan.io/tx/",
|
|
@@ -2488,6 +2737,7 @@ var baseChainInfo = {
|
|
|
2488
2737
|
type: "EVM",
|
|
2489
2738
|
chainId: 8217,
|
|
2490
2739
|
mainnet: true,
|
|
2740
|
+
logo: chainLogo(ChainKeys.KAIA_MAINNET),
|
|
2491
2741
|
explorer: {
|
|
2492
2742
|
baseUrl: "https://klaytnfinder.io/",
|
|
2493
2743
|
txUrl: "https://klaytnfinder.io/tx/",
|
|
@@ -2501,12 +2751,27 @@ var baseChainInfo = {
|
|
|
2501
2751
|
type: "STACKS",
|
|
2502
2752
|
chainId: "stacks",
|
|
2503
2753
|
mainnet: true,
|
|
2754
|
+
logo: chainLogo(ChainKeys.STACKS_MAINNET),
|
|
2504
2755
|
explorer: {
|
|
2505
2756
|
baseUrl: "https://explorer.hiro.so/",
|
|
2506
2757
|
txUrl: "https://explorer.hiro.so/txid/",
|
|
2507
2758
|
addressUrl: "https://explorer.hiro.so/address/",
|
|
2508
2759
|
contractUrl: "https://explorer.hiro.so/txid/"
|
|
2509
2760
|
}
|
|
2761
|
+
},
|
|
2762
|
+
[ChainKeys.HEDERA_MAINNET]: {
|
|
2763
|
+
name: "Hedera",
|
|
2764
|
+
key: ChainKeys.HEDERA_MAINNET,
|
|
2765
|
+
type: "EVM",
|
|
2766
|
+
chainId: 295,
|
|
2767
|
+
mainnet: true,
|
|
2768
|
+
logo: chainLogo(ChainKeys.HEDERA_MAINNET),
|
|
2769
|
+
explorer: {
|
|
2770
|
+
baseUrl: "https://hashscan.io/mainnet/",
|
|
2771
|
+
txUrl: "https://hashscan.io/mainnet/transaction/",
|
|
2772
|
+
addressUrl: "https://hashscan.io/mainnet/account/",
|
|
2773
|
+
contractUrl: "https://hashscan.io/mainnet/contract/"
|
|
2774
|
+
}
|
|
2510
2775
|
}
|
|
2511
2776
|
};
|
|
2512
2777
|
var filterChainKeysByType = (type) => CHAIN_KEYS.filter((key) => baseChainInfo[key].type === type);
|
|
@@ -2737,9 +3002,9 @@ var spokeChainConfig = {
|
|
|
2737
3002
|
supportedTokens: bitcoinSupportedTokens,
|
|
2738
3003
|
radfi: {
|
|
2739
3004
|
walletMode: "TRADING",
|
|
2740
|
-
apiUrl: "https://api.
|
|
3005
|
+
apiUrl: "https://api.bound.exchange/api",
|
|
2741
3006
|
apiKey: "",
|
|
2742
|
-
umsUrl: "https://ums.
|
|
3007
|
+
umsUrl: "https://api.ums.bound.exchange/api",
|
|
2743
3008
|
accessToken: "",
|
|
2744
3009
|
refreshToken: ""
|
|
2745
3010
|
},
|
|
@@ -2772,6 +3037,21 @@ var spokeChainConfig = {
|
|
|
2772
3037
|
assetCode: "SODA",
|
|
2773
3038
|
contractId: "CAH5LKJC2ZB4RVUVEVL2QWJWNJLHQE2UF767ILLQ5EQ4O3OURR2XIUGM",
|
|
2774
3039
|
assetIssuer: "GDYUTHY75A7WUZJQDPOP66FB32BOYGZRXHWTWO4Q6LQTANT5X3V5HNFA"
|
|
3040
|
+
},
|
|
3041
|
+
{
|
|
3042
|
+
assetCode: "sodaETH",
|
|
3043
|
+
contractId: "CDK5EWVTZLGSLI6D5OSES7XUKWZUKBXDRNOWUVDNPP5RJRP5EYWCW7SL",
|
|
3044
|
+
assetIssuer: "GDYUTHY75A7WUZJQDPOP66FB32BOYGZRXHWTWO4Q6LQTANT5X3V5HNFA"
|
|
3045
|
+
},
|
|
3046
|
+
{
|
|
3047
|
+
assetCode: "sodaBTC",
|
|
3048
|
+
contractId: "CD6XWBW74YVFDQQYUM2GALCULMA5MAWGP6NTCWF3ZYXP4Z7MEVY4JKBX",
|
|
3049
|
+
assetIssuer: "GDYUTHY75A7WUZJQDPOP66FB32BOYGZRXHWTWO4Q6LQTANT5X3V5HNFA"
|
|
3050
|
+
},
|
|
3051
|
+
{
|
|
3052
|
+
assetCode: "sodaBNB",
|
|
3053
|
+
contractId: "CCXTXZAFLVNTMORVWYB6BGL7YEW3U3ONDAL2FGBRGDUQH7AGANVQPRS6",
|
|
3054
|
+
assetIssuer: "GDYUTHY75A7WUZJQDPOP66FB32BOYGZRXHWTWO4Q6LQTANT5X3V5HNFA"
|
|
2775
3055
|
}
|
|
2776
3056
|
],
|
|
2777
3057
|
supportedTokens: stellarSupportedTokens,
|
|
@@ -2887,6 +3167,21 @@ var spokeChainConfig = {
|
|
|
2887
3167
|
pollingIntervalMs: 1e4,
|
|
2888
3168
|
maxTimeoutMs: 12e4
|
|
2889
3169
|
}
|
|
3170
|
+
},
|
|
3171
|
+
[ChainKeys.HEDERA_MAINNET]: {
|
|
3172
|
+
chain: baseChainInfo[ChainKeys.HEDERA_MAINNET],
|
|
3173
|
+
rpcUrl: "https://mainnet.hashio.io/api",
|
|
3174
|
+
addresses: {
|
|
3175
|
+
assetManager: "0x0df73542cC68bDC01b361d231c60F726B0e0bC05",
|
|
3176
|
+
connection: "0x4555aC13D7338D9E671584C1D118c06B2a3C88eD"
|
|
3177
|
+
},
|
|
3178
|
+
nativeToken: "0x0000000000000000000000000000000000000000",
|
|
3179
|
+
bnUSD: "0x0000000000000000000000000000000000a0286a",
|
|
3180
|
+
supportedTokens: hederaSupportedTokens,
|
|
3181
|
+
pollingConfig: {
|
|
3182
|
+
pollingIntervalMs: 2e3,
|
|
3183
|
+
maxTimeoutMs: 6e4
|
|
3184
|
+
}
|
|
2890
3185
|
}
|
|
2891
3186
|
};
|
|
2892
3187
|
CHAIN_KEYS.filter((chainId) => chainId !== ChainKeys.ICON_MAINNET);
|
|
@@ -2918,10 +3213,57 @@ var hubConfig = {
|
|
|
2918
3213
|
spokeChainConfig[ChainKeys.SONIC_MAINNET].supportedTokens.USDT,
|
|
2919
3214
|
spokeChainConfig[ChainKeys.SONIC_MAINNET].supportedTokens.wS,
|
|
2920
3215
|
spokeChainConfig[ChainKeys.SONIC_MAINNET].supportedTokens.SODA,
|
|
2921
|
-
|
|
2922
|
-
...Object.values(SodaTokens)
|
|
3216
|
+
// sodaUSDS is staging-only — see stagingSwapSupportedTokens
|
|
3217
|
+
...Object.values(SodaTokens).filter((t) => t !== SodaTokens.sodaUSDS),
|
|
3218
|
+
...Object.values(LsodaTokens)
|
|
2923
3219
|
]});
|
|
2924
3220
|
|
|
3221
|
+
// ../types/dist/leverageYield/leverageYield.js
|
|
3222
|
+
[
|
|
3223
|
+
{
|
|
3224
|
+
name: LsodaTokens.lsodaWEETH.symbol,
|
|
3225
|
+
vault: LsodaTokens.lsodaWEETH.vault,
|
|
3226
|
+
asset: SodaTokens.sodaWEETH.address,
|
|
3227
|
+
// sodaWEETH on Sonic
|
|
3228
|
+
borrowToken: SodaTokens.sodaETH.address,
|
|
3229
|
+
// sodaETH on Sonic
|
|
3230
|
+
lsdSource: {
|
|
3231
|
+
// DefiLlama pool for EtherFi's weETH on Ethereum (project: 'ether.fi-stake').
|
|
3232
|
+
poolId: "46bd2bdf-6d92-4066-b482-e885ee172264",
|
|
3233
|
+
fallbackAprPct: 3,
|
|
3234
|
+
label: "EtherFi (weETH)"
|
|
3235
|
+
}
|
|
3236
|
+
},
|
|
3237
|
+
{
|
|
3238
|
+
name: LsodaTokens.lsodaWSTETH.symbol,
|
|
3239
|
+
vault: LsodaTokens.lsodaWSTETH.vault,
|
|
3240
|
+
asset: SodaTokens.sodaWSTETH.address,
|
|
3241
|
+
// sodaWSTETH on Sonic
|
|
3242
|
+
borrowToken: SodaTokens.sodaETH.address,
|
|
3243
|
+
// sodaETH on Sonic
|
|
3244
|
+
lsdSource: {
|
|
3245
|
+
// DefiLlama pool for Lido's stETH on Ethereum (wstETH inherits this rate via redeem).
|
|
3246
|
+
poolId: "747c1d2a-c668-4682-b9f9-296708a3dd90",
|
|
3247
|
+
fallbackAprPct: 2.4,
|
|
3248
|
+
label: "Lido (stETH)"
|
|
3249
|
+
}
|
|
3250
|
+
},
|
|
3251
|
+
{
|
|
3252
|
+
name: LsodaTokens.lsodaJITOSOL.symbol,
|
|
3253
|
+
vault: LsodaTokens.lsodaJITOSOL.vault,
|
|
3254
|
+
asset: SodaTokens.sodaJITOSOL.address,
|
|
3255
|
+
// sodaJITOSOL on Sonic
|
|
3256
|
+
borrowToken: SodaTokens.sodaSOL.address,
|
|
3257
|
+
// sodaSOL on Sonic
|
|
3258
|
+
lsdSource: {
|
|
3259
|
+
// DefiLlama pool for Jito's JitoSOL native staking on Solana (project: 'jito-liquid-staking').
|
|
3260
|
+
poolId: "0e7d0722-9054-4907-8593-567b353c0900",
|
|
3261
|
+
fallbackAprPct: 5.5,
|
|
3262
|
+
label: "Jito (JitoSOL)"
|
|
3263
|
+
}
|
|
3264
|
+
}
|
|
3265
|
+
];
|
|
3266
|
+
|
|
2925
3267
|
// ../types/dist/bitcoin/bitcoin.js
|
|
2926
3268
|
function detectBitcoinAddressType(address) {
|
|
2927
3269
|
if (address.startsWith("bc1p") || address.startsWith("tb1p"))
|
|
@@ -2977,6 +3319,8 @@ function getEvmViemChain(key) {
|
|
|
2977
3319
|
return chains.redbellyMainnet;
|
|
2978
3320
|
case ChainKeys.KAIA_MAINNET:
|
|
2979
3321
|
return chains.kaia;
|
|
3322
|
+
case ChainKeys.HEDERA_MAINNET:
|
|
3323
|
+
return chains.hedera;
|
|
2980
3324
|
default: {
|
|
2981
3325
|
const exhaustiveCheck = key;
|
|
2982
3326
|
console.log(exhaustiveCheck);
|
|
@@ -3076,8 +3420,8 @@ function isBrowserExtensionSuiWallet(wallet) {
|
|
|
3076
3420
|
return "wallet" in wallet && "account" in wallet;
|
|
3077
3421
|
}
|
|
3078
3422
|
async function toMystenTransaction(txn) {
|
|
3079
|
-
if (txn instanceof transactions
|
|
3080
|
-
return transactions
|
|
3423
|
+
if (txn instanceof transactions.Transaction) return txn;
|
|
3424
|
+
return transactions.Transaction.from(await txn.toJSON());
|
|
3081
3425
|
}
|
|
3082
3426
|
var SuiWalletProvider = class extends BaseWalletProvider {
|
|
3083
3427
|
chainType = "SUI";
|
|
@@ -3350,13 +3694,32 @@ function txResponseToExecuteResponse(txResult) {
|
|
|
3350
3694
|
transactionHash: txResult.txHash
|
|
3351
3695
|
};
|
|
3352
3696
|
}
|
|
3697
|
+
var COSMWASM_MSG_EXECUTE_CONTRACT_TYPE_URL = "/cosmwasm.wasm.v1.MsgExecuteContract";
|
|
3698
|
+
function decodeInjectiveExecuteMsgs(bodyBytes) {
|
|
3699
|
+
const { messages } = tx_js.TxBody.decode(bodyBytes);
|
|
3700
|
+
return messages.map((message) => {
|
|
3701
|
+
if (message.typeUrl !== COSMWASM_MSG_EXECUTE_CONTRACT_TYPE_URL) {
|
|
3702
|
+
throw new Error(`Injective: cannot rebuild message type ${message.typeUrl} for browser signing.`);
|
|
3703
|
+
}
|
|
3704
|
+
const { sender, contract, msg, funds } = tx_js$1.MsgExecuteContract.decode(message.value);
|
|
3705
|
+
return sdkTs.MsgExecuteContractCompat.fromJSON({
|
|
3706
|
+
contractAddress: contract,
|
|
3707
|
+
sender,
|
|
3708
|
+
msg: JSON.parse(Buffer.from(msg).toString("utf8")),
|
|
3709
|
+
funds: funds.map((coin) => ({ denom: coin.denom, amount: coin.amount }))
|
|
3710
|
+
});
|
|
3711
|
+
});
|
|
3712
|
+
}
|
|
3353
3713
|
var InjectiveWalletProvider = class extends BaseWalletProvider {
|
|
3354
3714
|
chainType = "INJECTIVE";
|
|
3355
3715
|
wallet;
|
|
3716
|
+
/** Network endpoints used to broadcast a signed `TxRaw` via {@link sendTransaction}. */
|
|
3717
|
+
endpoints;
|
|
3356
3718
|
constructor(config) {
|
|
3357
3719
|
super(config.defaults);
|
|
3358
3720
|
if (isBrowserExtensionInjectiveWalletConfig(config)) {
|
|
3359
3721
|
this.wallet = { msgBroadcaster: config.msgBroadcaster };
|
|
3722
|
+
this.endpoints = config.msgBroadcaster.endpoints;
|
|
3360
3723
|
return;
|
|
3361
3724
|
}
|
|
3362
3725
|
if (isSecretInjectiveWalletConfig(config)) {
|
|
@@ -3369,6 +3732,7 @@ var InjectiveWalletProvider = class extends BaseWalletProvider {
|
|
|
3369
3732
|
throw new Error("Invalid Secret Injective wallet config");
|
|
3370
3733
|
}
|
|
3371
3734
|
this.wallet = { msgBroadcaster: new sdkTs.MsgBroadcasterWithPk({ privateKey, network: config.network }) };
|
|
3735
|
+
this.endpoints = networks.getNetworkEndpoints(config.network);
|
|
3372
3736
|
return;
|
|
3373
3737
|
}
|
|
3374
3738
|
throw new Error("Invalid Injective wallet config");
|
|
@@ -3461,6 +3825,53 @@ var InjectiveWalletProvider = class extends BaseWalletProvider {
|
|
|
3461
3825
|
}
|
|
3462
3826
|
return txResponseToExecuteResponse(txResult);
|
|
3463
3827
|
}
|
|
3828
|
+
/**
|
|
3829
|
+
* Broadcasts an already-signed, proto-encoded Cosmos `TxRaw` via the configured gRPC endpoint.
|
|
3830
|
+
* @param signedTxRaw - The signed transaction, encoded with `TxRaw.encode(...).finish()`.
|
|
3831
|
+
* @returns The transaction hash.
|
|
3832
|
+
* @throws {Error} if the node rejects the transaction (non-zero result code).
|
|
3833
|
+
*/
|
|
3834
|
+
async sendTransaction(signedTxRaw) {
|
|
3835
|
+
const txRaw = tx_js.TxRaw.decode(signedTxRaw);
|
|
3836
|
+
const res = await new sdkTs.TxGrpcApi(this.endpoints.grpc).broadcast(txRaw);
|
|
3837
|
+
if (res.code !== 0) {
|
|
3838
|
+
throw new Error(`Injective broadcast failed (code ${res.code}): ${res.rawLog}`);
|
|
3839
|
+
}
|
|
3840
|
+
return res.txHash;
|
|
3841
|
+
}
|
|
3842
|
+
/**
|
|
3843
|
+
* Signs and broadcasts an unsigned `InjectiveRawTransaction` (e.g. from the Swaps API).
|
|
3844
|
+
*
|
|
3845
|
+
* - **PK (secret) mode**: signs the exact unsigned `SignDoc` (`bodyBytes`/`authInfoBytes`) and
|
|
3846
|
+
* broadcasts it as-is, preserving the precise fee/account the Swaps API built.
|
|
3847
|
+
* - **Browser mode (Keplr/Leap/Metamask)**: an EVM wallet can't sign a raw Cosmos `SignDoc`, so we
|
|
3848
|
+
* recover the messages from `bodyBytes` and broadcast them through the fee-delegation path (same as
|
|
3849
|
+
* {@link execute}). The broadcaster builds the wallet-appropriate sign payload (DIRECT for Cosmos
|
|
3850
|
+
* wallets, EIP-712 for Metamask). Trade-off: the broadcaster recomputes gas/fee rather than using
|
|
3851
|
+
* the exact fee in the raw tx; the on-chain effect (the execute message) is unchanged.
|
|
3852
|
+
*
|
|
3853
|
+
* @returns The transaction hash.
|
|
3854
|
+
*/
|
|
3855
|
+
async signAndSendTransaction(tx) {
|
|
3856
|
+
const { bodyBytes, authInfoBytes, chainId, accountNumber } = tx.signedDoc;
|
|
3857
|
+
const signerAddress = await this.getWalletAddress();
|
|
3858
|
+
if (tx.from !== signerAddress) {
|
|
3859
|
+
throw new Error(`Injective: cannot sign transaction for ${tx.from} with wallet ${signerAddress}.`);
|
|
3860
|
+
}
|
|
3861
|
+
if (this.wallet.msgBroadcaster instanceof sdkTs.MsgBroadcasterWithPk) {
|
|
3862
|
+
const signDoc = tx_js.SignDoc.fromPartial({ bodyBytes, authInfoBytes, chainId, accountNumber });
|
|
3863
|
+
const signBytes = tx_js.SignDoc.encode(signDoc).finish();
|
|
3864
|
+
const signature = this.wallet.msgBroadcaster.privateKey.sign(Buffer.from(signBytes));
|
|
3865
|
+
const signedTxRaw = tx_js.TxRaw.fromPartial({ bodyBytes, authInfoBytes, signatures: [signature] });
|
|
3866
|
+
return this.sendTransaction(tx_js.TxRaw.encode(signedTxRaw).finish());
|
|
3867
|
+
}
|
|
3868
|
+
const msgs = decodeInjectiveExecuteMsgs(bodyBytes);
|
|
3869
|
+
const txResult = await this.wallet.msgBroadcaster.broadcastWithFeeDelegation({
|
|
3870
|
+
msgs,
|
|
3871
|
+
injectiveAddress: signerAddress
|
|
3872
|
+
});
|
|
3873
|
+
return txResult.txHash;
|
|
3874
|
+
}
|
|
3464
3875
|
};
|
|
3465
3876
|
var DEFAULT_CONNECTION_COMMITMENT = "confirmed";
|
|
3466
3877
|
var DEFAULT_CONFIRM_COMMITMENT = "finalized";
|
|
@@ -3509,6 +3920,12 @@ var SolanaWalletProvider = class extends BaseWalletProvider {
|
|
|
3509
3920
|
const sendOptions = shallowMerge(this.defaults.sendOptions, options);
|
|
3510
3921
|
return this.connection.sendRawTransaction(rawTransaction, sendOptions);
|
|
3511
3922
|
}
|
|
3923
|
+
async signAndSendTransaction(params) {
|
|
3924
|
+
const serializedTxBytes = Buffer.from(params.data, "base64");
|
|
3925
|
+
const versionedTx = web3_js.VersionedTransaction.deserialize(serializedTxBytes);
|
|
3926
|
+
const signedTx = await this.signAndSerializeTransaction(versionedTx);
|
|
3927
|
+
return this.sendTransaction(signedTx);
|
|
3928
|
+
}
|
|
3512
3929
|
async sendTransactionWithConfirmation(rawTransaction, optionsOrCommitment) {
|
|
3513
3930
|
const isCommitmentArg = typeof optionsOrCommitment === "string";
|
|
3514
3931
|
const sendOpts = isCommitmentArg ? void 0 : optionsOrCommitment?.send;
|
|
@@ -3542,6 +3959,31 @@ var SolanaWalletProvider = class extends BaseWalletProvider {
|
|
|
3542
3959
|
const tx = await adapterWallet.signTransaction(new web3_js.VersionedTransaction(messageV0));
|
|
3543
3960
|
return tx.serialize();
|
|
3544
3961
|
}
|
|
3962
|
+
async signTransaction(transaction) {
|
|
3963
|
+
if (this.isAdapterMode) {
|
|
3964
|
+
return this.signTransactionWithAdapter(transaction);
|
|
3965
|
+
}
|
|
3966
|
+
return this.signTransactionWithKeypair(transaction);
|
|
3967
|
+
}
|
|
3968
|
+
async signAndSerializeTransaction(transaction) {
|
|
3969
|
+
const tx = await this.signTransaction(transaction);
|
|
3970
|
+
return tx.serialize();
|
|
3971
|
+
}
|
|
3972
|
+
async signTransactionWithAdapter(transaction) {
|
|
3973
|
+
const adapterWallet = this.wallet;
|
|
3974
|
+
if (!adapterWallet.signTransaction) {
|
|
3975
|
+
throw new Error("Wallet signTransaction is not initialized");
|
|
3976
|
+
}
|
|
3977
|
+
return adapterWallet.signTransaction(transaction);
|
|
3978
|
+
}
|
|
3979
|
+
async signTransactionWithKeypair(transaction) {
|
|
3980
|
+
if (this.isAdapterMode) {
|
|
3981
|
+
throw new Error("Cannot sign transaction with keypair in adapter mode");
|
|
3982
|
+
}
|
|
3983
|
+
const keypairWallet = this.wallet;
|
|
3984
|
+
transaction.sign([keypairWallet]);
|
|
3985
|
+
return transaction;
|
|
3986
|
+
}
|
|
3545
3987
|
async buildV0TxnWithKeypair(rawInstructions) {
|
|
3546
3988
|
const keypairWallet = this.wallet;
|
|
3547
3989
|
const instructions = this.buildTransactionInstruction(rawInstructions);
|
|
@@ -3593,6 +4035,10 @@ var STELLAR_HORIZON_URLS = {
|
|
|
3593
4035
|
TESTNET: "https://horizon-testnet.stellar.org",
|
|
3594
4036
|
PUBLIC: "https://horizon.stellar.org"
|
|
3595
4037
|
};
|
|
4038
|
+
var STELLAR_SOROBAN_URLS = {
|
|
4039
|
+
TESTNET: "https://soroban-testnet.stellar.org",
|
|
4040
|
+
PUBLIC: "https://rpc.ankr.com/stellar_soroban"
|
|
4041
|
+
};
|
|
3596
4042
|
var STELLAR_NETWORK_PASSPHRASES = {
|
|
3597
4043
|
TESTNET: stellarSdk.Networks.TESTNET,
|
|
3598
4044
|
PUBLIC: stellarSdk.Networks.PUBLIC
|
|
@@ -3634,6 +4080,7 @@ var StellarWalletProvider = class extends BaseWalletProvider {
|
|
|
3634
4080
|
chainType = "STELLAR";
|
|
3635
4081
|
wallet;
|
|
3636
4082
|
server;
|
|
4083
|
+
sorobanServer;
|
|
3637
4084
|
networkPassphrase;
|
|
3638
4085
|
constructor(config) {
|
|
3639
4086
|
super(config.defaults);
|
|
@@ -3642,6 +4089,9 @@ var StellarWalletProvider = class extends BaseWalletProvider {
|
|
|
3642
4089
|
}
|
|
3643
4090
|
this.networkPassphrase = this.defaults.networkPassphrase ?? STELLAR_NETWORK_PASSPHRASES[config.network];
|
|
3644
4091
|
this.server = new stellarSdk.Horizon.Server(config.rpcUrl ?? STELLAR_HORIZON_URLS[config.network]);
|
|
4092
|
+
this.sorobanServer = new stellarSdk.rpc.Server(config.sorobanRpcUrl ?? STELLAR_SOROBAN_URLS[config.network], {
|
|
4093
|
+
allowHttp: true
|
|
4094
|
+
});
|
|
3645
4095
|
if (isPrivateKeyStellarWalletConfig(config)) {
|
|
3646
4096
|
if (!isValidStellarPrivateKey(config.privateKey)) {
|
|
3647
4097
|
throw new StellarWalletError("Invalid private key format", "INVALID_PRIVATE_KEY");
|
|
@@ -3692,6 +4142,38 @@ var StellarWalletProvider = class extends BaseWalletProvider {
|
|
|
3692
4142
|
);
|
|
3693
4143
|
}
|
|
3694
4144
|
}
|
|
4145
|
+
/**
|
|
4146
|
+
* Broadcasts an already-signed XDR transaction via the Soroban RPC server.
|
|
4147
|
+
* @returns The transaction hash.
|
|
4148
|
+
* @throws {StellarWalletError} with code `SEND_TX_ERROR` if submission fails or the RPC returns an error status.
|
|
4149
|
+
*/
|
|
4150
|
+
async sendTransaction(signedTx) {
|
|
4151
|
+
try {
|
|
4152
|
+
const tx = stellarSdk.TransactionBuilder.fromXDR(signedTx, this.networkPassphrase);
|
|
4153
|
+
const response = await this.sorobanServer.sendTransaction(tx);
|
|
4154
|
+
if (response.status === "ERROR") {
|
|
4155
|
+
throw new StellarWalletError(`Failed to submit transaction: ${JSON.stringify(response)}`, "SEND_TX_ERROR");
|
|
4156
|
+
}
|
|
4157
|
+
return response.hash;
|
|
4158
|
+
} catch (error) {
|
|
4159
|
+
if (error instanceof StellarWalletError) {
|
|
4160
|
+
throw error;
|
|
4161
|
+
}
|
|
4162
|
+
throw new StellarWalletError(
|
|
4163
|
+
error instanceof Error ? error.message : "Failed to send transaction",
|
|
4164
|
+
"SEND_TX_ERROR"
|
|
4165
|
+
);
|
|
4166
|
+
}
|
|
4167
|
+
}
|
|
4168
|
+
/**
|
|
4169
|
+
* Signs and broadcasts an unsigned `StellarRawTransaction` (e.g. from the Swaps API).
|
|
4170
|
+
* @returns The transaction hash.
|
|
4171
|
+
* @throws {StellarWalletError} with code `SIGN_TX_ERROR` if signing fails, or `SEND_TX_ERROR` if broadcasting fails.
|
|
4172
|
+
*/
|
|
4173
|
+
async signAndSendTransaction(params) {
|
|
4174
|
+
const signedXdr = await this.signTransaction(params.data);
|
|
4175
|
+
return this.sendTransaction(signedXdr);
|
|
4176
|
+
}
|
|
3695
4177
|
/**
|
|
3696
4178
|
* Polls the Horizon server until the transaction is confirmed or the timeout is reached.
|
|
3697
4179
|
* @throws {StellarWalletError} with code `TX_RECEIPT_TIMEOUT` if the transaction is not found within `pollTimeout` ms.
|
|
@@ -3729,10 +4211,10 @@ function isStacksPkWallet(wallet) {
|
|
|
3729
4211
|
}
|
|
3730
4212
|
function toPostConditionModeName(mode) {
|
|
3731
4213
|
if (mode === void 0) return void 0;
|
|
3732
|
-
return mode ===
|
|
4214
|
+
return mode === core.PostConditionMode.Allow ? "allow" : "deny";
|
|
3733
4215
|
}
|
|
3734
4216
|
function resolveNetwork(selector, endpoint) {
|
|
3735
|
-
const base2 =
|
|
4217
|
+
const base2 = core.networkFrom(selector ?? "mainnet");
|
|
3736
4218
|
return endpoint ? { ...base2, client: { ...base2.client, baseUrl: endpoint } } : base2;
|
|
3737
4219
|
}
|
|
3738
4220
|
var StacksWalletProvider = class extends BaseWalletProvider {
|
|
@@ -3760,8 +4242,28 @@ var StacksWalletProvider = class extends BaseWalletProvider {
|
|
|
3760
4242
|
}
|
|
3761
4243
|
return this.sendTransactionWithAdapter(finalParams, this.wallet);
|
|
3762
4244
|
}
|
|
4245
|
+
/**
|
|
4246
|
+
* Signs and broadcasts an unsigned `StacksRawTransaction` (e.g. from the Swaps API). The raw tx's
|
|
4247
|
+
* `payload` is the hex-serialized contract-call payload; this deserializes it back into the
|
|
4248
|
+
* contract-call params and routes through `sendTransaction` (which signs + broadcasts in both
|
|
4249
|
+
* private-key and browser-extension modes). Returns the transaction id.
|
|
4250
|
+
*/
|
|
4251
|
+
async signAndSendTransaction(params) {
|
|
4252
|
+
const payload = core.deserializePayload(params.payload);
|
|
4253
|
+
if (payload.payloadType !== core.PayloadType.ContractCall) {
|
|
4254
|
+
throw new Error("signAndSendTransaction: expected a contract-call payload.");
|
|
4255
|
+
}
|
|
4256
|
+
return this.sendTransaction({
|
|
4257
|
+
contractAddress: core.addressToString(payload.contractAddress),
|
|
4258
|
+
contractName: payload.contractName.content,
|
|
4259
|
+
functionName: payload.functionName.content,
|
|
4260
|
+
functionArgs: payload.functionArgs,
|
|
4261
|
+
postConditionMode: core.PostConditionMode.Allow
|
|
4262
|
+
// matches how the spoke service builds the tx
|
|
4263
|
+
});
|
|
4264
|
+
}
|
|
3763
4265
|
async sendTransactionWithPrivateKey(txParams, wallet) {
|
|
3764
|
-
const transaction = await
|
|
4266
|
+
const transaction = await core.makeContractCall({
|
|
3765
4267
|
contractAddress: txParams.contractAddress,
|
|
3766
4268
|
contractName: txParams.contractName,
|
|
3767
4269
|
functionName: txParams.functionName,
|
|
@@ -3771,7 +4273,7 @@ var StacksWalletProvider = class extends BaseWalletProvider {
|
|
|
3771
4273
|
postConditionMode: txParams.postConditionMode,
|
|
3772
4274
|
postConditions: txParams.postConditions
|
|
3773
4275
|
});
|
|
3774
|
-
const result = await
|
|
4276
|
+
const result = await core.broadcastTransaction({ network: this.network, transaction });
|
|
3775
4277
|
return result.txid;
|
|
3776
4278
|
}
|
|
3777
4279
|
async sendTransactionWithAdapter(txParams, wallet) {
|
|
@@ -3791,7 +4293,7 @@ var StacksWalletProvider = class extends BaseWalletProvider {
|
|
|
3791
4293
|
return result.txid;
|
|
3792
4294
|
}
|
|
3793
4295
|
async readContract(txParams) {
|
|
3794
|
-
return
|
|
4296
|
+
return core.fetchCallReadOnlyFunction({
|
|
3795
4297
|
contractAddress: txParams.contractAddress,
|
|
3796
4298
|
contractName: txParams.contractName,
|
|
3797
4299
|
functionName: txParams.functionName,
|
|
@@ -3802,13 +4304,13 @@ var StacksWalletProvider = class extends BaseWalletProvider {
|
|
|
3802
4304
|
}
|
|
3803
4305
|
async getWalletAddress() {
|
|
3804
4306
|
if (isStacksPkWallet(this.wallet)) {
|
|
3805
|
-
return
|
|
4307
|
+
return core.getAddressFromPrivateKey(this.wallet.privateKey, this.network);
|
|
3806
4308
|
}
|
|
3807
4309
|
return this.wallet.address;
|
|
3808
4310
|
}
|
|
3809
4311
|
async getPublicKey() {
|
|
3810
4312
|
if (isStacksPkWallet(this.wallet)) {
|
|
3811
|
-
return
|
|
4313
|
+
return core.publicKeyToHex(core.privateKeyToPublic(this.wallet.privateKey));
|
|
3812
4314
|
}
|
|
3813
4315
|
throw new Error("getPublicKey is only supported for private key wallet configuration");
|
|
3814
4316
|
}
|
|
@@ -11637,7 +12139,7 @@ Object.defineProperty(exports, "Networks", {
|
|
|
11637
12139
|
});
|
|
11638
12140
|
Object.defineProperty(exports, "PostConditionMode", {
|
|
11639
12141
|
enumerable: true,
|
|
11640
|
-
get: function () { return
|
|
12142
|
+
get: function () { return core.PostConditionMode; }
|
|
11641
12143
|
});
|
|
11642
12144
|
exports.BaseWalletProvider = BaseWalletProvider;
|
|
11643
12145
|
exports.BigNumberToBigInt = BigNumberToBigInt;
|
|
@@ -11682,5 +12184,3 @@ exports.isValidStellarPrivateKey = isValidStellarPrivateKey;
|
|
|
11682
12184
|
exports.requestAddress = requestAddress;
|
|
11683
12185
|
exports.requestJsonRpc = requestJsonRpc;
|
|
11684
12186
|
exports.requestSigning = requestSigning;
|
|
11685
|
-
//# sourceMappingURL=index.cjs.map
|
|
11686
|
-
//# sourceMappingURL=index.cjs.map
|