@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.
- package/background/KoniTypes.d.ts +13 -2
- package/background/KoniTypes.js +3 -1
- package/cjs/background/KoniTypes.js +3 -1
- package/cjs/core/logic-validation/recipientAddress.js +1 -1
- package/cjs/core/logic-validation/transfer.js +33 -10
- package/cjs/core/types.js +1 -0
- package/cjs/koni/background/handlers/Extension.js +81 -8
- package/cjs/koni/background/handlers/State.js +2 -0
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +46 -2
- package/cjs/services/balance-service/transfer/token.js +13 -35
- package/cjs/services/balance-service/transfer/xcm/index.js +3 -8
- package/cjs/services/balance-service/transfer/xcm/utils.js +1 -1
- package/cjs/services/chain-service/constants.js +6 -5
- package/cjs/services/chain-service/index.js +1 -0
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +55 -0
- package/cjs/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +41 -0
- package/cjs/services/migration-service/scripts/index.js +17 -13
- package/cjs/services/substrate-proxy-service/constant.js +26 -0
- package/cjs/services/substrate-proxy-service/index.js +170 -0
- package/cjs/services/transaction-service/index.js +78 -10
- package/cjs/services/transaction-service/utils.js +8 -5
- package/cjs/types/index.js +11 -0
- package/cjs/types/substrateProxyAccount/actions/index.js +1 -0
- package/cjs/types/substrateProxyAccount/index.js +16 -0
- package/cjs/utils/account/transform.js +5 -4
- package/cjs/utils/fee/transfer.js +4 -2
- package/core/logic-validation/recipientAddress.js +1 -1
- package/core/logic-validation/transfer.d.ts +3 -3
- package/core/logic-validation/transfer.js +34 -11
- package/core/types.d.ts +2 -1
- package/core/types.js +1 -0
- package/koni/background/handlers/Extension.d.ts +3 -0
- package/koni/background/handlers/Extension.js +81 -8
- package/koni/background/handlers/State.d.ts +2 -0
- package/koni/background/handlers/State.js +2 -0
- package/package.json +36 -6
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/substrate/index.js +47 -3
- package/services/balance-service/transfer/token.d.ts +0 -4
- package/services/balance-service/transfer/token.js +12 -33
- package/services/balance-service/transfer/xcm/index.js +3 -8
- package/services/balance-service/transfer/xcm/utils.d.ts +0 -2
- package/services/balance-service/transfer/xcm/utils.js +1 -1
- package/services/chain-service/constants.d.ts +1 -1
- package/services/chain-service/constants.js +4 -4
- package/services/chain-service/index.js +1 -0
- package/services/chain-service/utils/patch.d.ts +1 -1
- package/services/chain-service/utils/patch.js +1 -1
- package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.d.ts +4 -0
- package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +46 -0
- package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +33 -0
- package/services/migration-service/scripts/index.js +8 -4
- package/services/open-gov/interface.d.ts +4 -3
- package/services/substrate-proxy-service/constant.d.ts +3 -0
- package/services/substrate-proxy-service/constant.js +19 -0
- package/services/substrate-proxy-service/index.d.ts +13 -0
- package/services/substrate-proxy-service/index.js +159 -0
- package/services/transaction-service/index.js +79 -11
- package/services/transaction-service/types.d.ts +2 -2
- package/services/transaction-service/utils.js +8 -5
- package/types/balance/transfer.d.ts +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.js +1 -0
- package/types/substrateProxyAccount/actions/index.d.ts +17 -0
- package/types/substrateProxyAccount/actions/index.js +1 -0
- package/types/substrateProxyAccount/index.d.ts +23 -0
- package/types/substrateProxyAccount/index.js +8 -0
- package/types/transaction/request.d.ts +1 -0
- package/types/yield/actions/join/submit.d.ts +1 -1
- package/utils/account/transform.js +5 -4
- 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';
|
|
@@ -12,7 +12,7 @@ const PRODUCTION_BRANCHES = ['master', 'webapp', 'webapp-dev'];
|
|
|
12
12
|
const branchName = process.env.BRANCH_NAME || 'subwallet-dev';
|
|
13
13
|
const fetchDomain = process.env.PATCH_CHAIN_LIST_URL || (PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'https://chain-list-assets.subwallet.app' : 'https://dev.sw-chain-list-assets.pages.dev');
|
|
14
14
|
const fetchFile = PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'list.json' : 'preview.json';
|
|
15
|
-
const ChainListVersion = '0.2.
|
|
15
|
+
const ChainListVersion = '0.2.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
|
|
14
|
-
var
|
|
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
|
|
40
|
-
var
|
|
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':
|
|
75
|
-
'1.3.55-02':
|
|
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':
|
|
90
|
-
'1.3.64-02':
|
|
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':
|
|
93
|
-
'1.3.66-02':
|
|
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
|
-
|
|
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,
|
|
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(
|
|
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 (['
|
|
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) => {
|
package/cjs/types/index.js
CHANGED
|
@@ -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";
|