@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.
- package/cjs/constants/environment.js +3 -1
- package/cjs/koni/background/handlers/State.js +1 -5
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/index.js +3 -4
- package/cjs/services/balance-service/transfer/cardano-transfer.js +43 -11
- package/cjs/services/balance-service/transfer/xcm/acrossBridge/index.js +13 -92
- package/cjs/services/balance-service/transfer/xcm/index.js +12 -4
- package/cjs/services/chain-service/utils/patch.js +3 -2
- package/cjs/services/earning-service/handlers/native-staking/dtao.js +28 -301
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +4 -4
- package/cjs/services/earning-service/handlers/native-staking/tao.js +174 -148
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +11 -5
- package/cjs/services/earning-service/service.js +5 -2
- package/cjs/services/fee-service/utils/tokenPayFee.js +17 -13
- package/cjs/services/keyring-service/context/handlers/Json.js +28 -3
- package/cjs/services/price-service/coingecko.js +3 -3
- package/cjs/services/swap-service/handler/hydradx-handler.js +19 -13
- package/cjs/services/swap-service/index.js +8 -5
- package/cjs/services/transaction-service/utils.js +31 -22
- package/cjs/services/wallet-connect-service/constants.js +6 -2
- package/cjs/services/wallet-connect-service/index.js +62 -45
- package/cjs/utils/index.js +12 -0
- package/cjs/utils/setup-api-sdk.js +27 -0
- package/constants/environment.d.ts +1 -0
- package/constants/environment.js +1 -0
- package/koni/background/handlers/State.js +3 -7
- package/package.json +34 -29
- package/packageInfo.js +1 -1
- package/services/balance-service/index.js +3 -4
- package/services/balance-service/transfer/cardano-transfer.js +42 -10
- package/services/balance-service/transfer/xcm/acrossBridge/index.js +14 -93
- package/services/balance-service/transfer/xcm/index.js +12 -4
- package/services/chain-service/utils/patch.d.ts +1 -0
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/handlers/native-staking/dtao.d.ts +4 -36
- package/services/earning-service/handlers/native-staking/dtao.js +24 -298
- package/services/earning-service/handlers/native-staking/relay-chain.d.ts +1 -2
- package/services/earning-service/handlers/native-staking/relay-chain.js +4 -4
- package/services/earning-service/handlers/native-staking/tao.d.ts +25 -5
- package/services/earning-service/handlers/native-staking/tao.js +169 -149
- package/services/earning-service/handlers/nomination-pool/index.d.ts +1 -2
- package/services/earning-service/handlers/nomination-pool/index.js +11 -5
- package/services/earning-service/service.d.ts +1 -0
- package/services/earning-service/service.js +4 -2
- package/services/fee-service/utils/tokenPayFee.js +17 -13
- package/services/keyring-service/context/handlers/Json.js +28 -3
- package/services/price-service/coingecko.js +2 -3
- package/services/swap-service/handler/hydradx-handler.js +19 -13
- package/services/swap-service/index.js +8 -5
- package/services/transaction-service/utils.d.ts +0 -1
- package/services/transaction-service/utils.js +31 -21
- package/services/wallet-connect-service/constants.d.ts +2 -0
- package/services/wallet-connect-service/constants.js +3 -1
- package/services/wallet-connect-service/index.js +50 -33
- package/types/swap/index.d.ts +1 -1
- package/types/yield/info/chain/info.d.ts +1 -0
- package/utils/index.d.ts +1 -0
- package/utils/index.js +2 -1
- package/utils/setup-api-sdk.d.ts +1 -0
- 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.
|
|
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": "
|
|
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": "^
|
|
2850
|
-
"@polkadot/api-base": "^
|
|
2851
|
-
"@polkadot/api-contract": "^
|
|
2852
|
-
"@polkadot/api-derive": "^
|
|
2853
|
-
"@polkadot/apps-config": "^0.
|
|
2854
|
-
"@polkadot/hw-ledger": "^13.
|
|
2855
|
-
"@polkadot/networks": "^13.
|
|
2856
|
-
"@polkadot/phishing": "^0.25.
|
|
2857
|
-
"@polkadot/rpc-provider": "^
|
|
2858
|
-
"@polkadot/types": "^
|
|
2859
|
-
"@polkadot/types-augment": "^
|
|
2860
|
-
"@polkadot/types-known": "^
|
|
2861
|
-
"@polkadot/ui-settings": "^3.
|
|
2862
|
-
"@polkadot/util": "^13.
|
|
2863
|
-
"@polkadot/util-crypto": "^13.
|
|
2864
|
-
"@polkadot/x-global": "^13.
|
|
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/
|
|
2869
|
-
"@subwallet/
|
|
2870
|
-
"@subwallet/extension-
|
|
2871
|
-
"@subwallet/extension-
|
|
2872
|
-
"@subwallet/extension-
|
|
2873
|
-
"@subwallet/
|
|
2874
|
-
"@subwallet/
|
|
2875
|
-
"@subwallet/ui-keyring": "^0.1.
|
|
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": "
|
|
2881
|
-
"@walletconnect/types": "
|
|
2882
|
-
"@walletconnect/utils": "
|
|
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.
|
|
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
|
|
456
|
-
Promise.race([timeOutPromise,
|
|
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 {
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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-
|
|
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
|
-
|
|
41
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
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
|
-
|
|
179
|
-
|
|
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
|
-
|
|
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
|
};
|
|
@@ -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.
|
|
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
|
|
6
|
-
import
|
|
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
|
|
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,
|
|
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 {};
|