@subwallet/extension-base 1.3.54-1 → 1.3.55-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/background/errors/BalanceError.js +4 -4
- package/background/errors/BitcoinProviderError.js +7 -7
- package/background/errors/EvmProviderError.js +8 -8
- package/background/errors/ProviderError.js +6 -5
- package/background/errors/SwapError.js +14 -13
- package/background/errors/TransactionError.js +22 -22
- package/background/warnings/TransactionWarning.js +2 -2
- package/cjs/background/errors/BalanceError.js +4 -4
- package/cjs/background/errors/BitcoinProviderError.js +7 -7
- package/cjs/background/errors/EvmProviderError.js +8 -8
- package/cjs/background/errors/ProviderError.js +6 -5
- package/cjs/background/errors/SwapError.js +14 -13
- package/cjs/background/errors/TransactionError.js +22 -22
- package/cjs/background/warnings/TransactionWarning.js +2 -2
- package/cjs/core/logic-validation/index.js +15 -3
- package/cjs/core/logic-validation/request.js +37 -37
- package/cjs/core/logic-validation/transfer.js +21 -17
- package/cjs/koni/api/dotsama/parseTransaction.js +1 -1
- package/cjs/koni/api/staking/bonding/relayChain.js +1 -1
- package/cjs/koni/api/staking/bonding/utils.js +16 -16
- package/cjs/koni/api/staking/paraChain.js +1 -1
- package/cjs/koni/background/handlers/Extension.js +28 -26
- package/cjs/koni/background/handlers/State.js +19 -14
- package/cjs/koni/background/handlers/Tabs.js +23 -1
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/index.js +3 -3
- package/cjs/services/balance-service/transfer/smart-contract.js +1 -1
- package/cjs/services/balance-service/transfer/xcm/index.js +7 -1
- package/cjs/services/balance-service/transfer/xcm/utils.js +24 -18
- package/cjs/services/chain-service/constants.js +2 -2
- package/cjs/services/chain-service/handler/types.js +1 -0
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/constants/chains.js +1 -2
- package/cjs/services/earning-service/handlers/base.js +2 -1
- package/cjs/services/earning-service/handlers/lending/base.js +3 -3
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +3 -3
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +1 -1
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +1 -1
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +2 -2
- package/cjs/services/earning-service/handlers/native-staking/tao.js +26 -6
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +2 -2
- package/cjs/services/earning-service/handlers/special.js +12 -9
- package/cjs/services/keyring-service/context/handlers/Derive.js +1 -1
- package/cjs/services/keyring-service/context/handlers/Json.js +11 -11
- package/cjs/services/keyring-service/context/handlers/Ledger.js +3 -3
- package/cjs/services/keyring-service/context/handlers/Mnemonic.js +10 -10
- package/cjs/services/keyring-service/context/handlers/Modify.js +3 -3
- package/cjs/services/keyring-service/context/handlers/Secret.js +7 -7
- package/cjs/services/migration-service/scripts/DeleteEarningData.js +1 -1
- package/cjs/services/migration-service/scripts/MigrateTransactionHistoryBySymbol.js +1 -6
- package/cjs/services/migration-service/scripts/databases/MigrateAssetSetting.js +1 -6
- package/cjs/services/migration-service/scripts/index.js +3 -3
- package/cjs/services/request-service/handler/BitcoinRequestHandler.js +1 -1
- package/cjs/services/request-service/handler/CardanoRequestHandler.js +2 -2
- package/cjs/services/request-service/handler/EvmRequestHandler.js +5 -5
- package/cjs/services/request-service/handler/TonRequestHandler.js +2 -2
- package/cjs/services/setting-service/i18n/extend.js +1 -1
- package/cjs/services/swap-service/handler/base-handler.js +123 -11
- package/cjs/services/swap-service/index.js +1 -1
- package/cjs/services/transaction-service/index.js +12 -12
- package/cjs/services/transaction-service/utils.js +4 -1
- package/cjs/types/account/error/common.js +5 -4
- package/cjs/types/account/error/derive.js +8 -7
- package/cjs/utils/account/derive/info/solo.js +2 -2
- package/cjs/utils/eth/parseTransaction/index.js +1 -1
- package/cjs/utils/fee/transfer.js +8 -3
- package/cjs/utils/index.js +1 -1
- package/core/logic-validation/index.js +15 -3
- package/core/logic-validation/request.js +37 -37
- package/core/logic-validation/transfer.js +21 -17
- package/koni/api/dotsama/parseTransaction.js +1 -1
- package/koni/api/staking/bonding/relayChain.js +1 -1
- package/koni/api/staking/bonding/utils.js +16 -16
- package/koni/api/staking/paraChain.js +1 -1
- package/koni/background/handlers/Extension.js +28 -26
- package/koni/background/handlers/State.d.ts +1 -0
- package/koni/background/handlers/State.js +19 -14
- package/koni/background/handlers/Tabs.js +23 -1
- package/package.json +6 -6
- package/packageInfo.js +1 -1
- package/services/balance-service/index.js +3 -3
- package/services/balance-service/transfer/smart-contract.js +1 -1
- package/services/balance-service/transfer/xcm/index.js +7 -1
- package/services/balance-service/transfer/xcm/utils.d.ts +6 -0
- package/services/balance-service/transfer/xcm/utils.js +24 -18
- package/services/chain-service/constants.js +2 -2
- package/services/chain-service/handler/types.d.ts +2 -1
- package/services/chain-service/handler/types.js +1 -0
- package/services/chain-service/utils/patch.d.ts +1 -1
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/constants/chains.d.ts +0 -1
- package/services/earning-service/constants/chains.js +1 -2
- package/services/earning-service/handlers/base.js +3 -2
- package/services/earning-service/handlers/lending/base.js +3 -3
- package/services/earning-service/handlers/liquid-staking/base.js +3 -3
- package/services/earning-service/handlers/native-staking/amplitude.js +1 -1
- package/services/earning-service/handlers/native-staking/base-para.js +1 -1
- package/services/earning-service/handlers/native-staking/relay-chain.js +2 -2
- package/services/earning-service/handlers/native-staking/tao.js +26 -6
- package/services/earning-service/handlers/nomination-pool/index.js +2 -2
- package/services/earning-service/handlers/special.js +12 -9
- package/services/keyring-service/context/handlers/Derive.js +1 -1
- package/services/keyring-service/context/handlers/Json.js +11 -11
- package/services/keyring-service/context/handlers/Ledger.js +3 -3
- package/services/keyring-service/context/handlers/Mnemonic.js +10 -10
- package/services/keyring-service/context/handlers/Modify.js +3 -3
- package/services/keyring-service/context/handlers/Secret.js +7 -7
- package/services/migration-service/scripts/DeleteEarningData.js +1 -1
- package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol.js +1 -6
- package/services/migration-service/scripts/databases/MigrateAssetSetting.js +1 -6
- package/services/migration-service/scripts/index.js +3 -3
- package/services/request-service/handler/BitcoinRequestHandler.js +1 -1
- package/services/request-service/handler/CardanoRequestHandler.js +2 -2
- package/services/request-service/handler/EvmRequestHandler.js +5 -5
- package/services/request-service/handler/TonRequestHandler.js +2 -2
- package/services/setting-service/i18n/extend.js +1 -1
- package/services/swap-service/handler/base-handler.d.ts +2 -1
- package/services/swap-service/handler/base-handler.js +124 -12
- package/services/swap-service/index.js +1 -1
- package/services/transaction-service/index.js +12 -12
- package/services/transaction-service/utils.js +4 -1
- package/types/account/error/common.js +5 -4
- package/types/account/error/derive.js +8 -7
- package/types/balance/transfer.d.ts +1 -0
- package/utils/account/derive/info/solo.js +2 -2
- package/utils/eth/parseTransaction/index.js +1 -1
- package/utils/fee/transfer.d.ts +3 -1
- package/utils/fee/transfer.js +5 -1
- package/utils/index.js +1 -1
|
@@ -151,7 +151,7 @@ class KoniExtension {
|
|
|
151
151
|
id
|
|
152
152
|
} = _ref2;
|
|
153
153
|
const queued = this.#koniState.getMetaRequest(id);
|
|
154
|
-
(0, _util.assert)(queued, (0, _i18next.t)('
|
|
154
|
+
(0, _util.assert)(queued, (0, _i18next.t)('bg.koni.handler.Extension.unableToProceed'));
|
|
155
155
|
const {
|
|
156
156
|
request,
|
|
157
157
|
resolve
|
|
@@ -171,7 +171,7 @@ class KoniExtension {
|
|
|
171
171
|
id
|
|
172
172
|
} = _ref3;
|
|
173
173
|
const queued = this.#koniState.getMetaRequest(id);
|
|
174
|
-
(0, _util.assert)(queued, (0, _i18next.t)('
|
|
174
|
+
(0, _util.assert)(queued, (0, _i18next.t)('bg.koni.handler.Extension.unableToProceed'));
|
|
175
175
|
const {
|
|
176
176
|
reject
|
|
177
177
|
} = queued;
|
|
@@ -196,7 +196,7 @@ class KoniExtension {
|
|
|
196
196
|
signedTransaction
|
|
197
197
|
} = _ref4;
|
|
198
198
|
const queued = this.#koniState.getSignRequest(id);
|
|
199
|
-
(0, _util.assert)(queued, (0, _i18next.t)('
|
|
199
|
+
(0, _util.assert)(queued, (0, _i18next.t)('bg.koni.handler.Extension.unableToProceed'));
|
|
200
200
|
const {
|
|
201
201
|
resolve
|
|
202
202
|
} = queued;
|
|
@@ -214,7 +214,7 @@ class KoniExtension {
|
|
|
214
214
|
id
|
|
215
215
|
} = _ref5;
|
|
216
216
|
const queued = this.#koniState.getSignRequest(id);
|
|
217
|
-
(0, _util.assert)(queued, (0, _i18next.t)('
|
|
217
|
+
(0, _util.assert)(queued, (0, _i18next.t)('bg.koni.handler.Extension.unableToProceed'));
|
|
218
218
|
const {
|
|
219
219
|
reject
|
|
220
220
|
} = queued;
|
|
@@ -446,7 +446,7 @@ class KoniExtension {
|
|
|
446
446
|
};
|
|
447
447
|
}
|
|
448
448
|
} else {
|
|
449
|
-
throw Error((0, _i18next.t)('
|
|
449
|
+
throw Error((0, _i18next.t)('bg.koni.handler.Extension.thisIsNotAnAddress'));
|
|
450
450
|
}
|
|
451
451
|
}
|
|
452
452
|
|
|
@@ -463,7 +463,7 @@ class KoniExtension {
|
|
|
463
463
|
_uiKeyring.keyring.saveAddress(_address, meta);
|
|
464
464
|
return true;
|
|
465
465
|
} else {
|
|
466
|
-
throw Error((0, _i18next.t)('
|
|
466
|
+
throw Error((0, _i18next.t)('bg.koni.handler.Extension.thisIsNotAnAddress'));
|
|
467
467
|
}
|
|
468
468
|
}
|
|
469
469
|
|
|
@@ -479,7 +479,7 @@ class KoniExtension {
|
|
|
479
479
|
_uiKeyring.keyring.forgetAddress(_address);
|
|
480
480
|
return true;
|
|
481
481
|
} else {
|
|
482
|
-
throw Error((0, _i18next.t)('
|
|
482
|
+
throw Error((0, _i18next.t)('bg.koni.handler.Extension.thisIsNotAnAddress'));
|
|
483
483
|
}
|
|
484
484
|
}
|
|
485
485
|
_getAuthListV2() {
|
|
@@ -528,7 +528,7 @@ class KoniExtension {
|
|
|
528
528
|
id
|
|
529
529
|
} = _ref12;
|
|
530
530
|
const queued = this.#koniState.getAuthRequestV2(id);
|
|
531
|
-
(0, _util.assert)(queued, (0, _i18next.t)('
|
|
531
|
+
(0, _util.assert)(queued, (0, _i18next.t)('bg.koni.handler.Extension.unableToProceed'));
|
|
532
532
|
const {
|
|
533
533
|
resolve
|
|
534
534
|
} = queued;
|
|
@@ -543,7 +543,7 @@ class KoniExtension {
|
|
|
543
543
|
id
|
|
544
544
|
} = _ref13;
|
|
545
545
|
const queued = this.#koniState.getAuthRequestV2(id);
|
|
546
|
-
(0, _util.assert)(queued, (0, _i18next.t)('
|
|
546
|
+
(0, _util.assert)(queued, (0, _i18next.t)('bg.koni.handler.Extension.unableToProceed'));
|
|
547
547
|
const {
|
|
548
548
|
reject
|
|
549
549
|
} = queued;
|
|
@@ -555,7 +555,7 @@ class KoniExtension {
|
|
|
555
555
|
id
|
|
556
556
|
} = _ref14;
|
|
557
557
|
const queued = this.#koniState.getAuthRequestV2(id);
|
|
558
|
-
(0, _util.assert)(queued, (0, _i18next.t)('
|
|
558
|
+
(0, _util.assert)(queued, (0, _i18next.t)('bg.koni.handler.Extension.unableToProceed'));
|
|
559
559
|
const {
|
|
560
560
|
reject
|
|
561
561
|
} = queued;
|
|
@@ -733,7 +733,7 @@ class KoniExtension {
|
|
|
733
733
|
};
|
|
734
734
|
const typeInfoKey = typeInfoMap[authSwitchNetworkType];
|
|
735
735
|
if (!typeInfoKey || !chainInfo[typeInfoKey]) {
|
|
736
|
-
throw new Error((0, _i18next.t)('
|
|
736
|
+
throw new Error((0, _i18next.t)('bg.koni.handler.Extension.networkNotAuthType', {
|
|
737
737
|
replace: {
|
|
738
738
|
networkKey,
|
|
739
739
|
authSwitchNetworkType
|
|
@@ -742,7 +742,7 @@ class KoniExtension {
|
|
|
742
742
|
}
|
|
743
743
|
const authUrl = authUrls[url];
|
|
744
744
|
if (!authUrl) {
|
|
745
|
-
throw new Error((0, _i18next.t)('
|
|
745
|
+
throw new Error((0, _i18next.t)('bg.koni.handler.Extension.urlNotFoundInAuthList', {
|
|
746
746
|
replace: {
|
|
747
747
|
url
|
|
748
748
|
}
|
|
@@ -755,7 +755,7 @@ class KoniExtension {
|
|
|
755
755
|
});
|
|
756
756
|
}
|
|
757
757
|
if (!authUrl.accountAuthTypes.includes(authSwitchNetworkType)) {
|
|
758
|
-
throw new Error((0, _i18next.t)('
|
|
758
|
+
throw new Error((0, _i18next.t)('bg.koni.handler.Extension.networkNotSupportedByAuthType', {
|
|
759
759
|
replace: {
|
|
760
760
|
networkKey,
|
|
761
761
|
authSwitchNetworkType
|
|
@@ -1450,7 +1450,7 @@ class KoniExtension {
|
|
|
1450
1450
|
} catch (e) {
|
|
1451
1451
|
const error = e;
|
|
1452
1452
|
if (error.message.includes('transfer amount exceeds balance')) {
|
|
1453
|
-
error.message = (0, _i18next.t)('
|
|
1453
|
+
error.message = (0, _i18next.t)('bg.koni.handler.Extension.insufficientBalance');
|
|
1454
1454
|
}
|
|
1455
1455
|
throw error;
|
|
1456
1456
|
}
|
|
@@ -1806,7 +1806,7 @@ class KoniExtension {
|
|
|
1806
1806
|
} catch (e) {
|
|
1807
1807
|
const error = e;
|
|
1808
1808
|
if (error.message.includes('transfer amount exceeds balance')) {
|
|
1809
|
-
error.message = (0, _i18next.t)('
|
|
1809
|
+
error.message = (0, _i18next.t)('bg.koni.handler.Extension.insufficientBalance');
|
|
1810
1810
|
}
|
|
1811
1811
|
throw error;
|
|
1812
1812
|
}
|
|
@@ -1904,7 +1904,7 @@ class KoniExtension {
|
|
|
1904
1904
|
token: tokenSlug
|
|
1905
1905
|
});
|
|
1906
1906
|
if (new _bignumber.default(freeBalance.value).lt(inputAmount)) {
|
|
1907
|
-
throw new Error((0, _i18next.t)('
|
|
1907
|
+
throw new Error((0, _i18next.t)('bg.koni.handler.Extension.insufficientBalance'));
|
|
1908
1908
|
}
|
|
1909
1909
|
const transferNativeAmount = isTransferNativeToken ? transferAmount.value : '0';
|
|
1910
1910
|
return this.#koniState.transactionService.handleTransactionAfterConfirmation({
|
|
@@ -2172,6 +2172,7 @@ class KoniExtension {
|
|
|
2172
2172
|
to,
|
|
2173
2173
|
token,
|
|
2174
2174
|
tokenPayFeeSlug,
|
|
2175
|
+
transferAll,
|
|
2175
2176
|
value
|
|
2176
2177
|
} = request;
|
|
2177
2178
|
const cb = (0, _subscriptions.createSubscription)(id, port);
|
|
@@ -2208,7 +2209,8 @@ class KoniExtension {
|
|
|
2208
2209
|
bitcoinApi: this.#koniState.chainService.getBitcoinApi(chain),
|
|
2209
2210
|
isTransferLocalTokenAndPayThatTokenAsFee,
|
|
2210
2211
|
isTransferNativeTokenAndPayLocalTokenAsFee,
|
|
2211
|
-
nativeToken
|
|
2212
|
+
nativeToken,
|
|
2213
|
+
transferAll: transferAll
|
|
2212
2214
|
};
|
|
2213
2215
|
const subscription = (0, _rxjs.combineLatest)({
|
|
2214
2216
|
freeBalance: freeBalanceSubject,
|
|
@@ -2613,7 +2615,7 @@ class KoniExtension {
|
|
|
2613
2615
|
networkKey
|
|
2614
2616
|
} = _ref47;
|
|
2615
2617
|
const pair = _uiKeyring.keyring.getPair(address);
|
|
2616
|
-
(0, _util.assert)(pair, (0, _i18next.t)('
|
|
2618
|
+
(0, _util.assert)(pair, (0, _i18next.t)('bg.koni.handler.Extension.unableToFindAccount'));
|
|
2617
2619
|
if (pair.isLocked) {
|
|
2618
2620
|
_uiKeyring.keyring.unlockPair(pair.address);
|
|
2619
2621
|
}
|
|
@@ -2638,11 +2640,11 @@ class KoniExtension {
|
|
|
2638
2640
|
let signed;
|
|
2639
2641
|
const network = this.getNetworkJsonByChainId(chainId);
|
|
2640
2642
|
if (!network) {
|
|
2641
|
-
throw new Error((0, _i18next.t)('
|
|
2643
|
+
throw new Error((0, _i18next.t)('bg.koni.handler.Extension.cannotFindNetwork'));
|
|
2642
2644
|
}
|
|
2643
2645
|
const pair = _uiKeyring.keyring.getPair(address);
|
|
2644
2646
|
if (!pair) {
|
|
2645
|
-
throw Error((0, _i18next.t)('
|
|
2647
|
+
throw Error((0, _i18next.t)('bg.koni.handler.Extension.unableToFindAccount'));
|
|
2646
2648
|
}
|
|
2647
2649
|
if (pair.isLocked) {
|
|
2648
2650
|
_uiKeyring.keyring.unlockPair(pair.address);
|
|
@@ -2659,7 +2661,7 @@ class KoniExtension {
|
|
|
2659
2661
|
var _signedTranaction$r, _signedTranaction$s, _signedTranaction$v;
|
|
2660
2662
|
const tx = (0, _utils8.createTransactionFromRLP)(message);
|
|
2661
2663
|
if (!tx) {
|
|
2662
|
-
throw new Error((0, _i18next.t)('
|
|
2664
|
+
throw new Error((0, _i18next.t)('bg.koni.handler.Extension.failedToDecodeQr'));
|
|
2663
2665
|
}
|
|
2664
2666
|
const txObject = {
|
|
2665
2667
|
gasPrice: new _bignumber.default(tx.gasPrice).toNumber(),
|
|
@@ -2749,7 +2751,7 @@ class KoniExtension {
|
|
|
2749
2751
|
const chainInfo = this.#koniState.getChainInfo(chain);
|
|
2750
2752
|
const chainStakingMetadata = await this.#koniState.getStakingMetadataByChain(chain, _KoniTypes.StakingType.NOMINATED);
|
|
2751
2753
|
if (!chainStakingMetadata) {
|
|
2752
|
-
const errMessage = (0, _i18next.t)('
|
|
2754
|
+
const errMessage = (0, _i18next.t)('bg.koni.handler.Extension.unableToFetchStakingDataReEnable', {
|
|
2753
2755
|
replace: {
|
|
2754
2756
|
chainName: chainInfo.name
|
|
2755
2757
|
}
|
|
@@ -2856,7 +2858,7 @@ class KoniExtension {
|
|
|
2856
2858
|
const chainInfo = this.#koniState.getChainInfo(chain);
|
|
2857
2859
|
const chainStakingMetadata = await this.#koniState.getStakingMetadataByChain(chain, _KoniTypes.StakingType.NOMINATED);
|
|
2858
2860
|
if (!chainStakingMetadata) {
|
|
2859
|
-
const errMessage = (0, _i18next.t)('
|
|
2861
|
+
const errMessage = (0, _i18next.t)('bg.koni.handler.Extension.unableToFetchStakingDataReEnable', {
|
|
2860
2862
|
replace: {
|
|
2861
2863
|
chainName: chainInfo.name
|
|
2862
2864
|
}
|
|
@@ -2888,7 +2890,7 @@ class KoniExtension {
|
|
|
2888
2890
|
const chainStakingMetadata = await this.#koniState.getStakingMetadataByChain(chain, _KoniTypes.StakingType.NOMINATED);
|
|
2889
2891
|
if (!chainStakingMetadata || !nominatorMetadata) {
|
|
2890
2892
|
const chainInfo = this.#koniState.getChainInfo(chain);
|
|
2891
|
-
const errMessage = (0, _i18next.t)('
|
|
2893
|
+
const errMessage = (0, _i18next.t)('bg.koni.handler.Extension.unableToFetchStakingDataReEnable', {
|
|
2892
2894
|
replace: {
|
|
2893
2895
|
chainName: chainInfo === null || chainInfo === void 0 ? void 0 : chainInfo.name
|
|
2894
2896
|
}
|
|
@@ -3089,7 +3091,7 @@ class KoniExtension {
|
|
|
3089
3091
|
id
|
|
3090
3092
|
} = _ref54;
|
|
3091
3093
|
const queued = this.#koniState.getSignRequest(id);
|
|
3092
|
-
(0, _util.assert)(queued, (0, _i18next.t)('
|
|
3094
|
+
(0, _util.assert)(queued, (0, _i18next.t)('bg.koni.handler.Extension.unableToProceed'));
|
|
3093
3095
|
const {
|
|
3094
3096
|
reject,
|
|
3095
3097
|
request,
|
|
@@ -3104,7 +3106,7 @@ class KoniExtension {
|
|
|
3104
3106
|
address
|
|
3105
3107
|
} = pair;
|
|
3106
3108
|
if (!pair) {
|
|
3107
|
-
reject(new Error((0, _i18next.t)('
|
|
3109
|
+
reject(new Error((0, _i18next.t)('bg.koni.handler.Extension.unableToFindAccount')));
|
|
3108
3110
|
return false;
|
|
3109
3111
|
}
|
|
3110
3112
|
if (pair.isLocked) {
|
|
@@ -456,7 +456,7 @@ class KoniState {
|
|
|
456
456
|
authUrls[shortenUrl].currentNetworkMap.evm = networkKey;
|
|
457
457
|
this.setAuthorize(authUrls);
|
|
458
458
|
} else {
|
|
459
|
-
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.INTERNAL_ERROR, (0, _i18next.t)('
|
|
459
|
+
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.INTERNAL_ERROR, (0, _i18next.t)('bg.koni.handler.State.shortUrlNotFoundInAuthList', {
|
|
460
460
|
replace: {
|
|
461
461
|
shortenUrl
|
|
462
462
|
}
|
|
@@ -480,6 +480,11 @@ class KoniState {
|
|
|
480
480
|
}
|
|
481
481
|
});
|
|
482
482
|
}
|
|
483
|
+
async showUnsupportedNetworkSwitchConfirm(id, url, networkData) {
|
|
484
|
+
return this.requestService.addConfirmation(id, url, 'addNetworkRequest', networkData).then(() => {
|
|
485
|
+
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.NETWORK_NOT_SUPPORTED, 'This network is currently not supported');
|
|
486
|
+
});
|
|
487
|
+
}
|
|
483
488
|
async addTokenConfirm(id, url, tokenInfo) {
|
|
484
489
|
return this.requestService.addConfirmation(id, url, 'addTokenRequest', tokenInfo).then(async _ref3 => {
|
|
485
490
|
let {
|
|
@@ -934,7 +939,7 @@ class KoniState {
|
|
|
934
939
|
if (payload) {
|
|
935
940
|
return payload;
|
|
936
941
|
} else {
|
|
937
|
-
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.INVALID_PARAMS, (0, _i18next.t)('
|
|
942
|
+
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.INVALID_PARAMS, (0, _i18next.t)('bg.koni.handler.State.notFoundSignature'));
|
|
938
943
|
}
|
|
939
944
|
} else {
|
|
940
945
|
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.USER_REJECTED_REQUEST);
|
|
@@ -1095,7 +1100,7 @@ class KoniState {
|
|
|
1095
1100
|
if (payload) {
|
|
1096
1101
|
return payload;
|
|
1097
1102
|
} else {
|
|
1098
|
-
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, (0, _i18next.t)('
|
|
1103
|
+
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, (0, _i18next.t)('bg.koni.handler.State.notFoundSignature'));
|
|
1099
1104
|
}
|
|
1100
1105
|
} else {
|
|
1101
1106
|
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.SIGN_DATA_DECLINED);
|
|
@@ -1116,7 +1121,7 @@ class KoniState {
|
|
|
1116
1121
|
const authInfoMap = await this.getAuthList();
|
|
1117
1122
|
const authInfo = authInfoMap[(0, _utils3.stripUrl)(url)];
|
|
1118
1123
|
if (!authInfo) {
|
|
1119
|
-
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.REFUSED_REQUEST, (0, _i18next.t)('
|
|
1124
|
+
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.REFUSED_REQUEST, (0, _i18next.t)('bg.koni.handler.State.notFoundAuthInfo'));
|
|
1120
1125
|
}
|
|
1121
1126
|
let requireKeyHashes = [];
|
|
1122
1127
|
let networkKey = authInfo === null || authInfo === void 0 ? void 0 : authInfo.currentNetworkMap.cardano;
|
|
@@ -1168,7 +1173,7 @@ class KoniState {
|
|
|
1168
1173
|
};
|
|
1169
1174
|
if ((0, _utils3.isSameAddress)(currentAddress, address)) {
|
|
1170
1175
|
if (!(0, _cardano.validateAddressNetwork)(address, currentCardanoNetwork)) {
|
|
1171
|
-
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.ACCOUNT_CHANGED, (0, _i18next.t)('
|
|
1176
|
+
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.ACCOUNT_CHANGED, (0, _i18next.t)('bg.koni.handler.State.currentNetworkIsChanged'));
|
|
1172
1177
|
}
|
|
1173
1178
|
transactionValue = transactionValue.checked_add(amount);
|
|
1174
1179
|
addressInputAmountMap[address].isOwner = true;
|
|
@@ -1177,12 +1182,12 @@ class KoniState {
|
|
|
1177
1182
|
|
|
1178
1183
|
// Check if address is valid with current network
|
|
1179
1184
|
if (!(0, _cardano.validateAddressNetwork)(address, currentCardanoNetwork)) {
|
|
1180
|
-
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, (0, _i18next.t)('
|
|
1185
|
+
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, (0, _i18next.t)('bg.koni.handler.State.networkNotMatchInputAddress'));
|
|
1181
1186
|
}
|
|
1182
1187
|
}
|
|
1183
1188
|
for (const address in addressOutputMap) {
|
|
1184
1189
|
if (!(0, _cardano.validateAddressNetwork)(address, currentCardanoNetwork)) {
|
|
1185
|
-
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, (0, _i18next.t)('
|
|
1190
|
+
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, (0, _i18next.t)('bg.koni.handler.State.networkNotMatchOutputAddress'));
|
|
1186
1191
|
}
|
|
1187
1192
|
if (!addressInputAmountMap[address] && !addressOutputMap[address].is_zero()) {
|
|
1188
1193
|
addressOutputAmountMap[address] = {
|
|
@@ -1227,7 +1232,7 @@ class KoniState {
|
|
|
1227
1232
|
return false;
|
|
1228
1233
|
});
|
|
1229
1234
|
if (!needOwnerKeyHash) {
|
|
1230
|
-
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.PROOF_GENERATION_FAILED, (0, _i18next.t)('
|
|
1235
|
+
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.PROOF_GENERATION_FAILED, (0, _i18next.t)('bg.koni.handler.State.notFoundOwnerKeyHash'));
|
|
1231
1236
|
}
|
|
1232
1237
|
if (needForeignKeyHash && !partialSign) {
|
|
1233
1238
|
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, 'Not support foreign key hash yet');
|
|
@@ -1252,7 +1257,7 @@ class KoniState {
|
|
|
1252
1257
|
if (payload) {
|
|
1253
1258
|
return payload;
|
|
1254
1259
|
} else {
|
|
1255
|
-
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, (0, _i18next.t)('
|
|
1260
|
+
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, (0, _i18next.t)('bg.koni.handler.State.notFoundSignature'));
|
|
1256
1261
|
}
|
|
1257
1262
|
} else {
|
|
1258
1263
|
throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.SIGN_TRANSACTION_DECLINED);
|
|
@@ -1300,7 +1305,7 @@ class KoniState {
|
|
|
1300
1305
|
if (payload) {
|
|
1301
1306
|
return payload;
|
|
1302
1307
|
} else {
|
|
1303
|
-
throw new _BitcoinProviderError.BitcoinProviderError(_KoniTypes.BitcoinProviderErrorType.INVALID_PARAMS, (0, _i18next.t)('
|
|
1308
|
+
throw new _BitcoinProviderError.BitcoinProviderError(_KoniTypes.BitcoinProviderErrorType.INVALID_PARAMS, (0, _i18next.t)('bg.koni.handler.State.notFoundSignature'));
|
|
1304
1309
|
}
|
|
1305
1310
|
} else {
|
|
1306
1311
|
throw new _BitcoinProviderError.BitcoinProviderError(_KoniTypes.BitcoinProviderErrorType.USER_REJECTED_REQUEST);
|
|
@@ -1371,8 +1376,8 @@ class KoniState {
|
|
|
1371
1376
|
}, []);
|
|
1372
1377
|
if (new _bignumber.default(totalBalance.value).lt(inputAmount)) {
|
|
1373
1378
|
payloadAfterValidated.errors = [{
|
|
1374
|
-
message: (0, _i18next.t)('
|
|
1375
|
-
name: (0, _i18next.t)('
|
|
1379
|
+
message: (0, _i18next.t)('bg.koni.handler.State.insufficientBalance'),
|
|
1380
|
+
name: (0, _i18next.t)('bg.koni.handler.State.unableToSignTransaction')
|
|
1376
1381
|
}];
|
|
1377
1382
|
}
|
|
1378
1383
|
const psbtOutputData = psbtGenerate.txOutputs.map(output => {
|
|
@@ -1413,7 +1418,7 @@ class KoniState {
|
|
|
1413
1418
|
if (payload) {
|
|
1414
1419
|
return payload;
|
|
1415
1420
|
} else {
|
|
1416
|
-
throw new _BitcoinProviderError.BitcoinProviderError(_KoniTypes.BitcoinProviderErrorType.INVALID_PARAMS, (0, _i18next.t)('
|
|
1421
|
+
throw new _BitcoinProviderError.BitcoinProviderError(_KoniTypes.BitcoinProviderErrorType.INVALID_PARAMS, (0, _i18next.t)('bg.koni.handler.State.notFoundSignature'));
|
|
1417
1422
|
}
|
|
1418
1423
|
} else {
|
|
1419
1424
|
throw new _BitcoinProviderError.BitcoinProviderError(_KoniTypes.BitcoinProviderErrorType.USER_REJECTED_REQUEST);
|
|
@@ -1449,7 +1454,7 @@ class KoniState {
|
|
|
1449
1454
|
if (payload) {
|
|
1450
1455
|
return payload;
|
|
1451
1456
|
} else {
|
|
1452
|
-
throw new _BitcoinProviderError.BitcoinProviderError(_KoniTypes.BitcoinProviderErrorType.INVALID_PARAMS, (0, _i18next.t)('
|
|
1457
|
+
throw new _BitcoinProviderError.BitcoinProviderError(_KoniTypes.BitcoinProviderErrorType.INVALID_PARAMS, (0, _i18next.t)('bg.koni.handler.State.notFoundSignature'));
|
|
1453
1458
|
}
|
|
1454
1459
|
} else {
|
|
1455
1460
|
throw new _BitcoinProviderError.BitcoinProviderError(_KoniTypes.BitcoinProviderErrorType.USER_REJECTED_REQUEST);
|
|
@@ -592,8 +592,30 @@ class KoniTabs {
|
|
|
592
592
|
method: 'wallet_addEthereumChain',
|
|
593
593
|
params: [chainData]
|
|
594
594
|
});
|
|
595
|
+
const [networkKey] = this.#koniState.findNetworkKeyByChainId(chainIdDec);
|
|
596
|
+
if (networkKey) {
|
|
597
|
+
await this.#koniState.switchEvmNetworkByUrl((0, _utils2.stripUrl)(url), networkKey);
|
|
598
|
+
}
|
|
595
599
|
} else {
|
|
596
|
-
|
|
600
|
+
await this.#koniState.showUnsupportedNetworkSwitchConfirm(id, url, {
|
|
601
|
+
mode: 'insert',
|
|
602
|
+
chainSpec: {
|
|
603
|
+
genesisHash: '',
|
|
604
|
+
paraId: null,
|
|
605
|
+
addressPrefix: 0,
|
|
606
|
+
evmChainId: chainIdDec,
|
|
607
|
+
existentialDeposit: '',
|
|
608
|
+
decimals: 0
|
|
609
|
+
},
|
|
610
|
+
chainEditInfo: {
|
|
611
|
+
chainType: 'EVM',
|
|
612
|
+
currentProvider: '',
|
|
613
|
+
providers: {},
|
|
614
|
+
slug: ''
|
|
615
|
+
},
|
|
616
|
+
unconfirmed: true,
|
|
617
|
+
providerError: _types2._CHAIN_VALIDATION_ERROR.UNSUPPORTED_CHAIN_CANNOT_ADD
|
|
618
|
+
});
|
|
597
619
|
}
|
|
598
620
|
}
|
|
599
621
|
return null;
|
package/cjs/packageInfo.js
CHANGED
|
@@ -183,7 +183,7 @@ class BalanceService {
|
|
|
183
183
|
const chainInfo = this.state.chainService.getChainInfoByKey(chain);
|
|
184
184
|
const chainState = this.state.chainService.getChainStateByKey(chain);
|
|
185
185
|
if (!chainInfo || !chainState || !chainState.active) {
|
|
186
|
-
return Promise.reject(new _BalanceError.BalanceError(_KoniTypes.BalanceErrorType.NETWORK_ERROR, (0, _i18next.t)('
|
|
186
|
+
return Promise.reject(new _BalanceError.BalanceError(_KoniTypes.BalanceErrorType.NETWORK_ERROR, (0, _i18next.t)('bg.BALANCE.services.service.balance.chainInactiveEnableNetwork', {
|
|
187
187
|
replace: {
|
|
188
188
|
chain: chainInfo.name
|
|
189
189
|
}
|
|
@@ -192,7 +192,7 @@ class BalanceService {
|
|
|
192
192
|
const tSlug = tokenSlug || (0, _utils._getChainNativeTokenSlug)(chainInfo);
|
|
193
193
|
const tokenInfo = this.state.chainService.getAssetBySlug(tSlug);
|
|
194
194
|
if (!tokenInfo) {
|
|
195
|
-
return Promise.reject(new _BalanceError.BalanceError(_KoniTypes.BalanceErrorType.TOKEN_ERROR, (0, _i18next.t)('
|
|
195
|
+
return Promise.reject(new _BalanceError.BalanceError(_KoniTypes.BalanceErrorType.TOKEN_ERROR, (0, _i18next.t)('bg.BALANCE.services.service.balance.transferNotAvailableForToken', {
|
|
196
196
|
replace: {
|
|
197
197
|
slug: tSlug
|
|
198
198
|
}
|
|
@@ -240,7 +240,7 @@ class BalanceService {
|
|
|
240
240
|
if (hasError) {
|
|
241
241
|
var _unsub2;
|
|
242
242
|
(_unsub2 = unsub) === null || _unsub2 === void 0 ? void 0 : _unsub2();
|
|
243
|
-
reject(new Error((0, _i18next.t)('
|
|
243
|
+
reject(new Error((0, _i18next.t)('bg.BALANCE.services.service.balance.failedToGetBalance')));
|
|
244
244
|
}
|
|
245
245
|
}, 9999);
|
|
246
246
|
});
|
|
@@ -137,7 +137,7 @@ async function getERC721Transaction(web3Api, chain, contractAddress, senderAddre
|
|
|
137
137
|
} catch (e) {
|
|
138
138
|
const error = e;
|
|
139
139
|
if (error.message.includes('transfer to non ERC721Receiver implementer')) {
|
|
140
|
-
error.message = (0, _i18next.t)('
|
|
140
|
+
error.message = (0, _i18next.t)('bg.BALANCE.services.service.balance.transfer.smartContract.nftNotSupportedOnRecipient');
|
|
141
141
|
}
|
|
142
142
|
throw error;
|
|
143
143
|
}
|
|
@@ -151,8 +151,14 @@ const dryRunXcmExtrinsicV2 = async request => {
|
|
|
151
151
|
const {
|
|
152
152
|
assetHub,
|
|
153
153
|
bridgeHub,
|
|
154
|
-
destination
|
|
154
|
+
destination,
|
|
155
|
+
hops
|
|
155
156
|
} = dryRunResult;
|
|
157
|
+
for (const hop of hops) {
|
|
158
|
+
if (!hop.result.success) {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
156
162
|
if ((assetHub === null || assetHub === void 0 ? void 0 : assetHub.success) === false || (bridgeHub === null || bridgeHub === void 0 ? void 0 : bridgeHub.success) === false || (destination === null || destination === void 0 ? void 0 : destination.success) === false) {
|
|
157
163
|
if ((destination === null || destination === void 0 ? void 0 : destination.success) === false) {
|
|
158
164
|
// pass dry-run in these cases
|
|
@@ -17,7 +17,7 @@ var _util = require("@polkadot/util");
|
|
|
17
17
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
18
18
|
// SPDX-License-Identifier: Apache-2.0
|
|
19
19
|
|
|
20
|
-
const version = '/
|
|
20
|
+
const version = '/v4';
|
|
21
21
|
const paraSpellApi = {
|
|
22
22
|
buildXcm: `${version}/x-transfer`,
|
|
23
23
|
dryRunXcm: `${version}/dry-run`,
|
|
@@ -75,7 +75,7 @@ function txHexToSubmittableExtrinsic(api, hex) {
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
async function buildXcm(request) {
|
|
78
|
-
var _originTokenInfo$meta
|
|
78
|
+
var _originTokenInfo$meta;
|
|
79
79
|
const {
|
|
80
80
|
destinationChain,
|
|
81
81
|
originChain,
|
|
@@ -87,9 +87,8 @@ async function buildXcm(request) {
|
|
|
87
87
|
if (!substrateApi) {
|
|
88
88
|
throw new Error('Substrate API is not available');
|
|
89
89
|
}
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
if (!psAssetType || !psAssetValue) {
|
|
90
|
+
const paraSpellIdentifyV4 = (_originTokenInfo$meta = originTokenInfo.metadata) === null || _originTokenInfo$meta === void 0 ? void 0 : _originTokenInfo$meta.paraSpellIdentifyV4;
|
|
91
|
+
if (!paraSpellIdentifyV4) {
|
|
93
92
|
throw new Error('Token is not support XCM at this time');
|
|
94
93
|
}
|
|
95
94
|
const paraSpellChainMap = await (0, _paraspellChainMap.fetchParaSpellChainMap)();
|
|
@@ -97,7 +96,10 @@ async function buildXcm(request) {
|
|
|
97
96
|
address: recipient,
|
|
98
97
|
from: paraSpellChainMap[originChain.slug],
|
|
99
98
|
to: paraSpellChainMap[destinationChain.slug],
|
|
100
|
-
currency: createParaSpellCurrency(
|
|
99
|
+
currency: createParaSpellCurrency(paraSpellIdentifyV4, sendingValue),
|
|
100
|
+
options: {
|
|
101
|
+
abstractDecimals: false
|
|
102
|
+
}
|
|
101
103
|
};
|
|
102
104
|
const response = await (0, _utils.fetchFromProxyService)(_environment.ProxyServiceRoute.PARASPELL, paraSpellApi.buildXcm, {
|
|
103
105
|
method: 'POST',
|
|
@@ -116,7 +118,7 @@ async function buildXcm(request) {
|
|
|
116
118
|
return txHexToSubmittableExtrinsic(chainApi.api, extrinsicHex);
|
|
117
119
|
}
|
|
118
120
|
async function dryRunXcm(request) {
|
|
119
|
-
var _originTokenInfo$
|
|
121
|
+
var _originTokenInfo$meta2;
|
|
120
122
|
const {
|
|
121
123
|
destinationChain,
|
|
122
124
|
originChain,
|
|
@@ -126,9 +128,8 @@ async function dryRunXcm(request) {
|
|
|
126
128
|
sendingValue
|
|
127
129
|
} = request;
|
|
128
130
|
const paraSpellChainMap = await (0, _paraspellChainMap.fetchParaSpellChainMap)();
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
if (!psAssetType || !psAssetValue) {
|
|
131
|
+
const paraSpellIdentifyV4 = (_originTokenInfo$meta2 = originTokenInfo.metadata) === null || _originTokenInfo$meta2 === void 0 ? void 0 : _originTokenInfo$meta2.paraSpellIdentifyV4;
|
|
132
|
+
if (!paraSpellIdentifyV4) {
|
|
132
133
|
throw new Error('Token is not support XCM at this time');
|
|
133
134
|
}
|
|
134
135
|
const bodyData = {
|
|
@@ -136,7 +137,10 @@ async function dryRunXcm(request) {
|
|
|
136
137
|
address: recipient,
|
|
137
138
|
from: paraSpellChainMap[originChain.slug],
|
|
138
139
|
to: paraSpellChainMap[destinationChain.slug],
|
|
139
|
-
currency: createParaSpellCurrency(
|
|
140
|
+
currency: createParaSpellCurrency(paraSpellIdentifyV4, sendingValue),
|
|
141
|
+
options: {
|
|
142
|
+
abstractDecimals: false
|
|
143
|
+
}
|
|
140
144
|
};
|
|
141
145
|
const response = await (0, _utils.fetchFromProxyService)(_environment.ProxyServiceRoute.PARASPELL, paraSpellApi.dryRunXcm, {
|
|
142
146
|
method: 'POST',
|
|
@@ -158,7 +162,7 @@ async function dryRunXcm(request) {
|
|
|
158
162
|
return await response.json();
|
|
159
163
|
}
|
|
160
164
|
async function estimateXcmFee(request) {
|
|
161
|
-
var _fromTokenInfo$metada
|
|
165
|
+
var _fromTokenInfo$metada;
|
|
162
166
|
const {
|
|
163
167
|
fromChainInfo,
|
|
164
168
|
fromTokenInfo,
|
|
@@ -168,9 +172,8 @@ async function estimateXcmFee(request) {
|
|
|
168
172
|
value
|
|
169
173
|
} = request;
|
|
170
174
|
const paraSpellChainMap = await (0, _paraspellChainMap.fetchParaSpellChainMap)();
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
if (!psAssetType || !psAssetValue) {
|
|
175
|
+
const paraSpellIdentifyV4 = (_fromTokenInfo$metada = fromTokenInfo.metadata) === null || _fromTokenInfo$metada === void 0 ? void 0 : _fromTokenInfo$metada.paraSpellIdentifyV4;
|
|
176
|
+
if (!paraSpellIdentifyV4) {
|
|
174
177
|
console.error('Lack of paraspell metadata');
|
|
175
178
|
return undefined;
|
|
176
179
|
}
|
|
@@ -179,7 +182,10 @@ async function estimateXcmFee(request) {
|
|
|
179
182
|
address: recipient,
|
|
180
183
|
from: paraSpellChainMap[fromChainInfo.slug],
|
|
181
184
|
to: paraSpellChainMap[toChainInfo.slug],
|
|
182
|
-
currency: createParaSpellCurrency(
|
|
185
|
+
currency: createParaSpellCurrency(paraSpellIdentifyV4, value),
|
|
186
|
+
options: {
|
|
187
|
+
abstractDecimals: false
|
|
188
|
+
}
|
|
183
189
|
};
|
|
184
190
|
const response = await (0, _utils.fetchFromProxyService)(_environment.ProxyServiceRoute.PARASPELL, paraSpellApi.feeXcm, {
|
|
185
191
|
method: 'POST',
|
|
@@ -195,11 +201,11 @@ async function estimateXcmFee(request) {
|
|
|
195
201
|
}
|
|
196
202
|
return await response.json();
|
|
197
203
|
}
|
|
198
|
-
function createParaSpellCurrency(
|
|
204
|
+
function createParaSpellCurrency(paraSpellIdentifyV4, amount) {
|
|
199
205
|
// todo: handle complex conditions for asset has same symbol in a chain: Id, Multi-location, ...
|
|
200
206
|
// todo: or update all asset to use multi-location
|
|
201
207
|
return {
|
|
202
|
-
|
|
208
|
+
...paraSpellIdentifyV4,
|
|
203
209
|
amount
|
|
204
210
|
};
|
|
205
211
|
}
|
|
@@ -41,7 +41,7 @@ const _BALANCE_CHAIN_GROUP = {
|
|
|
41
41
|
genshiro: ['genshiro_testnet', 'genshiro'],
|
|
42
42
|
equilibrium_parachain: ['equilibrium_parachain'],
|
|
43
43
|
bifrost: ['bifrost', 'acala', 'karura', 'acala_testnet', 'pioneer', 'bitcountry', 'bifrost_dot', 'hydradx_main', 'hydradx_rococo', 'pendulum', 'amplitude', 'continuum_network', 'truth_network', 'jamton'],
|
|
44
|
-
statemine: ['statemine', 'astar', 'shiden', 'statemint', 'crabParachain', 'darwinia2', 'parallel', 'calamari', 'manta_network', 'rococo_assethub', 'liberlandTest', 'liberland', 'dentnet', 'pangolin', 'crust', 'phala', 'shibuya', 'dbcchain', 'westend_assethub', 'chainflip_assethub'],
|
|
44
|
+
statemine: ['statemine', 'astar', 'shiden', 'statemint', 'crabParachain', 'darwinia2', 'parallel', 'calamari', 'manta_network', 'rococo_assethub', 'liberlandTest', 'liberland', 'dentnet', 'pangolin', 'crust', 'phala', 'shibuya', 'dbcchain', 'westend_assethub', 'chainflip_assethub', 'origintrail'],
|
|
45
45
|
kusama: ['kusama', 'kintsugi', 'kintsugi_test', 'interlay', 'acala', 'statemint', 'karura', 'bifrost'],
|
|
46
46
|
// perhaps there are some runtime updates
|
|
47
47
|
centrifuge: ['centrifuge'],
|
|
@@ -273,7 +273,7 @@ const _TRANSFER_CHAIN_GROUP = {
|
|
|
273
273
|
genshiro: ['genshiro_testnet', 'genshiro', 'equilibrium_parachain'],
|
|
274
274
|
// crab: ['crab', 'pangolin'],
|
|
275
275
|
bitcountry: ['pioneer', 'bitcountry'],
|
|
276
|
-
statemine: ['statemint', 'statemine', 'darwinia2', 'astar', 'shiden', 'shibuya', 'parallel', 'liberland', 'liberlandTest', 'dentnet', 'dbcchain', 'westend_assethub', 'chainflip_assethub'],
|
|
276
|
+
statemine: ['statemint', 'statemine', 'darwinia2', 'astar', 'shiden', 'shibuya', 'parallel', 'liberland', 'liberlandTest', 'dentnet', 'dbcchain', 'westend_assethub', 'chainflip_assethub', 'origintrail'],
|
|
277
277
|
riochain: ['riochain'],
|
|
278
278
|
sora_substrate: ['sora_substrate'],
|
|
279
279
|
avail: ['kate', 'goldberg_testnet'],
|
|
@@ -17,4 +17,5 @@ exports._CHAIN_VALIDATION_ERROR = _CHAIN_VALIDATION_ERROR;
|
|
|
17
17
|
_CHAIN_VALIDATION_ERROR["NONE"] = "none";
|
|
18
18
|
_CHAIN_VALIDATION_ERROR["CONNECTION_FAILURE"] = "connectionFailure";
|
|
19
19
|
_CHAIN_VALIDATION_ERROR["PROVIDER_NOT_SAME_CHAIN"] = "providerNotSameChain";
|
|
20
|
+
_CHAIN_VALIDATION_ERROR["UNSUPPORTED_CHAIN_CANNOT_ADD"] = "unsupportedChainCannotAdd";
|
|
20
21
|
})(_CHAIN_VALIDATION_ERROR || (exports._CHAIN_VALIDATION_ERROR = _CHAIN_VALIDATION_ERROR = {}));
|
|
@@ -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.113'; // update this when build chain-list
|
|
16
16
|
|
|
17
17
|
// todo: move this interface to chainlist
|
|
18
18
|
exports.ChainListVersion = ChainListVersion;
|
|
@@ -12,9 +12,8 @@ const _STAKING_CHAIN_GROUP = {
|
|
|
12
12
|
assetHub: ['statemine', 'statemint', 'westend_assethub'],
|
|
13
13
|
para: ['moonbeam', 'moonriver', 'moonbase', 'turing', 'turingStaging', 'bifrost', 'bifrost_testnet', 'calamari_test', 'calamari', 'manta_network', 'polimec'],
|
|
14
14
|
astar: ['astar', 'shiden', 'shibuya'],
|
|
15
|
-
amplitude: ['amplitude', 'amplitude_test', '
|
|
15
|
+
amplitude: ['amplitude', 'amplitude_test', 'pendulum', 'krest_network'],
|
|
16
16
|
// amplitude and kilt only share some common logic
|
|
17
|
-
kilt: ['kilt', 'kilt_peregrine'],
|
|
18
17
|
nominationPool: ['polkadot', 'kusama', 'westend', 'alephTest', 'aleph', 'kate', 'vara_network', 'goldberg_testnet', 'availTuringTest', 'avail_mainnet', 'vara_testnet', 'cere', 'analog_timechain'],
|
|
19
18
|
bifrost: ['bifrost', 'bifrost_testnet'],
|
|
20
19
|
aleph: ['aleph', 'alephTest'],
|
|
@@ -161,7 +161,8 @@ class BasePoolHandler {
|
|
|
161
161
|
};
|
|
162
162
|
}
|
|
163
163
|
const nativeTokenInfo = this.state.chainService.getNativeTokenInfo(this.chain);
|
|
164
|
-
|
|
164
|
+
// Use TRANSFER_BALANCE extrinsic in order to get transferable balanace without minus ED
|
|
165
|
+
const nativeTokenBalance = await this.state.balanceService.getTransferableBalance(request.address, this.chain, undefined, _KoniTypes.ExtrinsicType.TRANSFER_BALANCE);
|
|
165
166
|
const bnNativeTokenBalance = new _util.BN(nativeTokenBalance.value);
|
|
166
167
|
const bnMinBalanceToJoin = new _util.BN(((_poolInfo$statistic2 = poolInfo.statistic) === null || _poolInfo$statistic2 === void 0 ? void 0 : (_poolInfo$statistic2$ = _poolInfo$statistic2.earningThreshold) === null || _poolInfo$statistic2$ === void 0 ? void 0 : _poolInfo$statistic2$.join) || '0').add(new _util.BN(poolInfo.metadata.maintainBalance));
|
|
167
168
|
if (bnNativeTokenBalance.lte(bnMinBalanceToJoin)) {
|