@subwallet/extension-base 1.3.71-0 → 1.3.72-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 (74) 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 -8
  8. package/cjs/koni/background/handlers/State.js +2 -0
  9. package/cjs/packageInfo.js +1 -1
  10. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +46 -2
  11. package/cjs/services/balance-service/transfer/token.js +13 -35
  12. package/cjs/services/balance-service/transfer/xcm/index.js +3 -8
  13. package/cjs/services/balance-service/transfer/xcm/utils.js +1 -1
  14. package/cjs/services/chain-service/constants.js +6 -5
  15. package/cjs/services/chain-service/index.js +1 -0
  16. package/cjs/services/chain-service/utils/patch.js +1 -1
  17. package/cjs/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +55 -0
  18. package/cjs/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +41 -0
  19. package/cjs/services/migration-service/scripts/index.js +17 -13
  20. package/cjs/services/substrate-proxy-service/constant.js +26 -0
  21. package/cjs/services/substrate-proxy-service/index.js +170 -0
  22. package/cjs/services/transaction-service/index.js +78 -10
  23. package/cjs/services/transaction-service/utils.js +8 -5
  24. package/cjs/types/index.js +11 -0
  25. package/cjs/types/substrateProxyAccount/actions/index.js +1 -0
  26. package/cjs/types/substrateProxyAccount/index.js +16 -0
  27. package/cjs/utils/account/transform.js +5 -4
  28. package/cjs/utils/fee/transfer.js +4 -2
  29. package/core/logic-validation/recipientAddress.js +1 -1
  30. package/core/logic-validation/transfer.d.ts +3 -3
  31. package/core/logic-validation/transfer.js +34 -11
  32. package/core/types.d.ts +2 -1
  33. package/core/types.js +1 -0
  34. package/koni/background/handlers/Extension.d.ts +3 -0
  35. package/koni/background/handlers/Extension.js +81 -8
  36. package/koni/background/handlers/State.d.ts +2 -0
  37. package/koni/background/handlers/State.js +2 -0
  38. package/package.json +36 -6
  39. package/packageInfo.js +1 -1
  40. package/services/balance-service/helpers/subscribe/substrate/index.js +47 -3
  41. package/services/balance-service/transfer/token.d.ts +0 -4
  42. package/services/balance-service/transfer/token.js +12 -33
  43. package/services/balance-service/transfer/xcm/index.js +3 -8
  44. package/services/balance-service/transfer/xcm/utils.d.ts +0 -2
  45. package/services/balance-service/transfer/xcm/utils.js +1 -1
  46. package/services/chain-service/constants.d.ts +1 -1
  47. package/services/chain-service/constants.js +4 -4
  48. package/services/chain-service/index.js +1 -0
  49. package/services/chain-service/utils/patch.d.ts +1 -1
  50. package/services/chain-service/utils/patch.js +1 -1
  51. package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.d.ts +4 -0
  52. package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +46 -0
  53. package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.d.ts +4 -0
  54. package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +33 -0
  55. package/services/migration-service/scripts/index.js +8 -4
  56. package/services/open-gov/interface.d.ts +4 -3
  57. package/services/substrate-proxy-service/constant.d.ts +3 -0
  58. package/services/substrate-proxy-service/constant.js +19 -0
  59. package/services/substrate-proxy-service/index.d.ts +13 -0
  60. package/services/substrate-proxy-service/index.js +159 -0
  61. package/services/transaction-service/index.js +79 -11
  62. package/services/transaction-service/types.d.ts +2 -2
  63. package/services/transaction-service/utils.js +8 -5
  64. package/types/balance/transfer.d.ts +1 -0
  65. package/types/index.d.ts +1 -0
  66. package/types/index.js +1 -0
  67. package/types/substrateProxyAccount/actions/index.d.ts +17 -0
  68. package/types/substrateProxyAccount/actions/index.js +1 -0
  69. package/types/substrateProxyAccount/index.d.ts +23 -0
  70. package/types/substrateProxyAccount/index.js +8 -0
  71. package/types/transaction/request.d.ts +1 -0
  72. package/types/yield/actions/join/submit.d.ts +1 -1
  73. package/utils/account/transform.js +5 -4
  74. package/utils/fee/transfer.js +4 -2
