@subwallet/extension-base 1.3.71-0 → 1.3.73-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/background/KoniTypes.d.ts +13 -2
  2. package/background/KoniTypes.js +3 -1
  3. package/cjs/background/KoniTypes.js +3 -1
  4. package/cjs/core/logic-validation/recipientAddress.js +1 -1
  5. package/cjs/core/logic-validation/transfer.js +33 -10
  6. package/cjs/core/types.js +1 -0
  7. package/cjs/koni/background/handlers/Extension.js +81 -10
  8. package/cjs/koni/background/handlers/State.js +2 -4
  9. package/cjs/koni/background/subscription.js +2 -22
  10. package/cjs/packageInfo.js +1 -1
  11. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +46 -2
  12. package/cjs/services/balance-service/transfer/token.js +13 -35
  13. package/cjs/services/balance-service/transfer/xcm/index.js +3 -8
  14. package/cjs/services/balance-service/transfer/xcm/utils.js +1 -1
  15. package/cjs/services/chain-service/constants.js +6 -5
  16. package/cjs/services/chain-service/index.js +1 -0
  17. package/cjs/services/chain-service/utils/patch.js +1 -1
  18. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +17 -2
  19. package/cjs/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +55 -0
  20. package/cjs/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +41 -0
  21. package/cjs/services/migration-service/scripts/index.js +17 -13
  22. package/cjs/services/substrate-proxy-service/constant.js +26 -0
  23. package/cjs/services/substrate-proxy-service/index.js +170 -0
  24. package/cjs/services/transaction-service/index.js +78 -10
  25. package/cjs/services/transaction-service/utils.js +8 -5
  26. package/cjs/types/index.js +11 -0
  27. package/cjs/types/substrateProxyAccount/actions/index.js +1 -0
  28. package/cjs/types/substrateProxyAccount/index.js +16 -0
  29. package/cjs/utils/account/transform.js +5 -4
  30. package/cjs/utils/fee/transfer.js +4 -2
  31. package/core/logic-validation/recipientAddress.js +1 -1
  32. package/core/logic-validation/transfer.d.ts +3 -3
  33. package/core/logic-validation/transfer.js +34 -11
  34. package/core/types.d.ts +2 -1
  35. package/core/types.js +1 -0
  36. package/koni/background/handlers/Extension.d.ts +3 -0
  37. package/koni/background/handlers/Extension.js +81 -10
  38. package/koni/background/handlers/State.d.ts +2 -1
  39. package/koni/background/handlers/State.js +2 -4
  40. package/koni/background/subscription.js +2 -22
  41. package/package.json +37 -7
  42. package/packageInfo.js +1 -1
  43. package/services/balance-service/helpers/subscribe/substrate/index.js +47 -3
  44. package/services/balance-service/transfer/token.d.ts +0 -4
  45. package/services/balance-service/transfer/token.js +12 -33
  46. package/services/balance-service/transfer/xcm/index.js +3 -8
  47. package/services/balance-service/transfer/xcm/utils.d.ts +0 -2
  48. package/services/balance-service/transfer/xcm/utils.js +1 -1
  49. package/services/chain-service/constants.d.ts +1 -1
  50. package/services/chain-service/constants.js +4 -4
  51. package/services/chain-service/index.js +1 -0
  52. package/services/chain-service/utils/patch.d.ts +1 -1
  53. package/services/chain-service/utils/patch.js +1 -1
  54. package/services/earning-service/handlers/native-staking/para-chain.js +17 -2
  55. package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.d.ts +4 -0
  56. package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +46 -0
  57. package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.d.ts +4 -0
  58. package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +33 -0
  59. package/services/migration-service/scripts/index.js +8 -4
  60. package/services/open-gov/interface.d.ts +4 -3
  61. package/services/substrate-proxy-service/constant.d.ts +3 -0
  62. package/services/substrate-proxy-service/constant.js +19 -0
  63. package/services/substrate-proxy-service/index.d.ts +13 -0
  64. package/services/substrate-proxy-service/index.js +159 -0
  65. package/services/transaction-service/index.js +79 -11
  66. package/services/transaction-service/types.d.ts +2 -2
  67. package/services/transaction-service/utils.js +8 -5
  68. package/types/balance/transfer.d.ts +1 -0
  69. package/types/index.d.ts +1 -0
  70. package/types/index.js +1 -0
  71. package/types/substrateProxyAccount/actions/index.d.ts +17 -0
  72. package/types/substrateProxyAccount/actions/index.js +1 -0
  73. package/types/substrateProxyAccount/index.d.ts +23 -0
  74. package/types/substrateProxyAccount/index.js +8 -0
  75. package/types/transaction/request.d.ts +1 -0
  76. package/types/yield/actions/join/submit.d.ts +1 -1
  77. package/types/yield/info/pallet.d.ts +1 -1
  78. package/utils/account/transform.js +5 -4
  79. package/utils/fee/transfer.js +4 -2
@@ -4,9 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.getTransferMockTxFee = exports.getAccountNetuidTokenInfo = exports.createSubstrateExtrinsic = void 0;
7
+ exports.getTransferMockTxFee = exports.createSubstrateExtrinsic = void 0;
8
8
  var _api = require("@gear-js/api");
9
9
  var _types = require("@subwallet/chain-list/types");
10
+ var _xcmParser = require("@subwallet/extension-base/core/substrate/xcm-parser");
10
11
  var _wasm = require("@subwallet/extension-base/koni/api/contract-handler/wasm");
11
12
  var _utils = require("@subwallet/extension-base/koni/api/contract-handler/wasm/utils");
12
13
  var _utils2 = require("@subwallet/extension-base/services/balance-service/helpers/subscribe/ton/utils");
@@ -24,7 +25,7 @@ var _utilCrypto = require("@polkadot/util-crypto");
24
25
  // SPDX-License-Identifier: Apache-2.0
