@subwallet/extension-base 1.0.4-0 → 1.0.4-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 +25 -15
- package/background/KoniTypes.js +1 -0
- package/cjs/background/KoniTypes.js +1 -0
- package/cjs/koni/api/staking/bonding/amplitude.js +9 -2
- package/cjs/koni/api/staking/bonding/astar.js +9 -1
- package/cjs/koni/api/staking/bonding/paraChain.js +10 -2
- package/cjs/koni/api/staking/bonding/relayChain.js +21 -4
- package/cjs/koni/background/handlers/Extension.js +61 -19
- package/cjs/koni/background/handlers/State.js +12 -0
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/chain-service/constants.js +1 -1
- package/cjs/services/chain-service/handler/SubstrateChainHandler.js +1 -1
- package/cjs/services/chain-service/index.js +75 -26
- package/cjs/services/keyring-service/index.js +9 -0
- package/cjs/services/migration-service/index.js +7 -4
- package/cjs/services/migration-service/scripts/MigrateAuthUrls.js +39 -0
- package/cjs/services/migration-service/scripts/index.js +3 -1
- package/cjs/services/price-service/index.js +0 -1
- package/cjs/services/request-service/handler/AuthRequestHandler.js +7 -0
- package/cjs/services/request-service/handler/EvmRequestHandler.js +21 -0
- package/cjs/services/request-service/handler/MetadataRequestHandler.js +6 -0
- package/cjs/services/request-service/handler/SubstrateRequestHandler.js +6 -0
- package/cjs/services/request-service/index.js +6 -0
- package/cjs/services/setting-service/SettingService.js +4 -9
- package/cjs/services/setting-service/constants.js +12 -2
- package/cjs/services/storage-service/DatabaseService.js +14 -0
- package/cjs/services/storage-service/databases/index.js +1 -1
- package/cjs/services/storage-service/db-stores/BaseStore.js +3 -0
- package/cjs/services/transaction-service/index.js +3 -0
- package/koni/api/staking/bonding/amplitude.js +9 -2
- package/koni/api/staking/bonding/astar.js +9 -1
- package/koni/api/staking/bonding/paraChain.js +10 -2
- package/koni/api/staking/bonding/relayChain.js +21 -4
- package/koni/background/handlers/Extension.d.ts +1 -0
- package/koni/background/handlers/Extension.js +42 -1
- package/koni/background/handlers/State.d.ts +1 -0
- package/koni/background/handlers/State.js +12 -0
- package/package.json +16 -11
- package/packageInfo.js +1 -1
- package/services/chain-service/constants.js +1 -1
- package/services/chain-service/handler/SubstrateChainHandler.js +1 -1
- package/services/chain-service/index.d.ts +2 -1
- package/services/chain-service/index.js +75 -26
- package/services/keyring-service/index.d.ts +1 -0
- package/services/keyring-service/index.js +9 -0
- package/services/migration-service/index.js +7 -4
- package/services/migration-service/scripts/MigrateAuthUrls.d.ts +4 -0
- package/services/migration-service/scripts/MigrateAuthUrls.js +31 -0
- package/services/migration-service/scripts/index.js +3 -1
- package/services/price-service/index.js +0 -1
- package/services/request-service/handler/AuthRequestHandler.d.ts +1 -0
- package/services/request-service/handler/AuthRequestHandler.js +7 -0
- package/services/request-service/handler/EvmRequestHandler.d.ts +1 -0
- package/services/request-service/handler/EvmRequestHandler.js +21 -0
- package/services/request-service/handler/MetadataRequestHandler.d.ts +1 -0
- package/services/request-service/handler/MetadataRequestHandler.js +6 -0
- package/services/request-service/handler/SubstrateRequestHandler.d.ts +1 -0
- package/services/request-service/handler/SubstrateRequestHandler.js +6 -0
- package/services/request-service/index.d.ts +1 -0
- package/services/request-service/index.js +6 -0
- package/services/setting-service/SettingService.d.ts +1 -0
- package/services/setting-service/SettingService.js +5 -10
- package/services/setting-service/constants.d.ts +2 -1
- package/services/setting-service/constants.js +10 -1
- package/services/storage-service/DatabaseService.d.ts +1 -0
- package/services/storage-service/DatabaseService.js +14 -0
- package/services/storage-service/databases/index.js +1 -1
- package/services/storage-service/db-stores/BaseStore.d.ts +1 -0
- package/services/storage-service/db-stores/BaseStore.js +3 -0
- package/services/transaction-service/index.d.ts +1 -0
- package/services/transaction-service/index.js +3 -0
|
@@ -0,0 +1,39 @@
|
|
|
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 MigrateSettings extends _Base.default {
|
|
13
|
+
async run() {
|
|
14
|
+
try {
|
|
15
|
+
return new Promise(resolve => {
|
|
16
|
+
this.state.getAuthorize(value => {
|
|
17
|
+
if (value) {
|
|
18
|
+
const key = 'app.stellaswap.com';
|
|
19
|
+
const stellaSwap = value[key];
|
|
20
|
+
if (stellaSwap) {
|
|
21
|
+
stellaSwap.currentEvmNetworkKey = 'moonbeam';
|
|
22
|
+
value[key] = stellaSwap;
|
|
23
|
+
this.state.setAuthorize(value, () => {
|
|
24
|
+
resolve();
|
|
25
|
+
});
|
|
26
|
+
} else {
|
|
27
|
+
resolve();
|
|
28
|
+
}
|
|
29
|
+
} else {
|
|
30
|
+
resolve();
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
} catch (e) {
|
|
35
|
+
console.error(e);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.default = MigrateSettings;
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = exports.EVERYTIME = void 0;
|
|
8
8
|
var _AutoEnableChainsTokens = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/AutoEnableChainsTokens"));
|
|
9
|
+
var _MigrateAuthUrls = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateAuthUrls"));
|
|
9
10
|
var _MigrateImportedToken = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateImportedToken"));
|
|
10
11
|
var _MigrateNetworkSettings = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateNetworkSettings"));
|
|
11
12
|
var _MigrateSettings = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateSettings"));
|
|
@@ -20,7 +21,8 @@ var _default = {
|
|
|
20
21
|
'1.0.1-20': _MigrateImportedToken.default,
|
|
21
22
|
'1.0.1-30': _MigrateTransactionHistory.default,
|
|
22
23
|
'1.0.1-40': _AutoEnableChainsTokens.default,
|
|
23
|
-
'1.0.1-50': _MigrateSettings.default
|
|
24
|
+
'1.0.1-50': _MigrateSettings.default,
|
|
25
|
+
'1.0.1-60': _MigrateAuthUrls.default
|
|
24
26
|
// [`${EVERYTIME}-1`]: AutoEnableChainsTokens
|
|
25
27
|
};
|
|
26
28
|
exports.default = _default;
|
|
@@ -69,7 +69,6 @@ class PriceService {
|
|
|
69
69
|
await this.eventService.waitAssetReady;
|
|
70
70
|
this.status = _types.ServiceStatus.INITIALIZED;
|
|
71
71
|
this.eventService.on('asset.updateState', eventHandler);
|
|
72
|
-
this.eventService.on('asset.updateState', eventHandler);
|
|
73
72
|
}
|
|
74
73
|
async loadData() {
|
|
75
74
|
const data = await this.dbService.getPriceStore();
|
|
@@ -298,5 +298,12 @@ class AuthRequestHandler {
|
|
|
298
298
|
});
|
|
299
299
|
});
|
|
300
300
|
}
|
|
301
|
+
resetWallet() {
|
|
302
|
+
for (const request of Object.values(this.#authRequestsV2)) {
|
|
303
|
+
request.reject(new Error('Reset wallet'));
|
|
304
|
+
}
|
|
305
|
+
this.authSubjectV2.next([]);
|
|
306
|
+
this.setAuthorize({});
|
|
307
|
+
}
|
|
301
308
|
}
|
|
302
309
|
exports.default = AuthRequestHandler;
|
|
@@ -209,5 +209,26 @@ class EvmRequestHandler {
|
|
|
209
209
|
}
|
|
210
210
|
return true;
|
|
211
211
|
}
|
|
212
|
+
resetWallet() {
|
|
213
|
+
const confirmations = this.confirmationsQueueSubject.getValue();
|
|
214
|
+
for (const [type, requests] of Object.entries(confirmations)) {
|
|
215
|
+
for (const confirmation of Object.values(requests)) {
|
|
216
|
+
const {
|
|
217
|
+
id
|
|
218
|
+
} = confirmation;
|
|
219
|
+
const {
|
|
220
|
+
resolver
|
|
221
|
+
} = this.confirmationsPromiseMap[id];
|
|
222
|
+
if (!resolver || !confirmation) {
|
|
223
|
+
console.error('Not found confirmation', type, id);
|
|
224
|
+
} else {
|
|
225
|
+
resolver.reject(new Error('Reset wallet'));
|
|
226
|
+
}
|
|
227
|
+
delete this.confirmationsPromiseMap[id];
|
|
228
|
+
delete confirmations[type][id];
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
this.confirmationsQueueSubject.next(confirmations);
|
|
232
|
+
}
|
|
212
233
|
}
|
|
213
234
|
exports.default = EvmRequestHandler;
|
|
@@ -81,5 +81,11 @@ class MetadataRequestHandler {
|
|
|
81
81
|
this.#requestService.popupOpen();
|
|
82
82
|
});
|
|
83
83
|
}
|
|
84
|
+
resetWallet() {
|
|
85
|
+
for (const request of Object.values(this.#metaRequests)) {
|
|
86
|
+
request.reject(new Error('Reset wallet'));
|
|
87
|
+
}
|
|
88
|
+
this.metaSubject.next([]);
|
|
89
|
+
}
|
|
84
90
|
}
|
|
85
91
|
exports.default = MetadataRequestHandler;
|
|
@@ -101,5 +101,11 @@ class SubstrateRequestHandler {
|
|
|
101
101
|
}
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
|
+
resetWallet() {
|
|
105
|
+
for (const request of Object.values(this.#substrateRequests)) {
|
|
106
|
+
request.reject(new Error('Reset wallet'));
|
|
107
|
+
}
|
|
108
|
+
this.signSubject.next([]);
|
|
109
|
+
}
|
|
104
110
|
}
|
|
105
111
|
exports.default = SubstrateRequestHandler;
|
|
@@ -166,5 +166,11 @@ class RequestService {
|
|
|
166
166
|
get numRequests() {
|
|
167
167
|
return this.numMetaRequests + this.numAuthRequests + this.numSubstrateRequests + this.numEvmRequests;
|
|
168
168
|
}
|
|
169
|
+
resetWallet() {
|
|
170
|
+
this.#authRequestHandler.resetWallet();
|
|
171
|
+
this.#substrateRequestHandler.resetWallet();
|
|
172
|
+
this.#evmRequestHandler.resetWallet();
|
|
173
|
+
this.#metadataRequestHandler.resetWallet();
|
|
174
|
+
}
|
|
169
175
|
}
|
|
170
176
|
exports.default = RequestService;
|
|
@@ -18,15 +18,7 @@ class SettingService {
|
|
|
18
18
|
getSettings(update) {
|
|
19
19
|
this.settingsStore.get('Settings', value => {
|
|
20
20
|
if (!value) {
|
|
21
|
-
update(
|
|
22
|
-
// language: 'en',
|
|
23
|
-
browserConfirmationType: _constants.DEFAULT_NOTIFICATION_TYPE,
|
|
24
|
-
// isShowZeroBalance: true,
|
|
25
|
-
isShowBalance: false,
|
|
26
|
-
accountAllLogo: '',
|
|
27
|
-
theme: _constants.DEFAULT_THEME,
|
|
28
|
-
camera: false
|
|
29
|
-
});
|
|
21
|
+
update(_constants.DEFAULT_SETTING);
|
|
30
22
|
} else {
|
|
31
23
|
update(value);
|
|
32
24
|
}
|
|
@@ -35,5 +27,8 @@ class SettingService {
|
|
|
35
27
|
setSettings(data, callback) {
|
|
36
28
|
this.settingsStore.set('Settings', data, callback);
|
|
37
29
|
}
|
|
30
|
+
resetWallet() {
|
|
31
|
+
this.settingsStore.set('Settings', _constants.DEFAULT_SETTING);
|
|
32
|
+
}
|
|
38
33
|
}
|
|
39
34
|
exports.default = SettingService;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.DEFAULT_THEME = exports.DEFAULT_NOTIFICATION_TYPE = void 0;
|
|
6
|
+
exports.DEFAULT_THEME = exports.DEFAULT_SETTING = exports.DEFAULT_NOTIFICATION_TYPE = void 0;
|
|
7
7
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
8
8
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
9
9
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -11,4 +11,14 @@ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
|
11
11
|
const DEFAULT_THEME = _KoniTypes.ThemeNames.DARK;
|
|
12
12
|
exports.DEFAULT_THEME = DEFAULT_THEME;
|
|
13
13
|
const DEFAULT_NOTIFICATION_TYPE = 'popup';
|
|
14
|
-
exports.DEFAULT_NOTIFICATION_TYPE = DEFAULT_NOTIFICATION_TYPE;
|
|
14
|
+
exports.DEFAULT_NOTIFICATION_TYPE = DEFAULT_NOTIFICATION_TYPE;
|
|
15
|
+
const DEFAULT_SETTING = {
|
|
16
|
+
// language: 'en',
|
|
17
|
+
browserConfirmationType: DEFAULT_NOTIFICATION_TYPE,
|
|
18
|
+
// isShowZeroBalance: true,
|
|
19
|
+
isShowBalance: false,
|
|
20
|
+
accountAllLogo: '',
|
|
21
|
+
theme: DEFAULT_THEME,
|
|
22
|
+
camera: false
|
|
23
|
+
};
|
|
24
|
+
exports.DEFAULT_SETTING = DEFAULT_SETTING;
|
|
@@ -256,5 +256,19 @@ class DatabaseService {
|
|
|
256
256
|
async getNominatorMetadata() {
|
|
257
257
|
return this.stores.nominatorMetadata.getAll();
|
|
258
258
|
}
|
|
259
|
+
async resetWallet(resetAll) {
|
|
260
|
+
return new Promise((resolve, reject) => {
|
|
261
|
+
const stores = [this.stores.balance, this.stores.nft, this.stores.nftCollection, this.stores.crowdloan, this.stores.staking, this.stores.transaction, this.stores.nominatorMetadata];
|
|
262
|
+
if (resetAll) {
|
|
263
|
+
stores.push(this.stores.chain, this.stores.asset);
|
|
264
|
+
}
|
|
265
|
+
const promises = stores.map(store => store.clear());
|
|
266
|
+
Promise.all(promises).then(() => {
|
|
267
|
+
resolve();
|
|
268
|
+
}).catch(e => {
|
|
269
|
+
reject(e);
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
}
|
|
259
273
|
}
|
|
260
274
|
exports.default = DatabaseService;
|
|
@@ -13,7 +13,7 @@ const DEFAULT_DATABASE = 'SubWalletDB_v2';
|
|
|
13
13
|
class KoniDatabase extends _dexie.default {
|
|
14
14
|
constructor() {
|
|
15
15
|
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_DATABASE;
|
|
16
|
-
let schemaVersion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
16
|
+
let schemaVersion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 11;
|
|
17
17
|
super(name);
|
|
18
18
|
this.schemaVersion = schemaVersion;
|
|
19
19
|
this.conditionalVersion(1, {
|
|
@@ -42,9 +42,16 @@ export async function getAmplitudeNominatorMetadata(chainInfo, address, substrat
|
|
|
42
42
|
const minDelegatorStake = chainApi.api.consts.parachainStaking.minDelegatorStake.toString();
|
|
43
43
|
const delegatorState = _delegatorState.toPrimitive();
|
|
44
44
|
const unstakingInfo = _unstakingInfo.toPrimitive();
|
|
45
|
-
console.log('unstakingInfo ampe', unstakingInfo, !!unstakingInfo);
|
|
46
45
|
if (!delegatorState && !unstakingInfo) {
|
|
47
|
-
return
|
|
46
|
+
return {
|
|
47
|
+
chain: chainInfo.slug,
|
|
48
|
+
type: StakingType.NOMINATED,
|
|
49
|
+
address,
|
|
50
|
+
status: StakingStatus.NOT_STAKING,
|
|
51
|
+
activeStake: '0',
|
|
52
|
+
nominations: [],
|
|
53
|
+
unstakings: []
|
|
54
|
+
};
|
|
48
55
|
}
|
|
49
56
|
let activeStake = '0';
|
|
50
57
|
if (delegatorState) {
|
|
@@ -109,7 +109,15 @@ export async function getAstarNominatorMetadata(chainInfo, address, substrateApi
|
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
111
|
if (nominationList.length === 0 && unstakingList.length === 0) {
|
|
112
|
-
return
|
|
112
|
+
return {
|
|
113
|
+
chain: chainInfo.slug,
|
|
114
|
+
type: StakingType.NOMINATED,
|
|
115
|
+
address,
|
|
116
|
+
status: StakingStatus.NOT_STAKING,
|
|
117
|
+
activeStake: '0',
|
|
118
|
+
nominations: [],
|
|
119
|
+
unstakings: []
|
|
120
|
+
};
|
|
113
121
|
}
|
|
114
122
|
const stakingStatus = getStakingStatusByNominations(bnTotalActiveStake, nominationList);
|
|
115
123
|
return {
|
|
@@ -42,7 +42,7 @@ export function validateParaChainBondingCondition(chainInfo, amount, selectedCol
|
|
|
42
42
|
const bnChainMinStake = new BN(chainStakingMetadata.minStake || '0');
|
|
43
43
|
const bnCollatorMinStake = new BN(selectedCollator.minBond || '0');
|
|
44
44
|
const bnMinStake = bnCollatorMinStake > bnChainMinStake ? bnCollatorMinStake : bnChainMinStake;
|
|
45
|
-
if (!nominatorMetadata) {
|
|
45
|
+
if (!nominatorMetadata || nominatorMetadata.status === StakingStatus.NOT_STAKING) {
|
|
46
46
|
if (!bnTotalStake.gte(bnMinStake)) {
|
|
47
47
|
errors.push(new TransactionError(StakingTxErrorType.NOT_ENOUGH_MIN_STAKE));
|
|
48
48
|
}
|
|
@@ -130,7 +130,15 @@ export async function getParaChainNominatorMetadata(chainInfo, address, substrat
|
|
|
130
130
|
const _delegatorState = await chainApi.api.query.parachainStaking.delegatorState(address);
|
|
131
131
|
const delegatorState = _delegatorState.toPrimitive();
|
|
132
132
|
if (!delegatorState) {
|
|
133
|
-
return
|
|
133
|
+
return {
|
|
134
|
+
chain: chainInfo.slug,
|
|
135
|
+
type: StakingType.NOMINATED,
|
|
136
|
+
address,
|
|
137
|
+
status: StakingStatus.NOT_STAKING,
|
|
138
|
+
activeStake: '0',
|
|
139
|
+
nominations: [],
|
|
140
|
+
unstakings: []
|
|
141
|
+
};
|
|
134
142
|
}
|
|
135
143
|
let bnTotalActiveStake = BN_ZERO;
|
|
136
144
|
await Promise.all(delegatorState.delegations.map(async delegation => {
|
|
@@ -34,7 +34,7 @@ export function validatePoolBondingCondition(chainInfo, amount, selectedPool, ad
|
|
|
34
34
|
if (nominatorMetadata) {
|
|
35
35
|
const bnCurrentActiveStake = new BN(nominatorMetadata.activeStake);
|
|
36
36
|
bnTotalStake = bnTotalStake.add(bnCurrentActiveStake);
|
|
37
|
-
if (
|
|
37
|
+
if (nominatorMetadata.unstakings.length > 0) {
|
|
38
38
|
errors.push(new TransactionError(StakingTxErrorType.EXIST_UNSTAKING_REQUEST));
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -47,7 +47,7 @@ export function validateRelayBondingCondition(chainInfo, amount, selectedValidat
|
|
|
47
47
|
const errors = [];
|
|
48
48
|
let bnTotalStake = new BN(amount);
|
|
49
49
|
const bnMinStake = new BN(chainStakingMetadata.minStake);
|
|
50
|
-
if (!nominatorMetadata) {
|
|
50
|
+
if (!nominatorMetadata || nominatorMetadata.status === StakingStatus.NOT_STAKING) {
|
|
51
51
|
if (!bnTotalStake.gte(bnMinStake)) {
|
|
52
52
|
errors.push(new TransactionError(StakingTxErrorType.NOT_ENOUGH_MIN_STAKE));
|
|
53
53
|
}
|
|
@@ -145,7 +145,15 @@ export async function getRelayChainNominatorMetadata(chainInfo, address, substra
|
|
|
145
145
|
const currentEra = _currentEra.toString();
|
|
146
146
|
const bonded = _bonded.toHuman();
|
|
147
147
|
if (!ledger) {
|
|
148
|
-
return
|
|
148
|
+
return {
|
|
149
|
+
chain,
|
|
150
|
+
type: StakingType.NOMINATED,
|
|
151
|
+
status: StakingStatus.NOT_STAKING,
|
|
152
|
+
address: address,
|
|
153
|
+
activeStake: '0',
|
|
154
|
+
nominations: [],
|
|
155
|
+
unstakings: []
|
|
156
|
+
};
|
|
149
157
|
}
|
|
150
158
|
const activeStake = ledger.active.toString();
|
|
151
159
|
const nominationList = [];
|
|
@@ -225,7 +233,16 @@ export async function getRelayChainPoolMemberMetadata(chainInfo, address, substr
|
|
|
225
233
|
const poolMemberInfo = _poolMemberInfo.toPrimitive();
|
|
226
234
|
const currentEra = _currentEra.toString();
|
|
227
235
|
if (!poolMemberInfo) {
|
|
228
|
-
return
|
|
236
|
+
return {
|
|
237
|
+
chain: chainInfo.slug,
|
|
238
|
+
type: StakingType.POOLED,
|
|
239
|
+
address,
|
|
240
|
+
status: StakingStatus.NOT_STAKING,
|
|
241
|
+
activeStake: '0',
|
|
242
|
+
nominations: [],
|
|
243
|
+
// can only join 1 pool at a time
|
|
244
|
+
unstakings: []
|
|
245
|
+
};
|
|
229
246
|
}
|
|
230
247
|
let stakingStatus = StakingStatus.NOT_EARNING;
|
|
231
248
|
const _poolMetadata = await chainApi.api.query.nominationPools.metadata(poolMemberInfo.poolId);
|
|
@@ -169,6 +169,7 @@ export default class KoniExtension {
|
|
|
169
169
|
private keyringUnlock;
|
|
170
170
|
private keyringLock;
|
|
171
171
|
private keyringExportMnemonic;
|
|
172
|
+
private resetWallet;
|
|
172
173
|
private signingApprovePasswordV2;
|
|
173
174
|
private derivationCreateMultiple;
|
|
174
175
|
private derivationCreateV3;
|
|
@@ -894,7 +894,7 @@ export default class KoniExtension {
|
|
|
894
894
|
}
|
|
895
895
|
async updateAssetSetting(params) {
|
|
896
896
|
try {
|
|
897
|
-
await this.#koniState.chainService.updateAssetSetting(params.tokenSlug, params.assetSetting);
|
|
897
|
+
await this.#koniState.chainService.updateAssetSetting(params.tokenSlug, params.assetSetting, params.autoEnableNativeToken);
|
|
898
898
|
this.#koniState.eventService.emit('asset.updateState', params.tokenSlug);
|
|
899
899
|
return true;
|
|
900
900
|
} catch (e) {
|
|
@@ -2386,6 +2386,11 @@ export default class KoniExtension {
|
|
|
2386
2386
|
chainType: ChainType.SUBSTRATE
|
|
2387
2387
|
});
|
|
2388
2388
|
}
|
|
2389
|
+
|
|
2390
|
+
/// Keyring state
|
|
2391
|
+
|
|
2392
|
+
// Subscribe keyring state
|
|
2393
|
+
|
|
2389
2394
|
keyringStateSubscribe(id, port) {
|
|
2390
2395
|
const cb = createSubscription(id, port);
|
|
2391
2396
|
const keyringStateSubject = this.#koniState.keyringService.keyringStateSubject;
|
|
@@ -2396,6 +2401,9 @@ export default class KoniExtension {
|
|
|
2396
2401
|
});
|
|
2397
2402
|
return this.#koniState.keyringService.keyringState;
|
|
2398
2403
|
}
|
|
2404
|
+
|
|
2405
|
+
// Change master password
|
|
2406
|
+
|
|
2399
2407
|
keyringChangeMasterPassword({
|
|
2400
2408
|
createNew,
|
|
2401
2409
|
newPassword,
|
|
@@ -2431,6 +2439,9 @@ export default class KoniExtension {
|
|
|
2431
2439
|
errors: []
|
|
2432
2440
|
};
|
|
2433
2441
|
}
|
|
2442
|
+
|
|
2443
|
+
// Migrate password
|
|
2444
|
+
|
|
2434
2445
|
keyringMigrateMasterPassword({
|
|
2435
2446
|
address,
|
|
2436
2447
|
password
|
|
@@ -2449,6 +2460,9 @@ export default class KoniExtension {
|
|
|
2449
2460
|
errors: []
|
|
2450
2461
|
};
|
|
2451
2462
|
}
|
|
2463
|
+
|
|
2464
|
+
// Unlock wallet
|
|
2465
|
+
|
|
2452
2466
|
keyringUnlock({
|
|
2453
2467
|
password
|
|
2454
2468
|
}) {
|
|
@@ -2466,11 +2480,17 @@ export default class KoniExtension {
|
|
|
2466
2480
|
errors: []
|
|
2467
2481
|
};
|
|
2468
2482
|
}
|
|
2483
|
+
|
|
2484
|
+
// Lock wallet
|
|
2485
|
+
|
|
2469
2486
|
keyringLock() {
|
|
2470
2487
|
keyring.lockAll();
|
|
2471
2488
|
this.#koniState.updateKeyringState();
|
|
2472
2489
|
clearTimeout(this.#lockTimeOut);
|
|
2473
2490
|
}
|
|
2491
|
+
|
|
2492
|
+
// Export mnemonic
|
|
2493
|
+
|
|
2474
2494
|
keyringExportMnemonic({
|
|
2475
2495
|
address,
|
|
2476
2496
|
password
|
|
@@ -2482,6 +2502,25 @@ export default class KoniExtension {
|
|
|
2482
2502
|
};
|
|
2483
2503
|
}
|
|
2484
2504
|
|
|
2505
|
+
// Reset wallet
|
|
2506
|
+
|
|
2507
|
+
async resetWallet({
|
|
2508
|
+
resetAll
|
|
2509
|
+
}) {
|
|
2510
|
+
try {
|
|
2511
|
+
await this.#koniState.resetWallet(resetAll);
|
|
2512
|
+
return {
|
|
2513
|
+
errors: [],
|
|
2514
|
+
status: true
|
|
2515
|
+
};
|
|
2516
|
+
} catch (e) {
|
|
2517
|
+
return {
|
|
2518
|
+
errors: [e.message],
|
|
2519
|
+
status: false
|
|
2520
|
+
};
|
|
2521
|
+
}
|
|
2522
|
+
}
|
|
2523
|
+
|
|
2485
2524
|
/// Signing external request
|
|
2486
2525
|
signingApprovePasswordV2({
|
|
2487
2526
|
id
|
|
@@ -3154,6 +3193,8 @@ export default class KoniExtension {
|
|
|
3154
3193
|
return this.keyringLock();
|
|
3155
3194
|
case 'pri(keyring.export.mnemonic)':
|
|
3156
3195
|
return this.keyringExportMnemonic(request);
|
|
3196
|
+
case 'pri(keyring.reset)':
|
|
3197
|
+
return await this.resetWallet(request);
|
|
3157
3198
|
|
|
3158
3199
|
/// Signing external
|
|
3159
3200
|
case 'pri(signing.approve.passwordV2)':
|
|
@@ -1426,4 +1426,16 @@ export default class KoniState {
|
|
|
1426
1426
|
async reloadStaking() {
|
|
1427
1427
|
return await this.cron.reloadStaking();
|
|
1428
1428
|
}
|
|
1429
|
+
async resetWallet(resetAll) {
|
|
1430
|
+
this.keyringService.resetWallet(resetAll);
|
|
1431
|
+
this.requestService.resetWallet();
|
|
1432
|
+
this.transactionService.resetWallet();
|
|
1433
|
+
await this.dbService.resetWallet(resetAll);
|
|
1434
|
+
this.accountRefStore.set('refList', []);
|
|
1435
|
+
if (resetAll) {
|
|
1436
|
+
this.settingService.resetWallet();
|
|
1437
|
+
}
|
|
1438
|
+
this.chainService.resetWallet(resetAll);
|
|
1439
|
+
await this.chainService.init();
|
|
1440
|
+
}
|
|
1429
1441
|
}
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"./cjs/detectPackage.js"
|
|
18
18
|
],
|
|
19
19
|
"type": "module",
|
|
20
|
-
"version": "1.0.4-
|
|
20
|
+
"version": "1.0.4-1",
|
|
21
21
|
"main": "./cjs/index.js",
|
|
22
22
|
"module": "./index.js",
|
|
23
23
|
"types": "./index.d.ts",
|
|
@@ -1225,6 +1225,11 @@
|
|
|
1225
1225
|
"require": "./cjs/services/migration-service/scripts/ClearOldStorage.js",
|
|
1226
1226
|
"default": "./services/migration-service/scripts/ClearOldStorage.js"
|
|
1227
1227
|
},
|
|
1228
|
+
"./services/migration-service/scripts/MigrateAuthUrls": {
|
|
1229
|
+
"types": "./services/migration-service/scripts/MigrateAuthUrls.d.ts",
|
|
1230
|
+
"require": "./cjs/services/migration-service/scripts/MigrateAuthUrls.js",
|
|
1231
|
+
"default": "./services/migration-service/scripts/MigrateAuthUrls.js"
|
|
1232
|
+
},
|
|
1228
1233
|
"./services/migration-service/scripts/MigrateImportedToken": {
|
|
1229
1234
|
"types": "./services/migration-service/scripts/MigrateImportedToken.d.ts",
|
|
1230
1235
|
"require": "./cjs/services/migration-service/scripts/MigrateImportedToken.js",
|
|
@@ -1667,12 +1672,12 @@
|
|
|
1667
1672
|
"@subsocial/types": "^0.6.8",
|
|
1668
1673
|
"@substrate/connect": "^0.7.18",
|
|
1669
1674
|
"@subwallet/chain-list": "^0.1.2",
|
|
1670
|
-
"@subwallet/extension-base": "^1.0.4-
|
|
1671
|
-
"@subwallet/extension-chains": "^1.0.4-
|
|
1672
|
-
"@subwallet/extension-dapp": "^1.0.4-
|
|
1673
|
-
"@subwallet/extension-inject": "^1.0.4-
|
|
1675
|
+
"@subwallet/extension-base": "^1.0.4-1",
|
|
1676
|
+
"@subwallet/extension-chains": "^1.0.4-1",
|
|
1677
|
+
"@subwallet/extension-dapp": "^1.0.4-1",
|
|
1678
|
+
"@subwallet/extension-inject": "^1.0.4-1",
|
|
1674
1679
|
"@subwallet/keyring": "^0.0.5",
|
|
1675
|
-
"@subwallet/ui-keyring": "^0.0.
|
|
1680
|
+
"@subwallet/ui-keyring": "^0.0.7",
|
|
1676
1681
|
"@unique-nft/types": "^0.6.0-4",
|
|
1677
1682
|
"@zeitgeistpm/type-defs": "^0.10.0",
|
|
1678
1683
|
"@zeroio/type-definitions": "^0.0.14",
|
|
@@ -1702,10 +1707,10 @@
|
|
|
1702
1707
|
"protobufjs": "^7.1.2",
|
|
1703
1708
|
"rlp": "^3.0.0",
|
|
1704
1709
|
"rxjs": "^7.8.0",
|
|
1705
|
-
"web3": "^1.
|
|
1706
|
-
"web3-core": "^1.
|
|
1707
|
-
"web3-core-helpers": "^1.
|
|
1708
|
-
"web3-eth-contract": "^1.
|
|
1709
|
-
"web3-utils": "^1.
|
|
1710
|
+
"web3": "^1.10.0",
|
|
1711
|
+
"web3-core": "^1.10.0",
|
|
1712
|
+
"web3-core-helpers": "^1.10.0",
|
|
1713
|
+
"web3-eth-contract": "^1.10.0",
|
|
1714
|
+
"web3-utils": "^1.10.0"
|
|
1710
1715
|
}
|
|
1711
1716
|
}
|
package/packageInfo.js
CHANGED
|
@@ -7,5 +7,5 @@ export const packageInfo = {
|
|
|
7
7
|
name: '@subwallet/extension-base',
|
|
8
8
|
path: (import.meta && import.meta.url) ? new URL(import.meta.url).pathname.substring(0, new URL(import.meta.url).pathname.lastIndexOf('/') + 1) : 'auto',
|
|
9
9
|
type: 'esm',
|
|
10
|
-
version: '1.0.4-
|
|
10
|
+
version: '1.0.4-1'
|
|
11
11
|
};
|
|
@@ -208,6 +208,6 @@ const TARGET_BRANCH = process.env.NODE_ENV !== 'production' ? 'koni-dev' : 'mast
|
|
|
208
208
|
export const _CHAIN_INFO_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/ChainInfo.json`;
|
|
209
209
|
export const _CHAIN_ASSET_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/ChainAsset.json`;
|
|
210
210
|
export const _ASSET_REF_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/AssetRef.json`;
|
|
211
|
-
export const _MULTI_CHAIN_ASSET_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/
|
|
211
|
+
export const _MULTI_CHAIN_ASSET_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/MultiChainAsset.json`;
|
|
212
212
|
export const _CHAIN_LOGO_MAP_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/ChainLogoMap.json`;
|
|
213
213
|
export const _ASSET_LOGO_MAP_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/AssetLogoMap.json`;
|
|
@@ -112,7 +112,7 @@ export class SubstrateChainHandler {
|
|
|
112
112
|
name = nameResp.output ? nameObj.Ok || nameObj.ok : '';
|
|
113
113
|
decimals = decimalsResp.output ? new BN(decimalsObj.Ok || decimalsObj.ok).toNumber() : 0;
|
|
114
114
|
symbol = decimalsResp.output ? symbolObj.Ok || symbolObj.ok : '';
|
|
115
|
-
if (name === '' || symbol === '') {
|
|
115
|
+
if (!name || !symbol || typeof name === 'object' || typeof symbol === 'object') {
|
|
116
116
|
contractError = true;
|
|
117
117
|
}
|
|
118
118
|
console.log('validate PSP22', name, symbol, decimals);
|
|
@@ -100,9 +100,10 @@ export declare class ChainService {
|
|
|
100
100
|
setAssetSettings(assetSettings: Record<string, AssetSetting>, emitEvent?: boolean): void;
|
|
101
101
|
getStoreAssetSettings(): Promise<Record<string, AssetSetting>>;
|
|
102
102
|
getAssetSettings(): Promise<Record<string, AssetSetting>>;
|
|
103
|
-
updateAssetSetting(assetSlug: string, assetSetting: AssetSetting): Promise<boolean | undefined>;
|
|
103
|
+
updateAssetSetting(assetSlug: string, assetSetting: AssetSetting, autoEnableNativeToken?: boolean): Promise<boolean | undefined>;
|
|
104
104
|
updateAssetSettingByChain(chainSlug: string, visible: boolean): Promise<void>;
|
|
105
105
|
subscribeAssetSettings(): BehaviorSubject<Record<string, AssetSetting>>;
|
|
106
106
|
getChainLogoMap(): Promise<Record<string, string>>;
|
|
107
107
|
getAssetLogoMap(): Promise<Record<string, string>>;
|
|
108
|
+
resetWallet(resetAll: boolean): void;
|
|
108
109
|
}
|