@subwallet/extension-base 1.1.53-beta.0 → 1.1.54-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 +1 -9
- package/background/KoniTypes.js +0 -1
- package/background/errors/TransactionError.js +0 -9
- package/cjs/background/KoniTypes.js +0 -1
- package/cjs/background/errors/TransactionError.js +0 -9
- package/cjs/koni/api/staking/bonding/utils.js +6 -35
- package/cjs/koni/background/handlers/Extension.js +0 -85
- package/cjs/koni/background/handlers/State.js +5 -25
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/index.js +3 -6
- package/cjs/services/chain-service/constants.js +1 -1
- package/cjs/services/chain-service/index.js +18 -43
- package/cjs/services/chain-service/utils/index.js +2 -7
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/constants/chains.js +2 -4
- package/cjs/services/earning-service/handlers/native-staking/astar.js +3 -4
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +3 -22
- package/cjs/services/transaction-service/index.js +0 -20
- package/cjs/services/transaction-service/utils.js +0 -6
- package/cjs/types/fee/index.js +1 -27
- package/cjs/utils/index.js +0 -12
- package/koni/api/staking/bonding/utils.d.ts +1 -3
- package/koni/api/staking/bonding/utils.js +6 -32
- package/koni/background/handlers/Extension.d.ts +0 -5
- package/koni/background/handlers/Extension.js +0 -85
- package/koni/background/handlers/State.d.ts +0 -2
- package/koni/background/handlers/State.js +6 -26
- package/package.json +7 -64
- package/packageInfo.js +1 -1
- package/services/balance-service/index.js +3 -6
- package/services/base/types.d.ts +0 -4
- package/services/chain-service/constants.js +1 -1
- package/services/chain-service/index.d.ts +0 -4
- package/services/chain-service/index.js +0 -24
- package/services/chain-service/utils/index.d.ts +5 -6
- package/services/chain-service/utils/index.js +2 -5
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/constants/chains.d.ts +0 -1
- package/services/earning-service/constants/chains.js +0 -1
- package/services/earning-service/handlers/native-staking/astar.js +3 -4
- package/services/earning-service/handlers/native-staking/relay-chain.js +5 -24
- package/services/event-service/types.d.ts +0 -1
- package/services/transaction-service/index.js +0 -20
- package/services/transaction-service/utils.d.ts +0 -2
- package/services/transaction-service/utils.js +2 -6
- package/types/fee/index.d.ts +49 -2
- package/types/fee/index.js +1 -5
- package/types/yield/info/chain/target.d.ts +0 -2
- package/types/yield/info/pallet.d.ts +0 -4
- package/utils/index.d.ts +0 -1
- package/utils/index.js +1 -2
- package/background/errors/SwapError.d.ts +0 -6
- package/background/errors/SwapError.js +0 -57
- package/cjs/background/errors/SwapError.js +0 -64
- package/cjs/koni/api/dotsama/balance.js +0 -464
- package/cjs/koni/api/nft/ordinal_nft/utils.js +0 -41
- package/cjs/services/balance-service/helpers/subscribe/balance.js +0 -140
- package/cjs/services/chain-service/utils.js +0 -506
- package/cjs/services/migration-service/scripts/MigrateEthProvider.js +0 -17
- package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +0 -17
- package/cjs/services/migration-service/scripts/MigrateProvider.js +0 -29
- package/cjs/services/storage-service/index.js +0 -241
- package/cjs/services/swap-service/handler/base-handler.js +0 -171
- package/cjs/services/swap-service/handler/chainflip-handler.js +0 -407
- package/cjs/services/swap-service/handler/hydradx-handler.js +0 -444
- package/cjs/services/swap-service/index.js +0 -249
- package/cjs/services/swap-service/utils.js +0 -126
- package/cjs/types/balance.js +0 -1
- package/cjs/types/fee/evm.js +0 -1
- package/cjs/types/fee/fee.js +0 -70
- package/cjs/types/service-base.js +0 -1
- package/cjs/types/swap/index.js +0 -50
- package/cjs/types.js +0 -1
- package/cjs/utils/address.js +0 -34
- package/cjs/utils/keyring.js +0 -57
- package/cjs/utils/swap.js +0 -78
- package/services/swap-service/handler/base-handler.d.ts +0 -38
- package/services/swap-service/handler/base-handler.js +0 -162
- package/services/swap-service/handler/chainflip-handler.d.ts +0 -30
- package/services/swap-service/handler/chainflip-handler.js +0 -399
- package/services/swap-service/handler/hydradx-handler.d.ts +0 -36
- package/services/swap-service/handler/hydradx-handler.js +0 -435
- package/services/swap-service/index.d.ts +0 -32
- package/services/swap-service/index.js +0 -240
- package/services/swap-service/utils.d.ts +0 -18
- package/services/swap-service/utils.js +0 -105
- package/types/fee/evm.d.ts +0 -49
- package/types/fee/evm.js +0 -1
- package/types/fee/fee.d.ts +0 -32
- package/types/fee/fee.js +0 -63
- package/types/service-base.d.ts +0 -10
- package/types/service-base.js +0 -1
- package/types/swap/index.d.ts +0 -166
- package/types/swap/index.js +0 -41
- package/utils/swap.d.ts +0 -3
- package/utils/swap.js +0 -70
|
@@ -1,506 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports._checkSmartContractSupportByChain = _checkSmartContractSupportByChain;
|
|
7
|
-
exports._generateCustomProviderKey = _generateCustomProviderKey;
|
|
8
|
-
exports._getAssetDecimals = _getAssetDecimals;
|
|
9
|
-
exports._getAssetOriginChain = _getAssetOriginChain;
|
|
10
|
-
exports._getAssetPriceId = _getAssetPriceId;
|
|
11
|
-
exports._getAssetSymbol = _getAssetSymbol;
|
|
12
|
-
exports._getBlockExplorerFromChain = _getBlockExplorerFromChain;
|
|
13
|
-
exports._getChainName = _getChainName;
|
|
14
|
-
exports._getChainNativeTokenBasicInfo = _getChainNativeTokenBasicInfo;
|
|
15
|
-
exports._getChainNativeTokenSlug = _getChainNativeTokenSlug;
|
|
16
|
-
exports._getChainSubstrateAddressPrefix = _getChainSubstrateAddressPrefix;
|
|
17
|
-
exports._getContractAddressOfToken = _getContractAddressOfToken;
|
|
18
|
-
exports._getCrowdloanUrlFromChain = _getCrowdloanUrlFromChain;
|
|
19
|
-
exports._getCustomAssets = _getCustomAssets;
|
|
20
|
-
exports._getEvmAbiExplorer = _getEvmAbiExplorer;
|
|
21
|
-
exports._getEvmChainId = _getEvmChainId;
|
|
22
|
-
exports._getMultiChainAsset = _getMultiChainAsset;
|
|
23
|
-
exports._getMultiChainAssetPriceId = _getMultiChainAssetPriceId;
|
|
24
|
-
exports._getMultiChainAssetSymbol = _getMultiChainAssetSymbol;
|
|
25
|
-
exports._getNftTypesSupportedByChain = _getNftTypesSupportedByChain;
|
|
26
|
-
exports._getOriginChainOfAsset = _getOriginChainOfAsset;
|
|
27
|
-
exports._getSubstrateGenesisHash = _getSubstrateGenesisHash;
|
|
28
|
-
exports._getSubstrateParaId = _getSubstrateParaId;
|
|
29
|
-
exports._getSubstrateRelayParent = _getSubstrateRelayParent;
|
|
30
|
-
exports._getTokenMinAmount = _getTokenMinAmount;
|
|
31
|
-
exports._getTokenOnChainAssetId = _getTokenOnChainAssetId;
|
|
32
|
-
exports._getTokenOnChainInfo = _getTokenOnChainInfo;
|
|
33
|
-
exports._getTokenTypesSupportedByChain = _getTokenTypesSupportedByChain;
|
|
34
|
-
exports._getXcmAssetId = _getXcmAssetId;
|
|
35
|
-
exports._getXcmAssetMultilocation = _getXcmAssetMultilocation;
|
|
36
|
-
exports._getXcmAssetType = _getXcmAssetType;
|
|
37
|
-
exports._getXcmTransferType = _getXcmTransferType;
|
|
38
|
-
exports._isAssetFungibleToken = _isAssetFungibleToken;
|
|
39
|
-
exports._isAssetSmartContractNft = _isAssetSmartContractNft;
|
|
40
|
-
exports._isAssetValuable = _isAssetValuable;
|
|
41
|
-
exports._isChainEnabled = _isChainEnabled;
|
|
42
|
-
exports._isChainEvmCompatible = _isChainEvmCompatible;
|
|
43
|
-
exports._isChainSupportEvmNft = _isChainSupportEvmNft;
|
|
44
|
-
exports._isChainSupportNativeNft = _isChainSupportNativeNft;
|
|
45
|
-
exports._isChainSupportSubstrateStaking = _isChainSupportSubstrateStaking;
|
|
46
|
-
exports._isChainSupportWasmNft = _isChainSupportWasmNft;
|
|
47
|
-
exports._isChainTestNet = _isChainTestNet;
|
|
48
|
-
exports._isCustomAsset = _isCustomAsset;
|
|
49
|
-
exports._isCustomChain = _isCustomChain;
|
|
50
|
-
exports._isCustomProvider = _isCustomProvider;
|
|
51
|
-
exports._isEqualContractAddress = _isEqualContractAddress;
|
|
52
|
-
exports._isEqualSmartContractAsset = _isEqualSmartContractAsset;
|
|
53
|
-
exports._isLocalToken = _isLocalToken;
|
|
54
|
-
exports._isMantaZkAsset = _isMantaZkAsset;
|
|
55
|
-
exports._isNativeToken = _isNativeToken;
|
|
56
|
-
exports._isNativeTokenBySlug = _isNativeTokenBySlug;
|
|
57
|
-
exports._isPureEvmChain = _isPureEvmChain;
|
|
58
|
-
exports._isPureSubstrateChain = _isPureSubstrateChain;
|
|
59
|
-
exports._isSmartContractToken = _isSmartContractToken;
|
|
60
|
-
exports._isSubstrateChain = _isSubstrateChain;
|
|
61
|
-
exports._isSubstrateParaChain = _isSubstrateParaChain;
|
|
62
|
-
exports._isSubstrateRelayChain = _isSubstrateRelayChain;
|
|
63
|
-
exports._isSupportOrdinal = void 0;
|
|
64
|
-
exports._isTokenEvmSmartContract = _isTokenEvmSmartContract;
|
|
65
|
-
exports._isTokenTransferredByEvm = _isTokenTransferredByEvm;
|
|
66
|
-
exports._isTokenWasmSmartContract = _isTokenWasmSmartContract;
|
|
67
|
-
exports._isXcmPathSupported = _isXcmPathSupported;
|
|
68
|
-
exports._parseAssetRefKey = _parseAssetRefKey;
|
|
69
|
-
exports._parseMetadataForSmartContractAsset = _parseMetadataForSmartContractAsset;
|
|
70
|
-
exports.findChainInfoByHalfGenesisHash = exports.findChainInfoByChainId = void 0;
|
|
71
|
-
exports.randomizeProvider = randomizeProvider;
|
|
72
|
-
exports.updateLatestChainInfo = updateLatestChainInfo;
|
|
73
|
-
var _types = require("@subwallet/chain-list/types");
|
|
74
|
-
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
75
|
-
var _types2 = require("@subwallet/extension-base/services/chain-service/types");
|
|
76
|
-
var _utilCrypto = require("@polkadot/util-crypto");
|
|
77
|
-
// Copyright 2019-2022 @subwallet/extension-base
|
|
78
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
79
|
-
|
|
80
|
-
function _isCustomChain(slug) {
|
|
81
|
-
if (slug.length === 0) {
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
return slug.startsWith(_types2._CUSTOM_PREFIX);
|
|
85
|
-
}
|
|
86
|
-
function _isCustomAsset(slug) {
|
|
87
|
-
// might be different from _isCustomNetwork
|
|
88
|
-
if (slug.length === 0) {
|
|
89
|
-
return true;
|
|
90
|
-
}
|
|
91
|
-
return slug.startsWith(_types2._CUSTOM_PREFIX);
|
|
92
|
-
}
|
|
93
|
-
function _getCustomAssets(assetRegistry) {
|
|
94
|
-
const filteredAssetMap = {};
|
|
95
|
-
Object.values(assetRegistry).forEach(chainAsset => {
|
|
96
|
-
if (_isCustomAsset(chainAsset.slug)) {
|
|
97
|
-
filteredAssetMap[chainAsset.slug] = chainAsset;
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
return filteredAssetMap;
|
|
101
|
-
}
|
|
102
|
-
function _isEqualContractAddress(address1, address2) {
|
|
103
|
-
if ((0, _utilCrypto.isEthereumAddress)(address1) && (0, _utilCrypto.isEthereumAddress)(address2)) {
|
|
104
|
-
return address1.toLowerCase() === address2.toLowerCase(); // EVM address is case-insensitive
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
return address2 === address1;
|
|
108
|
-
}
|
|
109
|
-
function _isEqualSmartContractAsset(asset1, asset2) {
|
|
110
|
-
var _asset1$metadata, _asset2$metadata;
|
|
111
|
-
const contract1 = ((_asset1$metadata = asset1.metadata) === null || _asset1$metadata === void 0 ? void 0 : _asset1$metadata.contractAddress) || undefined || null;
|
|
112
|
-
const contract2 = ((_asset2$metadata = asset2.metadata) === null || _asset2$metadata === void 0 ? void 0 : _asset2$metadata.contractAddress) || undefined || null;
|
|
113
|
-
if (!contract1 || !contract2) {
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
|
-
if (_isEqualContractAddress(contract1, contract2) && asset1.assetType === asset2.assetType && asset1.originChain === asset2.originChain) {
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
return false;
|
|
120
|
-
}
|
|
121
|
-
function _isPureEvmChain(chainInfo) {
|
|
122
|
-
return chainInfo.evmInfo !== null && chainInfo.substrateInfo === null;
|
|
123
|
-
}
|
|
124
|
-
function _isPureSubstrateChain(chainInfo) {
|
|
125
|
-
return chainInfo.evmInfo === null && chainInfo.substrateInfo !== null;
|
|
126
|
-
}
|
|
127
|
-
function _getOriginChainOfAsset(assetSlug) {
|
|
128
|
-
if (assetSlug.startsWith(_types2._CUSTOM_PREFIX)) {
|
|
129
|
-
const arr = assetSlug.split('-').slice(1);
|
|
130
|
-
if (arr[0] === 'custom') {
|
|
131
|
-
const end = arr.findIndex(str => Object.values(_types._AssetType).includes(str));
|
|
132
|
-
return arr.slice(0, end).join('-');
|
|
133
|
-
}
|
|
134
|
-
return arr[0];
|
|
135
|
-
}
|
|
136
|
-
return assetSlug.split('-')[0];
|
|
137
|
-
}
|
|
138
|
-
function _getContractAddressOfToken(tokenInfo) {
|
|
139
|
-
var _tokenInfo$metadata;
|
|
140
|
-
return ((_tokenInfo$metadata = tokenInfo.metadata) === null || _tokenInfo$metadata === void 0 ? void 0 : _tokenInfo$metadata.contractAddress) || '';
|
|
141
|
-
}
|
|
142
|
-
function _isTokenTransferredByEvm(tokenInfo) {
|
|
143
|
-
var _tokenInfo$metadata2;
|
|
144
|
-
return !!((_tokenInfo$metadata2 = tokenInfo.metadata) !== null && _tokenInfo$metadata2 !== void 0 && _tokenInfo$metadata2.contractAddress) || _isNativeToken(tokenInfo);
|
|
145
|
-
}
|
|
146
|
-
function _checkSmartContractSupportByChain(chainInfo, contractType) {
|
|
147
|
-
// EVM chains support smart contract by default so just checking Substrate chains
|
|
148
|
-
if (chainInfo.substrateInfo === null || chainInfo.substrateInfo && chainInfo.substrateInfo.supportSmartContract === null) {
|
|
149
|
-
return false;
|
|
150
|
-
}
|
|
151
|
-
return chainInfo.substrateInfo.supportSmartContract !== null && chainInfo.substrateInfo.supportSmartContract.includes(contractType);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
// Utils for balance functions
|
|
155
|
-
function _getTokenOnChainAssetId(tokenInfo) {
|
|
156
|
-
var _tokenInfo$metadata3;
|
|
157
|
-
return ((_tokenInfo$metadata3 = tokenInfo.metadata) === null || _tokenInfo$metadata3 === void 0 ? void 0 : _tokenInfo$metadata3.assetId) || '-1';
|
|
158
|
-
}
|
|
159
|
-
function _getTokenOnChainInfo(tokenInfo) {
|
|
160
|
-
var _tokenInfo$metadata4;
|
|
161
|
-
return (_tokenInfo$metadata4 = tokenInfo.metadata) === null || _tokenInfo$metadata4 === void 0 ? void 0 : _tokenInfo$metadata4.onChainInfo;
|
|
162
|
-
}
|
|
163
|
-
function _getTokenMinAmount(tokenInfo) {
|
|
164
|
-
return tokenInfo.minAmount || '0';
|
|
165
|
-
}
|
|
166
|
-
function _isChainEvmCompatible(chainInfo) {
|
|
167
|
-
return !!chainInfo.evmInfo;
|
|
168
|
-
}
|
|
169
|
-
function _isNativeToken(tokenInfo) {
|
|
170
|
-
return tokenInfo.assetType === _types._AssetType.NATIVE;
|
|
171
|
-
}
|
|
172
|
-
function _isNativeTokenBySlug(tokenSlug) {
|
|
173
|
-
return tokenSlug.includes(_types._AssetType.NATIVE);
|
|
174
|
-
}
|
|
175
|
-
function _isSmartContractToken(tokenInfo) {
|
|
176
|
-
return _types2._SMART_CONTRACT_STANDARDS.includes(tokenInfo.assetType);
|
|
177
|
-
}
|
|
178
|
-
function _isSubstrateChain(chainInfo) {
|
|
179
|
-
return !!chainInfo.substrateInfo; // fallback to Ethereum
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
function _getEvmChainId(chainInfo) {
|
|
183
|
-
var _chainInfo$evmInfo;
|
|
184
|
-
return ((_chainInfo$evmInfo = chainInfo.evmInfo) === null || _chainInfo$evmInfo === void 0 ? void 0 : _chainInfo$evmInfo.evmChainId) || 1; // fallback to Ethereum
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
function _getSubstrateParaId(chainInfo) {
|
|
188
|
-
var _chainInfo$substrateI;
|
|
189
|
-
return ((_chainInfo$substrateI = chainInfo.substrateInfo) === null || _chainInfo$substrateI === void 0 ? void 0 : _chainInfo$substrateI.paraId) || -1;
|
|
190
|
-
}
|
|
191
|
-
function _getSubstrateRelayParent(chainInfo) {
|
|
192
|
-
var _chainInfo$substrateI2;
|
|
193
|
-
return ((_chainInfo$substrateI2 = chainInfo.substrateInfo) === null || _chainInfo$substrateI2 === void 0 ? void 0 : _chainInfo$substrateI2.relaySlug) || '';
|
|
194
|
-
}
|
|
195
|
-
function _getSubstrateGenesisHash(chainInfo) {
|
|
196
|
-
var _chainInfo$substrateI3;
|
|
197
|
-
return ((_chainInfo$substrateI3 = chainInfo.substrateInfo) === null || _chainInfo$substrateI3 === void 0 ? void 0 : _chainInfo$substrateI3.genesisHash) || '';
|
|
198
|
-
}
|
|
199
|
-
function _isChainSupportSubstrateStaking(chainInfo) {
|
|
200
|
-
var _chainInfo$substrateI4;
|
|
201
|
-
return ((_chainInfo$substrateI4 = chainInfo.substrateInfo) === null || _chainInfo$substrateI4 === void 0 ? void 0 : _chainInfo$substrateI4.supportStaking) || false;
|
|
202
|
-
}
|
|
203
|
-
function _isChainEnabled(chainState) {
|
|
204
|
-
return chainState.active;
|
|
205
|
-
}
|
|
206
|
-
function _getChainSubstrateAddressPrefix(chainInfo) {
|
|
207
|
-
var _chainInfo$substrateI5, _chainInfo$substrateI6;
|
|
208
|
-
return (_chainInfo$substrateI5 = chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$substrateI6 = chainInfo.substrateInfo) === null || _chainInfo$substrateI6 === void 0 ? void 0 : _chainInfo$substrateI6.addressPrefix) !== null && _chainInfo$substrateI5 !== void 0 ? _chainInfo$substrateI5 : -1;
|
|
209
|
-
}
|
|
210
|
-
function _isChainSupportNativeNft(chainInfo) {
|
|
211
|
-
var _chainInfo$substrateI7;
|
|
212
|
-
return ((_chainInfo$substrateI7 = chainInfo.substrateInfo) === null || _chainInfo$substrateI7 === void 0 ? void 0 : _chainInfo$substrateI7.hasNativeNft) || false;
|
|
213
|
-
}
|
|
214
|
-
function _isChainSupportEvmNft(chainInfo) {
|
|
215
|
-
var _chainInfo$evmInfo2, _chainInfo$evmInfo2$s;
|
|
216
|
-
return ((_chainInfo$evmInfo2 = chainInfo.evmInfo) === null || _chainInfo$evmInfo2 === void 0 ? void 0 : (_chainInfo$evmInfo2$s = _chainInfo$evmInfo2.supportSmartContract) === null || _chainInfo$evmInfo2$s === void 0 ? void 0 : _chainInfo$evmInfo2$s.includes(_types._AssetType.ERC721)) || false;
|
|
217
|
-
}
|
|
218
|
-
function _isChainSupportWasmNft(chainInfo) {
|
|
219
|
-
var _chainInfo$substrateI8, _chainInfo$substrateI9;
|
|
220
|
-
return ((_chainInfo$substrateI8 = chainInfo.substrateInfo) === null || _chainInfo$substrateI8 === void 0 ? void 0 : (_chainInfo$substrateI9 = _chainInfo$substrateI8.supportSmartContract) === null || _chainInfo$substrateI9 === void 0 ? void 0 : _chainInfo$substrateI9.includes(_types._AssetType.PSP34)) || false;
|
|
221
|
-
}
|
|
222
|
-
const _isSupportOrdinal = chain => {
|
|
223
|
-
const chains = ['polkadot', 'astar', 'bifrost_dot', 'moonbeam'];
|
|
224
|
-
return chains.includes(chain);
|
|
225
|
-
};
|
|
226
|
-
exports._isSupportOrdinal = _isSupportOrdinal;
|
|
227
|
-
function _getNftTypesSupportedByChain(chainInfo) {
|
|
228
|
-
const result = [];
|
|
229
|
-
if (chainInfo.substrateInfo && chainInfo.substrateInfo.supportSmartContract) {
|
|
230
|
-
chainInfo.substrateInfo.supportSmartContract.forEach(assetType => {
|
|
231
|
-
if ([_types._AssetType.PSP34].includes(assetType)) {
|
|
232
|
-
result.push(assetType);
|
|
233
|
-
}
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
if (chainInfo.evmInfo && chainInfo.evmInfo.supportSmartContract) {
|
|
237
|
-
chainInfo.evmInfo.supportSmartContract.forEach(assetType => {
|
|
238
|
-
if ([_types._AssetType.ERC721].includes(assetType)) {
|
|
239
|
-
result.push(assetType);
|
|
240
|
-
}
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
return result;
|
|
244
|
-
}
|
|
245
|
-
function _getTokenTypesSupportedByChain(chainInfo) {
|
|
246
|
-
const result = [];
|
|
247
|
-
if (chainInfo.substrateInfo && chainInfo.substrateInfo.supportSmartContract) {
|
|
248
|
-
chainInfo.substrateInfo.supportSmartContract.forEach(assetType => {
|
|
249
|
-
if ([_types._AssetType.PSP22].includes(assetType)) {
|
|
250
|
-
result.push(assetType);
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
if (chainInfo.evmInfo && chainInfo.evmInfo.supportSmartContract) {
|
|
255
|
-
chainInfo.evmInfo.supportSmartContract.forEach(assetType => {
|
|
256
|
-
if ([_types._AssetType.ERC20].includes(assetType)) {
|
|
257
|
-
result.push(assetType);
|
|
258
|
-
}
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
return result;
|
|
262
|
-
}
|
|
263
|
-
function _getChainNativeTokenBasicInfo(chainInfo) {
|
|
264
|
-
if (!chainInfo) {
|
|
265
|
-
return {
|
|
266
|
-
symbol: '',
|
|
267
|
-
decimals: -1
|
|
268
|
-
};
|
|
269
|
-
}
|
|
270
|
-
if (chainInfo.substrateInfo !== null) {
|
|
271
|
-
// substrate by default
|
|
272
|
-
return {
|
|
273
|
-
symbol: chainInfo.substrateInfo.symbol,
|
|
274
|
-
decimals: chainInfo.substrateInfo.decimals
|
|
275
|
-
};
|
|
276
|
-
} else if (chainInfo.evmInfo !== null) {
|
|
277
|
-
return {
|
|
278
|
-
symbol: chainInfo.evmInfo.symbol,
|
|
279
|
-
decimals: chainInfo.evmInfo.decimals
|
|
280
|
-
};
|
|
281
|
-
}
|
|
282
|
-
return {
|
|
283
|
-
symbol: '',
|
|
284
|
-
decimals: -1
|
|
285
|
-
};
|
|
286
|
-
}
|
|
287
|
-
function _getChainNativeTokenSlug(chainInfo) {
|
|
288
|
-
if (_isCustomChain(chainInfo.slug)) {
|
|
289
|
-
return `${_types2._CUSTOM_PREFIX}${chainInfo.slug}-${_types._AssetType.NATIVE}-${_getChainNativeTokenBasicInfo(chainInfo).symbol}`;
|
|
290
|
-
}
|
|
291
|
-
return `${chainInfo.slug}-${_types._AssetType.NATIVE}-${_getChainNativeTokenBasicInfo(chainInfo).symbol}`;
|
|
292
|
-
}
|
|
293
|
-
function _isLocalToken(tokenInfo) {
|
|
294
|
-
return tokenInfo.assetType === _types._AssetType.LOCAL;
|
|
295
|
-
}
|
|
296
|
-
function _isTokenEvmSmartContract(tokenInfo) {
|
|
297
|
-
return [_types._AssetType.ERC721, _types._AssetType.ERC20].includes(tokenInfo.assetType);
|
|
298
|
-
}
|
|
299
|
-
function _isTokenWasmSmartContract(tokenInfo) {
|
|
300
|
-
return [_types._AssetType.PSP22, _types._AssetType.PSP34].includes(tokenInfo.assetType);
|
|
301
|
-
}
|
|
302
|
-
function _isAssetSmartContractNft(assetInfo) {
|
|
303
|
-
return [_types._AssetType.PSP34, _types._AssetType.ERC721].includes(assetInfo.assetType);
|
|
304
|
-
}
|
|
305
|
-
function _parseAssetRefKey(originTokenSlug, destinationTokenSlug) {
|
|
306
|
-
return `${originTokenSlug}___${destinationTokenSlug}`;
|
|
307
|
-
}
|
|
308
|
-
function _isXcmPathSupported(originTokenSlug, destinationTokenSlug, assetRefMap) {
|
|
309
|
-
const assetRef = assetRefMap[_parseAssetRefKey(originTokenSlug, destinationTokenSlug)];
|
|
310
|
-
if (!assetRef) {
|
|
311
|
-
return false;
|
|
312
|
-
}
|
|
313
|
-
return assetRef.path === _types._AssetRefPath.XCM;
|
|
314
|
-
}
|
|
315
|
-
function _getXcmAssetType(tokenInfo) {
|
|
316
|
-
var _tokenInfo$metadata5;
|
|
317
|
-
return ((_tokenInfo$metadata5 = tokenInfo.metadata) === null || _tokenInfo$metadata5 === void 0 ? void 0 : _tokenInfo$metadata5.assetType) || '';
|
|
318
|
-
}
|
|
319
|
-
function _getXcmAssetId(tokenInfo) {
|
|
320
|
-
var _tokenInfo$metadata6;
|
|
321
|
-
return ((_tokenInfo$metadata6 = tokenInfo.metadata) === null || _tokenInfo$metadata6 === void 0 ? void 0 : _tokenInfo$metadata6.assetId) || '-1';
|
|
322
|
-
}
|
|
323
|
-
function _getXcmAssetMultilocation(tokenInfo) {
|
|
324
|
-
var _tokenInfo$metadata7;
|
|
325
|
-
return (_tokenInfo$metadata7 = tokenInfo.metadata) === null || _tokenInfo$metadata7 === void 0 ? void 0 : _tokenInfo$metadata7.multilocation;
|
|
326
|
-
}
|
|
327
|
-
function _getXcmTransferType(originChainInfo, destinationChainInfo) {
|
|
328
|
-
var _originChainInfo$subs, _destinationChainInfo;
|
|
329
|
-
return `${((_originChainInfo$subs = originChainInfo.substrateInfo) === null || _originChainInfo$subs === void 0 ? void 0 : _originChainInfo$subs.chainType) || ''}-${((_destinationChainInfo = destinationChainInfo.substrateInfo) === null || _destinationChainInfo === void 0 ? void 0 : _destinationChainInfo.chainType) || ''}`;
|
|
330
|
-
}
|
|
331
|
-
function _isSubstrateRelayChain(chainInfo) {
|
|
332
|
-
var _chainInfo$substrateI10;
|
|
333
|
-
return ((_chainInfo$substrateI10 = chainInfo.substrateInfo) === null || _chainInfo$substrateI10 === void 0 ? void 0 : _chainInfo$substrateI10.chainType) === _types._SubstrateChainType.RELAYCHAIN;
|
|
334
|
-
}
|
|
335
|
-
function _isSubstrateParaChain(chainInfo) {
|
|
336
|
-
var _chainInfo$substrateI11;
|
|
337
|
-
return chainInfo.substrateInfo !== null && chainInfo.substrateInfo.paraId !== null && ((_chainInfo$substrateI11 = chainInfo.substrateInfo) === null || _chainInfo$substrateI11 === void 0 ? void 0 : _chainInfo$substrateI11.chainType) === _types._SubstrateChainType.PARACHAIN;
|
|
338
|
-
}
|
|
339
|
-
function _getEvmAbiExplorer(chainInfo) {
|
|
340
|
-
var _chainInfo$evmInfo3;
|
|
341
|
-
return ((_chainInfo$evmInfo3 = chainInfo.evmInfo) === null || _chainInfo$evmInfo3 === void 0 ? void 0 : _chainInfo$evmInfo3.abiExplorer) || '';
|
|
342
|
-
}
|
|
343
|
-
function _isAssetValuable(assetInfo) {
|
|
344
|
-
return assetInfo.hasValue;
|
|
345
|
-
}
|
|
346
|
-
function _getMultiChainAsset(assetInfo) {
|
|
347
|
-
return (assetInfo === null || assetInfo === void 0 ? void 0 : assetInfo.multiChainAsset) || '';
|
|
348
|
-
}
|
|
349
|
-
function _getAssetPriceId(assetInfo) {
|
|
350
|
-
return (assetInfo === null || assetInfo === void 0 ? void 0 : assetInfo.priceId) || '';
|
|
351
|
-
}
|
|
352
|
-
function _getMultiChainAssetPriceId(multiChainAsset) {
|
|
353
|
-
return (multiChainAsset === null || multiChainAsset === void 0 ? void 0 : multiChainAsset.priceId) || '';
|
|
354
|
-
}
|
|
355
|
-
function _getAssetSymbol(assetInfo) {
|
|
356
|
-
return (assetInfo === null || assetInfo === void 0 ? void 0 : assetInfo.symbol) || '';
|
|
357
|
-
}
|
|
358
|
-
function _getMultiChainAssetSymbol(multiChainAsset) {
|
|
359
|
-
return multiChainAsset.symbol;
|
|
360
|
-
}
|
|
361
|
-
function _getAssetOriginChain(assetInfo) {
|
|
362
|
-
return assetInfo.originChain;
|
|
363
|
-
}
|
|
364
|
-
function _getChainName(chainInfo) {
|
|
365
|
-
return chainInfo.name;
|
|
366
|
-
}
|
|
367
|
-
function _getAssetDecimals(assetInfo) {
|
|
368
|
-
return assetInfo.decimals || 0;
|
|
369
|
-
}
|
|
370
|
-
function _getBlockExplorerFromChain(chainInfo) {
|
|
371
|
-
let blockExplorer;
|
|
372
|
-
if (!chainInfo) {
|
|
373
|
-
return;
|
|
374
|
-
}
|
|
375
|
-
if (_isPureEvmChain(chainInfo)) {
|
|
376
|
-
var _chainInfo$evmInfo4;
|
|
377
|
-
blockExplorer = chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$evmInfo4 = chainInfo.evmInfo) === null || _chainInfo$evmInfo4 === void 0 ? void 0 : _chainInfo$evmInfo4.blockExplorer;
|
|
378
|
-
} else {
|
|
379
|
-
var _chainInfo$substrateI12;
|
|
380
|
-
blockExplorer = chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$substrateI12 = chainInfo.substrateInfo) === null || _chainInfo$substrateI12 === void 0 ? void 0 : _chainInfo$substrateI12.blockExplorer;
|
|
381
|
-
}
|
|
382
|
-
if (!blockExplorer) {
|
|
383
|
-
return undefined;
|
|
384
|
-
}
|
|
385
|
-
if (blockExplorer !== '' && !blockExplorer.endsWith('/')) {
|
|
386
|
-
return `${blockExplorer}/`;
|
|
387
|
-
} else {
|
|
388
|
-
return blockExplorer;
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
function _parseMetadataForSmartContractAsset(contractAddress) {
|
|
392
|
-
return {
|
|
393
|
-
contractAddress
|
|
394
|
-
};
|
|
395
|
-
}
|
|
396
|
-
function _isChainTestNet(chainInfo) {
|
|
397
|
-
return chainInfo.isTestnet || false;
|
|
398
|
-
}
|
|
399
|
-
function _isAssetFungibleToken(chainAsset) {
|
|
400
|
-
return ![_types._AssetType.ERC721, _types._AssetType.PSP34, _types._AssetType.UNKNOWN].includes(chainAsset.assetType);
|
|
401
|
-
}
|
|
402
|
-
function _getCrowdloanUrlFromChain(chainInfo) {
|
|
403
|
-
var _chainInfo$substrateI13;
|
|
404
|
-
return (chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$substrateI13 = chainInfo.substrateInfo) === null || _chainInfo$substrateI13 === void 0 ? void 0 : _chainInfo$substrateI13.crowdloanUrl) || '';
|
|
405
|
-
}
|
|
406
|
-
function _isCustomProvider(providerKey) {
|
|
407
|
-
return providerKey.startsWith(_types2._CUSTOM_PREFIX);
|
|
408
|
-
}
|
|
409
|
-
function _generateCustomProviderKey(index) {
|
|
410
|
-
return `${_types2._CUSTOM_PREFIX}provider-${index}`;
|
|
411
|
-
}
|
|
412
|
-
const findChainInfoByHalfGenesisHash = (chainMap, halfGenesisHash) => {
|
|
413
|
-
if (!halfGenesisHash) {
|
|
414
|
-
return null;
|
|
415
|
-
}
|
|
416
|
-
for (const chainInfo of Object.values(chainMap)) {
|
|
417
|
-
var _getSubstrateGenesisH;
|
|
418
|
-
if (((_getSubstrateGenesisH = _getSubstrateGenesisHash(chainInfo)) === null || _getSubstrateGenesisH === void 0 ? void 0 : _getSubstrateGenesisH.toLowerCase().substring(2, 2 + 32)) === halfGenesisHash.toLowerCase()) {
|
|
419
|
-
return chainInfo;
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
return null;
|
|
423
|
-
};
|
|
424
|
-
exports.findChainInfoByHalfGenesisHash = findChainInfoByHalfGenesisHash;
|
|
425
|
-
const findChainInfoByChainId = (chainMap, chainId) => {
|
|
426
|
-
if (!chainId) {
|
|
427
|
-
return null;
|
|
428
|
-
}
|
|
429
|
-
for (const chainInfo of Object.values(chainMap)) {
|
|
430
|
-
var _chainInfo$evmInfo5;
|
|
431
|
-
if (((_chainInfo$evmInfo5 = chainInfo.evmInfo) === null || _chainInfo$evmInfo5 === void 0 ? void 0 : _chainInfo$evmInfo5.evmChainId) === chainId) {
|
|
432
|
-
return chainInfo;
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
return null;
|
|
436
|
-
};
|
|
437
|
-
exports.findChainInfoByChainId = findChainInfoByChainId;
|
|
438
|
-
function _isMantaZkAsset(chainAsset) {
|
|
439
|
-
return _constants._MANTA_ZK_CHAIN_GROUP.includes(chainAsset.originChain) && chainAsset.symbol.startsWith(_constants._ZK_ASSET_PREFIX);
|
|
440
|
-
}
|
|
441
|
-
function randomizeProvider(providers, excludedKeys) {
|
|
442
|
-
if (Object.keys(providers).length === 0) {
|
|
443
|
-
return {
|
|
444
|
-
providerKey: '',
|
|
445
|
-
providerValue: ''
|
|
446
|
-
};
|
|
447
|
-
}
|
|
448
|
-
let isValid = false;
|
|
449
|
-
let selectedProviderKey = '';
|
|
450
|
-
let selectedProviderValue = '';
|
|
451
|
-
while (!isValid) {
|
|
452
|
-
var _selectedProviderValu, _selectedProviderKey;
|
|
453
|
-
const randomProvider = Math.floor(Math.random() * Object.keys(providers).length);
|
|
454
|
-
selectedProviderKey = Object.keys(providers)[randomProvider];
|
|
455
|
-
selectedProviderValue = providers[selectedProviderKey];
|
|
456
|
-
if (!((_selectedProviderValu = selectedProviderValue) !== null && _selectedProviderValu !== void 0 && _selectedProviderValu.startsWith('light')) && !((_selectedProviderKey = selectedProviderKey) !== null && _selectedProviderKey !== void 0 && _selectedProviderKey.startsWith(_types2._CUSTOM_PREFIX)) && !(excludedKeys !== null && excludedKeys !== void 0 && excludedKeys.includes(selectedProviderKey))) {
|
|
457
|
-
// if it's light client, then re-randomize
|
|
458
|
-
isValid = true;
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
return {
|
|
462
|
-
providerKey: selectedProviderKey,
|
|
463
|
-
providerValue: selectedProviderValue
|
|
464
|
-
};
|
|
465
|
-
}
|
|
466
|
-
function updateLatestChainInfo(currentDataMap, latestChainInfoList) {
|
|
467
|
-
const currentChainInfoMap = currentDataMap.chainInfoMap;
|
|
468
|
-
const currentChainStateMap = currentDataMap.chainStateMap;
|
|
469
|
-
const storedChainInfoList = [];
|
|
470
|
-
const needUpdateChainApiList = [];
|
|
471
|
-
latestChainInfoList.forEach(latestChainInfo => {
|
|
472
|
-
const currentChainInfo = currentChainInfoMap[latestChainInfo.slug];
|
|
473
|
-
const currentChainState = currentChainStateMap[latestChainInfo.slug];
|
|
474
|
-
const currentChainProviderValue = currentChainInfo === null || currentChainInfo === void 0 ? void 0 : currentChainInfo.providers[currentChainState === null || currentChainState === void 0 ? void 0 : currentChainState.currentProvider];
|
|
475
|
-
if (currentChainInfo && currentChainState) {
|
|
476
|
-
const preservedProvider = {};
|
|
477
|
-
Object.entries(currentChainInfo.providers).forEach(_ref => {
|
|
478
|
-
let [providerKey, providerValue] = _ref;
|
|
479
|
-
if (providerValue !== null && providerValue !== void 0 && providerValue.startsWith('light') || providerKey !== null && providerKey !== void 0 && providerKey.startsWith(_types2._CUSTOM_PREFIX)) {
|
|
480
|
-
preservedProvider[providerKey] = providerValue;
|
|
481
|
-
}
|
|
482
|
-
});
|
|
483
|
-
currentChainInfo.providers = {
|
|
484
|
-
...latestChainInfo.providers,
|
|
485
|
-
...preservedProvider
|
|
486
|
-
};
|
|
487
|
-
const currentProviderNotFound = !Object.keys(currentChainInfo.providers).includes(currentChainState.currentProvider);
|
|
488
|
-
const currentProviderUpdated = Object.keys(currentChainInfo.providers).includes(currentChainState.currentProvider) && !Object.values(currentChainInfo.providers).includes(currentChainProviderValue);
|
|
489
|
-
if (currentChainInfo.chainStatus === _types._ChainStatus.ACTIVE && (currentProviderNotFound || currentProviderUpdated)) {
|
|
490
|
-
const {
|
|
491
|
-
providerKey
|
|
492
|
-
} = randomizeProvider(currentChainInfo.providers);
|
|
493
|
-
currentChainState.currentProvider = providerKey;
|
|
494
|
-
needUpdateChainApiList.push(currentChainInfo);
|
|
495
|
-
}
|
|
496
|
-
storedChainInfoList.push({
|
|
497
|
-
...currentChainInfo,
|
|
498
|
-
...currentChainState
|
|
499
|
-
});
|
|
500
|
-
}
|
|
501
|
-
});
|
|
502
|
-
return {
|
|
503
|
-
storedChainInfoList,
|
|
504
|
-
needUpdateChainApiList
|
|
505
|
-
};
|
|
506
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
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 _MigrateProvider = _interopRequireDefault(require("./MigrateProvider"));
|
|
9
|
-
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
10
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
11
|
-
|
|
12
|
-
class MigrateEthProvider extends _MigrateProvider.default {
|
|
13
|
-
newProvider = 'ethereum';
|
|
14
|
-
oldProvider = 'Cloudflare';
|
|
15
|
-
slug = 'Llamarpc';
|
|
16
|
-
}
|
|
17
|
-
exports.default = MigrateEthProvider;
|
|
@@ -1,17 +0,0 @@
|
|
|
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 _MigrateProvider = _interopRequireDefault(require("./MigrateProvider"));
|
|
9
|
-
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
10
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
11
|
-
|
|
12
|
-
class MigratePioneerProvider extends _MigrateProvider.default {
|
|
13
|
-
slug = 'pioneer';
|
|
14
|
-
oldProvider = 'OnFinality';
|
|
15
|
-
newProvider = 'Pioneer';
|
|
16
|
-
}
|
|
17
|
-
exports.default = MigratePioneerProvider;
|
|
@@ -1,29 +0,0 @@
|
|
|
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 MigrateProvider extends _Base.default {
|
|
13
|
-
async run() {
|
|
14
|
-
const state = this.state;
|
|
15
|
-
const chainState = state.getChainStateByKey(this.slug);
|
|
16
|
-
const chainInfo = state.getChainInfo(this.slug);
|
|
17
|
-
if (chainState && chainState.active && chainState.currentProvider === this.oldProvider) {
|
|
18
|
-
await state.upsertChainInfo({
|
|
19
|
-
mode: 'update',
|
|
20
|
-
chainEditInfo: {
|
|
21
|
-
currentProvider: this.newProvider,
|
|
22
|
-
slug: this.slug,
|
|
23
|
-
providers: chainInfo.providers
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
exports.default = MigrateProvider;
|