@subwallet/extension-base 1.3.51-0 → 1.3.53-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 (60) hide show
  1. package/cjs/constants/environment.js +3 -1
  2. package/cjs/koni/background/handlers/State.js +1 -5
  3. package/cjs/packageInfo.js +1 -1
  4. package/cjs/services/balance-service/index.js +3 -4
  5. package/cjs/services/balance-service/transfer/cardano-transfer.js +43 -11
  6. package/cjs/services/balance-service/transfer/xcm/acrossBridge/index.js +13 -92
  7. package/cjs/services/balance-service/transfer/xcm/index.js +12 -4
  8. package/cjs/services/chain-service/utils/patch.js +3 -2
  9. package/cjs/services/earning-service/handlers/native-staking/dtao.js +28 -301
  10. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +4 -4
  11. package/cjs/services/earning-service/handlers/native-staking/tao.js +174 -148
  12. package/cjs/services/earning-service/handlers/nomination-pool/index.js +11 -5
  13. package/cjs/services/earning-service/service.js +5 -2
  14. package/cjs/services/fee-service/utils/tokenPayFee.js +17 -13
  15. package/cjs/services/keyring-service/context/handlers/Json.js +28 -3
  16. package/cjs/services/price-service/coingecko.js +3 -3
  17. package/cjs/services/swap-service/handler/hydradx-handler.js +19 -13
  18. package/cjs/services/swap-service/index.js +8 -5
  19. package/cjs/services/transaction-service/utils.js +31 -22
  20. package/cjs/services/wallet-connect-service/constants.js +6 -2
  21. package/cjs/services/wallet-connect-service/index.js +62 -45
  22. package/cjs/utils/index.js +12 -0
  23. package/cjs/utils/setup-api-sdk.js +27 -0
  24. package/constants/environment.d.ts +1 -0
  25. package/constants/environment.js +1 -0
  26. package/koni/background/handlers/State.js +3 -7
  27. package/package.json +34 -29
  28. package/packageInfo.js +1 -1
  29. package/services/balance-service/index.js +3 -4
  30. package/services/balance-service/transfer/cardano-transfer.js +42 -10
  31. package/services/balance-service/transfer/xcm/acrossBridge/index.js +14 -93
  32. package/services/balance-service/transfer/xcm/index.js +12 -4
  33. package/services/chain-service/utils/patch.d.ts +1 -0
  34. package/services/chain-service/utils/patch.js +1 -1
  35. package/services/earning-service/handlers/native-staking/dtao.d.ts +4 -36
  36. package/services/earning-service/handlers/native-staking/dtao.js +24 -298
  37. package/services/earning-service/handlers/native-staking/relay-chain.d.ts +1 -2
  38. package/services/earning-service/handlers/native-staking/relay-chain.js +4 -4
  39. package/services/earning-service/handlers/native-staking/tao.d.ts +25 -5
  40. package/services/earning-service/handlers/native-staking/tao.js +169 -149
  41. package/services/earning-service/handlers/nomination-pool/index.d.ts +1 -2
  42. package/services/earning-service/handlers/nomination-pool/index.js +11 -5
  43. package/services/earning-service/service.d.ts +1 -0
  44. package/services/earning-service/service.js +4 -2
  45. package/services/fee-service/utils/tokenPayFee.js +17 -13
  46. package/services/keyring-service/context/handlers/Json.js +28 -3
  47. package/services/price-service/coingecko.js +2 -3
  48. package/services/swap-service/handler/hydradx-handler.js +19 -13
  49. package/services/swap-service/index.js +8 -5
  50. package/services/transaction-service/utils.d.ts +0 -1
  51. package/services/transaction-service/utils.js +31 -21
  52. package/services/wallet-connect-service/constants.d.ts +2 -0
  53. package/services/wallet-connect-service/constants.js +3 -1
  54. package/services/wallet-connect-service/index.js +50 -33
  55. package/types/swap/index.d.ts +1 -1
  56. package/types/yield/info/chain/info.d.ts +1 -0
  57. package/utils/index.d.ts +1 -0
  58. package/utils/index.js +2 -1
  59. package/utils/setup-api-sdk.d.ts +1 -0
  60. package/utils/setup-api-sdk.js +20 -0
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "./cjs/detectPackage.js"
18
18
  ],