25
26
 
26
27
  const createSubstrateExtrinsic = async _ref => {
27
- var _tokenInfo$metadata, _tokenInfo$metadata2;
28
+ var _tokenInfo$metadata;
28
29
  let {
29
30
  from,
30
31
  networkKey,
@@ -102,7 +103,15 @@ const createSubstrateExtrinsic = async _ref => {
102
103
  } else if (_constants._TRANSFER_CHAIN_GROUP.bitcountry.includes(networkKey) && !(0, _utils3._isNativeToken)(tokenInfo)) {
103
104
  transfer = api.tx.currencies.transfer(to, (0, _utils3._getTokenOnChainInfo)(tokenInfo), value);
104
105
  } else if (_constants._TRANSFER_CHAIN_GROUP.statemine.includes(networkKey) && !(0, _utils3._isNativeToken)(tokenInfo)) {
105
- transfer = api.tx.assets.transfer((0, _utils3._getTokenOnChainAssetId)(tokenInfo), to, value);
106
+ if (_constants.USE_MULTILOCATION_INDEX.includes(networkKey)) {
107
+ const version = ['statemint', 'statemine', 'westend_assethub'].includes(networkKey) ? 4 : 3;
108
+ const multilocationIndex = (0, _xcmParser._adaptX1Interior)((0, _utils3._getXcmAssetMultilocation)(tokenInfo), version);
109
+
110
+ // @ts-ignore
111
+ transfer = api.tx.assets.transfer(multilocationIndex, to, value);
112
+ } else {
113
+ transfer = api.tx.assets.transfer((0, _utils3._getTokenOnChainAssetId)(tokenInfo), to, value);
114
+ }
106
115
  } else if (_constants._TRANSFER_CHAIN_GROUP.sora_substrate.includes(networkKey) && isTxAssetsSupported) {
107
116
  transfer = api.tx.assets.transfer((0, _utils3._getTokenOnChainAssetId)(tokenInfo), to, value);
108
117
  } else if (isTxBalancesSupported && (0, _utils3._isNativeToken)(tokenInfo)) {
@@ -120,18 +129,6 @@ const createSubstrateExtrinsic = async _ref => {
120
129
  }
121
130
  } else if (_constants._TRANSFER_CHAIN_GROUP.truth.includes(networkKey)) {
122
131
  transfer = api.tx.assetManager.transfer(to, (0, _utils3._getTokenOnChainInfo)(tokenInfo), value);
123
- } else if (_constants._TRANSFER_CHAIN_GROUP.bittensor.includes(networkKey) && (_tokenInfo$metadata2 = tokenInfo.metadata) !== null && _tokenInfo$metadata2 !== void 0 && _tokenInfo$metadata2.netuid) {
124
- var _tokenInfo$metadata3;
125
- const {
126
- accountHotKey,
127
- isEnableTransferSubnet
128
- } = await getAccountNetuidTokenInfo(from, tokenInfo, substrateApi);
129
- const tokenNetuid = (_tokenInfo$metadata3 = tokenInfo.metadata) === null || _tokenInfo$metadata3 === void 0 ? void 0 : _tokenInfo$metadata3.netuid;
130
- if (isEnableTransferSubnet && accountHotKey) {
131
- transfer = api.tx.subtensorModule.transferStake(from, accountHotKey, tokenNetuid, tokenNetuid, value);
132
- } else {
133
- return [null, value];
134
- }
135
132
  }
136
133
  return [transfer, transferAmount || value];
137
134
  };
@@ -190,23 +187,4 @@ const getTransferMockTxFee = async (address, chainInfo, tokenInfo, api) => {
190
187
  return new _bignumber.default(0);
191
188
  }
192
189
  };
193
- exports.getTransferMockTxFee = getTransferMockTxFee;
194
- const getAccountNetuidTokenInfo = async (address, tokenInfo, substrateApi) => {
195
- var _tokenInfo$metadata4;
196
- const tokenNetuid = (_tokenInfo$metadata4 = tokenInfo.metadata) === null || _tokenInfo$metadata4 === void 0 ? void 0 : _tokenInfo$metadata4.netuid;
197
- if (!tokenNetuid) {
198
- return {
199
- isEnableTransferSubnet: false,
200
- accountHotKey: undefined
201
- };
202
- }
203
- const [isTransferToggle, rawStakeInfoForColdKey] = await Promise.all([substrateApi.api.query.subtensorModule.transferToggle(tokenNetuid), substrateApi.api.call.stakeInfoRuntimeApi.getStakeInfoForColdkey(address)]);
204
- const isEnableTransferSubnet = isTransferToggle.toPrimitive();
205
- const taoStakeInfos = rawStakeInfoForColdKey.toPrimitive();
206
- const accountHotKey = taoStakeInfos.find(value => value.netuid === tokenNetuid);
207
- return {
208
- isEnableTransferSubnet,
209
- accountHotKey: accountHotKey === null || accountHotKey === void 0 ? void 0 : accountHotKey.hotkey
210
- };
211
- };
212
- exports.getAccountNetuidTokenInfo = getAccountNetuidTokenInfo;
190
+ exports.getTransferMockTxFee = getTransferMockTxFee;
@@ -119,8 +119,6 @@ const dryRunXcmExtrinsicV2 = async function (request) {
119
119
  const originDryRunRs = dryRunResult.origin;
120
120
  if (originDryRunRs.success) {
121
121
  const {
122
- assetHub,
123
- bridgeHub,
124
122
  destination,
125
123
  hops
126
124
  } = dryRunResult;
@@ -129,12 +127,9 @@ const dryRunXcmExtrinsicV2 = async function (request) {
129
127
  return false;
130
128
  }
131
129
  }
132
- 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) {
133
- if ((destination === null || destination === void 0 ? void 0 : destination.success) === false) {
134
- // pass dry-run in these cases
135
- return (0, _utils.isChainNotSupportDryRun)(destination.failureReason) || (0, _utils.isChainNotSupportPolkadotApi)(destination.failureReason);
136
- }
137
- return false;
130
+ if ((destination === null || destination === void 0 ? void 0 : destination.success) === false) {
131
+ // pass dry-run in these cases
132
+ return (0, _utils.isChainNotSupportDryRun)(destination.failureReason) || (0, _utils.isChainNotSupportPolkadotApi)(destination.failureReason);
138
133
  }
139
134
  return true;
140
135
  }
