@subwallet/extension-base 1.0.4-1 → 1.0.5-1
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 +12 -1
- package/background/KoniTypes.js +1 -0
- package/background/errors/TransactionError.js +4 -0
- package/background/handlers/State.d.ts +1 -1
- package/background/handlers/State.js +2 -8
- package/background/handlers/subscriptions.js +0 -1
- package/background/types.d.ts +2 -2
- package/cjs/background/KoniTypes.js +1 -0
- package/cjs/background/errors/TransactionError.js +4 -0
- package/cjs/background/handlers/State.js +1 -7
- package/cjs/background/handlers/subscriptions.js +0 -1
- package/cjs/constants/index.js +6 -6
- package/cjs/koni/api/coingecko.js +1 -4
- package/cjs/koni/api/dotsama/balance.js +7 -5
- package/cjs/koni/api/dotsama/crowdloan.js +0 -4
- package/cjs/koni/api/dotsama/transfer.js +0 -4
- package/cjs/koni/api/nft/acala_nft/index.js +1 -1
- package/cjs/koni/api/nft/bit.country/index.js +1 -1
- package/cjs/koni/api/nft/evm_nft/index.js +2 -3
- package/cjs/koni/api/nft/index.js +1 -2
- package/cjs/koni/api/nft/karura_nft/index.js +1 -1
- package/cjs/koni/api/nft/quartz_nft/index.js +1 -1
- package/cjs/koni/api/nft/rmrk_nft/index.js +2 -3
- package/cjs/koni/api/nft/statemine_nft/index.js +1 -1
- package/cjs/koni/api/nft/transfer.js +5 -5
- package/cjs/koni/api/nft/unique_nft/index.js +1 -1
- package/cjs/koni/api/nft/unique_nft/uniqueNftV2.js +0 -1
- package/cjs/koni/api/nft/wasm_nft/index.js +1 -2
- package/cjs/koni/api/staking/bonding/astar.js +28 -12
- package/cjs/koni/api/staking/bonding/utils.js +4 -0
- package/cjs/koni/api/staking/relayChain.js +0 -1
- package/cjs/koni/api/staking/subsquidStaking.js +0 -2
- package/cjs/koni/api/tokens/wasm/index.js +0 -1
- package/cjs/koni/api/tokens/wasm/utils.js +0 -1
- package/cjs/koni/api/xcm/index.js +0 -1
- package/cjs/koni/background/cron.js +0 -45
- package/cjs/koni/background/handlers/Extension.js +163 -133
- package/cjs/koni/background/handlers/State.js +18 -3
- package/cjs/koni/background/handlers/Tabs.js +34 -2
- package/cjs/koni/background/handlers/index.js +3 -2
- package/cjs/koni/background/subscription.js +0 -26
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/chain-service/handler/EvmChainHandler.js +1 -1
- package/cjs/services/chain-service/handler/SubstrateChainHandler.js +2 -9
- package/cjs/services/chain-service/handler/light-client/index.js +9 -6
- package/cjs/services/chain-service/index.js +0 -2
- package/cjs/services/chain-service/utils.js +3 -0
- package/cjs/services/history-service/helpers/recoverHistoryStatus.js +108 -0
- package/cjs/services/history-service/index.js +60 -5
- package/cjs/services/history-service/subsquid-multi-chain-history.js +3 -2
- package/cjs/services/history-service/testChainMap.js +724 -0
- package/cjs/services/keyring-service/index.js +0 -2
- package/cjs/services/migration-service/index.js +0 -3
- package/cjs/services/migration-service/scripts/MigrateAutoLock.js +30 -0
- package/cjs/services/migration-service/scripts/MigrateChainPatrol.js +30 -0
- package/cjs/services/migration-service/scripts/index.js +5 -1
- package/cjs/services/price-service/coingecko.js +1 -1
- package/cjs/services/price-service/index.js +0 -3
- package/cjs/services/request-service/handler/AuthRequestHandler.js +1 -1
- package/cjs/services/setting-service/constants.js +8 -2
- package/cjs/services/storage-service/DatabaseService.js +2 -44
- package/cjs/services/transaction-service/constants.js +11 -0
- package/cjs/services/transaction-service/index.js +28 -9
- package/cjs/services/transaction-service/utils.js +25 -14
- package/constants/index.d.ts +1 -1
- package/constants/index.js +1 -1
- package/koni/api/coingecko.js +1 -4
- package/koni/api/dotsama/balance.js +7 -5
- package/koni/api/dotsama/crowdloan.js +0 -4
- package/koni/api/dotsama/transfer.js +0 -4
- package/koni/api/nft/acala_nft/index.js +1 -1
- package/koni/api/nft/bit.country/index.js +1 -1
- package/koni/api/nft/evm_nft/index.js +2 -3
- package/koni/api/nft/index.js +1 -2
- package/koni/api/nft/karura_nft/index.js +1 -1
- package/koni/api/nft/quartz_nft/index.js +1 -1
- package/koni/api/nft/rmrk_nft/index.js +2 -3
- package/koni/api/nft/statemine_nft/index.js +1 -1
- package/koni/api/nft/transfer.js +5 -5
- package/koni/api/nft/unique_nft/index.js +1 -1
- package/koni/api/nft/unique_nft/uniqueNftV2.js +0 -1
- package/koni/api/nft/wasm_nft/index.js +1 -2
- package/koni/api/staking/bonding/astar.d.ts +2 -1
- package/koni/api/staking/bonding/astar.js +27 -12
- package/koni/api/staking/bonding/utils.js +4 -0
- package/koni/api/staking/relayChain.js +0 -1
- package/koni/api/staking/subsquidStaking.js +0 -2
- package/koni/api/tokens/wasm/index.js +0 -1
- package/koni/api/tokens/wasm/utils.js +0 -1
- package/koni/api/xcm/index.js +0 -1
- package/koni/background/cron.js +0 -45
- package/koni/background/handlers/Extension.d.ts +2 -0
- package/koni/background/handlers/Extension.js +78 -50
- package/koni/background/handlers/State.d.ts +3 -1
- package/koni/background/handlers/State.js +18 -3
- package/koni/background/handlers/Tabs.d.ts +1 -0
- package/koni/background/handlers/Tabs.js +32 -1
- package/koni/background/handlers/index.js +3 -2
- package/koni/background/subscription.d.ts +0 -1
- package/koni/background/subscription.js +0 -26
- package/package.json +55 -34
- package/packageInfo.js +1 -1
- package/services/chain-service/handler/EvmChainHandler.js +1 -1
- package/services/chain-service/handler/SubstrateChainHandler.js +2 -9
- package/services/chain-service/handler/light-client/index.js +8 -6
- package/services/chain-service/helper/api-helper/spec/acala.d.ts +3 -3
- package/services/chain-service/index.js +0 -2
- package/services/chain-service/utils.js +3 -0
- package/services/history-service/helpers/recoverHistoryStatus.d.ts +11 -0
- package/services/history-service/helpers/recoverHistoryStatus.js +98 -0
- package/services/history-service/index.d.ts +6 -0
- package/services/history-service/index.js +61 -6
- package/services/history-service/subsquid-multi-chain-history.js +3 -2
- package/services/history-service/testChainMap.d.ts +3 -0
- package/services/history-service/testChainMap.js +716 -0
- package/services/keyring-service/index.js +0 -2
- package/services/migration-service/index.js +0 -3
- package/services/migration-service/scripts/MigrateAutoLock.d.ts +4 -0
- package/services/migration-service/scripts/MigrateAutoLock.js +22 -0
- package/services/migration-service/scripts/MigrateChainPatrol.d.ts +4 -0
- package/services/migration-service/scripts/MigrateChainPatrol.js +22 -0
- package/services/migration-service/scripts/index.js +5 -1
- package/services/price-service/coingecko.js +1 -1
- package/services/price-service/index.js +0 -3
- package/services/request-service/handler/AuthRequestHandler.js +1 -1
- package/services/setting-service/constants.d.ts +4 -2
- package/services/setting-service/constants.js +5 -1
- package/services/storage-service/DatabaseService.js +2 -44
- package/services/transaction-service/constants.d.ts +1 -0
- package/services/transaction-service/constants.js +4 -0
- package/services/transaction-service/index.d.ts +1 -0
- package/services/transaction-service/index.js +29 -10
- package/services/transaction-service/utils.d.ts +1 -1
- package/services/transaction-service/utils.js +24 -13
|
@@ -290,11 +290,19 @@ export interface UiSettings {
|
|
|
290
290
|
accountAllLogo: string;
|
|
291
291
|
theme: ThemeNames;
|
|
292
292
|
camera: boolean;
|
|
293
|
+
timeAutoLock: number;
|
|
294
|
+
enableChainPatrol: boolean;
|
|
293
295
|
}
|
|
294
296
|
export declare type RequestSettingsType = UiSettings;
|
|
295
297
|
export declare type RequestCameraSettings = {
|
|
296
298
|
camera: boolean;
|
|
297
299
|
};
|
|
300
|
+
export declare type RequestChangeTimeAutoLock = {
|
|
301
|
+
autoLockTime: number;
|
|
302
|
+
};
|
|
303
|
+
export declare type RequestChangeEnableChainPatrol = {
|
|
304
|
+
enable: boolean;
|
|
305
|
+
};
|
|
298
306
|
export interface RandomTestRequest {
|
|
299
307
|
start: number;
|
|
300
308
|
end: number;
|
|
@@ -434,6 +442,7 @@ export declare enum BasicTxErrorType {
|
|
|
434
442
|
SEND_TRANSACTION_FAILED = "SEND_TRANSACTION_FAILED",
|
|
435
443
|
INTERNAL_ERROR = "INTERNAL_ERROR",
|
|
436
444
|
UNSUPPORTED = "UNSUPPORTED",
|
|
445
|
+
TIMEOUT = "TIMEOUT",
|
|
437
446
|
NOT_ENOUGH_EXISTENTIAL_DEPOSIT = "NOT_ENOUGH_EXISTENTIAL_DEPOSIT"
|
|
438
447
|
}
|
|
439
448
|
export declare enum StakingTxErrorType {
|
|
@@ -1460,12 +1469,14 @@ export interface KoniRequestSignatures {
|
|
|
1460
1469
|
'pri(accounts.subscribeAddresses)': [null, AddressBookInfo, AddressBookInfo];
|
|
1461
1470
|
'pri(accounts.editContact)': [RequestEditContactAccount, boolean];
|
|
1462
1471
|
'pri(accounts.deleteContact)': [RequestDeleteContactAccount, boolean];
|
|
1463
|
-
'pri(settings.changeBalancesVisibility)': [null, boolean
|
|
1472
|
+
'pri(settings.changeBalancesVisibility)': [null, boolean];
|
|
1464
1473
|
'pri(settings.subscribe)': [null, UiSettings, UiSettings];
|
|
1465
1474
|
'pri(settings.saveAccountAllLogo)': [string, boolean, UiSettings];
|
|
1466
1475
|
'pri(settings.saveTheme)': [ThemeNames, boolean, UiSettings];
|
|
1467
1476
|
'pri(settings.saveBrowserConfirmationType)': [BrowserConfirmationType, boolean, UiSettings];
|
|
1468
1477
|
'pri(settings.saveCamera)': [RequestCameraSettings, boolean];
|
|
1478
|
+
'pri(settings.saveAutoLockTime)': [RequestChangeTimeAutoLock, boolean];
|
|
1479
|
+
'pri(settings.saveEnableChainPatrol)': [RequestChangeEnableChainPatrol, boolean];
|
|
1469
1480
|
'pri(settings.getLogoMaps)': [null, AllLogoMap];
|
|
1470
1481
|
'pri(transaction.history.getSubscription)': [null, TransactionHistoryItem[], TransactionHistoryItem[]];
|
|
1471
1482
|
'pri(transfer.checkReferenceCount)': [RequestTransferCheckReferenceCount, boolean];
|
package/background/KoniTypes.js
CHANGED
|
@@ -102,6 +102,7 @@ export let BasicTxErrorType;
|
|
|
102
102
|
BasicTxErrorType["SEND_TRANSACTION_FAILED"] = "SEND_TRANSACTION_FAILED";
|
|
103
103
|
BasicTxErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
104
104
|
BasicTxErrorType["UNSUPPORTED"] = "UNSUPPORTED";
|
|
105
|
+
BasicTxErrorType["TIMEOUT"] = "TIMEOUT";
|
|
105
106
|
BasicTxErrorType["NOT_ENOUGH_EXISTENTIAL_DEPOSIT"] = "NOT_ENOUGH_EXISTENTIAL_DEPOSIT";
|
|
106
107
|
})(BasicTxErrorType || (BasicTxErrorType = {}));
|
|
107
108
|
export let StakingTxErrorType;
|
|
@@ -50,6 +50,10 @@ const defaultErrorMap = {
|
|
|
50
50
|
message: 'This transaction is not supported',
|
|
51
51
|
code: undefined
|
|
52
52
|
},
|
|
53
|
+
[BasicTxErrorType.TIMEOUT]: {
|
|
54
|
+
message: 'Transaction timeout',
|
|
55
|
+
code: undefined
|
|
56
|
+
},
|
|
53
57
|
[StakingTxErrorType.NOT_ENOUGH_MIN_STAKE]: {
|
|
54
58
|
message: 'Not enough min stake',
|
|
55
59
|
code: undefined
|
|
@@ -83,7 +83,7 @@ export default class State {
|
|
|
83
83
|
getMetaRequest(id: string): MetaRequest;
|
|
84
84
|
getSignRequest(id: string): SignRequest;
|
|
85
85
|
rpcListProviders(): Promise<ResponseRpcListProviders>;
|
|
86
|
-
rpcSend(request: RequestRpcSend, port: chrome.runtime.Port): Promise<JsonRpcResponse
|
|
86
|
+
rpcSend(request: RequestRpcSend, port: chrome.runtime.Port): Promise<JsonRpcResponse<unknown>>;
|
|
87
87
|
rpcStartProvider(key: string, port: chrome.runtime.Port): Promise<ProviderMeta>;
|
|
88
88
|
rpcSubscribe({ method, params, type }: RequestRpcSubscribe, cb: ProviderInterfaceCallback, port: chrome.runtime.Port): Promise<number | string>;
|
|
89
89
|
rpcSubscribeConnected(_request: null, cb: ProviderInterfaceCallback, port: chrome.runtime.Port): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright 2019-2022 @polkadot/extension-bg authors & contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { DEFAULT_SETTING } from '@subwallet/extension-base/services/setting-service/constants';
|
|
5
5
|
import SettingsStore from '@subwallet/extension-base/stores/Settings';
|
|
6
6
|
import { getId } from '@subwallet/extension-base/utils/getId';
|
|
7
7
|
import { addMetadata, knownMetadata } from '@subwallet/extension-chains';
|
|
@@ -156,13 +156,7 @@ export default class State {
|
|
|
156
156
|
this.settingsStore.get('Settings', value => {
|
|
157
157
|
if (!value) {
|
|
158
158
|
update({
|
|
159
|
-
|
|
160
|
-
browserConfirmationType: DEFAULT_NOTIFICATION_TYPE,
|
|
161
|
-
// isShowZeroBalance: true,
|
|
162
|
-
isShowBalance: false,
|
|
163
|
-
accountAllLogo: '',
|
|
164
|
-
theme: DEFAULT_THEME,
|
|
165
|
-
camera: false
|
|
159
|
+
...DEFAULT_SETTING
|
|
166
160
|
});
|
|
167
161
|
} else {
|
|
168
162
|
update(value);
|
|
@@ -22,7 +22,6 @@ export function isSubscriptionRunning(id) {
|
|
|
22
22
|
// clear a previous subscriber
|
|
23
23
|
export function unsubscribe(id) {
|
|
24
24
|
if (subscriptions[id]) {
|
|
25
|
-
console.log(`Unsubscribing from ${id}`);
|
|
26
25
|
delete subscriptions[id];
|
|
27
26
|
} else {
|
|
28
27
|
console.error(`Unable to unsubscribe from ${id}`);
|
package/background/types.d.ts
CHANGED
|
@@ -134,9 +134,9 @@ export interface RequestSignatures extends KoniRequestSignatures {
|
|
|
134
134
|
'pub(metadata.provide)': [MetadataDef, boolean];
|
|
135
135
|
'pub(phishing.redirectIfDenied)': [null, boolean];
|
|
136
136
|
'pub(rpc.listProviders)': [void, ResponseRpcListProviders];
|
|
137
|
-
'pub(rpc.send)': [RequestRpcSend, JsonRpcResponse];
|
|
137
|
+
'pub(rpc.send)': [RequestRpcSend, JsonRpcResponse<unknown>];
|
|
138
138
|
'pub(rpc.startProvider)': [string, ProviderMeta];
|
|
139
|
-
'pub(rpc.subscribe)': [RequestRpcSubscribe, number, JsonRpcResponse];
|
|
139
|
+
'pub(rpc.subscribe)': [RequestRpcSubscribe, number, JsonRpcResponse<unknown>];
|
|
140
140
|
'pub(rpc.subscribeConnected)': [null, boolean, boolean];
|
|
141
141
|
'pub(rpc.unsubscribe)': [RequestRpcUnsubscribe, boolean];
|
|
142
142
|
}
|
|
@@ -107,6 +107,7 @@ exports.BasicTxErrorType = BasicTxErrorType;
|
|
|
107
107
|
BasicTxErrorType["SEND_TRANSACTION_FAILED"] = "SEND_TRANSACTION_FAILED";
|
|
108
108
|
BasicTxErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
109
109
|
BasicTxErrorType["UNSUPPORTED"] = "UNSUPPORTED";
|
|
110
|
+
BasicTxErrorType["TIMEOUT"] = "TIMEOUT";
|
|
110
111
|
BasicTxErrorType["NOT_ENOUGH_EXISTENTIAL_DEPOSIT"] = "NOT_ENOUGH_EXISTENTIAL_DEPOSIT";
|
|
111
112
|
})(BasicTxErrorType || (exports.BasicTxErrorType = BasicTxErrorType = {}));
|
|
112
113
|
let StakingTxErrorType;
|
|
@@ -55,6 +55,10 @@ const defaultErrorMap = {
|
|
|
55
55
|
message: 'This transaction is not supported',
|
|
56
56
|
code: undefined
|
|
57
57
|
},
|
|
58
|
+
[_KoniTypes.BasicTxErrorType.TIMEOUT]: {
|
|
59
|
+
message: 'Transaction timeout',
|
|
60
|
+
code: undefined
|
|
61
|
+
},
|
|
58
62
|
[_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE]: {
|
|
59
63
|
message: 'Not enough min stake',
|
|
60
64
|
code: undefined
|
|
@@ -181,13 +181,7 @@ class State {
|
|
|
181
181
|
this.settingsStore.get('Settings', value => {
|
|
182
182
|
if (!value) {
|
|
183
183
|
update({
|
|
184
|
-
|
|
185
|
-
browserConfirmationType: _constants.DEFAULT_NOTIFICATION_TYPE,
|
|
186
|
-
// isShowZeroBalance: true,
|
|
187
|
-
isShowBalance: false,
|
|
188
|
-
accountAllLogo: '',
|
|
189
|
-
theme: _constants.DEFAULT_THEME,
|
|
190
|
-
camera: false
|
|
184
|
+
..._constants.DEFAULT_SETTING
|
|
191
185
|
});
|
|
192
186
|
} else {
|
|
193
187
|
update(value);
|
|
@@ -30,7 +30,6 @@ function isSubscriptionRunning(id) {
|
|
|
30
30
|
// clear a previous subscriber
|
|
31
31
|
function unsubscribe(id) {
|
|
32
32
|
if (subscriptions[id]) {
|
|
33
|
-
console.log(`Unsubscribing from ${id}`);
|
|
34
33
|
delete subscriptions[id];
|
|
35
34
|
} else {
|
|
36
35
|
console.error(`Unable to unsubscribe from ${id}`);
|
package/cjs/constants/index.js
CHANGED
|
@@ -17,14 +17,14 @@ var _exportNames = {
|
|
|
17
17
|
CRON_GET_API_MAP_STATUS: true,
|
|
18
18
|
CRON_REFRESH_CHAIN_STAKING_METADATA: true,
|
|
19
19
|
CRON_REFRESH_CHAIN_NOMINATOR_METADATA: true,
|
|
20
|
+
CRON_RECOVER_HISTORY_INTERVAL: true,
|
|
20
21
|
ALL_ACCOUNT_KEY: true,
|
|
21
22
|
ALL_NETWORK_KEY: true,
|
|
22
23
|
ALL_GENESIS_HASH: true,
|
|
23
24
|
IGNORE_GET_SUBSTRATE_FEATURES_LIST: true,
|
|
24
|
-
IGNORE_QR_SIGNER: true
|
|
25
|
-
DEFAULT_TIME_AUTO_LOCK: true
|
|
25
|
+
IGNORE_QR_SIGNER: true
|
|
26
26
|
};
|
|
27
|
-
exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = exports.IGNORE_QR_SIGNER = exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = exports.
|
|
27
|
+
exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = exports.IGNORE_QR_SIGNER = exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = exports.CRON_REFRESH_STAKING_REWARD_INTERVAL = exports.CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = exports.CRON_REFRESH_PRICE_INTERVAL = exports.CRON_REFRESH_NFT_INTERVAL = exports.CRON_REFRESH_HISTORY_INTERVAL = exports.CRON_REFRESH_CHAIN_STAKING_METADATA = exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = exports.CRON_RECOVER_HISTORY_INTERVAL = exports.CRON_GET_API_MAP_STATUS = exports.CRON_AUTO_RECOVER_WEB3_INTERVAL = exports.CRON_AUTO_RECOVER_DOTSAMA_INTERVAL = exports.ASTAR_REFRESH_BALANCE_INTERVAL = exports.ALL_NETWORK_KEY = exports.ALL_GENESIS_HASH = exports.ALL_ACCOUNT_KEY = exports.ACALA_REFRESH_CROWDLOAN_INTERVAL = void 0;
|
|
28
28
|
var _staking = require("./staking");
|
|
29
29
|
Object.keys(_staking).forEach(function (key) {
|
|
30
30
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -66,6 +66,8 @@ const CRON_REFRESH_CHAIN_STAKING_METADATA = 900000;
|
|
|
66
66
|
exports.CRON_REFRESH_CHAIN_STAKING_METADATA = CRON_REFRESH_CHAIN_STAKING_METADATA;
|
|
67
67
|
const CRON_REFRESH_CHAIN_NOMINATOR_METADATA = 1800000;
|
|
68
68
|
exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = CRON_REFRESH_CHAIN_NOMINATOR_METADATA;
|
|
69
|
+
const CRON_RECOVER_HISTORY_INTERVAL = 30000;
|
|
70
|
+
exports.CRON_RECOVER_HISTORY_INTERVAL = CRON_RECOVER_HISTORY_INTERVAL;
|
|
69
71
|
const ALL_ACCOUNT_KEY = 'ALL';
|
|
70
72
|
exports.ALL_ACCOUNT_KEY = ALL_ACCOUNT_KEY;
|
|
71
73
|
const ALL_NETWORK_KEY = 'all';
|
|
@@ -75,6 +77,4 @@ exports.ALL_GENESIS_HASH = ALL_GENESIS_HASH;
|
|
|
75
77
|
const IGNORE_GET_SUBSTRATE_FEATURES_LIST = ['astarEvm', 'ethereum', 'ethereum_goerli', 'binance', 'binance_test', 'boba_rinkeby', 'boba', 'bobabase', 'bobabeam'];
|
|
76
78
|
exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = IGNORE_GET_SUBSTRATE_FEATURES_LIST;
|
|
77
79
|
const IGNORE_QR_SIGNER = [];
|
|
78
|
-
exports.IGNORE_QR_SIGNER = IGNORE_QR_SIGNER;
|
|
79
|
-
const DEFAULT_TIME_AUTO_LOCK = 15 * 60 * 1000;
|
|
80
|
-
exports.DEFAULT_TIME_AUTO_LOCK = DEFAULT_TIME_AUTO_LOCK;
|
|
80
|
+
exports.IGNORE_QR_SIGNER = IGNORE_QR_SIGNER;
|
|
@@ -15,9 +15,6 @@ const getTokenPrice = async function (priceIds) {
|
|
|
15
15
|
// const inverseMap: Record<string, string> = {};
|
|
16
16
|
const idStr = priceIds.join(',');
|
|
17
17
|
const res = await _axios.default.get(`https://api.coingecko.com/api/v3/coins/markets?vs_currency=${currency}&per_page=1000&ids=${idStr}`);
|
|
18
|
-
if (res.status !== 200) {
|
|
19
|
-
console.warn('Failed to get token price');
|
|
20
|
-
}
|
|
21
18
|
const responseData = res.data;
|
|
22
19
|
const priceMap = {};
|
|
23
20
|
const price24hMap = {};
|
|
@@ -39,7 +36,7 @@ const getTokenPrice = async function (priceIds) {
|
|
|
39
36
|
price24hMap
|
|
40
37
|
};
|
|
41
38
|
} catch (err) {
|
|
42
|
-
console.error(
|
|
39
|
+
console.error(err);
|
|
43
40
|
throw err;
|
|
44
41
|
}
|
|
45
42
|
};
|
|
@@ -119,11 +119,13 @@ async function subscribeWithSystemAccountPallet(addresses, chainInfo, networkAPI
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
balances.forEach(balance => {
|
|
122
|
-
var _balance$data, _balance$data$free, _balance$data2, _balance$data2$reserv, _balance$data3, _balance$data3$miscFr, _balance$data4, _balance$data4$feeFro;
|
|
122
|
+
var _balance$data, _balance$data$free, _balance$data2, _balance$data2$reserv, _balance$data3, _balance$data3$miscFr, _balance$data4, _balance$data4$frozen, _balance$data5, _balance$data5$feeFro;
|
|
123
123
|
total = total.add(((_balance$data = balance.data) === null || _balance$data === void 0 ? void 0 : (_balance$data$free = _balance$data.free) === null || _balance$data$free === void 0 ? void 0 : _balance$data$free.toBn()) || new _util.BN(0)); // reserved is seperated
|
|
124
124
|
reserved = reserved.add(((_balance$data2 = balance.data) === null || _balance$data2 === void 0 ? void 0 : (_balance$data2$reserv = _balance$data2.reserved) === null || _balance$data2$reserv === void 0 ? void 0 : _balance$data2$reserv.toBn()) || new _util.BN(0));
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
// @ts-ignore
|
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
127
|
+
miscFrozen = miscFrozen.add(((_balance$data3 = balance.data) === null || _balance$data3 === void 0 ? void 0 : (_balance$data3$miscFr = _balance$data3.miscFrozen) === null || _balance$data3$miscFr === void 0 ? void 0 : _balance$data3$miscFr.toBn()) || (balance === null || balance === void 0 ? void 0 : (_balance$data4 = balance.data) === null || _balance$data4 === void 0 ? void 0 : (_balance$data4$frozen = _balance$data4.frozen) === null || _balance$data4$frozen === void 0 ? void 0 : _balance$data4$frozen.toBn()) || new _util.BN(0)); // TODO: update frozen
|
|
128
|
+
feeFrozen = feeFrozen.add(((_balance$data5 = balance.data) === null || _balance$data5 === void 0 ? void 0 : (_balance$data5$feeFro = _balance$data5.feeFrozen) === null || _balance$data5$feeFro === void 0 ? void 0 : _balance$data5$feeFro.toBn()) || new _util.BN(0));
|
|
127
129
|
});
|
|
128
130
|
let locked = reserved.add(miscFrozen);
|
|
129
131
|
total = total.add(reserved); // total = free + reserved
|
|
@@ -169,7 +171,7 @@ function subscribeERC20Interval(addresses, chain, evmApiMap, callBack) {
|
|
|
169
171
|
state: _KoniTypes.APIItemState.READY
|
|
170
172
|
});
|
|
171
173
|
} catch (err) {
|
|
172
|
-
console.log(
|
|
174
|
+
console.log(tokenInfo.slug, err);
|
|
173
175
|
}
|
|
174
176
|
});
|
|
175
177
|
};
|
|
@@ -208,7 +210,7 @@ function subscribePSP22Balance(addresses, chain, api, callBack) {
|
|
|
208
210
|
state: _KoniTypes.APIItemState.READY
|
|
209
211
|
});
|
|
210
212
|
} catch (err) {
|
|
211
|
-
console.warn(
|
|
213
|
+
console.warn(tokenInfo.slug, err); // TODO: error createType
|
|
212
214
|
}
|
|
213
215
|
});
|
|
214
216
|
};
|
|
@@ -46,10 +46,6 @@ const subscribeAcalaContributeInterval = (polkadotAddresses, paraState, callback
|
|
|
46
46
|
let contribute = new _util.BN(0);
|
|
47
47
|
resList.forEach(res => {
|
|
48
48
|
var _res$data$data, _res$data$data$acala, _res$data$data$acala$;
|
|
49
|
-
if (res.status !== 200) {
|
|
50
|
-
console.warn('Failed to get Acala, Karura crowdloan contribute');
|
|
51
|
-
}
|
|
52
|
-
|
|
53
49
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument
|
|
54
50
|
contribute = contribute.add(new _util.BN(((_res$data$data = res.data.data) === null || _res$data$data === void 0 ? void 0 : (_res$data$data$acala = _res$data$data.acala) === null || _res$data$data$acala === void 0 ? void 0 : (_res$data$data$acala$ = _res$data$data$acala[0]) === null || _res$data$data$acala$ === void 0 ? void 0 : _res$data$data$acala$.totalDOTLocked) || '0'));
|
|
55
51
|
});
|
|
@@ -94,7 +94,6 @@ async function checkSupportTransfer(networkKey, tokenInfo, substrateApiMap, chai
|
|
|
94
94
|
return result;
|
|
95
95
|
}
|
|
96
96
|
const createTransferExtrinsic = async _ref => {
|
|
97
|
-
var _transfer;
|
|
98
97
|
let {
|
|
99
98
|
from,
|
|
100
99
|
networkKey,
|
|
@@ -151,9 +150,6 @@ const createTransferExtrinsic = async _ref => {
|
|
|
151
150
|
transfer = api.tx.balances.transfer(to, new _util.BN(value));
|
|
152
151
|
}
|
|
153
152
|
}
|
|
154
|
-
|
|
155
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
156
|
-
console.log('transfer extrinsic: ', (_transfer = transfer) === null || _transfer === void 0 ? void 0 : _transfer.toHex());
|
|
157
153
|
return [transfer, transferAmount || value];
|
|
158
154
|
};
|
|
159
155
|
exports.createTransferExtrinsic = createTransferExtrinsic;
|
|
@@ -120,7 +120,7 @@ class AcalaNftApi extends _nft.BaseNftApi {
|
|
|
120
120
|
}));
|
|
121
121
|
params.cleanUpNfts(this.chain, address, collectionIds, nftIds);
|
|
122
122
|
} catch (e) {
|
|
123
|
-
console.error(
|
|
123
|
+
console.error(`${this.chain}`, e);
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
async handleNfts(params) {
|
|
@@ -118,7 +118,7 @@ class BitCountryNftApi extends _nft.BaseNftApi {
|
|
|
118
118
|
}));
|
|
119
119
|
params.cleanUpNfts(this.chain, address, collectionIds, nftIds);
|
|
120
120
|
} catch (e) {
|
|
121
|
-
console.error(
|
|
121
|
+
console.error(`${this.chain}`, e);
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
async handleNfts(params) {
|
|
@@ -113,7 +113,6 @@ class EvmNftApi extends _nft.BaseNftApi {
|
|
|
113
113
|
const resp = await (0, _crossFetch.default)(detailUrl);
|
|
114
114
|
const itemDetail = resp && resp.ok && (await resp.json());
|
|
115
115
|
if (!itemDetail) {
|
|
116
|
-
console.warn((resp === null || resp === void 0 ? void 0 : resp.statusText) || `Cannot fetch NFT id [${nftId}] from Web3.`);
|
|
117
116
|
return;
|
|
118
117
|
}
|
|
119
118
|
const parsedItem = this.parseMetadata(itemDetail);
|
|
@@ -130,13 +129,13 @@ class EvmNftApi extends _nft.BaseNftApi {
|
|
|
130
129
|
ownItem = true;
|
|
131
130
|
}
|
|
132
131
|
} catch (e) {
|
|
133
|
-
console.error(
|
|
132
|
+
console.error(`${this.chain}`, e);
|
|
134
133
|
}
|
|
135
134
|
}
|
|
136
135
|
}));
|
|
137
136
|
nftOwnerMap[address] = nftIds;
|
|
138
137
|
} catch (e) {
|
|
139
|
-
console.error(
|
|
138
|
+
console.error(`${this.chain}`, e);
|
|
140
139
|
}
|
|
141
140
|
}));
|
|
142
141
|
if (ownItem) {
|
|
@@ -126,10 +126,9 @@ class NftHandler {
|
|
|
126
126
|
}
|
|
127
127
|
});
|
|
128
128
|
this.needSetupApi = false;
|
|
129
|
-
// console.log(`${this.handlers.length} nft handlers connected`, this.handlers);
|
|
130
129
|
}
|
|
131
130
|
} catch (e) {
|
|
132
|
-
console.error(
|
|
131
|
+
console.error(e);
|
|
133
132
|
}
|
|
134
133
|
}
|
|
135
134
|
async handleNfts(nftContracts, updateItem, updateCollection, cleanUpNfts) {
|
|
@@ -126,7 +126,7 @@ class KaruraNftApi extends _nft.BaseNftApi {
|
|
|
126
126
|
}));
|
|
127
127
|
params.cleanUpNfts(this.chain, address, collectionIds, nftIds);
|
|
128
128
|
} catch (e) {
|
|
129
|
-
console.error(
|
|
129
|
+
console.error(`${this.chain}`, e);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
async handleNfts(params) {
|
|
@@ -200,7 +200,6 @@ class RmrkNftApi extends _nft.BaseNftApi {
|
|
|
200
200
|
return {};
|
|
201
201
|
}
|
|
202
202
|
} catch (e) {
|
|
203
|
-
console.error('error fetching collection info', url);
|
|
204
203
|
return {};
|
|
205
204
|
}
|
|
206
205
|
}));
|
|
@@ -227,7 +226,7 @@ class RmrkNftApi extends _nft.BaseNftApi {
|
|
|
227
226
|
};
|
|
228
227
|
}
|
|
229
228
|
} catch (e) {
|
|
230
|
-
console.error(
|
|
229
|
+
console.error(item.url, e);
|
|
231
230
|
}
|
|
232
231
|
}));
|
|
233
232
|
allCollections.forEach(item => {
|
|
@@ -252,7 +251,7 @@ class RmrkNftApi extends _nft.BaseNftApi {
|
|
|
252
251
|
const allNftIds = allNfts.map(nft => nft === null || nft === void 0 ? void 0 : nft.id);
|
|
253
252
|
params.cleanUpNfts(this.chain, address, allCollectionIds, allNftIds);
|
|
254
253
|
} catch (e) {
|
|
255
|
-
console.error(
|
|
254
|
+
console.error(`${this.chain}`, e);
|
|
256
255
|
}
|
|
257
256
|
}
|
|
258
257
|
async handleNfts(params) {
|
|
@@ -126,7 +126,7 @@ class StatemineNftApi extends _nft.BaseNftApi {
|
|
|
126
126
|
}));
|
|
127
127
|
params.cleanUpNfts(this.chain, address, collectionIds, nftIds);
|
|
128
128
|
} catch (e) {
|
|
129
|
-
console.error(
|
|
129
|
+
console.error(`${this.chain}`, e);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
async handleNfts(params) {
|
|
@@ -24,7 +24,7 @@ function acalaGetExtrinsic(substrateApi, senderAddress, recipientAddress, params
|
|
|
24
24
|
const collectionId = params.collectionId;
|
|
25
25
|
return substrateApi.api.tx.nft.transfer(recipientAddress, [collectionId, itemId]);
|
|
26
26
|
} catch (e) {
|
|
27
|
-
console.error(
|
|
27
|
+
console.error(e);
|
|
28
28
|
return null;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -37,7 +37,7 @@ function rmrkGetExtrinsic(substrateApi, senderAddress, recipientAddress, params)
|
|
|
37
37
|
const parsedRemark = remark.concat(recipientAddress.replace(/\\s/g, ''));
|
|
38
38
|
return substrateApi.api.tx.system.remark(parsedRemark);
|
|
39
39
|
} catch (e) {
|
|
40
|
-
console.error(
|
|
40
|
+
console.error(e);
|
|
41
41
|
return null;
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -49,7 +49,7 @@ function uniqueGetExtrinsic(substrateApi, senderAddress, recipientAddress, param
|
|
|
49
49
|
Substrate: recipientAddress
|
|
50
50
|
}, collectionId, itemId, 1);
|
|
51
51
|
} catch (e) {
|
|
52
|
-
console.error(
|
|
52
|
+
console.error(e);
|
|
53
53
|
return null;
|
|
54
54
|
}
|
|
55
55
|
}
|
|
@@ -61,7 +61,7 @@ function quartzGetExtrinsic(substrateApi, senderAddress, recipientAddress, param
|
|
|
61
61
|
Substrate: recipientAddress
|
|
62
62
|
}, collectionId, itemId, 1);
|
|
63
63
|
} catch (e) {
|
|
64
|
-
console.error(
|
|
64
|
+
console.error(e);
|
|
65
65
|
return null;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
@@ -71,7 +71,7 @@ function statemineGetExtrinsic(substrateApi, senderAddress, recipientAddress, pa
|
|
|
71
71
|
const collectionId = params.collectionId;
|
|
72
72
|
return substrateApi.api.tx.uniques.transfer(collectionId, itemId, recipientAddress);
|
|
73
73
|
} catch (e) {
|
|
74
|
-
console.error(
|
|
74
|
+
console.error(e);
|
|
75
75
|
return null;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
@@ -183,7 +183,7 @@ class UniqueNftApi extends _nft.BaseNftApi {
|
|
|
183
183
|
}));
|
|
184
184
|
params.cleanUpNfts(this.chain, address, collectionIds, allNftIds);
|
|
185
185
|
} catch (e) {
|
|
186
|
-
console.error(
|
|
186
|
+
console.error(`${this.chain}`, e);
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
async handleNfts(params) {
|
|
@@ -222,7 +222,6 @@ class WasmNftApi extends _nft.BaseNftApi {
|
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
if (!itemDetail) {
|
|
225
|
-
console.warn(`Cannot fetch NFT metadata [${tokenId}] from PSP-34 contract.`);
|
|
226
225
|
return nftItem;
|
|
227
226
|
}
|
|
228
227
|
nftItem.name = itemDetail.name;
|
|
@@ -304,7 +303,7 @@ class WasmNftApi extends _nft.BaseNftApi {
|
|
|
304
303
|
|
|
305
304
|
nftOwnerMap[address] = nftIds;
|
|
306
305
|
} catch (e) {
|
|
307
|
-
console.error(
|
|
306
|
+
console.error(`${this.chain}`, e);
|
|
308
307
|
}
|
|
309
308
|
}));
|
|
310
309
|
if (isFeatured) {
|
|
@@ -10,6 +10,7 @@ exports.getAstarDappsInfo = getAstarDappsInfo;
|
|
|
10
10
|
exports.getAstarNominatorMetadata = getAstarNominatorMetadata;
|
|
11
11
|
exports.getAstarStakingMetadata = getAstarStakingMetadata;
|
|
12
12
|
exports.getAstarUnbondingExtrinsic = getAstarUnbondingExtrinsic;
|
|
13
|
+
exports.getAstarWithdrawable = getAstarWithdrawable;
|
|
13
14
|
exports.getAstarWithdrawalExtrinsic = getAstarWithdrawalExtrinsic;
|
|
14
15
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
15
16
|
var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
|
|
@@ -109,17 +110,17 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
109
110
|
|
|
110
111
|
const unlockingChunks = ledger.unbondingInfo.unlockingChunks;
|
|
111
112
|
if (unlockingChunks.length > 0) {
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
113
|
+
for (const unlockingChunk of unlockingChunks) {
|
|
114
|
+
const isClaimable = unlockingChunk.unlockEra - parseInt(currentEra) <= 0;
|
|
115
|
+
const remainingEra = unlockingChunk.unlockEra - (parseInt(currentEra) + 1);
|
|
116
|
+
const waitingTime = remainingEra * _constants._STAKING_ERA_LENGTH_MAP[chain];
|
|
117
|
+
unstakingList.push({
|
|
118
|
+
chain,
|
|
119
|
+
status: isClaimable ? _KoniTypes.UnstakingStatus.CLAIMABLE : _KoniTypes.UnstakingStatus.UNLOCKING,
|
|
120
|
+
claimable: unlockingChunk.amount.toString(),
|
|
121
|
+
waitingTime: waitingTime > 0 ? waitingTime : 0
|
|
122
|
+
});
|
|
123
|
+
}
|
|
123
124
|
}
|
|
124
125
|
if (nominationList.length === 0 && unstakingList.length === 0) {
|
|
125
126
|
return {
|
|
@@ -260,6 +261,21 @@ async function getAstarClaimRewardExtrinsic(substrateApi, address) {
|
|
|
260
261
|
transactions.push(tx);
|
|
261
262
|
}
|
|
262
263
|
}
|
|
263
|
-
console.log('no of astar claim reward tx: ', transactions.length);
|
|
264
264
|
return apiPromise.api.tx.utility.batch(transactions);
|
|
265
|
+
}
|
|
266
|
+
function getAstarWithdrawable(nominatorMetadata) {
|
|
267
|
+
const unstakingInfo = {
|
|
268
|
+
chain: nominatorMetadata.chain,
|
|
269
|
+
status: _KoniTypes.UnstakingStatus.CLAIMABLE,
|
|
270
|
+
claimable: '0',
|
|
271
|
+
waitingTime: 0
|
|
272
|
+
};
|
|
273
|
+
let bnWithdrawable = _util.BN_ZERO;
|
|
274
|
+
for (const unstaking of nominatorMetadata.unstakings) {
|
|
275
|
+
if (unstaking.status === _KoniTypes.UnstakingStatus.CLAIMABLE) {
|
|
276
|
+
bnWithdrawable = bnWithdrawable.add(new _util.BN(unstaking.claimable));
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
unstakingInfo.claimable = bnWithdrawable.toString();
|
|
280
|
+
return unstakingInfo;
|
|
265
281
|
}
|
|
@@ -25,6 +25,7 @@ exports.parseIdentity = parseIdentity;
|
|
|
25
25
|
exports.parsePoolStashAddress = parsePoolStashAddress;
|
|
26
26
|
exports.transformPoolName = transformPoolName;
|
|
27
27
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
28
|
+
var _astar = require("@subwallet/extension-base/koni/api/staking/bonding/astar");
|
|
28
29
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
29
30
|
var _utils = require("@subwallet/extension-base/utils");
|
|
30
31
|
var _util = require("@polkadot/util");
|
|
@@ -238,6 +239,9 @@ function isActionFromValidator(stakingType, chain) {
|
|
|
238
239
|
function getWithdrawalInfo(nominatorMetadata) {
|
|
239
240
|
const unstakings = nominatorMetadata.unstakings;
|
|
240
241
|
let result;
|
|
242
|
+
if (_constants._STAKING_CHAIN_GROUP.astar.includes(nominatorMetadata.chain)) {
|
|
243
|
+
return (0, _astar.getAstarWithdrawable)(nominatorMetadata);
|
|
244
|
+
}
|
|
241
245
|
for (const unstaking of unstakings) {
|
|
242
246
|
if (unstaking.status === _KoniTypes.UnstakingStatus.CLAIMABLE) {
|
|
243
247
|
result = unstaking; // only get the first withdrawal
|
|
@@ -83,7 +83,6 @@ const getSubsquidStaking = async (accounts, chain, chainInfoMap) => {
|
|
|
83
83
|
}));
|
|
84
84
|
return result;
|
|
85
85
|
} catch (e) {
|
|
86
|
-
console.error(`error getting ${chain} staking reward from subsquid`, e);
|
|
87
86
|
return [];
|
|
88
87
|
}
|
|
89
88
|
};
|
|
@@ -101,7 +100,6 @@ const getAllSubsquidStaking = async (accounts, chainInfoMap) => {
|
|
|
101
100
|
rewardList = rewardList.concat(rewardItems);
|
|
102
101
|
}));
|
|
103
102
|
} catch (e) {
|
|
104
|
-
console.error('Error fetching staking reward from SubSquid', e);
|
|
105
103
|
return rewardList;
|
|
106
104
|
}
|
|
107
105
|
return rewardList;
|
|
@@ -16,7 +16,6 @@ const toContractAbiMessage = (contractPromise, message) => {
|
|
|
16
16
|
if (!value) {
|
|
17
17
|
const messages = contractPromise === null || contractPromise === void 0 ? void 0 : contractPromise.abi.messages.map(m => m.method).join(', ');
|
|
18
18
|
const error = `"${message}" not found in metadata.spec.messages: [${messages}]`;
|
|
19
|
-
console.error(error);
|
|
20
19
|
return {
|
|
21
20
|
ok: false,
|
|
22
21
|
error
|
|
@@ -32,7 +32,6 @@ const createXcmExtrinsic = async _ref => {
|
|
|
32
32
|
} else {
|
|
33
33
|
extrinsic = (0, _xTokens.getExtrinsicByXtokensPallet)(originTokenInfo, originChainInfo, destinationChainInfo, recipient, sendingValue, api);
|
|
34
34
|
}
|
|
35
|
-
console.log('XCM extrinsic: ', extrinsic.toHex());
|
|
36
35
|
return extrinsic;
|
|
37
36
|
};
|
|
38
37
|
exports.createXcmExtrinsic = createXcmExtrinsic;
|