19
19
  "type": "module",
20
- "version": "1.3.51-0",
20
+ "version": "1.3.53-0",
21
21
  "main": "./cjs/index.js",
22
22
  "module": "./index.js",
23
23
  "types": "./index.d.ts",
@@ -2801,6 +2801,11 @@
2801
2801
  "require": "./cjs/utils/request.js",
2802
2802
  "default": "./utils/request.js"
2803
2803
  },
2804
+ "./utils/setup-api-sdk": {
2805
+ "types": "./utils/setup-api-sdk.d.ts",
2806
+ "require": "./cjs/utils/setup-api-sdk.js",
2807
+ "default": "./utils/setup-api-sdk.js"
2808
+ },
2804
2809
  "./utils/staticData": {
2805
2810
  "types": "./utils/staticData/index.d.ts",
2806
2811
  "require": "./cjs/utils/staticData/index.js",
@@ -2833,7 +2838,7 @@
2833
2838
  "dependencies": {
2834
2839
  "@acala-network/api": "^5.0.2",
2835
2840
  "@apollo/client": "^3.7.14",
2836
- "@azns/resolver-core": "^1.4.0",
2841
+ "@azns/resolver-core": "2.1.0",
2837
2842
  "@emurgo/cardano-serialization-lib-nodejs": "^13.2.0",
2838
2843
  "@equilab/api": "~1.14.25",
2839
2844
  "@ethereumjs/common": "^4.1.0",
@@ -2846,40 +2851,40 @@
2846
2851
  "@metaverse-network-sdk/type-definitions": "^0.0.1-13",
2847
2852
  "@oak-foundation/types": "^0.0.23",
2848
2853
  "@polkadot-api/merkleize-metadata": "^1.1.0",
2849
- "@polkadot/api": "^15.7.2",
2850
- "@polkadot/api-base": "^15.7.2",
2851
- "@polkadot/api-contract": "^15.7.2",
2852
- "@polkadot/api-derive": "^15.7.2",
2853
- "@polkadot/apps-config": "^0.150.2",
2854
- "@polkadot/hw-ledger": "^13.4.3",
2855
- "@polkadot/networks": "^13.4.3",
2856
- "@polkadot/phishing": "^0.25.4",
2857
- "@polkadot/rpc-provider": "^15.7.2",
2858
- "@polkadot/types": "^15.7.2",
2859
- "@polkadot/types-augment": "^15.7.2",
2860
- "@polkadot/types-known": "^15.7.2",
2861
- "@polkadot/ui-settings": "^3.12.2",
2862
- "@polkadot/util": "^13.4.3",
2863
- "@polkadot/util-crypto": "^13.4.3",
2864
- "@polkadot/x-global": "^13.4.3",
2854
+ "@polkadot/api": "^16.4.2",
2855
+ "@polkadot/api-base": "^16.4.2",
2856
+ "@polkadot/api-contract": "^16.4.2",
2857
+ "@polkadot/api-derive": "^16.4.2",
2858
+ "@polkadot/apps-config": "^0.161.1",
2859
+ "@polkadot/hw-ledger": "^13.5.3",
2860
+ "@polkadot/networks": "^13.5.3",
2861
+ "@polkadot/phishing": "^0.25.15",
2862
+ "@polkadot/rpc-provider": "^16.4.2",
2863
+ "@polkadot/types": "^16.4.2",
2864
+ "@polkadot/types-augment": "^16.4.2",
2865
+ "@polkadot/types-known": "^16.4.2",
2866
+ "@polkadot/ui-settings": "^3.15.2",
2867
+ "@polkadot/util": "^13.5.3",
2868
+ "@polkadot/util-crypto": "^13.5.3",
2869
+ "@polkadot/x-global": "^13.5.3",
2865
2870
  "@reduxjs/toolkit": "^1.9.1",
2866
2871
  "@sora-substrate/type-definitions": "^1.17.7",
2867
2872
  "@substrate/connect": "^0.8.9",
2868
- "@subwallet/chain-list": "0.2.110",
2869
- "@subwallet/extension-base": "^1.3.51-0",
2870
- "@subwallet/extension-chains": "^1.3.51-0",
2871
- "@subwallet/extension-dapp": "^1.3.51-0",
2872
- "@subwallet/extension-inject": "^1.3.51-0",
2873
- "@subwallet/keyring": "^0.1.12",
2874
- "@subwallet/subwallet-api-sdk": "^1.3.51-0",
2875
- "@subwallet/ui-keyring": "^0.1.12",
2873
+ "@subwallet-monorepos/subwallet-services-sdk": "^0.1.8",
2874
+ "@subwallet/chain-list": "0.2.111",
2875
+ "@subwallet/extension-base": "^1.3.53-0",
2876
+ "@subwallet/extension-chains": "^1.3.53-0",
2877
+ "@subwallet/extension-dapp": "^1.3.53-0",
2878
+ "@subwallet/extension-inject": "^1.3.53-0",
2879
+ "@subwallet/keyring": "^0.1.13",
2880
+ "@subwallet/ui-keyring": "^0.1.13",
2876
2881
  "@ton/core": "^0.56.3",
2877
2882
  "@ton/crypto": "^3.2.0",
2878
2883
  "@ton/ton": "^15.0.0",
2879
2884
  "@walletconnect/keyvaluestorage": "^1.1.1",
2880
- "@walletconnect/sign-client": "^2.20.2",
2881
- "@walletconnect/types": "^2.20.2",
2882
- "@walletconnect/utils": "^2.20.2",
2885
+ "@walletconnect/sign-client": "2.21.5",
2886
+ "@walletconnect/types": "2.21.5",
2887
+ "@walletconnect/utils": "2.21.5",
2883
2888
  "avail-js-sdk": "^0.2.12",
2884
2889
  "axios": "^1.6.2",
2885
2890
  "bignumber.js": "^9.1.1",
package/packageInfo.js CHANGED
@@ -7,5 +7,5 @@ export const packageInfo = {
7
7
  name: '@subwallet/extension-base',
8
8
  path: (import.meta && import.meta.url) ? new URL(import.meta.url).pathname.substring(0, new URL(import.meta.url).pathname.lastIndexOf('/') + 1) : 'auto',
9
9
  type: 'esm',
10
- version: '1.3.51-0'
10
+ version: '1.3.53-0'
11
11
  };
@@ -12,8 +12,8 @@ import DetectAccountBalanceStore from '@subwallet/extension-base/stores/DetectAc
12
12
  import { addLazy, createPromiseHandler, isAccountAll, waitTimeout } from '@subwallet/extension-base/utils';
13
13
  import { getKeypairTypeByAddress } from '@subwallet/keyring';
14
14
  import { EthereumKeypairTypes, SubstrateKeypairTypes } from '@subwallet/keyring/types';
15
- import subwalletApiSdk from '@subwallet/subwallet-api-sdk';
16
15
  import keyring from '@subwallet/ui-keyring';
16
+ import subwalletApiSdk from '@subwallet-monorepos/subwallet-services-sdk';
17
17
  import BigN from 'bignumber.js';
18
18
  import { t } from 'i18next';
19
19
  import { BehaviorSubject } from 'rxjs';
@@ -448,12 +448,11 @@ export class BalanceService {
448
448
  const typeValid = [...EthereumKeypairTypes].includes(type);
449
449
  if (typeValid) {
450
450
  return new Promise(resolve => {
451
- var _subwalletApiSdk$bala;
452
451
  const timeOutPromise = new Promise(_resolve => {
453
452
  setTimeout(() => _resolve([]), 30000);
454
453
  });
455
- const apiPromise = ((_subwalletApiSdk$bala = subwalletApiSdk.balanceDetectionApi) === null || _subwalletApiSdk$bala === void 0 ? void 0 : _subwalletApiSdk$bala.getEvmTokenBalanceSlug(address)) || Promise.resolve([]);
456
- Promise.race([timeOutPromise, apiPromise]).then(result => resolve(result)).catch(error => {
454
+ const balanceDetectionApi = subwalletApiSdk.balanceDetectionApi || Promise.resolve([]);
455
+ Promise.race([timeOutPromise, balanceDetectionApi.getEvmTokenBalanceSlug(address)]).then(result => resolve(result)).catch(error => {
457
456
  console.error(error);
458
457
  resolve(null);
459
458
  });
@@ -4,7 +4,22 @@
4
4
  import * as csl from '@emurgo/cardano-serialization-lib-nodejs';
5
5
  import { _AssetType } from '@subwallet/chain-list/types';
6
6
  import { getAdaBelongUtxo, getCardanoTxFee, splitCardanoId } from '@subwallet/extension-base/services/balance-service/helpers/subscribe/cardano/utils';
7
- import { subwalletApiSdk } from '@subwallet/subwallet-api-sdk';
7
+ import { toUnit } from '@subwallet/extension-base/utils';
8
+ import subwalletApiSdk from '@subwallet-monorepos/subwallet-services-sdk';
9
+ var POPULAR_CARDANO_ERROR_PHRASE;
10
+ (function (POPULAR_CARDANO_ERROR_PHRASE) {
11
+ POPULAR_CARDANO_ERROR_PHRASE["NOT_MATCH_MIN_AMOUNT"] = "less than the minimum UTXO value";
12
+ POPULAR_CARDANO_ERROR_PHRASE["INSUFFICIENT_INPUT"] = "Insufficient input in transaction";
13
+ })(POPULAR_CARDANO_ERROR_PHRASE || (POPULAR_CARDANO_ERROR_PHRASE = {}));
14
+ function getFirstNumberAfterSubstring(inputStr, subStr) {
15
+ const regex = new RegExp(`(${subStr})\\D*(\\d+)`);
16
+ const match = inputStr.match(regex);
17
+ if (match) {
18
+ return parseInt(match[2], 10);
19
+ } else {
20
+ return null;
21
+ }
22
+ }
8
23
  export async function createCardanoTransaction(params) {
9
24
  var _tokenInfo$metadata;
10
25
  const {
@@ -22,15 +37,32 @@ export async function createCardanoTransaction(params) {
22
37
  if (!cardanoId) {
23
38
  throw new Error('Missing token policy id metadata');
24
39
  }
25
- const payload = await subwalletApiSdk.fetchUnsignedPayload({
26
- tokenDecimals: params.tokenInfo.decimals || 0,
27
- nativeTokenSymbol: params.nativeTokenInfo.symbol,
28
- cardanoId,
29
- from: params.from,
30
- to: params.to,
31
- value: params.value,
32
- cardanoTtlOffset: params.cardanoTtlOffset
33
- });
40
+ let payload;
41
+ try {
42
+ payload = await subwalletApiSdk.cardanoApi.fetchUnsignedPayload({
43
+ sender: from,
44
+ receiver: to,
45
+ unit: cardanoId,
46
+ quantity: value
47
+ });
48
+ } catch (error) {
49
+ const errorMessage = error.message;
50
+ const tokenDecimals = params.tokenInfo.decimals || 0; // todo: review if should use nativeTokenDecimals?
51
+ const nativeTokenSymbol = params.nativeTokenInfo.symbol;
52
+ if (errorMessage.includes(POPULAR_CARDANO_ERROR_PHRASE.NOT_MATCH_MIN_AMOUNT)) {
53
+ const minAdaRequiredRaw = getFirstNumberAfterSubstring(errorMessage, POPULAR_CARDANO_ERROR_PHRASE.NOT_MATCH_MIN_AMOUNT);
54
+ const minAdaRequired = minAdaRequiredRaw ? toUnit(minAdaRequiredRaw, tokenDecimals) : 1;
55
+ throw new Error(`Amount too low. Increase your amount above ${minAdaRequired} ${nativeTokenSymbol} and try again`);
56
+ }
57
+ if (errorMessage.includes(POPULAR_CARDANO_ERROR_PHRASE.INSUFFICIENT_INPUT)) {
58
+ throw new Error(`Insufficient ${nativeTokenSymbol} balance to perform transaction. Top up ${nativeTokenSymbol} and try again`);
59
+ }
60
+ console.error(`Transaction is not built successfully: ${errorMessage}`);
61
+ throw new Error('Unable to perform this transaction at the moment. Try again later');
62
+ }
63
+ if (!payload) {
64
+ throw new Error('Build cardano payload failed!');
65
+ }
34
66
  console.log('Build cardano payload successfully!', payload);
35
67
  validatePayload(payload, params);
36
68
  const fee = getCardanoTxFee(payload);
@@ -3,7 +3,7 @@
3
3
 
4
4
  import { COMMON_CHAIN_SLUGS } from '@subwallet/chain-list';
5
5
  import { _isAcrossBridgeXcm } from '@subwallet/extension-base/core/substrate/xcm-parser';
6
- import subwalletApiSdk from '@subwallet/subwallet-api-sdk';
6
+ import subwalletApiSdk from '@subwallet-monorepos/subwallet-services-sdk';
7
7
  // Across Bridge
8
8
  const acrossPairsMap = new Map([[COMMON_CHAIN_SLUGS.ETHEREUM, new Set(['optimism', 'base_mainnet', 'arbitrum_one'])], ['optimism', new Set([COMMON_CHAIN_SLUGS.ETHEREUM, 'base_mainnet', 'arbitrum_one'])], ['base_mainnet', new Set([COMMON_CHAIN_SLUGS.ETHEREUM, 'optimism', 'arbitrum_one'])], ['arbitrum_one', new Set([COMMON_CHAIN_SLUGS.ETHEREUM, 'optimism', 'base_mainnet'])], [COMMON_CHAIN_SLUGS.ETHEREUM_SEPOLIA, new Set(['base_sepolia', 'arbitrum_sepolia'])],
9
9
  // TESTNET START HERE
@@ -37,100 +37,21 @@ export const getAcrossQuote = async ({
37
37
  throw new Error('Sender is required');
38
38
  }
39
39
  try {
40
- var _subwalletApiSdk$xcmA;
41
- const data = await ((_subwalletApiSdk$xcmA = subwalletApiSdk.xcmApi) === null || _subwalletApiSdk$xcmA === void 0 ? void 0 : _subwalletApiSdk$xcmA.fetchXcmData(sender, originTokenInfo.slug, destinationTokenInfo.slug, recipient, sendingValue));
40
+ const data = await subwalletApiSdk.xcmApi.fetchXcmData({
41
+ address: sender,
42
+ from: originTokenInfo.slug,
43
+ to: destinationTokenInfo.slug,
44
+ recipient,
45
+ value: sendingValue
46
+ });
42
47
  if (!data) {
43
- throw new Error('Failed to fetch Across Bridge Data. Please try again later');
48
+ return Promise.reject(new Error('Failed to fetch Across Bridge Data. Please try again later'));
44
49
  }
45
50
  return data;
46
51
  } catch (error) {
47
- return Promise.reject(error);
52
+ if (error instanceof SyntaxError) {
53
+ return Promise.reject(new Error('Unable to perform this transaction at the moment. Try again later'));
54
+ }
55
+ return Promise.reject(new Error((error === null || error === void 0 ? void 0 : error.message) || 'Unable to perform this transaction at the moment. Try again later'));
48
56
  }
49
- };
50
-
51
- // export const SpokePoolMapping: Record<number, { SpokePool: { address: string; blockNumber: number } }> = {
52
- // 1: {
53
- // SpokePool: { address: '0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5', blockNumber: 17117454 }
54
- // },
55
- // 10: {
56
- // SpokePool: { address: '0x6f26Bf09B1C792e3228e5467807a900A503c0281', blockNumber: 93903076 }
57
- // },
58
- // 11155111: {
59
- // SpokePool: { address: '0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662', blockNumber: 5288470 }
60
- // },
61
- // 11155420: {
62
- // SpokePool: { address: '0x4e8E101924eDE233C13e2D8622DC8aED2872d505', blockNumber: 7762656 }
63
- // },
64
- // 1135: {
65
- // SpokePool: { address: '0x9552a0a6624A23B848060AE5901659CDDa1f83f8', blockNumber: 2602337 }
66
- // },
67
- // 130: {
68
- // SpokePool: { address: '0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64', blockNumber: 7915488 }
69
- // },
70
- // 137: {
71
- // SpokePool: { address: '0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096', blockNumber: 41908657 }
72
- // },
73
- // 168587773: {
74
- // SpokePool: { address: '0x5545092553Cf5Bf786e87a87192E902D50D8f022', blockNumber: 7634204 }
75
- // },
76
- // 1868: {
77
- // SpokePool: { address: '0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96', blockNumber: 1709997 }
78
- // },
79
- // 288: {
80
- // SpokePool: { address: '0xBbc6009fEfFc27ce705322832Cb2068F8C1e0A58', blockNumber: 619993 }
81
- // },
82
- // 324: {
83
- // SpokePool: { address: '0xE0B015E54d54fc84a6cB9B666099c46adE9335FF', blockNumber: 10352565 }
84
- // },
85
- // 34443: {
86
- // SpokePool: { address: '0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96', blockNumber: 8043187 }
87
- // },
88
- // 37111: {
89
- // SpokePool: { address: '0x6A0a7f39530923911832Dd60667CE5da5449967B', blockNumber: 156275 }
90
- // },
91
- // 41455: {
92
- // SpokePool: { address: '0x13fDac9F9b4777705db45291bbFF3c972c6d1d97', blockNumber: 4240318 }
93
- // },
94
- // 4202: {
95
- // SpokePool: { address: '0xeF684C38F94F48775959ECf2012D7E864ffb9dd4', blockNumber: 7267988 }
96
- // },
97
- // 42161: {
98
- // SpokePool: { address: '0xe35e9842fceaCA96570B734083f4a58e8F7C5f2A', blockNumber: 83868041 }
99
- // },
100
- // 421614: {
101
- // SpokePool: { address: '0x7E63A5f1a8F0B4d0934B2f2327DAED3F6bb2ee75', blockNumber: 12411026 }
102
- // },
103
- // 480: {
104
- // SpokePool: { address: '0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64', blockNumber: 4524742 }
105
- // },
106
- // 534352: {
107
- // SpokePool: { address: '0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96', blockNumber: 7489705 }
108
- // },
109
- // 57073: {
110
- // SpokePool: { address: '0xeF684C38F94F48775959ECf2012D7E864ffb9dd4', blockNumber: 1139240 }
111
- // },
112
- // 59144: {
113
- // SpokePool: { address: '0x7E63A5f1a8F0B4d0934B2f2327DAED3F6bb2ee75', blockNumber: 2721169 }
114
- // },
115
- // 690: {
116
- // SpokePool: { address: '0x13fDac9F9b4777705db45291bbFF3c972c6d1d97', blockNumber: 5512122 }
117
- // },
118
- // 7777777: {
119
- // SpokePool: { address: '0x13fDac9F9b4777705db45291bbFF3c972c6d1d97', blockNumber: 18382867 }
120
- // },
121
- // 80002: {
122
- // SpokePool: { address: '0xd08baaE74D6d2eAb1F3320B2E1a53eeb391ce8e5', blockNumber: 7529960 }
123
- // },
124
- // 81457: {
125
- // SpokePool: { address: '0x2D509190Ed0172ba588407D4c2df918F955Cc6E1', blockNumber: 5574280 }
126
- // },
127
- // 8453: {
128
- // SpokePool: { address: '0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64', blockNumber: 2164878 }
129
- // },
130
- // 84532: {
131
- // SpokePool: { address: '0x82B564983aE7274c86695917BBf8C99ECb6F0F8F', blockNumber: 6082004 }
132
- // },
133
- // 919: {
134
- // SpokePool: { address: '0xbd886FC0725Cc459b55BbFEb3E4278610331f83b', blockNumber: 13999465 }
135
- // }
136
- // };
57
+ };
@@ -12,7 +12,7 @@ import { getExtrinsicByXtokensPallet } from '@subwallet/extension-base/services/
12
12
  import { _XCM_CHAIN_GROUP } from '@subwallet/extension-base/services/chain-service/constants';
13
13
  import { _isNativeToken } from '@subwallet/extension-base/services/chain-service/utils';
14
14
  import { combineEthFee } from '@subwallet/extension-base/utils';
15
- import subwalletApiSdk from '@subwallet/subwallet-api-sdk';
15
+ import subwalletApiSdk from '@subwallet-monorepos/subwallet-services-sdk';
16
16
  import { _createPosBridgeL1toL2Extrinsic, _createPosBridgeL2toL1Extrinsic } from "./posBridge.js";
17
17
  // SnowBridge
18
18
  export const createSnowBridgeExtrinsic = async ({
@@ -175,8 +175,13 @@ export const createAcrossBridgeExtrinsic = async ({
175
175
  throw new Error('Sender is required');
176
176
  }
177
177
  try {
178
- var _subwalletApiSdk$xcmA;
179
- const data = await ((_subwalletApiSdk$xcmA = subwalletApiSdk.xcmApi) === null || _subwalletApiSdk$xcmA === void 0 ? void 0 : _subwalletApiSdk$xcmA.fetchXcmData(sender, originTokenInfo.slug, destinationTokenInfo.slug, recipient, sendingValue));
178
+ const data = await subwalletApiSdk.xcmApi.fetchXcmData({
179
+ address: sender,
180
+ from: originTokenInfo.slug,
181
+ to: destinationTokenInfo.slug,
182
+ recipient,
183
+ value: sendingValue
184
+ });
180
185
  const _feeCustom = feeCustom;
181
186
  const feeCombine = combineEthFee(feeInfo, feeOption, _feeCustom);
182
187
  if (!data) {
@@ -193,6 +198,9 @@ export const createAcrossBridgeExtrinsic = async ({
193
198
  transactionConfig.gas = gasLimit.toString();
194
199
  return transactionConfig;
195
200
  } catch (error) {
196
- return Promise.reject(error);
201
+ if (error instanceof SyntaxError) {
202
+ return Promise.reject(new Error('Unable to perform this transaction at the moment. Try again later'));
203
+ }
204
+ return Promise.reject(new Error((error === null || error === void 0 ? void 0 : error.message) || 'Unable to perform this transaction at the moment. Try again later'));
197
205
  }
198
206
  };
@@ -1,4 +1,5 @@
1
1
  import { _ChainAsset, _ChainInfo, _MultiChainAsset } from '@subwallet/chain-list/types';
2
+ export declare const ChainListVersion = "0.2.111";
2
3
  export interface PatchInfo {
3
4
  patchVersion: string;
4
5
  appliedVersion: string;
@@ -5,7 +5,7 @@ const PRODUCTION_BRANCHES = ['master', 'webapp', 'webapp-dev'];
5
5
  const branchName = process.env.BRANCH_NAME || 'subwallet-dev';
6
6
  const fetchDomain = PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'https://chain-list-assets.subwallet.app' : 'https://dev.sw-chain-list-assets.pages.dev';
7
7
  const fetchFile = PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'list.json' : 'preview.json';
8
- const ChainListVersion = '0.2.110'; // update this when build chainlist
8
+ export const ChainListVersion = '0.2.111'; // update this when build chain-list
9
9
 
10
10
  // todo: move this interface to chainlist
11
11
 
@@ -1,10 +1,7 @@
1
1
  import { _ChainInfo } from '@subwallet/chain-list/types';
2
- import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
3
- import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
4
2
  import KoniState from '@subwallet/extension-base/koni/background/handlers/State';
5
- import BaseParaStakingPoolHandler from '@subwallet/extension-base/services/earning-service/handlers/native-staking/base-para';
6
- import { BaseYieldPositionInfo, OptimalYieldPath, RequestEarningSlippage, StakeCancelWithdrawalParams, SubmitBittensorChangeValidatorStaking, SubmitJoinNativeStaking, TransactionData, UnstakingInfo, ValidatorInfo, YieldPoolInfo, YieldPoolMethodInfo, YieldPoolType, YieldPositionInfo, YieldTokenBaseInfo } from '@subwallet/extension-base/types';
7
- import BigN from 'bignumber.js';
3
+ import { BaseYieldPositionInfo, RequestEarningSlippage, YieldPoolInfo, YieldPoolType, YieldPositionInfo } from '@subwallet/extension-base/types';
4
+ import TaoNativeStakingPoolHandler, { TaoStakingStakeOption } from './tao';
8
5
  export interface SubnetData {
9
6
  netuid: number;
10
7
  name: string;
@@ -14,12 +11,6 @@ export interface SubnetData {
14
11
  taoIn: number;
15
12
  taoInEmission: number;
16
13
  }
17
- interface TaoStakingStakeOption {
18
- owner: string;
19
- amount: string;
20
- rate?: BigN;
21
- identity?: string;
22
- }
23
14
  export interface RawDelegateState {
24
15
  data: Array<{
25
16
  hotkey_name: string;
@@ -29,46 +20,23 @@ export interface RawDelegateState {
29
20
  stake: string;
30
21
  }>;
31
22
  }
32
- declare type Nominators = [Array<[number, number]>];
33
- export interface TestnetBittensorDelegateInfo {
34
- delegateSs58: string;
35
- take: number;
36
- nominators: Nominators;
37
- returnPer1000: number;
38
- }
39
23
  export interface EarningSlippageResult {
40
24
  slippage: number;
41
25
  rate: number;
42
26
  }
43
- export declare const DEFAULT_DTAO_MINBOND = "21000000";
44
- export default class SubnetTaoStakingPoolHandler extends BaseParaStakingPoolHandler {
45
- handleYieldWithdraw(address: string, unstakingInfo: UnstakingInfo): Promise<TransactionData>;
46
- handleYieldCancelUnstake(params: StakeCancelWithdrawalParams): Promise<TransactionData>;
27
+ export default class SubnetTaoStakingPoolHandler extends TaoNativeStakingPoolHandler {
47
28
  readonly type = YieldPoolType.SUBNET_STAKING;
48
29
  slug: string;
49
30
  protected name: string;
50
31
  protected shortName: string;
51
32
  subnetData: SubnetData[];
52
33
  private isInit;
53
- private bittensorCache;
54
- readonly availableMethod: YieldPoolMethodInfo;
55
34
  constructor(state: KoniState, chain: string);
56
35
  canHandleSlug(slug: string): boolean;
57
36
  getEarningSlippage(params: RequestEarningSlippage): Promise<EarningSlippageResult>;
58
- get maintainBalance(): string;
59
37
  private init;
60
38
  protected getDescription(): string;
61
39
  subscribePoolInfo(callback: (data: YieldPoolInfo) => void): Promise<VoidFunction>;
62
- parseNominatorMetadata(chainInfo: _ChainInfo, address: string, delegatorState: TaoStakingStakeOption[]): Promise<Omit<YieldPositionInfo, keyof BaseYieldPositionInfo>>;
40
+ parseNominatorMetadata(chainInfo: _ChainInfo, delegatorState: TaoStakingStakeOption[], netuid?: number): Promise<Omit<YieldPositionInfo, keyof BaseYieldPositionInfo>>;
63
41
  subscribePoolPosition(useAddresses: string[], rsCallback: (rs: YieldPositionInfo) => void): Promise<VoidFunction>;
64
- checkAccountHaveStake(useAddresses: string[]): Promise<string[]>;
65
- private getDevnetPoolTargets;
66
- private getMainnetPoolTargets;
67
- getPoolTargets(netuid: number): Promise<ValidatorInfo[]>;
68
- createJoinExtrinsic(data: SubmitJoinNativeStaking, positionInfo?: YieldPositionInfo, bondDest?: string): Promise<[TransactionData, YieldTokenBaseInfo]>;
69
- validateYieldJoin(data: SubmitJoinNativeStaking, path: OptimalYieldPath): Promise<TransactionError[]>;
70
- handleYieldUnstake(amount: string, address: string, selectedTarget?: string, netuid?: number, slippage?: number): Promise<[ExtrinsicType, TransactionData]>;
71
- validateYieldLeave(amount: string, address: string, fastLeave: boolean, selectedTarget?: string, slug?: string, poolInfo?: YieldPoolInfo): Promise<TransactionError[]>;
72
- handleChangeEarningValidator(data: SubmitBittensorChangeValidatorStaking): Promise<TransactionData>;
73
42
  }
74
- export {};