@subwallet/extension-base 1.3.40-0 → 1.3.42-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 +121 -4
- package/background/KoniTypes.js +18 -0
- package/background/errors/BitcoinProviderError.d.ts +6 -0
- package/background/errors/BitcoinProviderError.js +47 -0
- package/cjs/background/KoniTypes.js +20 -1
- package/cjs/background/errors/BitcoinProviderError.js +54 -0
- package/cjs/constants/bitcoin.js +22 -0
- package/cjs/constants/environment.js +4 -2
- package/cjs/constants/index.js +16 -1
- package/cjs/core/logic-validation/recipientAddress.js +9 -0
- package/cjs/core/logic-validation/transfer.js +25 -5
- package/cjs/core/types.js +1 -0
- package/cjs/core/utils.js +15 -1
- package/cjs/koni/background/handlers/Extension.js +96 -41
- package/cjs/koni/background/handlers/State.js +52 -11
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/bitcoin.js +94 -0
- package/cjs/services/balance-service/helpers/subscribe/evm.js +6 -1
- package/cjs/services/balance-service/helpers/subscribe/index.js +19 -7
- package/cjs/services/balance-service/index.js +32 -4
- package/cjs/services/balance-service/transfer/bitcoin-transfer.js +119 -0
- package/cjs/services/balance-service/transfer/token.js +2 -0
- package/cjs/services/balance-service/transfer/xcm/index.js +15 -9
- package/cjs/services/balance-service/transfer/xcm/utils.js +12 -14
- package/cjs/services/base/types.js +2 -0
- package/cjs/services/chain-service/constants.js +18 -6
- package/cjs/services/chain-service/handler/CardanoApi.js +25 -35
- package/cjs/services/chain-service/handler/bitcoin/BitcoinApi.js +105 -0
- package/cjs/services/chain-service/handler/bitcoin/BitcoinChainHandler.js +78 -0
- package/cjs/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/blockstream-testnet-strategy.js +371 -0
- package/cjs/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/index.js +19 -0
- package/cjs/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/mempool-testnet-strategy.js +368 -0
- package/cjs/services/chain-service/handler/bitcoin/strategy/SubWalletMainnet/index.js +302 -0
- package/cjs/services/chain-service/handler/bitcoin/strategy/types.js +1 -0
- package/cjs/services/chain-service/index.js +27 -3
- package/cjs/services/chain-service/utils/index.js +57 -4
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/handlers/native-staking/tao.js +4 -38
- package/cjs/services/event-service/index.js +4 -0
- package/cjs/services/fee-service/service.js +8 -3
- package/cjs/services/hiro-service/index.js +96 -0
- package/cjs/services/hiro-service/utils/index.js +85 -0
- package/cjs/services/history-service/bitcoin-history.js +58 -0
- package/cjs/services/history-service/helpers/recoverHistoryStatus.js +96 -4
- package/cjs/services/history-service/index.js +41 -3
- package/cjs/services/keyring-service/context/handlers/Derive.js +1 -1
- package/cjs/services/keyring-service/context/handlers/Migration.js +2 -2
- package/cjs/services/keyring-service/context/handlers/Mnemonic.js +4 -3
- package/cjs/services/migration-service/scripts/MigrateNewUnifiedAccount.js +29 -0
- package/cjs/services/migration-service/scripts/index.js +3 -1
- package/cjs/services/request-service/handler/BitcoinRequestHandler.js +440 -0
- package/cjs/services/request-service/index.js +29 -3
- package/cjs/services/rune-service/index.js +105 -0
- package/cjs/services/swap-service/handler/chainflip-handler.js +29 -18
- package/cjs/services/swap-service/handler/kyber-handler.js +5 -9
- package/cjs/services/swap-service/handler/simpleswap-handler.js +4 -7
- package/cjs/services/swap-service/handler/uniswap-handler.js +5 -12
- package/cjs/services/swap-service/utils.js +46 -37
- package/cjs/services/transaction-service/helpers/index.js +7 -1
- package/cjs/services/transaction-service/index.js +136 -15
- package/cjs/services/transaction-service/utils.js +6 -3
- package/cjs/strategy/api-request-strategy/context/base.js +31 -0
- package/cjs/strategy/api-request-strategy/index.js +90 -0
- package/cjs/strategy/api-request-strategy/types.js +1 -0
- package/cjs/strategy/api-request-strategy/utils/index.js +33 -0
- package/cjs/types/account/info/keyring.js +1 -1
- package/cjs/types/bitcoin.js +24 -0
- package/cjs/types/environment.js +19 -0
- package/cjs/types/fee/bitcoin.js +1 -0
- package/cjs/types/fee/index.js +11 -0
- package/cjs/types/index.js +11 -0
- package/cjs/utils/account/analyze.js +3 -3
- package/cjs/utils/account/common.js +16 -6
- package/cjs/utils/account/derive/info/solo.js +68 -19
- package/cjs/utils/account/derive/info/unified.js +2 -0
- package/cjs/utils/account/derive/validate.js +70 -2
- package/cjs/utils/account/transform.js +11 -5
- package/cjs/utils/bitcoin/common.js +98 -0
- package/cjs/utils/bitcoin/fee.js +21 -0
- package/cjs/utils/bitcoin/index.js +38 -0
- package/cjs/utils/bitcoin/utxo-management.js +281 -0
- package/cjs/utils/environment.js +30 -2
- package/cjs/utils/fee/transfer.js +48 -0
- package/cjs/utils/index.js +15 -1
- package/constants/bitcoin.d.ts +3 -0
- package/constants/bitcoin.js +13 -0
- package/constants/environment.d.ts +1 -0
- package/constants/environment.js +2 -1
- package/constants/index.d.ts +2 -0
- package/constants/index.js +3 -1
- package/core/logic-validation/recipientAddress.js +10 -1
- package/core/logic-validation/transfer.d.ts +2 -2
- package/core/logic-validation/transfer.js +27 -7
- package/core/types.d.ts +1 -0
- package/core/types.js +1 -0
- package/core/utils.d.ts +1 -0
- package/core/utils.js +15 -2
- package/koni/background/handlers/Extension.d.ts +2 -0
- package/koni/background/handlers/Extension.js +95 -42
- package/koni/background/handlers/State.d.ts +7 -3
- package/koni/background/handlers/State.js +52 -12
- package/package.json +149 -8
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/bitcoin.d.ts +2 -0
- package/services/balance-service/helpers/subscribe/bitcoin.js +87 -0
- package/services/balance-service/helpers/subscribe/evm.js +6 -1
- package/services/balance-service/helpers/subscribe/index.d.ts +2 -2
- package/services/balance-service/helpers/subscribe/index.js +20 -8
- package/services/balance-service/index.d.ts +2 -0
- package/services/balance-service/index.js +32 -4
- package/services/balance-service/transfer/bitcoin-transfer.d.ts +14 -0
- package/services/balance-service/transfer/bitcoin-transfer.js +112 -0
- package/services/balance-service/transfer/token.js +2 -0
- package/services/balance-service/transfer/xcm/index.js +15 -9
- package/services/balance-service/transfer/xcm/utils.d.ts +2 -0
- package/services/balance-service/transfer/xcm/utils.js +12 -14
- package/services/base/types.d.ts +2 -0
- package/services/base/types.js +2 -0
- package/services/chain-service/constants.d.ts +7 -0
- package/services/chain-service/constants.js +12 -5
- package/services/chain-service/handler/CardanoApi.d.ts +1 -5
- package/services/chain-service/handler/CardanoApi.js +26 -34
- package/services/chain-service/handler/bitcoin/BitcoinApi.d.ts +31 -0
- package/services/chain-service/handler/bitcoin/BitcoinApi.js +98 -0
- package/services/chain-service/handler/bitcoin/BitcoinChainHandler.d.ts +16 -0
- package/services/chain-service/handler/bitcoin/BitcoinChainHandler.js +70 -0
- package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/blockstream-testnet-strategy.d.ts +28 -0
- package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/blockstream-testnet-strategy.js +362 -0
- package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/index.d.ts +2 -0
- package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/index.js +5 -0
- package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/mempool-testnet-strategy.d.ts +28 -0
- package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/mempool-testnet-strategy.js +359 -0
- package/services/chain-service/handler/bitcoin/strategy/SubWalletMainnet/index.d.ts +28 -0
- package/services/chain-service/handler/bitcoin/strategy/SubWalletMainnet/index.js +293 -0
- package/services/chain-service/handler/bitcoin/strategy/types.d.ts +291 -0
- package/services/chain-service/handler/bitcoin/strategy/types.js +1 -0
- package/services/chain-service/index.d.ts +3 -0
- package/services/chain-service/index.js +31 -5
- package/services/chain-service/types.d.ts +20 -0
- package/services/chain-service/utils/index.d.ts +4 -0
- package/services/chain-service/utils/index.js +50 -4
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/handlers/native-staking/tao.d.ts +0 -11
- package/services/earning-service/handlers/native-staking/tao.js +4 -24
- package/services/event-service/index.d.ts +3 -0
- package/services/event-service/index.js +4 -0
- package/services/event-service/types.d.ts +3 -0
- package/services/fee-service/service.js +8 -3
- package/services/hiro-service/index.d.ts +17 -0
- package/services/hiro-service/index.js +88 -0
- package/services/hiro-service/utils/index.d.ts +6 -0
- package/services/hiro-service/utils/index.js +72 -0
- package/services/history-service/bitcoin-history.d.ts +4 -0
- package/services/history-service/bitcoin-history.js +52 -0
- package/services/history-service/helpers/recoverHistoryStatus.d.ts +3 -1
- package/services/history-service/helpers/recoverHistoryStatus.js +96 -4
- package/services/history-service/index.d.ts +1 -0
- package/services/history-service/index.js +42 -4
- package/services/keyring-service/context/handlers/Derive.js +2 -2
- package/services/keyring-service/context/handlers/Migration.js +2 -2
- package/services/keyring-service/context/handlers/Mnemonic.js +4 -3
- package/services/migration-service/scripts/MigrateNewUnifiedAccount.d.ts +4 -0
- package/services/migration-service/scripts/MigrateNewUnifiedAccount.js +21 -0
- package/services/migration-service/scripts/index.js +3 -1
- package/services/request-service/handler/BitcoinRequestHandler.d.ts +23 -0
- package/services/request-service/handler/BitcoinRequestHandler.js +427 -0
- package/services/request-service/index.d.ts +9 -2
- package/services/request-service/index.js +25 -3
- package/services/rune-service/index.d.ts +17 -0
- package/services/rune-service/index.js +97 -0
- package/services/swap-service/handler/chainflip-handler.d.ts +0 -2
- package/services/swap-service/handler/chainflip-handler.js +25 -13
- package/services/swap-service/handler/kyber-handler.d.ts +0 -1
- package/services/swap-service/handler/kyber-handler.js +5 -8
- package/services/swap-service/handler/simpleswap-handler.d.ts +0 -1
- package/services/swap-service/handler/simpleswap-handler.js +4 -6
- package/services/swap-service/handler/uniswap-handler.js +6 -13
- package/services/swap-service/utils.d.ts +0 -13
- package/services/swap-service/utils.js +46 -34
- package/services/transaction-service/helpers/index.d.ts +3 -1
- package/services/transaction-service/helpers/index.js +5 -0
- package/services/transaction-service/index.d.ts +3 -5
- package/services/transaction-service/index.js +135 -16
- package/services/transaction-service/types.d.ts +12 -2
- package/services/transaction-service/utils.js +7 -4
- package/strategy/api-request-strategy/context/base.d.ts +15 -0
- package/strategy/api-request-strategy/context/base.js +24 -0
- package/strategy/api-request-strategy/index.d.ts +15 -0
- package/strategy/api-request-strategy/index.js +83 -0
- package/strategy/api-request-strategy/types.d.ts +22 -0
- package/strategy/api-request-strategy/types.js +1 -0
- package/strategy/api-request-strategy/utils/index.d.ts +2 -0
- package/strategy/api-request-strategy/utils/index.js +23 -0
- package/types/account/info/keyring.d.ts +1 -1
- package/types/account/info/keyring.js +1 -1
- package/types/balance/index.d.ts +4 -1
- package/types/balance/transfer.d.ts +17 -0
- package/types/bitcoin.d.ts +93 -0
- package/types/bitcoin.js +17 -0
- package/types/environment.d.ts +9 -0
- package/types/environment.js +13 -0
- package/types/fee/base.d.ts +4 -1
- package/types/fee/bitcoin.d.ts +18 -0
- package/types/fee/bitcoin.js +1 -0
- package/types/fee/index.d.ts +1 -0
- package/types/fee/index.js +2 -1
- package/types/fee/subscription.d.ts +4 -3
- package/types/index.d.ts +1 -0
- package/types/index.js +1 -0
- package/utils/account/analyze.js +4 -4
- package/utils/account/common.d.ts +7 -8
- package/utils/account/common.js +16 -6
- package/utils/account/derive/info/solo.js +70 -21
- package/utils/account/derive/info/unified.js +2 -0
- package/utils/account/derive/validate.d.ts +1 -0
- package/utils/account/derive/validate.js +68 -1
- package/utils/account/transform.d.ts +1 -1
- package/utils/account/transform.js +11 -5
- package/utils/bitcoin/common.d.ts +22 -0
- package/utils/bitcoin/common.js +88 -0
- package/utils/bitcoin/fee.d.ts +2 -0
- package/utils/bitcoin/fee.js +14 -0
- package/utils/bitcoin/index.d.ts +3 -0
- package/utils/bitcoin/index.js +6 -0
- package/utils/bitcoin/utxo-management.d.ts +33 -0
- package/utils/bitcoin/utxo-management.js +266 -0
- package/utils/environment.d.ts +2 -0
- package/utils/environment.js +27 -1
- package/utils/fee/transfer.d.ts +3 -1
- package/utils/fee/transfer.js +47 -1
- package/utils/index.d.ts +1 -0
- package/utils/index.js +6 -3
|
@@ -17,6 +17,7 @@ exports.HistoryRecoverStatus = HistoryRecoverStatus;
|
|
|
17
17
|
HistoryRecoverStatus["LACK_INFO"] = "LACK_INFO";
|
|
18
18
|
HistoryRecoverStatus["FAIL_DETECT"] = "FAIL_DETECT";
|
|
19
19
|
HistoryRecoverStatus["UNKNOWN"] = "UNKNOWN";
|
|
20
|
+
HistoryRecoverStatus["TX_PENDING"] = "TX_PENDING";
|
|
20
21
|
})(HistoryRecoverStatus || (exports.HistoryRecoverStatus = HistoryRecoverStatus = {}));
|
|
21
22
|
const BLOCK_LIMIT = 6;
|
|
22
23
|
const substrateRecover = async (history, chainService) => {
|
|
@@ -216,6 +217,80 @@ const evmRecover = async (history, chainService) => {
|
|
|
216
217
|
};
|
|
217
218
|
}
|
|
218
219
|
};
|
|
220
|
+
const bitcoinRecover = async (history, chainService) => {
|
|
221
|
+
const {
|
|
222
|
+
chain,
|
|
223
|
+
extrinsicHash
|
|
224
|
+
} = history;
|
|
225
|
+
const result = {
|
|
226
|
+
status: HistoryRecoverStatus.UNKNOWN
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
// TODO: 1. Consider rebroadcasting transaction if stuck in mempool
|
|
230
|
+
|
|
231
|
+
try {
|
|
232
|
+
const bitcoinApi = chainService.getBitcoinApi(chain);
|
|
233
|
+
if (bitcoinApi) {
|
|
234
|
+
const api = bitcoinApi.api;
|
|
235
|
+
if (extrinsicHash) {
|
|
236
|
+
try {
|
|
237
|
+
const timeout = new Promise(resolve => {
|
|
238
|
+
setTimeout(() => {
|
|
239
|
+
resolve(undefined);
|
|
240
|
+
}, 60000);
|
|
241
|
+
});
|
|
242
|
+
const txStatus = await Promise.race([api.getTransactionStatus(extrinsicHash), timeout]);
|
|
243
|
+
if (!txStatus) {
|
|
244
|
+
return {
|
|
245
|
+
...result,
|
|
246
|
+
status: HistoryRecoverStatus.API_INACTIVE
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
if (txStatus.confirmed) {
|
|
250
|
+
const transactionDetail = await Promise.race([api.getTransactionDetail(extrinsicHash), timeout]);
|
|
251
|
+
if (transactionDetail) {
|
|
252
|
+
result.blockHash = transactionDetail.status.block_hash || undefined;
|
|
253
|
+
result.blockNumber = transactionDetail.status.block_height || undefined;
|
|
254
|
+
result.blockTime = transactionDetail.status.block_time ? transactionDetail.status.block_time * 1000 : undefined;
|
|
255
|
+
return {
|
|
256
|
+
...result,
|
|
257
|
+
status: HistoryRecoverStatus.SUCCESS
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
return {
|
|
261
|
+
...result,
|
|
262
|
+
status: HistoryRecoverStatus.API_INACTIVE
|
|
263
|
+
};
|
|
264
|
+
} else {
|
|
265
|
+
return {
|
|
266
|
+
...result,
|
|
267
|
+
status: HistoryRecoverStatus.TX_PENDING
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
} catch (e) {
|
|
271
|
+
// Fail when cannot find transaction
|
|
272
|
+
return {
|
|
273
|
+
...result,
|
|
274
|
+
status: HistoryRecoverStatus.FAILED
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return {
|
|
279
|
+
status: HistoryRecoverStatus.FAIL_DETECT
|
|
280
|
+
};
|
|
281
|
+
} else {
|
|
282
|
+
console.error(`Fail to update history ${chain}-${extrinsicHash}: Api not active`);
|
|
283
|
+
return {
|
|
284
|
+
status: HistoryRecoverStatus.API_INACTIVE
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
} catch (e) {
|
|
288
|
+
console.error(`Fail to update history ${chain}-${extrinsicHash}:`, e.message);
|
|
289
|
+
return {
|
|
290
|
+
status: HistoryRecoverStatus.UNKNOWN
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
};
|
|
219
294
|
|
|
220
295
|
// undefined: Cannot check status
|
|
221
296
|
// true: Transaction success
|
|
@@ -224,13 +299,30 @@ const historyRecover = async (history, chainService) => {
|
|
|
224
299
|
const {
|
|
225
300
|
chainType
|
|
226
301
|
} = history;
|
|
227
|
-
if (chainType) {
|
|
228
|
-
const checkFunction = chainType === 'substrate' ? substrateRecover : evmRecover;
|
|
229
|
-
return await checkFunction(history, chainService);
|
|
230
|
-
} else {
|
|
302
|
+
if (!chainType) {
|
|
231
303
|
return {
|
|
232
304
|
status: HistoryRecoverStatus.LACK_INFO
|
|
233
305
|
};
|
|
234
306
|
}
|
|
307
|
+
const recoverFunctions = {
|
|
308
|
+
substrate: substrateRecover,
|
|
309
|
+
evm: evmRecover,
|
|
310
|
+
bitcoin: bitcoinRecover
|
|
311
|
+
};
|
|
312
|
+
const checkFunction = recoverFunctions[chainType];
|
|
313
|
+
if (!checkFunction) {
|
|
314
|
+
console.warn(`Chain type ${chainType} is not supported for recoverHistory`);
|
|
315
|
+
return {
|
|
316
|
+
status: HistoryRecoverStatus.UNKNOWN
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
try {
|
|
320
|
+
return await checkFunction(history, chainService);
|
|
321
|
+
} catch (error) {
|
|
322
|
+
console.error(`Failed to recover history for chain type ${chainType}:`, error);
|
|
323
|
+
return {
|
|
324
|
+
status: HistoryRecoverStatus.FAILED
|
|
325
|
+
};
|
|
326
|
+
}
|
|
235
327
|
};
|
|
236
328
|
exports.historyRecover = historyRecover;
|
|
@@ -8,6 +8,7 @@ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
|
8
8
|
var _constants = require("@subwallet/extension-base/constants");
|
|
9
9
|
var _types = require("@subwallet/extension-base/services/base/types");
|
|
10
10
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
11
|
+
var _bitcoinHistory = require("@subwallet/extension-base/services/history-service/bitcoin-history");
|
|
11
12
|
var _recoverHistoryStatus = require("@subwallet/extension-base/services/history-service/helpers/recoverHistoryStatus");
|
|
12
13
|
var _subscanExtrinsicParserHelper = require("@subwallet/extension-base/services/history-service/helpers/subscan-extrinsic-parser-helper");
|
|
13
14
|
var _subscanHistory = require("@subwallet/extension-base/services/history-service/subscan-history");
|
|
@@ -149,20 +150,48 @@ class HistoryService {
|
|
|
149
150
|
console.log('fetchAllPossibleTransferItems-receive error', e);
|
|
150
151
|
});
|
|
151
152
|
}
|
|
153
|
+
|
|
154
|
+
// Only 1 address is passed in
|
|
155
|
+
async fetchBitcoinTransactionHistory(chain, addresses) {
|
|
156
|
+
const chainInfo = this.chainService.getChainInfoByKey(chain);
|
|
157
|
+
const chainState = this.chainService.getChainStateByKey(chain);
|
|
158
|
+
if (!chainState.active) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const bitcoinApi = this.chainService.getBitcoinApi(chain);
|
|
162
|
+
const allParsedItems = [];
|
|
163
|
+
for (const address of addresses) {
|
|
164
|
+
const transferItems = await bitcoinApi.api.getAddressTransaction(address);
|
|
165
|
+
const parsedItems = transferItems.map((item, index) => {
|
|
166
|
+
const parsedItem = (0, _bitcoinHistory.parseBitcoinTransferData)(address, item, chainInfo);
|
|
167
|
+
return {
|
|
168
|
+
...parsedItem,
|
|
169
|
+
apiTxIndex: index
|
|
170
|
+
};
|
|
171
|
+
});
|
|
172
|
+
allParsedItems.push(...parsedItems);
|
|
173
|
+
}
|
|
174
|
+
await this.addHistoryItems(allParsedItems);
|
|
175
|
+
}
|
|
152
176
|
subscribeHistories(chain, proxyId, cb) {
|
|
153
177
|
const addresses = this.keyringService.context.getDecodedAddresses(proxyId, false);
|
|
178
|
+
const chainInfo = this.chainService.getChainInfoByKey(chain);
|
|
154
179
|
const evmAddresses = (0, _utils2.getAddressesByChainType)(addresses, [_KoniTypes.ChainType.EVM]);
|
|
155
180
|
const substrateAddresses = (0, _utils2.getAddressesByChainType)(addresses, [_KoniTypes.ChainType.SUBSTRATE]);
|
|
181
|
+
const bitcoinAddresses = (0, _utils2.getAddressesByChainType)(addresses, [_KoniTypes.ChainType.BITCOIN], chainInfo);
|
|
156
182
|
const subscription = this.historySubject.subscribe(items => {
|
|
157
183
|
cb(items.filter(filterHistoryItemByAddressAndChain(chain, addresses)));
|
|
158
184
|
});
|
|
159
|
-
const chainInfo = this.chainService.getChainInfoByKey(chain);
|
|
160
185
|
if ((0, _utils._isChainSubstrateCompatible)(chainInfo)) {
|
|
161
186
|
if ((0, _utils._isChainEvmCompatible)(chainInfo)) {
|
|
162
187
|
this.fetchSubscanTransactionHistory(chain, evmAddresses);
|
|
163
188
|
} else {
|
|
164
189
|
this.fetchSubscanTransactionHistory(chain, substrateAddresses);
|
|
165
190
|
}
|
|
191
|
+
} else if ((0, _utils._isChainBitcoinCompatible)(chainInfo)) {
|
|
192
|
+
this.fetchBitcoinTransactionHistory(chain, bitcoinAddresses).catch(e => {
|
|
193
|
+
console.log('fetchBitcoinTransactionHistory Error', e);
|
|
194
|
+
});
|
|
166
195
|
}
|
|
167
196
|
return {
|
|
168
197
|
unsubscribe: subscription.unsubscribe,
|
|
@@ -203,7 +232,8 @@ class HistoryService {
|
|
|
203
232
|
if (needUpdateItem) {
|
|
204
233
|
updateRecords.push({
|
|
205
234
|
...needUpdateItem,
|
|
206
|
-
status: item.status
|
|
235
|
+
status: item.status,
|
|
236
|
+
apiTxIndex: item.apiTxIndex
|
|
207
237
|
});
|
|
208
238
|
return;
|
|
209
239
|
}
|
|
@@ -256,6 +286,9 @@ class HistoryService {
|
|
|
256
286
|
switch (recoverResult.status) {
|
|
257
287
|
case _recoverHistoryStatus.HistoryRecoverStatus.API_INACTIVE:
|
|
258
288
|
break;
|
|
289
|
+
case _recoverHistoryStatus.HistoryRecoverStatus.TX_PENDING:
|
|
290
|
+
delete this.#needRecoveryHistories[currentExtrinsicHash];
|
|
291
|
+
break;
|
|
259
292
|
case _recoverHistoryStatus.HistoryRecoverStatus.FAILED:
|
|
260
293
|
case _recoverHistoryStatus.HistoryRecoverStatus.SUCCESS:
|
|
261
294
|
updateData.status = recoverResult.status === _recoverHistoryStatus.HistoryRecoverStatus.SUCCESS ? _KoniTypes.ExtrinsicStatus.SUCCESS : _KoniTypes.ExtrinsicStatus.FAIL;
|
|
@@ -293,7 +326,12 @@ class HistoryService {
|
|
|
293
326
|
const histories = await this.dbService.getHistories();
|
|
294
327
|
this.#needRecoveryHistories = {};
|
|
295
328
|
histories.filter(history => {
|
|
296
|
-
|
|
329
|
+
if ([_KoniTypes.ExtrinsicStatus.PROCESSING, _KoniTypes.ExtrinsicStatus.SUBMITTING].includes(history.status)) {
|
|
330
|
+
return true;
|
|
331
|
+
} else if (history.status === _KoniTypes.ExtrinsicStatus.SUCCESS && history.chainType === 'bitcoin') {
|
|
332
|
+
return !history.blockTime;
|
|
333
|
+
}
|
|
334
|
+
return false;
|
|
297
335
|
}).filter(history => {
|
|
298
336
|
if (history.type === _KoniTypes.ExtrinsicType.TRANSFER_XCM) {
|
|
299
337
|
const data = history.additionalInfo;
|
|
@@ -15,7 +15,7 @@ var _Base = require("./Base");
|
|
|
15
15
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
16
16
|
// SPDX-License-Identifier: Apache-2.0
|
|
17
17
|
|
|
18
|
-
const validDeriveKeypairTypes = [..._types2.SubstrateKeypairTypes, ..._types2.EthereumKeypairTypes, 'ton', 'cardano'];
|
|
18
|
+
const validDeriveKeypairTypes = [..._types2.SubstrateKeypairTypes, ..._types2.EthereumKeypairTypes, 'ton', 'cardano', ..._types2.BitcoinKeypairTypes];
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* @class AccountDeriveHandler
|
|
@@ -82,7 +82,7 @@ class AccountMigrationHandler extends _Base.AccountBaseHandler {
|
|
|
82
82
|
proxyId
|
|
83
83
|
}).result;
|
|
84
84
|
const newChainTypes = Object.values(_types.AccountChainType).filter(type => !unifiedAccount.chainTypes.includes(type) && _types.SUPPORTED_ACCOUNT_CHAIN_TYPES.includes(type));
|
|
85
|
-
const keypairTypes = newChainTypes.
|
|
85
|
+
const keypairTypes = newChainTypes.flatMap(chainType => (0, _utils.getDefaultKeypairTypeFromAccountChainType)(chainType));
|
|
86
86
|
keypairTypes.forEach(type => {
|
|
87
87
|
const suri = (0, _utils.getSuri)(mnemonic, type);
|
|
88
88
|
const pair = _uiKeyring.keyring.createFromUri(suri, {}, type);
|
|
@@ -187,7 +187,7 @@ class AccountMigrationHandler extends _Base.AccountBaseHandler {
|
|
|
187
187
|
password,
|
|
188
188
|
proxyId: firstAccountOldProxyId
|
|
189
189
|
}).result;
|
|
190
|
-
const keypairTypes = _types.SUPPORTED_ACCOUNT_CHAIN_TYPES.
|
|
190
|
+
const keypairTypes = _types.SUPPORTED_ACCOUNT_CHAIN_TYPES.flatMap(chainType => (0, _utils.getDefaultKeypairTypeFromAccountChainType)(chainType));
|
|
191
191
|
keypairTypes.forEach(type => {
|
|
192
192
|
const suri = (0, _utils.getSuri)(mnemonic, type);
|
|
193
193
|
const pair = _uiKeyring.keyring.createFromUri(suri, {}, type);
|
|
@@ -7,6 +7,7 @@ exports.SEED_LENGTHS = exports.SEED_DEFAULT_LENGTH = exports.AccountMnemonicHand
|
|
|
7
7
|
var _types = require("@subwallet/extension-base/types");
|
|
8
8
|
var _utils = require("@subwallet/extension-base/utils");
|
|
9
9
|
var _keyring = require("@subwallet/keyring");
|
|
10
|
+
var _types2 = require("@subwallet/keyring/types");
|
|
10
11
|
var _utils2 = require("@subwallet/keyring/utils");
|
|
11
12
|
var _uiKeyring = require("@subwallet/ui-keyring");
|
|
12
13
|
var _i18next = require("i18next");
|
|
@@ -36,7 +37,7 @@ class AccountMnemonicHandler extends _Base.AccountBaseHandler {
|
|
|
36
37
|
mnemonic: _seed,
|
|
37
38
|
type = 'general'
|
|
38
39
|
} = _ref;
|
|
39
|
-
const types = type === 'general' ? ['sr25519',
|
|
40
|
+
const types = type === 'general' ? ['sr25519', ..._types2.EthereumKeypairTypes, 'ton', ..._types2.CardanoKeypairTypes, ..._types2.BitcoinKeypairTypes] : ['ton-native'];
|
|
40
41
|
const seed = _seed || type === 'general' ? (0, _utilCrypto.mnemonicGenerate)(length) : await (0, _keyring.tonMnemonicGenerate)(length);
|
|
41
42
|
const rs = {
|
|
42
43
|
mnemonic: seed,
|
|
@@ -70,7 +71,7 @@ class AccountMnemonicHandler extends _Base.AccountBaseHandler {
|
|
|
70
71
|
try {
|
|
71
72
|
(0, _util.assert)((0, _utilCrypto.mnemonicValidate)(phrase), (0, _i18next.t)('Invalid seed phrase. Please try again.'));
|
|
72
73
|
mnemonicTypes = 'general';
|
|
73
|
-
pairTypes = ['sr25519',
|
|
74
|
+
pairTypes = ['sr25519', ..._types2.EthereumKeypairTypes, 'ton', ..._types2.CardanoKeypairTypes, ..._types2.BitcoinKeypairTypes];
|
|
74
75
|
} catch (e) {
|
|
75
76
|
(0, _util.assert)((0, _utils2.tonMnemonicValidate)(phrase), (0, _i18next.t)('Invalid seed phrase. Please try again.'));
|
|
76
77
|
mnemonicTypes = 'ton';
|
|
@@ -107,7 +108,7 @@ class AccountMnemonicHandler extends _Base.AccountBaseHandler {
|
|
|
107
108
|
const addressDict = {};
|
|
108
109
|
let changedAccount = false;
|
|
109
110
|
const hasMasterPassword = _uiKeyring.keyring.keyring.hasMasterPassword;
|
|
110
|
-
const types = type ? [type] : ['sr25519',
|
|
111
|
+
const types = type ? [type] : ['sr25519', ..._types2.EthereumKeypairTypes, 'ton', ..._types2.CardanoKeypairTypes, ..._types2.BitcoinKeypairTypes];
|
|
111
112
|
if (!hasMasterPassword) {
|
|
112
113
|
if (!password) {
|
|
113
114
|
throw Error((0, _i18next.t)('The password of each account is needed to set up master password'));
|
|
@@ -0,0 +1,29 @@
|
|
|
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 MigrateNewUnifiedAccount extends _Base.default {
|
|
13
|
+
async run() {
|
|
14
|
+
try {
|
|
15
|
+
return new Promise(resolve => {
|
|
16
|
+
this.state.settingService.getSettings(currentSettings => {
|
|
17
|
+
this.state.settingService.setSettings({
|
|
18
|
+
...currentSettings,
|
|
19
|
+
isAcknowledgedUnifiedAccountMigration: false
|
|
20
|
+
});
|
|
21
|
+
resolve();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
} catch (e) {
|
|
25
|
+
console.error(e);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.default = MigrateNewUnifiedAccount;
|
|
@@ -26,6 +26,7 @@ var _EnableVaraChain = _interopRequireDefault(require("./EnableVaraChain"));
|
|
|
26
26
|
var _MigrateAuthUrls = _interopRequireDefault(require("./MigrateAuthUrls"));
|
|
27
27
|
var _MigrateImportedToken = _interopRequireDefault(require("./MigrateImportedToken"));
|
|
28
28
|
var _MigrateNetworkSettings = _interopRequireDefault(require("./MigrateNetworkSettings"));
|
|
29
|
+
var _MigrateNewUnifiedAccount = _interopRequireDefault(require("./MigrateNewUnifiedAccount"));
|
|
29
30
|
var _MigrateTokenDecimals = _interopRequireDefault(require("./MigrateTokenDecimals"));
|
|
30
31
|
var _MigrateTransactionHistory = _interopRequireDefault(require("./MigrateTransactionHistory"));
|
|
31
32
|
var _MigrateTransactionHistoryBridge = _interopRequireDefault(require("./MigrateTransactionHistoryBridge"));
|
|
@@ -70,8 +71,9 @@ var _default = {
|
|
|
70
71
|
'1.3.6-01': _MigrateTransactionHistoryBridge.default,
|
|
71
72
|
'1.3.10-01': _ClearMetadataDatabase.default,
|
|
72
73
|
'1.3.26-01': _DisableZeroBalanceTokens.default,
|
|
73
|
-
[MYTHOS_MIGRATION_KEY]: _ClearMetadataForMythos.default
|
|
74
|
+
[MYTHOS_MIGRATION_KEY]: _ClearMetadataForMythos.default,
|
|
74
75
|
// [`${EVERYTIME}-1.1.42-02`]: MigrateTransactionHistoryBySymbol
|
|
75
76
|
// [`${EVERYTIME}-1`]: AutoEnableChainsTokens
|
|
77
|
+
'1.3.42-01': _MigrateNewUnifiedAccount.default
|
|
76
78
|
};
|
|
77
79
|
exports.default = _default;
|