@subwallet/extension-base 1.3.45-1 → 1.3.46-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/background/KoniTypes.d.ts +5 -0
- package/background/KoniTypes.js +5 -0
- package/background/types.d.ts +2 -0
- package/cjs/background/KoniTypes.js +7 -1
- package/cjs/core/logic-validation/request.js +55 -28
- package/cjs/core/utils.js +22 -0
- package/cjs/koni/background/handlers/Extension.js +84 -61
- package/cjs/koni/background/handlers/Tabs.js +11 -3
- package/cjs/packageInfo.js +1 -1
- package/cjs/page/evm/index.js +64 -105
- package/cjs/page/index.js +5 -3
- package/cjs/page/substrate/Accounts.js +2 -1
- package/cjs/services/balance-service/helpers/subscribe/index.js +3 -76
- package/cjs/services/chain-service/index.js +3 -0
- package/cjs/services/chain-service/utils/index.js +31 -1
- package/cjs/services/earning-service/constants/chains.js +2 -1
- package/cjs/services/earning-service/handlers/native-staking/base.js +3 -0
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +9 -2
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +6 -3
- package/cjs/services/earning-service/service.js +39 -17
- package/cjs/services/keyring-service/context/handlers/Json.js +2 -1
- package/cjs/services/keyring-service/context/handlers/Ledger.js +7 -2
- package/cjs/services/request-service/handler/AuthRequestHandler.js +30 -6
- package/cjs/types/account/info/keyring.js +1 -0
- package/cjs/utils/account/analyze.js +5 -2
- package/cjs/utils/account/common.js +93 -2
- package/cjs/utils/account/transform.js +10 -0
- package/cjs/utils/asset.js +9 -2
- package/cjs/utils/staticData/index.js +7 -2
- package/core/logic-validation/request.js +31 -4
- package/core/types.d.ts +3 -2
- package/core/utils.js +24 -2
- package/koni/background/handlers/Extension.js +31 -8
- package/koni/background/handlers/Tabs.js +11 -4
- package/package.json +7 -6
- package/packageInfo.js +1 -1
- package/page/evm/index.d.ts +9 -18
- package/page/evm/index.js +62 -101
- package/page/index.js +5 -3
- package/page/substrate/Accounts.js +2 -1
- package/services/balance-service/helpers/subscribe/index.d.ts +1 -11
- package/services/balance-service/helpers/subscribe/index.js +3 -74
- package/services/chain-service/index.d.ts +1 -0
- package/services/chain-service/index.js +3 -0
- package/services/chain-service/utils/index.d.ts +10 -2
- package/services/chain-service/utils/index.js +26 -2
- package/services/earning-service/constants/chains.d.ts +1 -0
- package/services/earning-service/constants/chains.js +2 -1
- package/services/earning-service/handlers/native-staking/base.d.ts +1 -0
- package/services/earning-service/handlers/native-staking/base.js +3 -0
- package/services/earning-service/handlers/native-staking/relay-chain.js +9 -2
- package/services/earning-service/handlers/nomination-pool/index.d.ts +1 -0
- package/services/earning-service/handlers/nomination-pool/index.js +6 -3
- package/services/earning-service/service.d.ts +2 -0
- package/services/earning-service/service.js +42 -20
- package/services/keyring-service/context/handlers/Json.js +2 -1
- package/services/keyring-service/context/handlers/Ledger.js +7 -2
- package/services/request-service/handler/AuthRequestHandler.d.ts +1 -0
- package/services/request-service/handler/AuthRequestHandler.js +30 -6
- package/services/request-service/types.d.ts +1 -0
- package/types/account/action/subscribe.d.ts +3 -0
- package/types/account/info/keyring.d.ts +3 -0
- package/types/account/info/keyring.js +1 -0
- package/types/balance/transfer.d.ts +1 -0
- package/utils/account/analyze.js +5 -2
- package/utils/account/common.d.ts +13 -1
- package/utils/account/common.js +91 -2
- package/utils/account/transform.js +10 -0
- package/utils/asset.d.ts +2 -1
- package/utils/asset.js +7 -1
- package/utils/staticData/assetHubStaking.json +1 -0
- package/utils/staticData/index.d.ts +4 -1
- package/utils/staticData/index.js +5 -1
|
@@ -16,6 +16,7 @@ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
|
16
16
|
var _constants = require("@subwallet/extension-base/constants");
|
|
17
17
|
var _transfer = require("@subwallet/extension-base/core/logic-validation/transfer");
|
|
18
18
|
var _xcmParser = require("@subwallet/extension-base/core/substrate/xcm-parser");
|
|
19
|
+
var _types2 = require("@subwallet/extension-base/core/types");
|
|
19
20
|
var _utils = require("@subwallet/extension-base/core/utils");
|
|
20
21
|
var _defaults = require("@subwallet/extension-base/defaults");
|
|
21
22
|
var _web = require("@subwallet/extension-base/koni/api/contract-handler/evm/web3");
|
|
@@ -42,7 +43,7 @@ var _polygonBridge = require("@subwallet/extension-base/services/balance-service
|
|
|
42
43
|
var _posBridge = require("@subwallet/extension-base/services/balance-service/transfer/xcm/posBridge");
|
|
43
44
|
var _utils5 = require("@subwallet/extension-base/services/balance-service/transfer/xcm/utils");
|
|
44
45
|
var _constants2 = require("@subwallet/extension-base/services/chain-service/constants");
|
|
45
|
-
var
|
|
46
|
+
var _types3 = require("@subwallet/extension-base/services/chain-service/types");
|
|
46
47
|
var _utils6 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
47
48
|
var _utils7 = require("@subwallet/extension-base/services/fee-service/utils");
|
|
48
49
|
var _tokenPayFee = require("@subwallet/extension-base/services/fee-service/utils/tokenPayFee");
|
|
@@ -51,12 +52,12 @@ var _constants4 = require("@subwallet/extension-base/services/setting-service/co
|
|
|
51
52
|
var _helpers2 = require("@subwallet/extension-base/services/wallet-connect-service/helpers");
|
|
52
53
|
var _storage = require("@subwallet/extension-base/storage");
|
|
53
54
|
var _stores = require("@subwallet/extension-base/stores");
|
|
54
|
-
var
|
|
55
|
+
var _types4 = require("@subwallet/extension-base/types");
|
|
55
56
|
var _utils8 = require("@subwallet/extension-base/utils");
|
|
56
57
|
var _parseTransaction2 = require("@subwallet/extension-base/utils/eth/parseTransaction");
|
|
57
58
|
var _getId = require("@subwallet/extension-base/utils/getId");
|
|
58
59
|
var _keyring = require("@subwallet/keyring");
|
|
59
|
-
var
|
|
60
|
+
var _types5 = require("@subwallet/keyring/types");
|
|
60
61
|
var _utils9 = require("@subwallet/keyring/utils");
|
|
61
62
|
var _validate = require("@subwallet/keyring/utils/address/validate");
|
|
62
63
|
var _uiKeyring = require("@subwallet/ui-keyring");
|
|
@@ -65,7 +66,7 @@ var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
|
65
66
|
var bitcoin = _interopRequireWildcard(require("bitcoinjs-lib"));
|
|
66
67
|
var _i18next = require("i18next");
|
|
67
68
|
var _rxjs = require("rxjs");
|
|
68
|
-
var
|
|
69
|
+
var _types6 = require("@polkadot/types");
|
|
69
70
|
var _util = require("@polkadot/util");
|
|
70
71
|
var _utilCrypto = require("@polkadot/util-crypto");
|
|
71
72
|
var _utils11 = require("../utils");
|
|
@@ -217,7 +218,7 @@ class KoniExtension {
|
|
|
217
218
|
const {
|
|
218
219
|
reject
|
|
219
220
|
} = queued;
|
|
220
|
-
reject(new _TransactionError.TransactionError(
|
|
221
|
+
reject(new _TransactionError.TransactionError(_types4.BasicTxErrorType.USER_REJECT_REQUEST));
|
|
221
222
|
return true;
|
|
222
223
|
}
|
|
223
224
|
|
|
@@ -313,16 +314,32 @@ class KoniExtension {
|
|
|
313
314
|
}
|
|
314
315
|
async subscribeInputAddressData(request, id, port) {
|
|
315
316
|
const {
|
|
317
|
+
actionType,
|
|
316
318
|
chain,
|
|
317
|
-
data
|
|
319
|
+
data,
|
|
320
|
+
token
|
|
318
321
|
} = request;
|
|
319
322
|
const cb = (0, _subscriptions.createSubscription)(id, port);
|
|
320
|
-
const combineFunction = async (chainInfoMap, accountProxyMap, _contacts) => {
|
|
323
|
+
const combineFunction = async (chainInfoMap, tokenInfoMap, accountProxyMap, _contacts) => {
|
|
321
324
|
const accountProxies = Object.values(accountProxyMap);
|
|
322
325
|
const contacts = (0, _utils8.transformAddresses)(_contacts);
|
|
323
326
|
const chainInfo = chainInfoMap[chain];
|
|
327
|
+
const tokenInfo = tokenInfoMap[token || ''];
|
|
324
328
|
const substrateApi = this.#koniState.chainService.getSubstrateApi(chain);
|
|
325
|
-
const
|
|
329
|
+
const accountProxiesFiltered = accountProxies.filter(accountProxy => {
|
|
330
|
+
var _accountProxy$account;
|
|
331
|
+
const signMode = (_accountProxy$account = accountProxy.accounts[0]) === null || _accountProxy$account === void 0 ? void 0 : _accountProxy$account.signMode;
|
|
332
|
+
if (signMode === _types4.AccountSignMode.ECDSA_SUBSTRATE_LEDGER) {
|
|
333
|
+
if (actionType === _types2.ActionType.SEND_NFT) {
|
|
334
|
+
return false;
|
|
335
|
+
}
|
|
336
|
+
if (tokenInfo) {
|
|
337
|
+
return (0, _utils8.isSubstrateEcdsaLedgerAssetSupported)(tokenInfo, chainInfo);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
return true;
|
|
341
|
+
});
|
|
342
|
+
const rs = await (0, _utils8._analyzeAddress)(data, accountProxiesFiltered, contacts, chainInfo, substrateApi);
|
|
326
343
|
return {
|
|
327
344
|
id,
|
|
328
345
|
...rs
|
|
@@ -331,17 +348,20 @@ class KoniExtension {
|
|
|
331
348
|
const accountObservable = this.#koniState.keyringService.context.observable.accounts;
|
|
332
349
|
const contactObservable = this.#koniState.keyringService.context.observable.contacts;
|
|
333
350
|
const chainInfoMapObservable = this.#koniState.chainService.subscribeChainInfoMap().asObservable();
|
|
351
|
+
const tokenInfoMapObservable = this.#koniState.chainService.subscribeAssetRegistry().asObservable();
|
|
334
352
|
const subscription = (0, _rxjs.combineLatest)({
|
|
335
353
|
chainInfoMap: chainInfoMapObservable,
|
|
354
|
+
tokenInfoMap: tokenInfoMapObservable,
|
|
336
355
|
accountProxies: accountObservable,
|
|
337
356
|
contacts: contactObservable
|
|
338
357
|
}).subscribe(_ref8 => {
|
|
339
358
|
let {
|
|
340
359
|
accountProxies,
|
|
341
360
|
chainInfoMap,
|
|
342
|
-
contacts
|
|
361
|
+
contacts,
|
|
362
|
+
tokenInfoMap
|
|
343
363
|
} = _ref8;
|
|
344
|
-
combineFunction(chainInfoMap, accountProxies, contacts).then(rs => cb(rs)).catch(console.error);
|
|
364
|
+
combineFunction(chainInfoMap, tokenInfoMap, accountProxies, contacts).then(rs => cb(rs)).catch(console.error);
|
|
345
365
|
});
|
|
346
366
|
this.createUnsubscriptionHandle(id, () => {
|
|
347
367
|
subscription.unsubscribe();
|
|
@@ -352,7 +372,8 @@ class KoniExtension {
|
|
|
352
372
|
const accountProxyMap = this.#koniState.keyringService.context.value.accounts;
|
|
353
373
|
const contacts = this.#koniState.keyringService.context.value.contacts;
|
|
354
374
|
const chainInfoMap = this.#koniState.chainService.getChainInfoMap();
|
|
355
|
-
|
|
375
|
+
const tokenInfoMap = this.#koniState.chainService.getAssetRegistry();
|
|
376
|
+
return combineFunction(chainInfoMap, tokenInfoMap, accountProxyMap, contacts);
|
|
356
377
|
}
|
|
357
378
|
|
|
358
379
|
/**
|
|
@@ -588,11 +609,11 @@ class KoniExtension {
|
|
|
588
609
|
isAddressValidWithAuthType(address, accountAuthTypes) {
|
|
589
610
|
const type = (0, _keyring.getKeypairTypeByAddress)(address);
|
|
590
611
|
const validTypes = {
|
|
591
|
-
evm:
|
|
592
|
-
substrate:
|
|
593
|
-
ton:
|
|
594
|
-
cardano:
|
|
595
|
-
bitcoin:
|
|
612
|
+
evm: _types5.EthereumKeypairTypes,
|
|
613
|
+
substrate: _types5.SubstrateKeypairTypes,
|
|
614
|
+
ton: _types5.TonKeypairTypes,
|
|
615
|
+
cardano: _types5.CardanoKeypairTypes,
|
|
616
|
+
bitcoin: _types5.BitcoinKeypairTypes
|
|
596
617
|
};
|
|
597
618
|
return !!accountAuthTypes && accountAuthTypes.some(authType => {
|
|
598
619
|
var _validTypes$authType;
|
|
@@ -1292,6 +1313,8 @@ class KoniExtension {
|
|
|
1292
1313
|
const isTransferLocalTokenAndPayThatTokenAsFee = !isTransferNativeToken && tokenPayFeeSlug === tokenSlug;
|
|
1293
1314
|
const isCustomTokenPayFeeAssetHub = tokenPayFeeSlug && !(0, _utils6._isNativeTokenBySlug)(tokenPayFeeSlug) && _constants._SUPPORT_TOKEN_PAY_FEE_GROUP.assetHub.includes(chain);
|
|
1294
1315
|
const isCustomTokenPayFeeHydration = tokenPayFeeSlug && !(0, _utils6._isNativeTokenBySlug)(tokenPayFeeSlug) && _constants._SUPPORT_TOKEN_PAY_FEE_GROUP.hydration.includes(chain);
|
|
1316
|
+
const pairFrom = _uiKeyring.keyring.getPair(from);
|
|
1317
|
+
const isSubstrateECDSATransaction = pairFrom.meta.isSubstrateECDSA;
|
|
1295
1318
|
const extrinsicType = isTransferNativeToken ? _KoniTypes.ExtrinsicType.TRANSFER_BALANCE : _KoniTypes.ExtrinsicType.TRANSFER_TOKEN;
|
|
1296
1319
|
let chainType = _KoniTypes.ChainType.SUBSTRATE;
|
|
1297
1320
|
const transferAmount = {
|
|
@@ -1308,7 +1331,7 @@ class KoniExtension {
|
|
|
1308
1331
|
extrinsicType
|
|
1309
1332
|
});
|
|
1310
1333
|
try {
|
|
1311
|
-
if ((0, _utilCrypto.isEthereumAddress)(from) && (0, _utilCrypto.isEthereumAddress)(to) && (0, _utils6._isTokenTransferredByEvm)(transferTokenInfo)) {
|
|
1334
|
+
if ((0, _utilCrypto.isEthereumAddress)(from) && (0, _utilCrypto.isEthereumAddress)(to) && (0, _utils6._isTokenTransferredByEvm)(transferTokenInfo) && !isSubstrateECDSATransaction) {
|
|
1312
1335
|
chainType = _KoniTypes.ChainType.EVM;
|
|
1313
1336
|
const txVal = transferAll ? transferTokenAvailable.value : value || '0';
|
|
1314
1337
|
const evmApi = this.#koniState.getEvmApi(chain);
|
|
@@ -1446,7 +1469,7 @@ class KoniExtension {
|
|
|
1446
1469
|
const nonNativeTokenPayFeeInfo = await this.#koniState.balanceService.getTokensHasBalance((0, _utils8.reformatAddress)(from), chain, tokenPayFeeSlug);
|
|
1447
1470
|
const nonNativeTokenPayFeeBalance = BigInt(((_nonNativeTokenPayFee = nonNativeTokenPayFeeInfo[tokenPayFeeSlug]) === null || _nonNativeTokenPayFee === void 0 ? void 0 : _nonNativeTokenPayFee.free) || '0');
|
|
1448
1471
|
if (nonNativeFee > nonNativeTokenPayFeeBalance) {
|
|
1449
|
-
inputTransaction.errors.push(new _TransactionError.TransactionError(
|
|
1472
|
+
inputTransaction.errors.push(new _TransactionError.TransactionError(_types4.BasicTxErrorType.NOT_ENOUGH_BALANCE));
|
|
1450
1473
|
}
|
|
1451
1474
|
}
|
|
1452
1475
|
|
|
@@ -1485,10 +1508,10 @@ class KoniExtension {
|
|
|
1485
1508
|
};
|
|
1486
1509
|
const ignoreWarnings = [];
|
|
1487
1510
|
if (transferAll) {
|
|
1488
|
-
ignoreWarnings.push(
|
|
1511
|
+
ignoreWarnings.push(_types4.BasicTxWarningCode.NOT_ENOUGH_EXISTENTIAL_DEPOSIT);
|
|
1489
1512
|
}
|
|
1490
1513
|
if (transferBounceable) {
|
|
1491
|
-
ignoreWarnings.push(
|
|
1514
|
+
ignoreWarnings.push(_types4.BasicTxWarningCode.IS_BOUNCEABLE_ADDRESS);
|
|
1492
1515
|
}
|
|
1493
1516
|
return this.#koniState.transactionService.handleTransaction({
|
|
1494
1517
|
errors,
|
|
@@ -1668,7 +1691,7 @@ class KoniExtension {
|
|
|
1668
1691
|
if (isSubstrateXcm) {
|
|
1669
1692
|
const isDryRunSuccess = await (0, _xcm.dryRunXcmExtrinsicV2)(params);
|
|
1670
1693
|
if (!isDryRunSuccess) {
|
|
1671
|
-
inputTransaction.errors.push(new _TransactionError.TransactionError(
|
|
1694
|
+
inputTransaction.errors.push(new _TransactionError.TransactionError(_types4.BasicTxErrorType.UNABLE_TO_SEND, 'Unable to perform transaction. Select another token or destination chain and try again'));
|
|
1672
1695
|
}
|
|
1673
1696
|
}
|
|
1674
1697
|
};
|
|
@@ -1691,10 +1714,10 @@ class KoniExtension {
|
|
|
1691
1714
|
}
|
|
1692
1715
|
const ignoreWarnings = [];
|
|
1693
1716
|
if (transferAll) {
|
|
1694
|
-
ignoreWarnings.push(
|
|
1717
|
+
ignoreWarnings.push(_types4.BasicTxWarningCode.NOT_ENOUGH_EXISTENTIAL_DEPOSIT);
|
|
1695
1718
|
}
|
|
1696
1719
|
if (transferBounceable) {
|
|
1697
|
-
ignoreWarnings.push(
|
|
1720
|
+
ignoreWarnings.push(_types4.BasicTxWarningCode.IS_BOUNCEABLE_ADDRESS);
|
|
1698
1721
|
}
|
|
1699
1722
|
return await this.#koniState.transactionService.handleTransaction({
|
|
1700
1723
|
url: _constants3.EXTENSION_REQUEST_URL,
|
|
@@ -2730,7 +2753,7 @@ class KoniExtension {
|
|
|
2730
2753
|
chainName: chainInfo.name
|
|
2731
2754
|
}
|
|
2732
2755
|
});
|
|
2733
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
2756
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.StakingTxErrorType.CAN_NOT_GET_METADATA, errMessage)]);
|
|
2734
2757
|
}
|
|
2735
2758
|
const bondingValidation = (0, _bonding.validateBondingCondition)(chainInfo, amount, selectedValidators, address, chainStakingMetadata, nominatorMetadata);
|
|
2736
2759
|
if (!amount || !selectedValidators || bondingValidation.length > 0) {
|
|
@@ -2758,7 +2781,7 @@ class KoniExtension {
|
|
|
2758
2781
|
} = inputData;
|
|
2759
2782
|
const chainStakingMetadata = await this.#koniState.getStakingMetadataByChain(chain, _KoniTypes.StakingType.NOMINATED);
|
|
2760
2783
|
if (!chainStakingMetadata || !nominatorMetadata) {
|
|
2761
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
2784
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.BasicTxErrorType.INTERNAL_ERROR)]);
|
|
2762
2785
|
}
|
|
2763
2786
|
const unbondingValidation = (0, _bonding.validateUnbondingCondition)(nominatorMetadata, amount, chain, chainStakingMetadata, validatorAddress);
|
|
2764
2787
|
if (!amount || unbondingValidation.length > 0) {
|
|
@@ -2783,10 +2806,10 @@ class KoniExtension {
|
|
|
2783
2806
|
} = inputData;
|
|
2784
2807
|
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
2785
2808
|
if (!address || !poolHandler) {
|
|
2786
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
2809
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.BasicTxErrorType.INVALID_PARAMS)]);
|
|
2787
2810
|
}
|
|
2788
2811
|
const chain = poolHandler.chain;
|
|
2789
|
-
const stakingType = poolHandler.type ===
|
|
2812
|
+
const stakingType = poolHandler.type === _types4.YieldPoolType.NOMINATION_POOL ? _KoniTypes.StakingType.POOLED : _KoniTypes.StakingType.NOMINATED;
|
|
2790
2813
|
const substrateApi = this.#koniState.getSubstrateApi(chain);
|
|
2791
2814
|
const extrinsic = await (0, _bonding.getClaimRewardExtrinsic)(substrateApi, chain, address, stakingType, bondReward);
|
|
2792
2815
|
return await this.#koniState.transactionService.handleTransaction({
|
|
@@ -2807,7 +2830,7 @@ class KoniExtension {
|
|
|
2807
2830
|
} = inputData;
|
|
2808
2831
|
const chain = (_this$koniState$earni = this.#koniState.earningService.getPoolHandler(slug)) === null || _this$koniState$earni === void 0 ? void 0 : _this$koniState$earni.chain;
|
|
2809
2832
|
if (!chain || !selectedUnstaking) {
|
|
2810
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
2833
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.BasicTxErrorType.INVALID_PARAMS)]);
|
|
2811
2834
|
}
|
|
2812
2835
|
const substrateApi = this.#koniState.getSubstrateApi(chain);
|
|
2813
2836
|
// @ts-ignore
|
|
@@ -2837,7 +2860,7 @@ class KoniExtension {
|
|
|
2837
2860
|
chainName: chainInfo.name
|
|
2838
2861
|
}
|
|
2839
2862
|
});
|
|
2840
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
2863
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.StakingTxErrorType.CAN_NOT_GET_METADATA, errMessage)]);
|
|
2841
2864
|
}
|
|
2842
2865
|
const bondingValidation = (0, _relayChain.validatePoolBondingCondition)(chainInfo, amount, selectedPool, address, chainStakingMetadata, nominatorMetadata);
|
|
2843
2866
|
if (!amount || bondingValidation.length > 0) {
|
|
@@ -2869,7 +2892,7 @@ class KoniExtension {
|
|
|
2869
2892
|
chainName: chainInfo === null || chainInfo === void 0 ? void 0 : chainInfo.name
|
|
2870
2893
|
}
|
|
2871
2894
|
});
|
|
2872
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
2895
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.StakingTxErrorType.CAN_NOT_GET_METADATA, errMessage)]);
|
|
2873
2896
|
}
|
|
2874
2897
|
const unbondingValidation = (0, _relayChain.validateRelayUnbondingCondition)(amount, chainStakingMetadata, nominatorMetadata);
|
|
2875
2898
|
if (!amount || unbondingValidation.length > 0) {
|
|
@@ -2906,7 +2929,7 @@ class KoniExtension {
|
|
|
2906
2929
|
networkKey
|
|
2907
2930
|
} = inputData;
|
|
2908
2931
|
if (!address) {
|
|
2909
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
2932
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.BasicTxErrorType.INVALID_PARAMS)]);
|
|
2910
2933
|
}
|
|
2911
2934
|
const dotSamaApi = this.#koniState.getSubstrateApi(networkKey);
|
|
2912
2935
|
const chainInfo = this.#koniState.getChainInfo(networkKey);
|
|
@@ -3089,7 +3112,7 @@ class KoniExtension {
|
|
|
3089
3112
|
const {
|
|
3090
3113
|
payload
|
|
3091
3114
|
} = request;
|
|
3092
|
-
let registry = new
|
|
3115
|
+
let registry = new _types6.TypeRegistry();
|
|
3093
3116
|
if (isJsonPayload(payload)) {
|
|
3094
3117
|
const [, chainInfo] = this.#koniState.findNetworkKeyByGenesisHash(payload.genesisHash);
|
|
3095
3118
|
const registries = await Promise.all([(0, _utils11.setupApiRegistry)(chainInfo, this.#koniState), (0, _utils11.setupDatabaseRegistry)(chainInfo, payload, this.#koniState), (0, _utils11.setupDappRegistry)(payload, this.#koniState)]);
|
|
@@ -3534,7 +3557,7 @@ class KoniExtension {
|
|
|
3534
3557
|
const {
|
|
3535
3558
|
connectionStatus
|
|
3536
3559
|
} = this.#koniState.chainService.getChainStatusByKey(_constants2._DEFAULT_MANTA_ZK_CHAIN);
|
|
3537
|
-
if (connectionStatus !==
|
|
3560
|
+
if (connectionStatus !== _types3._ChainConnectionStatus.CONNECTED) {
|
|
3538
3561
|
// TODO: do better
|
|
3539
3562
|
await timeout();
|
|
3540
3563
|
}
|
|
@@ -3758,10 +3781,10 @@ class KoniExtension {
|
|
|
3758
3781
|
if (!data) {
|
|
3759
3782
|
if (step) {
|
|
3760
3783
|
this.#koniState.transactionService.updateProcessStepStatus(step, {
|
|
3761
|
-
status:
|
|
3784
|
+
status: _types4.StepStatus.FAILED
|
|
3762
3785
|
});
|
|
3763
3786
|
}
|
|
3764
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
3787
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.BasicTxErrorType.INTERNAL_ERROR)]);
|
|
3765
3788
|
}
|
|
3766
3789
|
const isLastStep = inputData.currentStep + 1 === path.steps.length;
|
|
3767
3790
|
const yieldValidation = await this.#koniState.earningService.validateYieldJoin({
|
|
@@ -3772,7 +3795,7 @@ class KoniExtension {
|
|
|
3772
3795
|
if (yieldValidation.length > 0) {
|
|
3773
3796
|
if (step) {
|
|
3774
3797
|
this.#koniState.transactionService.updateProcessStepStatus(step, {
|
|
3775
|
-
status:
|
|
3798
|
+
status: _types4.StepStatus.FAILED
|
|
3776
3799
|
});
|
|
3777
3800
|
}
|
|
3778
3801
|
return this.#koniState.transactionService.generateBeforeHandleResponseErrors(yieldValidation);
|
|
@@ -3783,7 +3806,7 @@ class KoniExtension {
|
|
|
3783
3806
|
} catch (e) {
|
|
3784
3807
|
if (step) {
|
|
3785
3808
|
this.#koniState.transactionService.updateProcessStepStatus(step, {
|
|
3786
|
-
status:
|
|
3809
|
+
status: _types4.StepStatus.FAILED
|
|
3787
3810
|
});
|
|
3788
3811
|
}
|
|
3789
3812
|
throw e;
|
|
@@ -3812,7 +3835,7 @@ class KoniExtension {
|
|
|
3812
3835
|
feeComponent: [{
|
|
3813
3836
|
amount: fee.amount || '0',
|
|
3814
3837
|
// TODO: Add fee type
|
|
3815
|
-
feeType:
|
|
3838
|
+
feeType: _types4.SwapFeeType.NETWORK_FEE,
|
|
3816
3839
|
tokenSlug: fee.slug
|
|
3817
3840
|
}],
|
|
3818
3841
|
defaultFeeToken: fee.slug,
|
|
@@ -3823,7 +3846,7 @@ class KoniExtension {
|
|
|
3823
3846
|
const lastStep = path.steps[path.steps.length - 1];
|
|
3824
3847
|
const combineInfo = {
|
|
3825
3848
|
// In real case, only `YIELD` have multiple steps
|
|
3826
|
-
type: lastStep.type ===
|
|
3849
|
+
type: lastStep.type === _types4.YieldStepType.JOIN_NOMINATION_POOL ? _types4.EarningProcessType.NOMINATION_POOL : lastStep.type === _types4.YieldStepType.NOMINATE ? _types4.EarningProcessType.NATIVE_STAKING : _types4.EarningProcessType.YIELD,
|
|
3827
3850
|
data,
|
|
3828
3851
|
brief: {
|
|
3829
3852
|
amount: data.amount,
|
|
@@ -3835,16 +3858,16 @@ class KoniExtension {
|
|
|
3835
3858
|
await this.#koniState.transactionService.createProcessIfNeed({
|
|
3836
3859
|
id: processId,
|
|
3837
3860
|
address: (0, _utils8.reformatAddress)(address),
|
|
3838
|
-
type:
|
|
3861
|
+
type: _types4.ProcessType.EARNING,
|
|
3839
3862
|
combineInfo,
|
|
3840
3863
|
currentStepId: step.stepId,
|
|
3841
3864
|
steps: path.steps.map((step, index) => {
|
|
3842
3865
|
const fee = convertFee(path.totalFee[index]);
|
|
3843
|
-
if (![
|
|
3866
|
+
if (![_types4.YieldStepType.XCM, _types4.YieldStepType.DEFAULT, _types4.YieldStepType.TOKEN_APPROVAL].includes(step.type)) {
|
|
3844
3867
|
const metadata = data;
|
|
3845
3868
|
return {
|
|
3846
3869
|
...step,
|
|
3847
|
-
status:
|
|
3870
|
+
status: _types4.StepStatus.QUEUED,
|
|
3848
3871
|
fee,
|
|
3849
3872
|
metadata: metadata
|
|
3850
3873
|
};
|
|
@@ -3852,10 +3875,10 @@ class KoniExtension {
|
|
|
3852
3875
|
return {
|
|
3853
3876
|
...step,
|
|
3854
3877
|
fee,
|
|
3855
|
-
status:
|
|
3878
|
+
status: _types4.StepStatus.QUEUED
|
|
3856
3879
|
};
|
|
3857
|
-
}).filter(step => step.type !==
|
|
3858
|
-
status:
|
|
3880
|
+
}).filter(step => step.type !== _types4.YieldStepType.DEFAULT),
|
|
3881
|
+
status: _types4.StepStatus.QUEUED
|
|
3859
3882
|
});
|
|
3860
3883
|
}
|
|
3861
3884
|
}
|
|
@@ -3975,7 +3998,7 @@ class KoniExtension {
|
|
|
3975
3998
|
} = params;
|
|
3976
3999
|
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
3977
4000
|
if (!poolHandler) {
|
|
3978
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
4001
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.BasicTxErrorType.INVALID_PARAMS)]);
|
|
3979
4002
|
}
|
|
3980
4003
|
const extrinsic = await this.#koniState.earningService.handleYieldWithdraw(params);
|
|
3981
4004
|
return await this.#koniState.transactionService.handleTransaction({
|
|
@@ -3995,7 +4018,7 @@ class KoniExtension {
|
|
|
3995
4018
|
} = params;
|
|
3996
4019
|
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
3997
4020
|
if (!poolHandler || !selectedUnstaking) {
|
|
3998
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
4021
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.BasicTxErrorType.INVALID_PARAMS)]);
|
|
3999
4022
|
}
|
|
4000
4023
|
const chain = poolHandler.chain;
|
|
4001
4024
|
const extrinsic = await this.#koniState.earningService.handleYieldCancelUnstake(params);
|
|
@@ -4015,7 +4038,7 @@ class KoniExtension {
|
|
|
4015
4038
|
} = params;
|
|
4016
4039
|
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
4017
4040
|
if (!address || !poolHandler) {
|
|
4018
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
4041
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.BasicTxErrorType.INVALID_PARAMS)]);
|
|
4019
4042
|
}
|
|
4020
4043
|
const extrinsic = await this.#koniState.earningService.handleYieldClaimReward(params);
|
|
4021
4044
|
return await this.#koniState.transactionService.handleTransaction({
|
|
@@ -4033,7 +4056,7 @@ class KoniExtension {
|
|
|
4033
4056
|
} = params;
|
|
4034
4057
|
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
4035
4058
|
if (!poolHandler) {
|
|
4036
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
4059
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.BasicTxErrorType.INVALID_PARAMS)]);
|
|
4037
4060
|
}
|
|
4038
4061
|
const slippage = await this.#koniState.earningService.yieldGetEarningSlippage(params);
|
|
4039
4062
|
return slippage;
|
|
@@ -4258,10 +4281,10 @@ class KoniExtension {
|
|
|
4258
4281
|
if (!quote || !address || !process) {
|
|
4259
4282
|
if (step) {
|
|
4260
4283
|
this.#koniState.transactionService.updateProcessStepStatus(step, {
|
|
4261
|
-
status:
|
|
4284
|
+
status: _types4.StepStatus.FAILED
|
|
4262
4285
|
});
|
|
4263
4286
|
}
|
|
4264
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(
|
|
4287
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.BasicTxErrorType.INTERNAL_ERROR)]);
|
|
4265
4288
|
}
|
|
4266
4289
|
const isLastStep = inputData.currentStep + 1 === process.steps.length;
|
|
4267
4290
|
const swapValidations = await this.#koniState.swapService.validateSwapProcessV2({
|
|
@@ -4274,7 +4297,7 @@ class KoniExtension {
|
|
|
4274
4297
|
if (swapValidations.length > 0) {
|
|
4275
4298
|
if (step) {
|
|
4276
4299
|
this.#koniState.transactionService.updateProcessStepStatus(step, {
|
|
4277
|
-
status:
|
|
4300
|
+
status: _types4.StepStatus.FAILED
|
|
4278
4301
|
});
|
|
4279
4302
|
}
|
|
4280
4303
|
return this.#koniState.transactionService.generateBeforeHandleResponseErrors(swapValidations);
|
|
@@ -4285,7 +4308,7 @@ class KoniExtension {
|
|
|
4285
4308
|
} catch (e) {
|
|
4286
4309
|
if (step) {
|
|
4287
4310
|
this.#koniState.transactionService.updateProcessStepStatus(step, {
|
|
4288
|
-
status:
|
|
4311
|
+
status: _types4.StepStatus.FAILED
|
|
4289
4312
|
});
|
|
4290
4313
|
}
|
|
4291
4314
|
console.log('Error handling process step', e);
|
|
@@ -4321,7 +4344,7 @@ class KoniExtension {
|
|
|
4321
4344
|
await this.#koniState.transactionService.createProcessIfNeed({
|
|
4322
4345
|
id: processId,
|
|
4323
4346
|
address: (0, _utils8.reformatAddress)(address),
|
|
4324
|
-
type:
|
|
4347
|
+
type: _types4.ProcessType.SWAP,
|
|
4325
4348
|
currentStepId: step.stepId,
|
|
4326
4349
|
combineInfo,
|
|
4327
4350
|
steps: inputData.process.steps.map((step, index) => {
|
|
@@ -4329,10 +4352,10 @@ class KoniExtension {
|
|
|
4329
4352
|
return {
|
|
4330
4353
|
...step,
|
|
4331
4354
|
fee,
|
|
4332
|
-
status:
|
|
4355
|
+
status: _types4.StepStatus.QUEUED
|
|
4333
4356
|
};
|
|
4334
|
-
}).filter(step => step.type !==
|
|
4335
|
-
status:
|
|
4357
|
+
}).filter(step => step.type !== _types4.CommonStepType.DEFAULT),
|
|
4358
|
+
status: _types4.StepStatus.QUEUED
|
|
4336
4359
|
});
|
|
4337
4360
|
}
|
|
4338
4361
|
}
|
|
@@ -4529,7 +4552,7 @@ class KoniExtension {
|
|
|
4529
4552
|
throw new Error('Pair not found');
|
|
4530
4553
|
}
|
|
4531
4554
|
const signMode = (0, _utils8.getAccountSignMode)(address, pair.meta);
|
|
4532
|
-
if (signMode !==
|
|
4555
|
+
if (signMode !== _types4.AccountSignMode.PASSWORD) {
|
|
4533
4556
|
throw new Error('Account can not use this feature');
|
|
4534
4557
|
}
|
|
4535
4558
|
const setting = await new Promise(resolve => this.#koniState.settingService.getSettings(resolve));
|
|
@@ -4537,16 +4560,16 @@ class KoniExtension {
|
|
|
4537
4560
|
throw new Error('Wallet not enable this feature');
|
|
4538
4561
|
}
|
|
4539
4562
|
switch (type) {
|
|
4540
|
-
case
|
|
4563
|
+
case _types4.ProcessType.EARNING:
|
|
4541
4564
|
|
|
4542
4565
|
// eslint-disable-next-line no-fallthrough
|
|
4543
|
-
case
|
|
4566
|
+
case _types4.ProcessType.SWAP:
|
|
4544
4567
|
{
|
|
4545
4568
|
const currentStep = requestData.currentStep;
|
|
4546
4569
|
let stepNums;
|
|
4547
4570
|
let submitData;
|
|
4548
4571
|
let waitXcmData;
|
|
4549
|
-
if (type ===
|
|
4572
|
+
if (type === _types4.ProcessType.EARNING) {
|
|
4550
4573
|
const data = requestData;
|
|
4551
4574
|
const poolHandler = this.#koniState.earningService.getPoolHandler(data.data.slug);
|
|
4552
4575
|
if (poolHandler) {
|
|
@@ -39,6 +39,7 @@ function transformAccountsV2(accounts) {
|
|
|
39
39
|
let anyType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
40
40
|
let authInfo = arguments.length > 2 ? arguments[2] : undefined;
|
|
41
41
|
let accountAuthTypes = arguments.length > 3 ? arguments[3] : undefined;
|
|
42
|
+
let isSubstrateConnector = arguments.length > 4 ? arguments[4] : undefined;
|
|
42
43
|
const accountSelected = authInfo ? authInfo.isAllowed ? Object.keys(authInfo.isAllowedMap).filter(address => authInfo.isAllowedMap[address]) : [] : [];
|
|
43
44
|
const authTypeFilter = _ref => {
|
|
44
45
|
let {
|
|
@@ -68,6 +69,12 @@ function transformAccountsV2(accounts) {
|
|
|
68
69
|
if (type === 'cardano' && json.meta.isReadOnly) {
|
|
69
70
|
return false;
|
|
70
71
|
}
|
|
72
|
+
const canConnectSubstrateEcdsa = (authInfo === null || authInfo === void 0 ? void 0 : authInfo.canConnectSubstrateEcdsa) && isSubstrateConnector;
|
|
73
|
+
|
|
74
|
+
// If the dApp has not connected to the Substrate type yet, we do not return Substrate ECDSA accounts.
|
|
75
|
+
if (type === 'ethereum' && json.meta.isSubstrateECDSA && !canConnectSubstrateEcdsa) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
71
78
|
return true;
|
|
72
79
|
} else {
|
|
73
80
|
return true;
|
|
@@ -297,7 +304,8 @@ class KoniTabs {
|
|
|
297
304
|
async accountsListV2(url, _ref7) {
|
|
298
305
|
let {
|
|
299
306
|
accountAuthType,
|
|
300
|
-
anyType
|
|
307
|
+
anyType,
|
|
308
|
+
isSubstrateConnector
|
|
301
309
|
} = _ref7;
|
|
302
310
|
const authInfo = await this.getAuthInfo(url);
|
|
303
311
|
const accountAuthTypes = [];
|
|
@@ -317,7 +325,7 @@ class KoniTabs {
|
|
|
317
325
|
accountAuthTypes.push('cardano');
|
|
318
326
|
}
|
|
319
327
|
}
|
|
320
|
-
return transformAccountsV2(this.#koniState.keyringService.context.pairs, anyType, authInfo, accountAuthTypes);
|
|
328
|
+
return transformAccountsV2(this.#koniState.keyringService.context.pairs, anyType, authInfo, accountAuthTypes, isSubstrateConnector);
|
|
321
329
|
}
|
|
322
330
|
|
|
323
331
|
// TODO: Update logic
|
|
@@ -342,7 +350,7 @@ class KoniTabs {
|
|
|
342
350
|
}
|
|
343
351
|
}
|
|
344
352
|
const accounts = this.#koniState.keyringService.context.pairs;
|
|
345
|
-
return cb(transformAccountsV2(accounts, false, authInfo, accountAuthTypes));
|
|
353
|
+
return cb(transformAccountsV2(accounts, false, authInfo, accountAuthTypes, true));
|
|
346
354
|
}).catch(console.error);
|
|
347
355
|
}),
|
|
348
356
|
url
|