@subwallet/extension-base 1.3.61-0 → 1.3.63-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/koni/api/staking/bonding/utils.js +1 -1
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/transfer/smart-contract.js +14 -10
- package/cjs/services/balance-service/transfer/xcm/acrossBridge/index.js +0 -6
- package/cjs/services/balance-service/transfer/xcm/utils.js +2 -0
- package/cjs/services/chain-service/constants.js +16 -0
- package/cjs/services/chain-service/utils/index.js +24 -4
- package/cjs/services/chain-service/utils/patch.js +2 -2
- package/cjs/services/earning-service/constants/chains.js +8 -3
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +6 -3
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +4 -1
- package/cjs/services/earning-service/handlers/native-staking/tanssi.js +496 -0
- package/cjs/services/earning-service/service.js +4 -0
- package/cjs/services/earning-service/utils/index.js +2 -0
- package/cjs/services/fee-service/utils/tokenPayFee.js +25 -2
- package/cjs/services/migration-service/scripts/DeleteEarningData20251010.js +21 -0
- package/cjs/services/migration-service/scripts/index.js +3 -1
- package/cjs/services/swap-service/handler/base-handler.js +4 -1
- package/cjs/services/swap-service/handler/chainflip-handler.js +1 -17
- package/cjs/services/swap-service/handler/optimex-handler.js +421 -0
- package/cjs/services/swap-service/handler/simpleswap-handler.js +4 -2
- package/cjs/services/swap-service/index.js +38 -140
- package/cjs/services/swap-service/utils.js +16 -157
- package/cjs/services/transaction-service/helpers/index.js +2 -1
- package/cjs/types/service-base.js +0 -1
- package/cjs/types/swap/index.js +5 -8
- package/cjs/utils/account/common.js +1 -2
- package/cjs/utils/fee/transfer.js +9 -1
- package/koni/api/staking/bonding/utils.js +2 -2
- package/package.json +21 -6
- package/packageInfo.js +1 -1
- package/services/balance-service/transfer/smart-contract.d.ts +3 -2
- package/services/balance-service/transfer/smart-contract.js +35 -29
- package/services/balance-service/transfer/xcm/acrossBridge/index.d.ts +0 -4
- package/services/balance-service/transfer/xcm/acrossBridge/index.js +0 -4
- package/services/balance-service/transfer/xcm/utils.js +2 -0
- package/services/chain-service/constants.js +16 -0
- package/services/chain-service/utils/index.d.ts +3 -2
- package/services/chain-service/utils/index.js +20 -1
- package/services/chain-service/utils/patch.d.ts +1 -1
- package/services/chain-service/utils/patch.js +2 -2
- package/services/earning-service/constants/chains.d.ts +2 -0
- package/services/earning-service/constants/chains.js +6 -2
- package/services/earning-service/handlers/native-staking/base-para.js +6 -3
- package/services/earning-service/handlers/native-staking/relay-chain.js +4 -1
- package/services/earning-service/handlers/native-staking/tanssi.d.ts +16 -0
- package/services/earning-service/handlers/native-staking/tanssi.js +478 -0
- package/services/earning-service/service.js +4 -0
- package/services/earning-service/utils/index.js +2 -0
- package/services/fee-service/utils/tokenPayFee.js +25 -2
- package/services/migration-service/scripts/DeleteEarningData20251010.d.ts +4 -0
- package/services/migration-service/scripts/DeleteEarningData20251010.js +13 -0
- package/services/migration-service/scripts/index.js +3 -1
- package/services/swap-service/handler/base-handler.js +6 -3
- package/services/swap-service/handler/chainflip-handler.d.ts +0 -2
- package/services/swap-service/handler/chainflip-handler.js +2 -18
- package/services/swap-service/handler/optimex-handler.d.ts +43 -0
- package/services/swap-service/handler/optimex-handler.js +410 -0
- package/services/swap-service/handler/simpleswap-handler.js +5 -3
- package/services/swap-service/index.d.ts +0 -1
- package/services/swap-service/index.js +21 -123
- package/services/swap-service/utils.d.ts +6 -12
- package/services/swap-service/utils.js +8 -138
- package/services/transaction-service/helpers/index.js +2 -1
- package/types/balance/transfer.d.ts +1 -0
- package/types/service-base.d.ts +3 -4
- package/types/service-base.js +0 -2
- package/types/swap/index.d.ts +3 -1
- package/types/swap/index.js +7 -6
- package/types/yield/info/account/info.d.ts +5 -0
- package/utils/account/common.js +2 -3
- package/utils/fee/transfer.js +9 -1
- package/utils/staticData/assetHubStaking.json +6 -1
|
@@ -396,7 +396,7 @@ function getEarningStatusByNominations(bnTotalActiveStake, nominationList) {
|
|
|
396
396
|
function getValidatorLabel(chain) {
|
|
397
397
|
if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
|
|
398
398
|
return 'dApp';
|
|
399
|
-
} else if (_constants2.
|
|
399
|
+
} else if (_constants2.RELAY_HANDLER_DIRECT_STAKING_CHAINS.includes(chain) || _constants2._STAKING_CHAIN_GROUP.bittensor.includes(chain)) {
|
|
400
400
|
return 'Validator';
|
|
401
401
|
}
|
|
402
402
|
return 'Collator';
|
package/cjs/packageInfo.js
CHANGED
|
@@ -19,9 +19,10 @@ var _i18next = require("i18next");
|
|
|
19
19
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
20
20
|
// SPDX-License-Identifier: Apache-2.0
|
|
21
21
|
|
|
22
|
-
async function getEVMTransactionObject(
|
|
23
|
-
|
|
22
|
+
async function getEVMTransactionObject(props) {
|
|
23
|
+
const {
|
|
24
24
|
chain,
|
|
25
|
+
data,
|
|
25
26
|
evmApi,
|
|
26
27
|
fallbackFee,
|
|
27
28
|
feeCustom: _feeCustom,
|
|
@@ -31,18 +32,19 @@ async function getEVMTransactionObject(_ref) {
|
|
|
31
32
|
to,
|
|
32
33
|
transferAll,
|
|
33
34
|
value
|
|
34
|
-
} =
|
|
35
|
+
} = props;
|
|
35
36
|
const feeCustom = _feeCustom;
|
|
36
37
|
const feeInfo = _feeInfo;
|
|
37
38
|
const feeCombine = (0, _utils3.combineEthFee)(feeInfo, feeOption, feeCustom);
|
|
38
39
|
let errorOnEstimateFee = '';
|
|
39
40
|
const transactionObject = {
|
|
40
|
-
to
|
|
41
|
-
value
|
|
42
|
-
from
|
|
41
|
+
to,
|
|
42
|
+
value,
|
|
43
|
+
from,
|
|
44
|
+
data,
|
|
43
45
|
...feeCombine
|
|
44
46
|
};
|
|
45
|
-
const
|
|
47
|
+
const gasEstimate = await evmApi.api.eth.estimateGas(transactionObject).catch(e => {
|
|
46
48
|
console.log('Cannot estimate fee with native transfer on', chain, e);
|
|
47
49
|
if (fallbackFee) {
|
|
48
50
|
errorOnEstimateFee = e.message;
|
|
@@ -51,6 +53,8 @@ async function getEVMTransactionObject(_ref) {
|
|
|
51
53
|
throw Error('Unable to estimate fee for this transaction. Edit fee and try again.');
|
|
52
54
|
}
|
|
53
55
|
});
|
|
56
|
+
const gasLimit = Math.floor(gasEstimate * 1.1); // 10% buffer for fluctuations
|
|
57
|
+
|
|
54
58
|
transactionObject.gas = gasLimit;
|
|
55
59
|
let estimateFee;
|
|
56
60
|
if (feeCombine.maxFeePerGas) {
|
|
@@ -66,8 +70,8 @@ async function getEVMTransactionObject(_ref) {
|
|
|
66
70
|
}
|
|
67
71
|
return [transactionObject, transactionObject.value.toString(), errorOnEstimateFee];
|
|
68
72
|
}
|
|
69
|
-
async function getERC20TransactionObject(
|
|
70
|
-
|
|
73
|
+
async function getERC20TransactionObject(props) {
|
|
74
|
+
const {
|
|
71
75
|
assetAddress,
|
|
72
76
|
chain,
|
|
73
77
|
evmApi,
|
|
@@ -79,7 +83,7 @@ async function getERC20TransactionObject(_ref2) {
|
|
|
79
83
|
to,
|
|
80
84
|
transferAll,
|
|
81
85
|
value
|
|
82
|
-
} =
|
|
86
|
+
} = props;
|
|
83
87
|
const erc20Contract = (0, _web.getERC20Contract)(assetAddress, evmApi);
|
|
84
88
|
const feeCustom = _feeCustom;
|
|
85
89
|
let freeAmount = new _bignumber.default(0);
|
|
@@ -4,7 +4,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.AcrossErrorMsg = void 0;
|
|
8
7
|
exports._isAcrossChainBridge = _isAcrossChainBridge;
|
|
9
8
|
exports._isAcrossTestnetBridge = _isAcrossTestnetBridge;
|
|
10
9
|
exports.getAcrossQuote = void 0;
|
|
@@ -25,11 +24,6 @@ function _isAcrossChainBridge(srcChain, destChain) {
|
|
|
25
24
|
function _isAcrossTestnetBridge(srcChain) {
|
|
26
25
|
return srcChain === 'base_sepolia' || srcChain === 'arbitrum_sepolia' || srcChain === _chainList.COMMON_CHAIN_SLUGS.ETHEREUM_SEPOLIA;
|
|
27
26
|
}
|
|
28
|
-
const AcrossErrorMsg = {
|
|
29
|
-
AMOUNT_TOO_LOW: 'amount too low',
|
|
30
|
-
AMOUNT_TOO_HIGH: 'amount too high'
|
|
31
|
-
};
|
|
32
|
-
exports.AcrossErrorMsg = AcrossErrorMsg;
|
|
33
27
|
// Calculate fee for across bridge transfer
|
|
34
28
|
const getAcrossQuote = async _ref => {
|
|
35
29
|
let {
|
|
@@ -81,6 +81,7 @@ async function buildXcm(request) {
|
|
|
81
81
|
originChain,
|
|
82
82
|
originTokenInfo,
|
|
83
83
|
recipient,
|
|
84
|
+
sender,
|
|
84
85
|
sendingValue,
|
|
85
86
|
substrateApi
|
|
86
87
|
} = request;
|
|
@@ -93,6 +94,7 @@ async function buildXcm(request) {
|
|
|
93
94
|
}
|
|
94
95
|
const paraSpellChainMap = await (0, _paraspellChainMap.fetchParaSpellChainMap)();
|
|
95
96
|
const bodyData = {
|
|
97
|
+
senderAddress: sender,
|
|
96
98
|
address: recipient,
|
|
97
99
|
from: paraSpellChainMap[originChain.slug],
|
|
98
100
|
to: paraSpellChainMap[destinationChain.slug],
|
|
@@ -80,6 +80,8 @@ const _STAKING_ERA_LENGTH_MAP = {
|
|
|
80
80
|
aleph: 24,
|
|
81
81
|
polkadot: 24,
|
|
82
82
|
kusama: 6,
|
|
83
|
+
statemint: 24,
|
|
84
|
+
statemine: 6,
|
|
83
85
|
westend: 6,
|
|
84
86
|
hydradx: 24,
|
|
85
87
|
default: 24,
|
|
@@ -135,6 +137,8 @@ const _EXPECTED_BLOCK_TIME = {
|
|
|
135
137
|
aleph: 1,
|
|
136
138
|
polkadot: 6,
|
|
137
139
|
kusama: 6,
|
|
140
|
+
statemint: 6,
|
|
141
|
+
statemine: 6,
|
|
138
142
|
polkadex: 12,
|
|
139
143
|
ternoa: 6,
|
|
140
144
|
ternoa_alphanet: 6,
|
|
@@ -241,6 +245,13 @@ const _KNOWN_CHAIN_INFLATION_PARAMS = {
|
|
|
241
245
|
auctionMax: 60,
|
|
242
246
|
stakeTarget: 0.75
|
|
243
247
|
},
|
|
248
|
+
statemine: {
|
|
249
|
+
..._SUBSTRATE_DEFAULT_INFLATION_PARAMS,
|
|
250
|
+
auctionAdjust: 0.3 / 60,
|
|
251
|
+
auctionMax: 60,
|
|
252
|
+
stakeTarget: 0.75
|
|
253
|
+
},
|
|
254
|
+
// todo: recheck
|
|
244
255
|
neatcoin: {
|
|
245
256
|
..._SUBSTRATE_DEFAULT_INFLATION_PARAMS,
|
|
246
257
|
stakeTarget: 0.75
|
|
@@ -254,6 +265,11 @@ const _KNOWN_CHAIN_INFLATION_PARAMS = {
|
|
|
254
265
|
..._SUBSTRATE_DEFAULT_INFLATION_PARAMS,
|
|
255
266
|
stakeTarget: 0.75
|
|
256
267
|
},
|
|
268
|
+
statemint: {
|
|
269
|
+
..._SUBSTRATE_DEFAULT_INFLATION_PARAMS,
|
|
270
|
+
stakeTarget: 0.75
|
|
271
|
+
},
|
|
272
|
+
// todo: recheck
|
|
257
273
|
vara_network: {
|
|
258
274
|
..._SUBSTRATE_DEFAULT_INFLATION_PARAMS,
|
|
259
275
|
stakeTarget: 0.8
|
|
@@ -104,11 +104,12 @@ var _exportNames = {
|
|
|
104
104
|
randomizeProvider: true,
|
|
105
105
|
_isAssetCanPayTxFee: true,
|
|
106
106
|
updateLatestChainInfo: true,
|
|
107
|
+
_chainInfoToAccountChainType: true,
|
|
107
108
|
_chainInfoToChainType: true,
|
|
108
109
|
_isChainInfoCompatibleWithAccountInfo: true,
|
|
109
110
|
_getAssetNetuid: true
|
|
110
111
|
};
|
|
111
|
-
exports._chainInfoToChainType = void 0;
|
|
112
|
+
exports._chainInfoToChainType = exports._chainInfoToAccountChainType = void 0;
|
|
112
113
|
exports._checkSmartContractSupportByChain = _checkSmartContractSupportByChain;
|
|
113
114
|
exports._generateCustomProviderKey = _generateCustomProviderKey;
|
|
114
115
|
exports._getAssetDecimals = _getAssetDecimals;
|
|
@@ -207,11 +208,11 @@ exports._isXcmPathSupported = _isXcmPathSupported;
|
|
|
207
208
|
exports._parseAssetRefKey = _parseAssetRefKey;
|
|
208
209
|
exports._parseMetadataForAssetId = _parseMetadataForAssetId;
|
|
209
210
|
exports._parseMetadataForSmartContractAsset = _parseMetadataForSmartContractAsset;
|
|
210
|
-
exports.findChainInfoByChainId = void 0;
|
|
211
|
-
exports.findChainInfoByHalfGenesisHash = void 0;
|
|
211
|
+
exports.findChainInfoByHalfGenesisHash = exports.findChainInfoByChainId = void 0;
|
|
212
212
|
exports.randomizeProvider = randomizeProvider;
|
|
213
213
|
exports.updateLatestChainInfo = updateLatestChainInfo;
|
|
214
214
|
var _types = require("@subwallet/chain-list/types");
|
|
215
|
+
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
215
216
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
216
217
|
var _types2 = require("@subwallet/extension-base/services/chain-service/types");
|
|
217
218
|
var _types3 = require("@subwallet/extension-base/types");
|
|
@@ -826,7 +827,7 @@ function updateLatestChainInfo(currentDataMap, latestChainInfoList) {
|
|
|
826
827
|
needUpdateChainApiList
|
|
827
828
|
};
|
|
828
829
|
}
|
|
829
|
-
const
|
|
830
|
+
const _chainInfoToAccountChainType = chainInfo => {
|
|
830
831
|
if (_isPureSubstrateChain(chainInfo)) {
|
|
831
832
|
return _types3.AccountChainType.SUBSTRATE;
|
|
832
833
|
}
|
|
@@ -844,6 +845,25 @@ const _chainInfoToChainType = chainInfo => {
|
|
|
844
845
|
}
|
|
845
846
|
return _types3.AccountChainType.SUBSTRATE;
|
|
846
847
|
};
|
|
848
|
+
exports._chainInfoToAccountChainType = _chainInfoToAccountChainType;
|
|
849
|
+
const _chainInfoToChainType = chainInfo => {
|
|
850
|
+
if (_isChainSubstrateCompatible(chainInfo)) {
|
|
851
|
+
return _KoniTypes.ChainType.SUBSTRATE;
|
|
852
|
+
}
|
|
853
|
+
if (_isPureEvmChain(chainInfo)) {
|
|
854
|
+
return _KoniTypes.ChainType.EVM;
|
|
855
|
+
}
|
|
856
|
+
if (_isPureTonChain(chainInfo)) {
|
|
857
|
+
return _KoniTypes.ChainType.TON;
|
|
858
|
+
}
|
|
859
|
+
if (_isPureCardanoChain(chainInfo)) {
|
|
860
|
+
return _KoniTypes.ChainType.CARDANO;
|
|
861
|
+
}
|
|
862
|
+
if (_isPureBitcoinChain(chainInfo)) {
|
|
863
|
+
return _KoniTypes.ChainType.BITCOIN;
|
|
864
|
+
}
|
|
865
|
+
return undefined;
|
|
866
|
+
};
|
|
847
867
|
exports._chainInfoToChainType = _chainInfoToChainType;
|
|
848
868
|
const _isChainInfoCompatibleWithAccountInfo = (chainInfo, accountInfo) => {
|
|
849
869
|
const {
|
|
@@ -12,7 +12,7 @@ const PRODUCTION_BRANCHES = ['master', 'webapp', 'webapp-dev'];
|
|
|
12
12
|
const branchName = process.env.BRANCH_NAME || 'subwallet-dev';
|
|
13
13
|
const fetchDomain = process.env.PATCH_CHAIN_LIST_URL || (PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'https://chain-list-assets.subwallet.app' : 'https://dev.sw-chain-list-assets.pages.dev');
|
|
14
14
|
const fetchFile = PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'list.json' : 'preview.json';
|
|
15
|
-
const ChainListVersion = '0.2.
|
|
15
|
+
const ChainListVersion = '0.2.119'; // update this when build chain-list
|
|
16
16
|
|
|
17
17
|
// todo: move this interface to chainlist
|
|
18
18
|
exports.ChainListVersion = ChainListVersion;
|
|
@@ -23,7 +23,7 @@ async function fetchPatchData() {
|
|
|
23
23
|
const id = setTimeout(() => {
|
|
24
24
|
clearTimeout(id);
|
|
25
25
|
resolve(null);
|
|
26
|
-
},
|
|
26
|
+
}, 2000);
|
|
27
27
|
});
|
|
28
28
|
const rs = await Promise.race([timeout, fetchPromise]);
|
|
29
29
|
if (!rs) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports._STAKING_CHAIN_GROUP = exports.TON_CHAINS = exports.ST_LIQUID_TOKEN_ABI = exports.STAKING_IDENTITY_API_SLUG = exports.MaxEraRewardPointsEras = exports.MANTA_VALIDATOR_POINTS_PER_BLOCK = exports.MANTA_MIN_DELEGATION = exports.CHANNEL_ID = void 0;
|
|
6
|
+
exports._STAKING_CHAIN_GROUP = exports.TON_CHAINS = exports.ST_LIQUID_TOKEN_ABI = exports.STAKING_IDENTITY_API_SLUG = exports.RELAY_HANDLER_DIRECT_STAKING_CHAINS = exports.MaxEraRewardPointsEras = exports.MANTA_VALIDATOR_POINTS_PER_BLOCK = exports.MANTA_MIN_DELEGATION = exports.CHANNEL_ID = void 0;
|
|
7
7
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
8
8
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
9
|
|
|
@@ -25,9 +25,12 @@ const _STAKING_CHAIN_GROUP = {
|
|
|
25
25
|
manta: ['manta_network'],
|
|
26
26
|
bittensor: ['bittensor', 'bittensor_testnet'],
|
|
27
27
|
energy: ['energy_web_x_testnet', 'energy_web_x'],
|
|
28
|
-
mythos: ['mythos', 'muse_testnet']
|
|
28
|
+
mythos: ['mythos', 'muse_testnet'],
|
|
29
|
+
tanssi: ['tanssi', 'dancelight']
|
|
29
30
|
};
|
|
30
31
|
exports._STAKING_CHAIN_GROUP = _STAKING_CHAIN_GROUP;
|
|
32
|
+
const RELAY_HANDLER_DIRECT_STAKING_CHAINS = [..._STAKING_CHAIN_GROUP.relay, ..._STAKING_CHAIN_GROUP.assetHub];
|
|
33
|
+
exports.RELAY_HANDLER_DIRECT_STAKING_CHAINS = RELAY_HANDLER_DIRECT_STAKING_CHAINS;
|
|
31
34
|
const TON_CHAINS = ['ton', 'ton_testnet'];
|
|
32
35
|
exports.TON_CHAINS = TON_CHAINS;
|
|
33
36
|
const MaxEraRewardPointsEras = 14;
|
|
@@ -43,7 +46,9 @@ exports.MANTA_MIN_DELEGATION = MANTA_MIN_DELEGATION;
|
|
|
43
46
|
const CHANNEL_ID = 7;
|
|
44
47
|
exports.CHANNEL_ID = CHANNEL_ID;
|
|
45
48
|
const STAKING_IDENTITY_API_SLUG = {
|
|
49
|
+
// @TODO: Remove polkadot then migrate
|
|
46
50
|
polkadot: 'polkadot_people',
|
|
47
|
-
|
|
51
|
+
statemine: 'peopleKusama',
|
|
52
|
+
statemint: 'polkadot_people'
|
|
48
53
|
};
|
|
49
54
|
exports.STAKING_IDENTITY_API_SLUG = STAKING_IDENTITY_API_SLUG;
|
|
@@ -13,6 +13,7 @@ var _types = require("@subwallet/extension-base/types");
|
|
|
13
13
|
var _utils2 = require("@subwallet/extension-base/utils");
|
|
14
14
|
var _i18next = require("i18next");
|
|
15
15
|
var _util = require("@polkadot/util");
|
|
16
|
+
var _constants = require("../../constants");
|
|
16
17
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
17
18
|
// SPDX-License-Identifier: Apache-2.0
|
|
18
19
|
|
|
@@ -132,9 +133,11 @@ class BaseParaNativeStakingPoolHandler extends _base.default {
|
|
|
132
133
|
const bnChainMinStake = new _util.BN(poolInfo.statistic.earningThreshold.join || '0');
|
|
133
134
|
const bnCollatorMinStake = new _util.BN(targetNomination.validatorMinStake || '0');
|
|
134
135
|
const bnMinStake = _util.BN.max(bnCollatorMinStake, bnChainMinStake);
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
if (!_constants._STAKING_CHAIN_GROUP.tanssi.includes(this.chain)) {
|
|
137
|
+
const existUnstakeErrorMessage = (0, _utils.getExistUnstakeErrorMessage)(this.chain, _KoniTypes.StakingType.NOMINATED);
|
|
138
|
+
if (targetNomination.hasUnstaking) {
|
|
139
|
+
errors.push(new _TransactionError.TransactionError(_types.StakingTxErrorType.EXIST_UNSTAKING_REQUEST, existUnstakeErrorMessage));
|
|
140
|
+
}
|
|
138
141
|
}
|
|
139
142
|
if (!(bnRemainingStake.isZero() || bnRemainingStake.gte(bnMinStake))) {
|
|
140
143
|
errors.push(new _TransactionError.TransactionError(_types.StakingTxErrorType.INVALID_ACTIVE_STAKE));
|
|
@@ -67,7 +67,10 @@ class RelayNativeStakingPoolHandler extends _base.default {
|
|
|
67
67
|
}
|
|
68
68
|
const unlimitedNominatorRewarded = substrateApi.api.consts.staking.maxExposurePageSize !== undefined;
|
|
69
69
|
const maxNominatorRewarded = (_substrateApi$api$con = substrateApi.api.consts.staking.maxNominatorRewardedPerValidator) === null || _substrateApi$api$con === void 0 ? void 0 : _substrateApi$api$con.toString();
|
|
70
|
-
|
|
70
|
+
|
|
71
|
+
// hotfix for kusama asset hub migration
|
|
72
|
+
const kahMaxNominations = '24';
|
|
73
|
+
const maxNominations = chainInfo.slug === 'statemine' ? kahMaxNominations : await (0, _utils.getRelayMaxNominations)(substrateApi, this.chain);
|
|
71
74
|
const currentEra = _currentEra.toString();
|
|
72
75
|
const maxUnlockingChunks = substrateApi.api.consts.staking.maxUnlockingChunks.toString();
|
|
73
76
|
const unlockingEras = substrateApi.api.consts.staking.bondingDuration.toString();
|