@@ -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;
@@ -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;
@@ -127,18 +127,26 @@ class TransactionService {
127
127
  const isNonNativeTokenPayFee = tokenPayFeeSlug && !(0, _utils2._isNativeTokenBySlug)(tokenPayFeeSlug);
128
128
  const nonNativeTokenPayFeeInfo = isNonNativeTokenPayFee ? this.state.chainService.getAssetBySlug(tokenPayFeeSlug) : undefined;
129
129
  const priceMap = (await this.state.priceService.getPrice()).priceMap;
130
+
131
+ // Get signer account
132
+ let signer = address;
133
+ const signerSubstrateProxyAddress = transactionInput.signerSubstrateProxyAddress;
130
134
  if (!transactionInput.skipFeeRecalculation) {
131
- validationResponse.estimateFee = await (0, _transfer.estimateFeeForTransaction)(validationResponse, transaction, chainInfo, evmApi, substrateApi, priceMap, feeInfo, nativeTokenInfo, nonNativeTokenPayFeeInfo, transactionInput.isTransferLocalTokenAndPayThatTokenAsFee);
135
+ validationResponse.estimateFee = await (0, _transfer.estimateFeeForTransaction)(validationResponse, transaction, chainInfo, evmApi, substrateApi, priceMap, feeInfo, nativeTokenInfo, nonNativeTokenPayFeeInfo, transactionInput.isTransferLocalTokenAndPayThatTokenAsFee, signerSubstrateProxyAddress);
132
136
  }
133
137
  const chainInfoMap = this.state.chainService.getChainInfoMap();
138
+ let substrateProxyAccountNativeTokenAvailable;
139
+ if (signerSubstrateProxyAddress && !(0, _utils4.isSameAddress)(signerSubstrateProxyAddress, address)) {
140
+ signer = signerSubstrateProxyAddress;
141
+ substrateProxyAccountNativeTokenAvailable = await this.state.balanceService.getTransferableBalance(signerSubstrateProxyAddress, chain, nativeTokenInfo.slug, extrinsicType);
142
+ }
134
143
 
135
144
  // Check account signing transaction
136
-
137
- (0, _transfer.checkSigningAccountForTransaction)(validationResponse, chainInfoMap);
145
+ (0, _transfer.checkSigningAccountForTransaction)(validationResponse, chainInfoMap, signer);
138
146
  const nativeTokenAvailable = await this.state.balanceService.getBalanceByType(address, chain, nativeTokenInfo.slug, transactionInput.balanceType, extrinsicType);
139
147
 
140
148
  // Check available balance against transaction fee
141
- (0, _transfer.checkBalanceWithTransactionFee)(validationResponse, transactionInput, nativeTokenInfo, nativeTokenAvailable);
149
+ (0, _transfer.checkBalanceWithTransactionFee)(validationResponse, transactionInput, nativeTokenInfo, nativeTokenAvailable, substrateProxyAccountNativeTokenAvailable);
142
150
 
143
151
  // Warnings Ton address if bounceable and not active
144
152
  // if (transaction && isTonTransaction(transaction) && tonApi) {
@@ -753,8 +761,10 @@ class TransactionService {
753
761
  // Will be added in next step
754
762
  nonce: nonce !== null && nonce !== void 0 ? nonce : 0,
755
763
  startBlock: startBlock || 0,
756
- processId: (_transaction$step3 = transaction.step) === null || _transaction$step3 === void 0 ? void 0 : _transaction$step3.processId
764
+ processId: (_transaction$step3 = transaction.step) === null || _transaction$step3 === void 0 ? void 0 : _transaction$step3.processId,
765
+ substrateProxyAddresses: []
757
766
  };
767
+ const substrateProxyHistories = [];
758
768
  const nativeAsset = (0, _utils2._getChainNativeTokenBasicInfo)(chainInfo);
759
769
  const baseNativeAmount = {
760
770
  value: '0',
@@ -1121,6 +1131,55 @@ class TransactionService {
1121
1131
  };
1122
1132
  break;
1123
1133
  }
1134
+ case _KoniTypes.ExtrinsicType.ADD_SUBSTRATE_PROXY_ACCOUNT:
1135
+ {
1136
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
1137
+ const substrateProxyAddress = data.substrateProxyAddress;
1138
+ historyItem.substrateProxyAddresses = [substrateProxyAddress];
1139
+ substrateProxyHistories.push({
1140
+ ...historyItem,
1141
+ substrateProxyAddresses: [substrateProxyAddress]
1142
+ });
1143
+ try {
1144
+ const substrateProxyAccount = _uiKeyring.default.getPair(substrateProxyAddress);
1145
+ if (substrateProxyAccount) {
1146
+ substrateProxyHistories.push({
1147
+ ...historyItem,
1148
+ address: substrateProxyAccount.address,
1149
+ direction: _KoniTypes.TransactionDirection.RECEIVED,
1150
+ substrateProxyAddresses: [substrateProxyAddress]
1151
+ });
1152
+ }
1153
+ } catch (e) {
1154
+ // skip
1155
+ }
1156
+ break;
1157
+ }
1158
+ case _KoniTypes.ExtrinsicType.REMOVE_SUBSTRATE_PROXY_ACCOUNT:
1159
+ {
1160
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
1161
+ for (const substrateProxyItem of data.selectedSubstrateProxyAccounts || []) {
1162
+ const substrateProxyAddress = substrateProxyItem.substrateProxyAddress;
1163
+ substrateProxyHistories.push({
1164
+ ...historyItem,
1165
+ substrateProxyAddresses: [substrateProxyAddress]
1166
+ });
1167
+ try {
1168
+ const substrateProxyAccount = _uiKeyring.default.getPair(substrateProxyAddress);
1169
+ if (substrateProxyAccount) {
1170
+ substrateProxyHistories.push({
1171
+ ...historyItem,
1172
+ address: substrateProxyAccount.address,
1173
+ direction: _KoniTypes.TransactionDirection.RECEIVED,
1174
+ substrateProxyAddresses: [substrateProxyAddress]
1175
+ });
1176
+ }
1177
+ } catch (e) {
1178
+ // skip
1179
+ }
1180
+ }
1181
+ break;
1182
+ }
1124
1183
  case _KoniTypes.ExtrinsicType.UNKNOWN:
1125
1184
  break;
1126
1185
  }