@@ -18,7 +18,7 @@ var _util = require("@polkadot/util");
18
18
  // Copyright 2019-2022 @subwallet/extension-base
19
19
  // SPDX-License-Identifier: Apache-2.0
20
20
 
21
- const version = '/v4';
21
+ const version = '/v5';
22
22
  const paraSpellApi = {
23
23
  buildXcm: `${version}/x-transfer`,
24
24
  feeXcm: `${version}/xcm-fee`,
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports._ZK_ASSET_PREFIX = exports._TRANSFER_CHAIN_GROUP = exports._SUBSTRATE_DEFAULT_INFLATION_PARAMS = exports._STAKING_ERA_LENGTH_MAP = exports._PURE_EVM_CHAINS = exports._PREDEFINED_SINGLE_MODES = exports._PARACHAIN_INFLATION_DISTRIBUTION = exports._NFT_CHAIN_GROUP = exports._MANTA_ZK_CHAIN_GROUP = exports._KNOWN_CHAIN_INFLATION_PARAMS = exports._GOVERNANCE_CHAIN_GROUP = exports._EXPECTED_BLOCK_TIME = exports._DEFAULT_MANTA_ZK_CHAIN = exports._DEFAULT_ACTIVE_CHAINS = exports._BTC_SERVICE_TOKEN = exports._BITCOIN_TESTNET_NAME = exports._BITCOIN_TESTNET_CHAIN_SLUG = exports._BITCOIN_NAME = exports._BITCOIN_CHAIN_SLUG = exports._BALANCE_LOCKED_ID_GROUP = exports._BALANCE_CHAIN_GROUP = exports._API_OPTIONS_CHAIN_GROUP = exports.LATEST_CHAIN_DATA_FETCHING_INTERVAL = exports.EVM_REFORMAT_DECIMALS = exports.EVM_PASS_CONNECT_STATUS = exports.API_CONNECT_TIMEOUT = exports.API_AUTO_CONNECT_MS = void 0;
6
+ exports._ZK_ASSET_PREFIX = exports._TRANSFER_CHAIN_GROUP = exports._SUBSTRATE_DEFAULT_INFLATION_PARAMS = exports._STAKING_ERA_LENGTH_MAP = exports._PURE_EVM_CHAINS = exports._PREDEFINED_SINGLE_MODES = exports._PARACHAIN_INFLATION_DISTRIBUTION = exports._NFT_CHAIN_GROUP = exports._MANTA_ZK_CHAIN_GROUP = exports._KNOWN_CHAIN_INFLATION_PARAMS = exports._GOVERNANCE_CHAIN_GROUP = exports._EXPECTED_BLOCK_TIME = exports._DEFAULT_MANTA_ZK_CHAIN = exports._DEFAULT_ACTIVE_CHAINS = exports._BTC_SERVICE_TOKEN = exports._BITCOIN_TESTNET_NAME = exports._BITCOIN_TESTNET_CHAIN_SLUG = exports._BITCOIN_NAME = exports._BITCOIN_CHAIN_SLUG = exports._BALANCE_LOCKED_ID_GROUP = exports._BALANCE_CHAIN_GROUP = exports._API_OPTIONS_CHAIN_GROUP = exports.USE_MULTILOCATION_INDEX = exports.LATEST_CHAIN_DATA_FETCHING_INTERVAL = exports.EVM_REFORMAT_DECIMALS = exports.EVM_PASS_CONNECT_STATUS = exports.API_CONNECT_TIMEOUT = exports.API_AUTO_CONNECT_MS = void 0;
7
7
  var _chainList = require("@subwallet/chain-list");
8
8
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
9
9
  // Copyright 2019-2022 @subwallet/extension-base
@@ -47,7 +47,7 @@ const _BALANCE_CHAIN_GROUP = {
47
47
  genshiro: ['genshiro_testnet', 'genshiro'],
48
48
  equilibrium_parachain: ['equilibrium_parachain'],
49
49
  bifrost: ['bifrost', 'acala', 'karura', 'acala_testnet', 'pioneer', 'bitcountry', 'bifrost_dot', 'hydradx_main', 'hydradx_rococo', 'pendulum', 'amplitude', 'continuum_network', 'truth_network', 'jamton', 'hydradx_hollarnet'],
50
- 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', 'xode', 'paseo_assethub'],
50
+ 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', 'xode', 'paseo_assethub', 'energy_web_x'],
51
51
  kusama: ['kusama', 'kintsugi', 'kintsugi_test', 'interlay', 'acala', 'statemint', 'karura', 'bifrost'],
52
52
  // perhaps there are some runtime updates
53
53
  centrifuge: ['centrifuge'],
@@ -306,17 +306,18 @@ const _TRANSFER_CHAIN_GROUP = {
306
306
  kintsugi: ['kintsugi', 'kintsugi_test', 'interlay', 'mangatax_para'],
307
307
  genshiro: ['genshiro_testnet', 'genshiro', 'equilibrium_parachain'],
308
308
  bitcountry: ['pioneer', 'bitcountry'],
309
- statemine: ['statemint', 'statemine', 'darwinia2', 'astar', 'shiden', 'shibuya', 'parallel', 'liberland', 'liberlandTest', 'dentnet', 'dbcchain', 'westend_assethub', 'chainflip_assethub', 'origintrail', 'xode', 'paseo_assethub'],
309
+ statemine: ['statemint', 'statemine', 'darwinia2', 'astar', 'shiden', 'shibuya', 'parallel', 'liberland', 'liberlandTest', 'dentnet', 'dbcchain', 'westend_assethub', 'chainflip_assethub', 'origintrail', 'xode', 'paseo_assethub', 'energy_web_x'],
310
310
  riochain: ['riochain'],
311
311
  sora_substrate: ['sora_substrate'],
312
312
  avail: ['kate', 'goldberg_testnet'],
313
313
  pendulum: ['pendulum', 'amplitude', 'amplitude_test', 'hydradx_main', 'bifrost', 'bifrost_dot', 'jamton', 'hydradx_hollarnet'],
314
314
  centrifuge: ['centrifuge'],
315
315
  disable_transfer: ['crab', 'pangolin'],
316
- truth: ['truth_network'],
317
- bittensor: ['bittensor']
316
+ truth: ['truth_network']
318
317
  };
319
318
  exports._TRANSFER_CHAIN_GROUP = _TRANSFER_CHAIN_GROUP;
319
+ const USE_MULTILOCATION_INDEX = ['energy_web_x'];
320
+ exports.USE_MULTILOCATION_INDEX = USE_MULTILOCATION_INDEX;
320
321
  const _MANTA_ZK_CHAIN_GROUP = ['calamari'];
321
322
  exports._MANTA_ZK_CHAIN_GROUP = _MANTA_ZK_CHAIN_GROUP;
322
323
  const _ZK_ASSET_PREFIX = 'zk';
@@ -1449,6 +1449,7 @@ class ChainService {
1449
1449
  relaySlug: null,
1450
1450
  hasNativeNft: false,
1451
1451
  supportStaking: params.chainSpec.paraId === null,
1452
+ supportProxy: false,
1452
1453
  supportSmartContract: null
1453
1454
  };
1454
1455
  } else if (params.chainSpec.evmChainId !== null) {
@@ -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.122'; // update this when build chain-list
15
+ const ChainListVersion = '0.2.123'; // update this when build chain-list
16
16
 
17
17
  // todo: move this interface to chainlist
18
18
  exports.ChainListVersion = ChainListVersion;
@@ -19,6 +19,17 @@ var _basePara = _interopRequireDefault(require("./base-para"));
19
19
  // Copyright 2019-2022 @subwallet/extension-base
20
20
  // SPDX-License-Identifier: Apache-2.0
21
21
 
22
+ async function queryDelegationScheduledRequestsFallback(api, delegator, collator) {
23
+ const query = api.query.parachainStaking.delegationScheduledRequests;
24
+ const key = await query.keys();
25
+ if (key[0].args.length === 1) {
26
+ return await query(collator);
27
+ } else if (key[0].args.length === 2) {
28
+ return await query(collator, delegator);
29
+ } else {
30
+ throw new _TransactionError.TransactionError(_types.BasicTxErrorType.INVALID_PARAMS, 'More args than 2 and 1');
31
+ }
32
+ }
22
33
  function calculateMantaNominatorReturn(decimal, commission, totalActiveCollators, bnAnnualInflation, blocksPreviousRound, bnCollatorExpectedBlocksPerRound, bnCollatorTotalStaked, isCountCommission) {
23
34
  const MIN_DELEGATION = new _bignumber.default(_constants2.MANTA_MIN_DELEGATION);
24
35
  const factor = new _bignumber.default(10).pow(decimal);
@@ -148,7 +159,10 @@ class ParaNativeStakingPoolHandler extends _basePara.default {
148
159
  const roundInfo = _roundInfo.toPrimitive();
149
160
  const currentRound = roundInfo.current;
150
161
  await Promise.all(delegatorState.delegations.map(async delegation => {
151
- const [_delegationScheduledRequests, [identity], _collatorInfo, _currentBlock, _currentTimestamp] = await Promise.all([substrateApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0, _utils2.parseIdentity)(substrateIdentityApi, delegation.owner), substrateApi.api.query.parachainStaking.candidateInfo(delegation.owner), substrateApi.api.query.system.number(), substrateApi.api.query.timestamp.now()]);
162
+ const [_delegationScheduledRequests, [identity], _collatorInfo, _currentBlock, _currentTimestamp] = await Promise.all([queryDelegationScheduledRequestsFallback(substrateApi.api, address,
163
+ // delegator
164
+ delegation.owner // collator
165
+ ), (0, _utils2.parseIdentity)(substrateIdentityApi, delegation.owner), substrateApi.api.query.parachainStaking.candidateInfo(delegation.owner), substrateApi.api.query.system.number(), substrateApi.api.query.timestamp.now()]);
152
166
  const currentBlock = _currentBlock.toPrimitive();
153
167
  const currentTimestamp = _currentTimestamp.toPrimitive();
154
168
  const collatorInfo = _collatorInfo.toPrimitive();
@@ -160,7 +174,8 @@ class ParaNativeStakingPoolHandler extends _basePara.default {
160
174
  // parse unstaking info
161
175
  if (delegationScheduledRequests) {
162
176
  for (const scheduledRequest of delegationScheduledRequests) {
163
- if ((0, _utils3.reformatAddress)(scheduledRequest.delegator, 0) === (0, _utils3.reformatAddress)(address, 0)) {
177
+ const requestDelegator = scheduledRequest.delegator ? scheduledRequest.delegator : address;
178
+ if ((0, _utils3.reformatAddress)(requestDelegator, 0) === (0, _utils3.reformatAddress)(address, 0)) {
164
179
  // add network prefix
165
180
  const isClaimable = scheduledRequest.whenExecutable - parseInt(currentRound) <= 0;
166
181
  const remainingEra = scheduledRequest.whenExecutable - parseInt(currentRound);
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _Base = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/Base"));
9
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
10
+ // SPDX-License-Identifier: Apache-2.0
11
+
12
+ class MigrateTransactionHistoryBySymbol20251223 extends _Base.default {
13
+ async run() {
14
+ const state = this.state;
15
+ try {
16
+ const changeSlugsMap = {
17
+ 'gnosis-NATIVE-xDAI': 'gnosis-NATIVE-XDAI',
18
+ 'stable-ERC20-USD₮0-0x779Ded0c9e1022225f8E0630b35a9b54bE713736': 'stable-ERC20-USDT0-0x779Ded0c9e1022225f8E0630b35a9b54bE713736',
19
+ 'polygon-ERC20-USD₮0-0xc2132D05D31c914a87C6611C10748AEb04B58e8F': 'polygon-ERC20-USDT0-0xc2132D05D31c914a87C6611C10748AEb04B58e8F',
20
+ 'ethereum-ERC20-TON-0x582d872A1B094FC48F5DE31D3B73F2D9bE47def1': 'ethereum-ERC20-TONCOIN-0x582d872A1B094FC48F5DE31D3B73F2D9bE47def1',
21
+ 'moonbeam-ERC20-USDC.axl-0xCa01a1D0993565291051daFF390892518ACfAD3A': 'moonbeam-ERC20-axlUSDC-0xCa01a1D0993565291051daFF390892518ACfAD3A'
22
+ };
23
+ const allTxs = [];
24
+ await Promise.all(Object.entries(changeSlugsMap).map(async (_ref, i) => {
25
+ let [oldSlug, newSlug] = _ref;
26
+ const oldSlugSplit = oldSlug.split('-');
27
+ const oldChainSlug = oldSlugSplit[0];
28
+ const oldSymbolSlug = oldSlugSplit[2];
29
+ const newSlugSplit = newSlug.split('-');
30
+ const newSymbolSlug = newSlugSplit[2];
31
+ const filterTransactions = await state.dbService.stores.transaction.table.where({
32
+ chain: oldChainSlug
33
+ }).and(tx => {
34
+ var _tx$amount;
35
+ return ((_tx$amount = tx.amount) === null || _tx$amount === void 0 ? void 0 : _tx$amount.symbol) === oldSymbolSlug;
36
+ }).toArray();
37
+ if (filterTransactions.length > 0) {
38
+ for (const transaction of filterTransactions) {
39
+ if (transaction.amount && transaction.amount.symbol === oldSymbolSlug) {
40
+ transaction.amount.symbol = newSymbolSlug;
41
+ }
42
+ if (transaction.fee && transaction.fee.symbol === oldSymbolSlug) {
43
+ transaction.fee.symbol = newSymbolSlug;
44
+ }
45
+ }
46
+ }
47
+ allTxs.push(...filterTransactions);
48
+ }));
49
+ await state.dbService.stores.transaction.table.bulkPut(allTxs);
50
+ } catch (e) {
51
+ this.logger.error(e);
52
+ }
53
+ }
54
+ }
55
+ exports.default = MigrateTransactionHistoryBySymbol20251223;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _Base = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/Base"));
9
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
10
+ // SPDX-License-Identifier: Apache-2.0
11
+
12
+ class MigrateAssetSetting20251223 extends _Base.default {
13
+ async run() {
14
+ try {
15
+ const changeSlugsMap = {
16
+ 'gnosis-NATIVE-xDAI': 'gnosis-NATIVE-XDAI',
17
+ 'stable-ERC20-USD₮0-0x779Ded0c9e1022225f8E0630b35a9b54bE713736': 'stable-ERC20-USDT0-0x779Ded0c9e1022225f8E0630b35a9b54bE713736',
18
+ 'polygon-ERC20-USD₮0-0xc2132D05D31c914a87C6611C10748AEb04B58e8F': 'polygon-ERC20-USDT0-0xc2132D05D31c914a87C6611C10748AEb04B58e8F',
19
+ 'ethereum-ERC20-TON-0x582d872A1B094FC48F5DE31D3B73F2D9bE47def1': 'ethereum-ERC20-TONCOIN-0x582d872A1B094FC48F5DE31D3B73F2D9bE47def1',
20
+ 'moonbeam-ERC20-USDC.axl-0xCa01a1D0993565291051daFF390892518ACfAD3A': 'moonbeam-ERC20-axlUSDC-0xCa01a1D0993565291051daFF390892518ACfAD3A'
21
+ };
22
+ const assetSetting = await this.state.chainService.getAssetSettings();
23
+ const migratedAssetSetting = {};
24
+ for (const [oldSlug, newSlug] of Object.entries(changeSlugsMap)) {
25
+ if (Object.keys(assetSetting).includes(oldSlug)) {
26
+ const isVisible = assetSetting[oldSlug].visible;
27
+ migratedAssetSetting[newSlug] = {
28
+ visible: isVisible
29
+ };
30
+ }
31
+ }
32
+ this.state.chainService.setAssetSettings({
33
+ ...assetSetting,
34
+ ...migratedAssetSetting
35
+ });
36
+ } catch (e) {
37
+ console.error(e);
38
+ }
39
+ }
40
+ }
41
+ exports.default = MigrateAssetSetting20251223;
@@ -5,13 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = exports.MYTHOS_MIGRATION_KEY = exports.EVERYTIME = void 0;
8
- var _MigrateAssetSetting = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/databases/MigrateAssetSetting20251107"));
9
- var _MigrateChainPatrol = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateChainPatrol"));
10
- var _MigrateTransactionHistoryBySymbol = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251107"));
11
8
  var _ClearMetadataDatabase = _interopRequireDefault(require("./databases/ClearMetadataDatabase"));
12
9
  var _ClearMetadataForMythos = _interopRequireDefault(require("./databases/ClearMetadataForMythos"));
13
- var _MigrateAssetSetting2 = _interopRequireDefault(require("./databases/MigrateAssetSetting"));
14
- var _MigrateAssetSetting3 = _interopRequireDefault(require("./databases/MigrateAssetSetting20251027"));
10
+ var _MigrateAssetSetting = _interopRequireDefault(require("./databases/MigrateAssetSetting"));
11
+ var _MigrateAssetSetting2 = _interopRequireDefault(require("./databases/MigrateAssetSetting20251027"));
12
+ var _MigrateAssetSetting3 = _interopRequireDefault(require("./databases/MigrateAssetSetting20251107"));
13
+ var _MigrateAssetSetting4 = _interopRequireDefault(require("./databases/MigrateAssetSetting20251223"));
15
14
  var _MigrateEarningVersion = _interopRequireDefault(require("./databases/MigrateEarningVersion"));
16
15
  var _ReloadMetadata = _interopRequireDefault(require("./databases/ReloadMetadata"));
17
16
  var _MigrateLedgerAccount = _interopRequireDefault(require("./keyring/MigrateLedgerAccount"));
@@ -30,14 +29,17 @@ var _DeleteEarningData3 = _interopRequireDefault(require("./DeleteEarningData202
30
29
  var _DisableZeroBalanceTokens = _interopRequireDefault(require("./DisableZeroBalanceTokens"));
31
30
  var _EnableVaraChain = _interopRequireDefault(require("./EnableVaraChain"));
32
31
  var _MigrateAuthUrls = _interopRequireDefault(require("./MigrateAuthUrls"));
32
+ var _MigrateChainPatrol = _interopRequireDefault(require("./MigrateChainPatrol"));
33
33
  var _MigrateImportedToken = _interopRequireDefault(require("./MigrateImportedToken"));
34
34
  var _MigrateNetworkSettings = _interopRequireDefault(require("./MigrateNetworkSettings"));
35
35
  var _MigrateNewUnifiedAccount = _interopRequireDefault(require("./MigrateNewUnifiedAccount"));
36
36
  var _MigrateTokenDecimals = _interopRequireDefault(require("./MigrateTokenDecimals"));
37
37
  var _MigrateTransactionHistory = _interopRequireDefault(require("./MigrateTransactionHistory"));
38
38
  var _MigrateTransactionHistoryBridge = _interopRequireDefault(require("./MigrateTransactionHistoryBridge"));
39
- var _MigrateTransactionHistoryBySymbol2 = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol"));
40
- var _MigrateTransactionHistoryBySymbol3 = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol20251027"));
39
+ var _MigrateTransactionHistoryBySymbol = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol"));
40
+ var _MigrateTransactionHistoryBySymbol2 = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol20251027"));
41
+ var _MigrateTransactionHistoryBySymbol3 = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol20251107"));
42
+ var _MigrateTransactionHistoryBySymbol4 = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol20251223"));
41
43
  var _MigrateWalletReference = _interopRequireDefault(require("./MigrateWalletReference"));
42
44
  var _OptimizeEnableToken = _interopRequireDefault(require("./OptimizeEnableToken"));
43
45
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
@@ -71,8 +73,8 @@ var _default = {
71
73
  '1.1.33-01': _MigrateLedgerAccountV.default,
72
74
  '1.1.41-01': _DeleteChainStaking.default,
73
75
  // '1.1.46-01': AutoEnableSomeTokens,
74
- '1.3.55-01': _MigrateAssetSetting2.default,
75
- '1.3.55-02': _MigrateTransactionHistoryBySymbol2.default,
76
+ '1.3.55-01': _MigrateAssetSetting.default,
77
+ '1.3.55-02': _MigrateTransactionHistoryBySymbol.default,
76
78
  '1.2.69-01': _MigrateRemoveGenesisHash.default,
77
79
  '1.2.13-01': _ReloadMetadata.default,
78
80
  '1.2.32-01': _MigratePairData.default,
@@ -86,10 +88,12 @@ var _default = {
86
88
  '1.3.54-01': _MigrateChainPatrol.default,
87
89
  '1.3.62-01': _DeleteEarningData2.default,
88
90
  '1.3.58-01': _OptimizeEnableToken.default,
89
- '1.3.64-01': _MigrateAssetSetting3.default,
90
- '1.3.64-02': _MigrateTransactionHistoryBySymbol3.default,
91
+ '1.3.64-01': _MigrateAssetSetting2.default,
92
+ '1.3.64-02': _MigrateTransactionHistoryBySymbol2.default,
91
93
  '1.3.65-01': _DeleteEarningData3.default,
92
- '1.3.66-01': _MigrateAssetSetting.default,
93
- '1.3.66-02': _MigrateTransactionHistoryBySymbol.default
94
+ '1.3.66-01': _MigrateAssetSetting3.default,
95
+ '1.3.66-02': _MigrateTransactionHistoryBySymbol3.default,
96
+ '1.3.72-01': _MigrateAssetSetting4.default,
97
+ '1.3.72-02': _MigrateTransactionHistoryBySymbol4.default
94
98
  };
95
99
  exports.default = _default;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.txTypeToSubstrateProxyMap = void 0;
7
+ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
8
+ // Copyright 2019-2022 @subwallet/extension-base
9
+ // SPDX-License-Identifier: Apache-2.0
10
+
11
+ const SUBSTRATE_PROXY_ACCOUNT_EXTRINSIC_GROUPS = {
12
+ STAKING: [_KoniTypes.ExtrinsicType.STAKING_BOND, _KoniTypes.ExtrinsicType.STAKING_UNBOND, _KoniTypes.ExtrinsicType.STAKING_WITHDRAW, _KoniTypes.ExtrinsicType.STAKING_JOIN_POOL, _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL, _KoniTypes.ExtrinsicType.CHANGE_EARNING_VALIDATOR, _KoniTypes.ExtrinsicType.STAKING_CANCEL_UNSTAKE, _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD],
13
+ GOV: [_KoniTypes.ExtrinsicType.GOV_VOTE, _KoniTypes.ExtrinsicType.GOV_UNVOTE, _KoniTypes.ExtrinsicType.GOV_UNLOCK_VOTE],
14
+ PROXY: [
15
+ // only type any can add proxy
16
+ _KoniTypes.ExtrinsicType.REMOVE_SUBSTRATE_PROXY_ACCOUNT]
17
+ };
18
+
19
+ // Map extrinsic type to possible substrate proxy types that can be used
20
+ // The governance proxy type will be support later
21
+ const txTypeToSubstrateProxyMap = {
22
+ ...Object.fromEntries(SUBSTRATE_PROXY_ACCOUNT_EXTRINSIC_GROUPS.STAKING.map(t => [t, ['Staking', 'NonTransfer']])),
23
+ ...Object.fromEntries(SUBSTRATE_PROXY_ACCOUNT_EXTRINSIC_GROUPS.GOV.map(t => [t, ['Governance', 'NonTransfer']])),
24
+ ...Object.fromEntries(SUBSTRATE_PROXY_ACCOUNT_EXTRINSIC_GROUPS.PROXY.map(t => [t, ['NonTransfer']]))
25
+ };
26
+ exports.txTypeToSubstrateProxyMap = txTypeToSubstrateProxyMap;
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
9
+ var _types = require("@subwallet/extension-base/types");
10
+ var _utils = require("@subwallet/extension-base/utils");
11
+ var _bignumber = _interopRequireDefault(require("bignumber.js"));
12
+ var _constant = require("./constant");
13
+ // Copyright 2019-2022 @subwallet/extension-base
14
+ // SPDX-License-Identifier: Apache-2.0
15
+
16
+ class SubstrateProxyAccountService {
17
+ constructor(state) {
18
+ this.state = state;
19
+ }
20
+ getSubstrateApi(chain) {
21
+ return this.state.getSubstrateApi(chain);
22
+ }
23
+
24
+ // Get proxied accounts for a main account
25
+ // Get when view details or perform transaction
26
+ async getSubstrateProxyAccountGroup(request) {
27
+ var _substrateApi$api$con, _substrateApi$api$con2;
28
+ const {
29
+ address,
30
+ chain,
31
+ excludedSubstrateProxyAccounts,
32
+ type
33
+ } = request;
34
+ const substrateApi = this.getSubstrateApi(chain);
35
+ await substrateApi.isReady;
36
+
37
+ // Get proxied accounts from on-chain data
38
+ const result = await substrateApi.api.query.proxy.proxies(address);
39
+ const baseDeposit = ((_substrateApi$api$con = substrateApi.api.consts.proxy.proxyDepositBase) === null || _substrateApi$api$con === void 0 ? void 0 : _substrateApi$api$con.toString()) || '0';
40
+ const factorDeposit = ((_substrateApi$api$con2 = substrateApi.api.consts.proxy.proxyDepositFactor) === null || _substrateApi$api$con2 === void 0 ? void 0 : _substrateApi$api$con2.toString()) || '0';
41
+ const deposit = new _bignumber.default(baseDeposit).plus(factorDeposit);
42
+ const [_substrateProxyAccounts, currentSubstrateProxyDeposit] = result.toPrimitive();
43
+
44
+ // Mapping on-chain data to our defined type
45
+ let substrateProxyAccounts = (_substrateProxyAccounts || []).map(account => {
46
+ const proxyId = this.state.keyringService.context.belongUnifiedAccount(account.delegate) || (0, _utils.reformatAddress)(account.delegate);
47
+ return {
48
+ substrateProxyAddress: account.delegate,
49
+ substrateProxyType: account.proxyType,
50
+ delay: account.delay,
51
+ proxyId
52
+ };
53
+ });
54
+ if (type) {
55
+ const allowedSet = new Set([...(_constant.txTypeToSubstrateProxyMap[type] || []), 'Any']);
56
+ substrateProxyAccounts = substrateProxyAccounts.filter(p => allowedSet.has(p.substrateProxyType));
57
+ }
58
+ if (excludedSubstrateProxyAccounts && excludedSubstrateProxyAccounts.length > 0) {
59
+ substrateProxyAccounts = substrateProxyAccounts.filter(p => {
60
+ return !excludedSubstrateProxyAccounts.some(excluded => excluded.address === p.substrateProxyAddress && excluded.substrateProxyType === p.substrateProxyType);
61
+ });
62
+ }
63
+ const estimateSubstrateProxyDeposit = new _bignumber.default(currentSubstrateProxyDeposit).plus(factorDeposit);
64
+ return {
65
+ substrateProxyAccounts,
66
+ substrateProxyDeposit: new _bignumber.default(currentSubstrateProxyDeposit).gt(0) ? estimateSubstrateProxyDeposit.toFixed() : deposit.toFixed()
67
+ };
68
+ }
69
+
70
+ // Linking proxy account with main account
71
+ async addSubstrateProxyAccounts(data) {
72
+ const {
73
+ address,
74
+ chain,
75
+ substrateProxyAddress,
76
+ substrateProxyType
77
+ } = data;
78
+ if (address === substrateProxyAddress) {
79
+ return Promise.reject(new _TransactionError.TransactionError(_types.BasicTxErrorType.INVALID_PARAMS));
80
+ }
81
+ const substrateApi = this.getSubstrateApi(chain);
82
+ await substrateApi.isReady;
83
+
84
+ // Currently we not support delay time
85
+ return substrateApi.api.tx.proxy.addProxy(substrateProxyAddress, substrateProxyType, 0);
86
+ }
87
+
88
+ // Validate adding proxy account
89
+ async validateAddSubstrateProxyAccount(params, signerSubstrateProxyAddress) {
90
+ var _substrateApi$api$con3, _substrateApi$api$con4, _substrateApi$api$con5, _substrateApi$api$con6;
91
+ const {
92
+ address,
93
+ chain,
94
+ substrateProxyType
95
+ } = params;
96
+ const substrateApi = this.getSubstrateApi(chain);
97
+ await substrateApi.isReady;
98
+ const addProxyTx = substrateApi.api.tx.proxy.addProxy;
99
+ const proxyTypeArg = addProxyTx.meta.args.find(arg => arg.name.toString() === 'proxyType');
100
+ if (proxyTypeArg) {
101
+ const typeName = proxyTypeArg.type.toString();
102
+ const proxyTypeEnum = substrateApi.api.registry.createType(typeName);
103
+ const variants = proxyTypeEnum.defKeys;
104
+ if (!variants.includes(substrateProxyType)) {
105
+ return [new _TransactionError.TransactionError(_types.BasicTxErrorType.UNSUPPORTED, 'This proxy type is not supported on the chosen network. Select another one and try again')];
106
+ }
107
+ }
108
+ if (!substrateApi.api.tx.proxy || !substrateApi.api.tx.proxy.addProxy) {
109
+ return [new _TransactionError.TransactionError(_types.BasicTxErrorType.UNSUPPORTED)];
110
+ }
111
+
112
+ // Validate max proxies accounts limit
113
+ const maxSubstrateProxies = ((_substrateApi$api$con3 = substrateApi.api.consts.proxy.maxProxies) === null || _substrateApi$api$con3 === void 0 ? void 0 : (_substrateApi$api$con4 = _substrateApi$api$con3.toNumber) === null || _substrateApi$api$con4 === void 0 ? void 0 : _substrateApi$api$con4.call(_substrateApi$api$con3)) || 0;
114
+ const currentProxiesRaw = await substrateApi.api.query.proxy.proxies(address);
115
+ const [proxyList] = currentProxiesRaw.toPrimitive();
116
+ if (proxyList.length >= maxSubstrateProxies) {
117
+ return [new _TransactionError.TransactionError(_types.BasicTxErrorType.INVALID_PARAMS, `Maximum number of proxies reached: ${maxSubstrateProxies}`)];
118
+ }
119
+
120
+ // Ensure enough balance for deposit + fee
121
+ const transferableBalance = await this.state.balanceService.getTransferableBalance(address, chain);
122
+ const bnTransferableBalance = new _bignumber.default(transferableBalance.value);
123
+ const feeInfo = await substrateApi.api.tx.proxy.addProxy(params.substrateProxyAddress, params.substrateProxyType, 0).paymentInfo(address);
124
+ const estimatedFee = new _bignumber.default(feeInfo.partialFee.toString());
125
+ const baseDeposit = ((_substrateApi$api$con5 = substrateApi.api.consts.proxy.proxyDepositBase) === null || _substrateApi$api$con5 === void 0 ? void 0 : _substrateApi$api$con5.toString()) || '0';
126
+ const factorDeposit = ((_substrateApi$api$con6 = substrateApi.api.consts.proxy.proxyDepositFactor) === null || _substrateApi$api$con6 === void 0 ? void 0 : _substrateApi$api$con6.toString()) || '0';
127
+ const requiredDeposit = proxyList.length === 0 ? new _bignumber.default(baseDeposit).plus(factorDeposit) : new _bignumber.default(factorDeposit);
128
+ const totalRequired = new _bignumber.default(requiredDeposit).plus(!signerSubstrateProxyAddress ? estimatedFee : 0);
129
+ if (bnTransferableBalance.lt(totalRequired)) {
130
+ return [new _TransactionError.TransactionError(_types.BasicTxErrorType.NOT_ENOUGH_BALANCE)];
131
+ }
132
+ return [];
133
+ }
134
+
135
+ // Removing linked proxy accounts from main account
136
+ async removeSubstrateProxyAccounts(data) {
137
+ const {
138
+ chain,
139
+ isRemoveAll,
140
+ selectedSubstrateProxyAccounts
141
+ } = data;
142
+ const substrateApi = this.getSubstrateApi(chain);
143
+ await substrateApi.isReady;
144
+ const api = substrateApi.api;
145
+ if (isRemoveAll) {
146
+ return api.tx.proxy.removeProxies();
147
+ }
148
+ if (!selectedSubstrateProxyAccounts.length) {
149
+ return Promise.reject(new _TransactionError.TransactionError(_types.BasicTxErrorType.INVALID_PARAMS));
150
+ }
151
+ if (selectedSubstrateProxyAccounts.length === 1) {
152
+ const {
153
+ delay,
154
+ substrateProxyAddress,
155
+ substrateProxyType
156
+ } = selectedSubstrateProxyAccounts[0];
157
+ return api.tx.proxy.removeProxy(substrateProxyAddress, substrateProxyType, delay);
158
+ }
159
+ const removeProxies = selectedSubstrateProxyAccounts.map(_ref => {
160
+ let {
161
+ delay,
162
+ substrateProxyAddress,
163
+ substrateProxyType
164
+ } = _ref;
165
+ return api.tx.proxy.removeProxy(substrateProxyAddress, substrateProxyType, delay);
166
+ });
167
+ return api.tx.utility.batchAll(removeProxies);
168
+ }
169
+ }
170
+ exports.default = SubstrateProxyAccountService;