@@ -1148,7 +1207,7 @@ class TransactionService {
1148
1207
  } catch (e) {
1149
1208
  console.warn(e);
1150
1209
  }
1151
- return [historyItem];
1210
+ return [historyItem, ...substrateProxyHistories];
1152
1211
  }
1153
1212
  onSigned(_ref) {
1154
1213
  let {
@@ -1741,7 +1800,7 @@ class TransactionService {
1741
1800
  });
1742
1801
  return emitter;
1743
1802
  }
1744
- signAndSendSubstrateTransaction(_ref12) {
1803
+ async signAndSendSubstrateTransaction(_ref12) {
1745
1804
  var _this$state$chainServ;
1746
1805
  let {
1747
1806
  address,
@@ -1749,6 +1808,7 @@ class TransactionService {
1749
1808
  feeCustom,
1750
1809
  id,
1751
1810
  signAfterCreate,
1811
+ signerSubstrateProxyAddress,
1752
1812
  step,
1753
1813
  tokenPayFeeSlug,
1754
1814
  transaction,
@@ -1764,7 +1824,15 @@ class TransactionService {
1764
1824
  extrinsicHash: id,
1765
1825
  processId: step === null || step === void 0 ? void 0 : step.processId
1766
1826
  };
1767
- const extrinsic = transaction;
1827
+ let extrinsic = transaction;
1828
+ let signer = address;
1829
+ if (signerSubstrateProxyAddress && signerSubstrateProxyAddress !== address) {
1830
+ const substrateApi = this.state.chainService.getSubstrateApi(chain);
1831
+ await substrateApi.isReady;
1832
+ signer = signerSubstrateProxyAddress;
1833
+ extrinsic = substrateApi.api.tx.proxy.proxy(address, null, transaction);
1834
+ }
1835
+
1768
1836
  // const registry = extrinsic.registry;
1769
1837
  // const signedExtensions = registry.signedExtensions;
1770
1838
 
@@ -1774,7 +1842,7 @@ class TransactionService {
1774
1842
  const {
1775
1843
  signature,
1776
1844
  signedTransaction
1777
- } = await this.state.requestService.signInternalTransaction(id, address, url || _constants2.EXTENSION_REQUEST_URL, payload, signAfterCreate);
1845
+ } = await this.state.requestService.signInternalTransaction(id, signer, url || _constants2.EXTENSION_REQUEST_URL, payload, signAfterCreate);
1778
1846
  return {
1779
1847
  id: new Date().getTime(),
1780
1848
  signature,
@@ -1796,7 +1864,7 @@ class TransactionService {
1796
1864
  // }
1797
1865
  // }
1798
1866
 
1799
- extrinsic.signAsync(address, signerOption).then(async rs => {
1867
+ extrinsic.signAsync(signer, signerOption).then(async rs => {
1800
1868
  // Emit signed event
1801
1869
  emitter.emit('signed', eventData);
1802
1870
 
@@ -33,6 +33,9 @@ function getBlockExplorerAccountRoute(explorerLink) {
33
33
  if (explorerLink.includes('devnet-explorer.mosaicchain.io')) {
34
34
  return 'accounts';
35
35
  }
36
+ if (explorerLink.includes('mainnet-gw2.mosaicchain.io')) {
37
+ return 'accounts';
38
+ }
36
39
  if (explorerLink.includes('statescan.io')) {
37
40
  return '#/accounts';
38
41
  }
@@ -61,7 +64,7 @@ function getBlockExplorerAccountRoute(explorerLink) {
61
64
  return 'account';
62
65
  }
63
66
  if (explorerLink.includes('node.xode.net')) {
64
- return 'account';
67
+ return 'polkadot/account';
65
68
  }
66
69
  if (explorerLink.includes('tonviewer.com')) {
67
70
  return '';
@@ -90,7 +93,10 @@ function getBlockExplorerTxRoute(chainInfo) {
90
93
  if (['edgeware', 'commune'].includes(chainInfo.slug)) {
91
94
  return 'extrinsics';
92
95
  }
93
- if (['mosaicTest', 'polkadex'].includes(chainInfo.slug)) {
96
+ if (['xode'].includes(chainInfo.slug)) {
97
+ return 'polkadot/extrinsics';
98
+ }
99
+ if (['mosaicTest', 'polkadex', 'mosaic'].includes(chainInfo.slug)) {
94
100
  return 'transactions';
95
101
  }
96
102
  const explorerLink = (0, _utils._getBlockExplorerFromChain)(chainInfo);
@@ -134,9 +140,6 @@ function getExplorerLink(chainInfo, value, type) {
134
140
  if (chainInfo.slug === 'tangle') {
135
141
  return `${explorerLink}${explorerLink.endsWith('/') ? '' : '/'}extrinsic/${value}${route}/${value}`;
136
142
  }
137
- if (chainInfo.slug === 'xode') {
138
- return `${explorerLink}${explorerLink.endsWith('/') ? '' : '/'}polkadot-chain-transaction?search=${value}`;
139
- }
140
143
  if (['truth_network', 'aventus'].includes(chainInfo.slug)) {
141
144
  // getTransactionId(value)
142
145
  // .then((transactionId) => {
@@ -178,4 +178,15 @@ Object.keys(_bitcoin).forEach(function (key) {
178
178
  return _bitcoin[key];
179
179
  }
180
180
  });
181
+ });
182
+ var _substrateProxyAccount = require("./substrateProxyAccount");
183
+ Object.keys(_substrateProxyAccount).forEach(function (key) {
184
+ if (key === "default" || key === "__esModule") return;
185
+ if (key in exports && exports[key] === _substrateProxyAccount[key]) return;
186
+ Object.defineProperty(exports, key, {
187
+ enumerable: true,
188
+ get: function () {
189
+ return _substrateProxyAccount[key];
190
+ }
191
+ });
181
192
  });
@@ -0,0 +1 @@
1
+ "use strict";