@subwallet/extension-base 1.3.22-0 → 1.3.24-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 +77 -4
- package/background/KoniTypes.js +2 -0
- package/cjs/background/KoniTypes.js +2 -0
- package/cjs/constants/environment.js +4 -2
- package/cjs/constants/index.js +21 -4
- package/cjs/constants/signing.js +6 -2
- package/cjs/core/logic-validation/recipientAddress.js +9 -1
- package/cjs/core/logic-validation/transfer.js +57 -36
- package/cjs/core/types.js +1 -0
- package/cjs/core/utils.js +12 -1
- package/cjs/defaults.js +1 -1
- package/cjs/koni/api/dotsama/crowdloan.js +1 -1
- package/cjs/koni/api/nft/index.js +9 -16
- package/cjs/koni/api/staking/index.js +3 -4
- package/cjs/koni/background/handlers/Extension.js +343 -185
- package/cjs/koni/background/handlers/State.js +17 -2
- package/cjs/koni/background/handlers/Tabs.js +1 -1
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/cardano/consts.js +11 -0
- package/cjs/services/balance-service/helpers/subscribe/cardano/index.js +63 -0
- package/cjs/services/balance-service/helpers/subscribe/cardano/types.js +1 -0
- package/cjs/services/balance-service/helpers/subscribe/cardano/utils.js +74 -0
- package/cjs/services/balance-service/helpers/subscribe/index.js +21 -7
- package/cjs/services/balance-service/helpers/subscribe/ton/utils.js +2 -2
- package/cjs/services/balance-service/index.js +4 -2
- package/cjs/services/balance-service/transfer/cardano-transfer.js +122 -0
- package/cjs/services/balance-service/transfer/smart-contract.js +24 -3
- package/cjs/services/balance-service/transfer/token.js +4 -4
- package/cjs/services/chain-service/handler/CardanoApi.js +176 -0
- package/cjs/services/chain-service/handler/CardanoChainHandler.js +83 -0
- package/cjs/services/chain-service/handler/TonApi.js +2 -5
- package/cjs/services/chain-service/index.js +40 -7
- package/cjs/services/chain-service/utils/index.js +40 -11
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +1 -1
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +1 -1
- package/cjs/services/earning-service/service.js +6 -12
- package/cjs/services/fee-service/service.js +19 -8
- package/cjs/services/fee-service/utils/tokenPayFee.js +151 -0
- package/cjs/services/history-service/index.js +4 -6
- package/cjs/services/inapp-notification-service/index.js +12 -4
- package/cjs/services/keyring-service/context/account-context.js +17 -2
- package/cjs/services/keyring-service/context/handlers/Derive.js +10 -7
- package/cjs/services/keyring-service/context/handlers/Migration.js +268 -0
- package/cjs/services/keyring-service/context/handlers/Mnemonic.js +2 -2
- package/cjs/services/keyring-service/context/handlers/Secret.js +1 -1
- package/cjs/services/keyring-service/utils.js +18 -0
- package/cjs/services/request-service/handler/CardanoRequestHandler.js +172 -0
- package/cjs/services/request-service/handler/EvmRequestHandler.js +1 -1
- package/cjs/services/request-service/handler/MetadataRequestHandler.js +5 -13
- package/cjs/services/request-service/index.js +22 -4
- package/cjs/services/setting-service/constants.js +10 -1
- package/cjs/services/storage-service/DatabaseService.js +3 -0
- package/cjs/services/storage-service/db-stores/InappNotification.js +6 -0
- package/cjs/services/swap-service/handler/asset-hub/handler.js +0 -59
- package/cjs/services/swap-service/handler/chainflip-handler.js +33 -281
- package/cjs/services/swap-service/handler/hydradx-handler.js +23 -190
- package/cjs/services/swap-service/handler/simpleswap-handler.js +1 -222
- package/cjs/services/swap-service/handler/uniswap-handler.js +331 -0
- package/cjs/services/swap-service/index.js +31 -22
- package/cjs/services/swap-service/utils.js +21 -38
- package/cjs/services/transaction-service/helpers/index.js +6 -1
- package/cjs/services/transaction-service/index.js +286 -26
- package/cjs/services/transaction-service/utils.js +5 -1
- package/cjs/types/account/info/keyring.js +12 -1
- package/cjs/types/fee/cardano.js +1 -0
- package/cjs/types/swap/index.js +7 -2
- package/cjs/utils/account/analyze.js +2 -1
- package/cjs/utils/account/common.js +29 -20
- package/cjs/utils/account/derive/info/solo.js +9 -4
- package/cjs/utils/account/derive/validate.js +36 -2
- package/cjs/utils/account/transform.js +38 -13
- package/cjs/utils/fee/transfer.js +87 -21
- package/cjs/utils/index.js +2 -2
- package/cjs/utils/staticData/index.js +7 -2
- package/constants/environment.d.ts +1 -0
- package/constants/environment.js +2 -1
- package/constants/index.d.ts +6 -1
- package/constants/index.js +14 -1
- package/constants/signing.js +6 -2
- package/core/logic-validation/recipientAddress.js +11 -3
- package/core/logic-validation/transfer.d.ts +1 -1
- package/core/logic-validation/transfer.js +33 -12
- package/core/substrate/xcm-parser.d.ts +1 -1
- package/core/types.d.ts +1 -0
- package/core/types.js +1 -0
- package/core/utils.d.ts +1 -0
- package/core/utils.js +13 -3
- package/defaults.d.ts +1 -1
- package/defaults.js +1 -1
- package/koni/api/dotsama/crowdloan.js +3 -3
- package/koni/api/nft/index.js +10 -16
- package/koni/api/nft/story_odyssey_nft/index.d.ts +1 -1
- package/koni/api/staking/index.js +4 -5
- package/koni/background/handlers/Extension.d.ts +9 -0
- package/koni/background/handlers/Extension.js +225 -69
- package/koni/background/handlers/State.d.ts +6 -2
- package/koni/background/handlers/State.js +18 -3
- package/koni/background/handlers/Tabs.js +1 -1
- package/package.json +76 -9
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/cardano/consts.d.ts +1 -0
- package/services/balance-service/helpers/subscribe/cardano/consts.js +4 -0
- package/services/balance-service/helpers/subscribe/cardano/index.d.ts +2 -0
- package/services/balance-service/helpers/subscribe/cardano/index.js +57 -0
- package/services/balance-service/helpers/subscribe/cardano/types.d.ts +34 -0
- package/services/balance-service/helpers/subscribe/cardano/types.js +1 -0
- package/services/balance-service/helpers/subscribe/cardano/utils.d.ts +15 -0
- package/services/balance-service/helpers/subscribe/cardano/utils.js +62 -0
- package/services/balance-service/helpers/subscribe/index.d.ts +2 -2
- package/services/balance-service/helpers/subscribe/index.js +23 -9
- package/services/balance-service/helpers/subscribe/ton/utils.d.ts +1 -1
- package/services/balance-service/helpers/subscribe/ton/utils.js +1 -1
- package/services/balance-service/index.js +4 -2
- package/services/balance-service/transfer/cardano-transfer.d.ts +24 -0
- package/services/balance-service/transfer/cardano-transfer.js +114 -0
- package/services/balance-service/transfer/smart-contract.d.ts +4 -2
- package/services/balance-service/transfer/smart-contract.js +24 -3
- package/services/balance-service/transfer/token.d.ts +1 -1
- package/services/balance-service/transfer/token.js +2 -2
- package/services/chain-service/handler/CardanoApi.d.ts +38 -0
- package/services/chain-service/handler/CardanoApi.js +167 -0
- package/services/chain-service/handler/CardanoChainHandler.d.ts +17 -0
- package/services/chain-service/handler/CardanoChainHandler.js +75 -0
- package/services/chain-service/handler/TonApi.js +3 -6
- package/services/chain-service/handler/types.d.ts +1 -0
- package/services/chain-service/index.d.ts +4 -1
- package/services/chain-service/index.js +41 -8
- package/services/chain-service/types.d.ts +9 -1
- package/services/chain-service/utils/index.d.ts +4 -0
- package/services/chain-service/utils/index.js +32 -11
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/handlers/liquid-staking/bifrost-manta.js +1 -1
- package/services/earning-service/handlers/liquid-staking/bifrost.js +1 -1
- package/services/earning-service/service.js +8 -14
- package/services/fee-service/interfaces.d.ts +25 -0
- package/services/fee-service/service.js +19 -8
- package/services/fee-service/utils/tokenPayFee.d.ts +8 -0
- package/services/fee-service/utils/tokenPayFee.js +141 -0
- package/services/history-service/index.js +6 -8
- package/services/inapp-notification-service/index.d.ts +3 -4
- package/services/inapp-notification-service/index.js +14 -6
- package/services/keyring-service/context/account-context.d.ts +6 -2
- package/services/keyring-service/context/account-context.js +17 -2
- package/services/keyring-service/context/handlers/Derive.d.ts +1 -1
- package/services/keyring-service/context/handlers/Derive.js +10 -8
- package/services/keyring-service/context/handlers/Migration.d.ts +17 -0
- package/services/keyring-service/context/handlers/Migration.js +258 -0
- package/services/keyring-service/context/handlers/Mnemonic.js +2 -2
- package/services/keyring-service/context/handlers/Secret.js +2 -2
- package/services/keyring-service/utils.d.ts +2 -0
- package/services/keyring-service/utils.js +11 -0
- package/services/request-service/handler/CardanoRequestHandler.d.ts +16 -0
- package/services/request-service/handler/CardanoRequestHandler.js +163 -0
- package/services/request-service/handler/EvmRequestHandler.js +1 -1
- package/services/request-service/handler/MetadataRequestHandler.d.ts +1 -1
- package/services/request-service/handler/MetadataRequestHandler.js +5 -13
- package/services/request-service/index.d.ts +7 -4
- package/services/request-service/index.js +21 -7
- package/services/setting-service/constants.d.ts +3 -0
- package/services/setting-service/constants.js +6 -0
- package/services/storage-service/DatabaseService.d.ts +1 -0
- package/services/storage-service/DatabaseService.js +3 -0
- package/services/storage-service/db-stores/InappNotification.d.ts +1 -0
- package/services/storage-service/db-stores/InappNotification.js +6 -0
- package/services/swap-service/handler/asset-hub/handler.d.ts +1 -4
- package/services/swap-service/handler/asset-hub/handler.js +2 -61
- package/services/swap-service/handler/base-handler.d.ts +1 -4
- package/services/swap-service/handler/chainflip-handler.d.ts +2 -9
- package/services/swap-service/handler/chainflip-handler.js +31 -280
- package/services/swap-service/handler/hydradx-handler.d.ts +1 -6
- package/services/swap-service/handler/hydradx-handler.js +13 -180
- package/services/swap-service/handler/simpleswap-handler.d.ts +1 -4
- package/services/swap-service/handler/simpleswap-handler.js +5 -226
- package/services/swap-service/handler/uniswap-handler.d.ts +41 -0
- package/services/swap-service/handler/uniswap-handler.js +323 -0
- package/services/swap-service/index.js +30 -22
- package/services/swap-service/utils.d.ts +1 -5
- package/services/swap-service/utils.js +7 -21
- package/services/transaction-service/helpers/index.d.ts +2 -0
- package/services/transaction-service/helpers/index.js +4 -0
- package/services/transaction-service/index.d.ts +8 -2
- package/services/transaction-service/index.js +273 -17
- package/services/transaction-service/types.d.ts +7 -0
- package/services/transaction-service/utils.js +7 -2
- package/types/account/info/keyring.d.ts +4 -1
- package/types/account/info/keyring.js +9 -0
- package/types/account/info/proxy.d.ts +2 -0
- package/types/balance/index.d.ts +4 -1
- package/types/fee/base.d.ts +1 -1
- package/types/fee/cardano.d.ts +18 -0
- package/types/fee/cardano.js +1 -0
- package/types/fee/option.d.ts +1 -1
- package/types/fee/subscription.d.ts +4 -3
- package/types/swap/index.d.ts +11 -3
- package/types/swap/index.js +7 -2
- package/utils/account/analyze.js +2 -1
- package/utils/account/common.d.ts +11 -6
- package/utils/account/common.js +28 -19
- package/utils/account/derive/info/solo.js +10 -5
- package/utils/account/derive/validate.d.ts +1 -0
- package/utils/account/derive/validate.js +34 -1
- package/utils/account/transform.d.ts +2 -1
- package/utils/account/transform.js +37 -13
- package/utils/fee/transfer.d.ts +3 -2
- package/utils/fee/transfer.js +90 -24
- package/utils/index.js +4 -4
- package/utils/staticData/index.d.ts +4 -1
- package/utils/staticData/index.js +5 -1
- package/utils/staticData/oldChainPrefix.json +1 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _request = require("@subwallet/extension-base/utils/request");
|
|
8
|
+
var _uiKeyring = require("@subwallet/ui-keyring");
|
|
9
|
+
var _i18next = require("i18next");
|
|
10
|
+
var _rxjs = require("rxjs");
|
|
11
|
+
var _logger = require("@polkadot/util/logger");
|
|
12
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
13
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
14
|
+
|
|
15
|
+
class CardanoRequestHandler {
|
|
16
|
+
#requestService;
|
|
17
|
+
#logger;
|
|
18
|
+
confirmationsQueueSubjectCardano = new _rxjs.BehaviorSubject({
|
|
19
|
+
cardanoSignatureRequest: {},
|
|
20
|
+
cardanoSendTransactionRequest: {},
|
|
21
|
+
cardanoWatchTransactionRequest: {}
|
|
22
|
+
});
|
|
23
|
+
confirmationsPromiseMap = {};
|
|
24
|
+
constructor(requestService) {
|
|
25
|
+
this.#requestService = requestService;
|
|
26
|
+
this.#logger = (0, _logger.logger)('CardanoRequestHandler');
|
|
27
|
+
}
|
|
28
|
+
get numCardanoRequests() {
|
|
29
|
+
let count = 0;
|
|
30
|
+
Object.values(this.confirmationsQueueSubjectCardano.getValue()).forEach(x => {
|
|
31
|
+
count += Object.keys(x).length;
|
|
32
|
+
});
|
|
33
|
+
return count;
|
|
34
|
+
}
|
|
35
|
+
getConfirmationsQueueSubjectCardano() {
|
|
36
|
+
return this.confirmationsQueueSubjectCardano;
|
|
37
|
+
}
|
|
38
|
+
async addConfirmationCardano(id, url, type, payload) {
|
|
39
|
+
let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
40
|
+
let validator = arguments.length > 5 ? arguments[5] : undefined;
|
|
41
|
+
const confirmations = this.confirmationsQueueSubjectCardano.getValue();
|
|
42
|
+
const confirmationType = confirmations[type];
|
|
43
|
+
const payloadJson = JSON.stringify({});
|
|
44
|
+
const isInternal = (0, _request.isInternalRequest)(url);
|
|
45
|
+
if (['cardanoSendTransactionRequest', 'cardanoSignatureRequest'].includes(type)) {
|
|
46
|
+
const isAlwaysRequired = await this.#requestService.settingService.isAlwaysRequired;
|
|
47
|
+
if (isAlwaysRequired) {
|
|
48
|
+
this.#requestService.keyringService.lock();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Check duplicate request
|
|
53
|
+
const duplicated = Object.values(confirmationType).find(c => c.url === url && c.payloadJson === payloadJson);
|
|
54
|
+
if (duplicated) {
|
|
55
|
+
throw new Error('Cardano duplicate request'); // update this message.
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
confirmationType[id] = {
|
|
59
|
+
id,
|
|
60
|
+
url,
|
|
61
|
+
isInternal,
|
|
62
|
+
payload,
|
|
63
|
+
payloadJson,
|
|
64
|
+
...options
|
|
65
|
+
};
|
|
66
|
+
const promise = new Promise((resolve, reject) => {
|
|
67
|
+
this.confirmationsPromiseMap[id] = {
|
|
68
|
+
validator: validator,
|
|
69
|
+
resolver: {
|
|
70
|
+
resolve: resolve,
|
|
71
|
+
reject: reject
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
this.confirmationsQueueSubjectCardano.next(confirmations);
|
|
76
|
+
if (!isInternal) {
|
|
77
|
+
this.#requestService.popupOpen();
|
|
78
|
+
}
|
|
79
|
+
this.#requestService.updateIconV2();
|
|
80
|
+
return promise;
|
|
81
|
+
}
|
|
82
|
+
async completeConfirmationCardano(request) {
|
|
83
|
+
const confirmations = this.confirmationsQueueSubjectCardano.getValue();
|
|
84
|
+
for (const ct in request) {
|
|
85
|
+
const type = ct;
|
|
86
|
+
const result = request[type];
|
|
87
|
+
const {
|
|
88
|
+
id
|
|
89
|
+
} = result;
|
|
90
|
+
const {
|
|
91
|
+
resolver,
|
|
92
|
+
validator
|
|
93
|
+
} = this.confirmationsPromiseMap[id];
|
|
94
|
+
const confirmation = confirmations[type][id];
|
|
95
|
+
if (!resolver || !confirmation) {
|
|
96
|
+
this.#logger.error((0, _i18next.t)('Unable to proceed. Please try again'), type, id);
|
|
97
|
+
throw new Error((0, _i18next.t)('Unable to proceed. Please try again'));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Fill signature for some special type
|
|
101
|
+
await this.decorateResult(type, confirmation, result);
|
|
102
|
+
|
|
103
|
+
// Validate response from confirmation popup some info like password, response format....
|
|
104
|
+
const error = validator && validator(result);
|
|
105
|
+
if (error) {
|
|
106
|
+
resolver.reject(error);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Delete confirmations from queue
|
|
110
|
+
delete this.confirmationsPromiseMap[id];
|
|
111
|
+
delete confirmations[type][id];
|
|
112
|
+
this.confirmationsQueueSubjectCardano.next(confirmations);
|
|
113
|
+
|
|
114
|
+
// Update icon, and close queue
|
|
115
|
+
this.#requestService.updateIconV2(this.#requestService.numAllRequests === 0);
|
|
116
|
+
resolver.resolve(result);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// TODO: Review later
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
async decorateResult(t, request, result) {
|
|
123
|
+
if (result.payload === '') {
|
|
124
|
+
if (t === 'cardanoSignatureRequest') {
|
|
125
|
+
// result.payload = await this.signMessage(request as ConfirmationDefinitions['evmSignatureRequest'][0]);
|
|
126
|
+
} else if (t === 'cardanoSendTransactionRequest') {
|
|
127
|
+
result.payload = this.signTransactionCardano(request);
|
|
128
|
+
}
|
|
129
|
+
if (t === 'cardanoSignatureRequest' || t === 'cardanoSendTransactionRequest') {
|
|
130
|
+
const isAlwaysRequired = await this.#requestService.settingService.isAlwaysRequired;
|
|
131
|
+
if (isAlwaysRequired) {
|
|
132
|
+
this.#requestService.keyringService.lock();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
signTransactionCardano(confirmation) {
|
|
138
|
+
// alibaba
|
|
139
|
+
const transaction = confirmation.payload;
|
|
140
|
+
const {
|
|
141
|
+
cardanoPayload,
|
|
142
|
+
from
|
|
143
|
+
} = transaction;
|
|
144
|
+
const pair = _uiKeyring.keyring.getPair(from);
|
|
145
|
+
if (pair.isLocked) {
|
|
146
|
+
_uiKeyring.keyring.unlockPair(pair.address);
|
|
147
|
+
}
|
|
148
|
+
return pair.cardano.sign(cardanoPayload);
|
|
149
|
+
}
|
|
150
|
+
resetWallet() {
|
|
151
|
+
const confirmations = this.confirmationsQueueSubjectCardano.getValue();
|
|
152
|
+
for (const [type, requests] of Object.entries(confirmations)) {
|
|
153
|
+
for (const confirmation of Object.values(requests)) {
|
|
154
|
+
const {
|
|
155
|
+
id
|
|
156
|
+
} = confirmation;
|
|
157
|
+
const {
|
|
158
|
+
resolver
|
|
159
|
+
} = this.confirmationsPromiseMap[id];
|
|
160
|
+
if (!resolver || !confirmation) {
|
|
161
|
+
console.error('Not found confirmation', type, id);
|
|
162
|
+
} else {
|
|
163
|
+
resolver.reject(new Error('Reset wallet'));
|
|
164
|
+
}
|
|
165
|
+
delete this.confirmationsPromiseMap[id];
|
|
166
|
+
delete confirmations[type][id];
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
this.confirmationsQueueSubjectCardano.next(confirmations);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
exports.default = CardanoRequestHandler;
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _helper = require("@subwallet/extension-base/services/request-service/helper");
|
|
8
8
|
var _stores = require("@subwallet/extension-base/stores");
|
|
9
|
-
var _getId = require("@subwallet/extension-base/utils/getId");
|
|
10
9
|
var _extensionChains = require("@subwallet/extension-chains");
|
|
11
10
|
var _rxjs = require("rxjs");
|
|
12
11
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
@@ -52,6 +51,8 @@ class MetadataRequestHandler {
|
|
|
52
51
|
this.metaSubject.next(this.allMetaRequests);
|
|
53
52
|
this.#requestService.updateIconV2(shouldClose);
|
|
54
53
|
}
|
|
54
|
+
|
|
55
|
+
// @ts-ignore
|
|
55
56
|
metaComplete = (id, resolve, reject) => {
|
|
56
57
|
const complete = () => {
|
|
57
58
|
delete this.#metaRequests[id];
|
|
@@ -68,18 +69,9 @@ class MetadataRequestHandler {
|
|
|
68
69
|
}
|
|
69
70
|
};
|
|
70
71
|
};
|
|
71
|
-
injectMetadata(
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
this.#metaRequests[id] = {
|
|
75
|
-
...this.metaComplete(id, resolve, reject),
|
|
76
|
-
id,
|
|
77
|
-
request,
|
|
78
|
-
url
|
|
79
|
-
};
|
|
80
|
-
this.updateIconMeta();
|
|
81
|
-
this.#requestService.popupOpen();
|
|
82
|
-
});
|
|
72
|
+
injectMetadata(request) {
|
|
73
|
+
this.saveMetadata(request);
|
|
74
|
+
return true;
|
|
83
75
|
}
|
|
84
76
|
resetWallet() {
|
|
85
77
|
for (const request of Object.values(this.#metaRequests)) {
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
+
var _CardanoRequestHandler = _interopRequireDefault(require("@subwallet/extension-base/services/request-service/handler/CardanoRequestHandler"));
|
|
8
9
|
var _TonRequestHandler = _interopRequireDefault(require("./handler/TonRequestHandler"));
|
|
9
10
|
var _handler = require("./handler");
|
|
10
11
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
@@ -19,6 +20,7 @@ class RequestService {
|
|
|
19
20
|
#substrateRequestHandler;
|
|
20
21
|
#evmRequestHandler;
|
|
21
22
|
#tonRequestHandler;
|
|
23
|
+
#cardanoRequestHandler;
|
|
22
24
|
#connectWCRequestHandler;
|
|
23
25
|
#notSupportWCRequestHandler;
|
|
24
26
|
|
|
@@ -33,6 +35,7 @@ class RequestService {
|
|
|
33
35
|
this.#substrateRequestHandler = new _handler.SubstrateRequestHandler(this);
|
|
34
36
|
this.#evmRequestHandler = new _handler.EvmRequestHandler(this);
|
|
35
37
|
this.#tonRequestHandler = new _TonRequestHandler.default(this);
|
|
38
|
+
this.#cardanoRequestHandler = new _CardanoRequestHandler.default(this);
|
|
36
39
|
this.#connectWCRequestHandler = new _handler.ConnectWCRequestHandler(this);
|
|
37
40
|
this.#notSupportWCRequestHandler = new _handler.NotSupportWCRequestHandler(this);
|
|
38
41
|
|
|
@@ -40,7 +43,7 @@ class RequestService {
|
|
|
40
43
|
this.updateIconV2();
|
|
41
44
|
}
|
|
42
45
|
get numAllRequests() {
|
|
43
|
-
return this.allSubstrateRequests.length + this.numEvmRequests + this.numTonRequests;
|
|
46
|
+
return this.allSubstrateRequests.length + this.numEvmRequests + this.numTonRequests + this.numCardanoRequests;
|
|
44
47
|
}
|
|
45
48
|
updateIconV2(shouldClose) {
|
|
46
49
|
this.#popupHandler.updateIconV2(shouldClose);
|
|
@@ -84,8 +87,8 @@ class RequestService {
|
|
|
84
87
|
get numMetaRequests() {
|
|
85
88
|
return this.#metadataRequestHandler.numMetaRequests;
|
|
86
89
|
}
|
|
87
|
-
injectMetadata(
|
|
88
|
-
return this.#metadataRequestHandler.injectMetadata(
|
|
90
|
+
injectMetadata(request) {
|
|
91
|
+
return this.#metadataRequestHandler.injectMetadata(request);
|
|
89
92
|
}
|
|
90
93
|
getMetaRequest(id) {
|
|
91
94
|
return this.#metadataRequestHandler.getMetaRequest(id);
|
|
@@ -150,12 +153,18 @@ class RequestService {
|
|
|
150
153
|
get numTonRequests() {
|
|
151
154
|
return this.#tonRequestHandler.numTonRequests;
|
|
152
155
|
}
|
|
156
|
+
get numCardanoRequests() {
|
|
157
|
+
return this.#cardanoRequestHandler.numCardanoRequests;
|
|
158
|
+
}
|
|
153
159
|
get confirmationsQueueSubject() {
|
|
154
160
|
return this.#evmRequestHandler.getConfirmationsQueueSubject();
|
|
155
161
|
}
|
|
156
162
|
get confirmationsQueueSubjectTon() {
|
|
157
163
|
return this.#tonRequestHandler.getConfirmationsQueueSubjectTon();
|
|
158
164
|
}
|
|
165
|
+
get confirmationsQueueSubjectCardano() {
|
|
166
|
+
return this.#cardanoRequestHandler.getConfirmationsQueueSubjectCardano();
|
|
167
|
+
}
|
|
159
168
|
getSignRequest(id) {
|
|
160
169
|
return this.#substrateRequestHandler.getSignRequest(id);
|
|
161
170
|
}
|
|
@@ -172,12 +181,20 @@ class RequestService {
|
|
|
172
181
|
let validator = arguments.length > 5 ? arguments[5] : undefined;
|
|
173
182
|
return this.#tonRequestHandler.addConfirmationTon(id, url, type, payload, options, validator);
|
|
174
183
|
}
|
|
184
|
+
addConfirmationCardano(id, url, type, payload) {
|
|
185
|
+
let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
186
|
+
let validator = arguments.length > 5 ? arguments[5] : undefined;
|
|
187
|
+
return this.#cardanoRequestHandler.addConfirmationCardano(id, url, type, payload, options, validator);
|
|
188
|
+
}
|
|
175
189
|
async completeConfirmation(request) {
|
|
176
190
|
return await this.#evmRequestHandler.completeConfirmation(request);
|
|
177
191
|
}
|
|
178
192
|
async completeConfirmationTon(request) {
|
|
179
193
|
return await this.#tonRequestHandler.completeConfirmationTon(request);
|
|
180
194
|
}
|
|
195
|
+
async completeConfirmationCardano(request) {
|
|
196
|
+
return await this.#cardanoRequestHandler.completeConfirmationCardano(request);
|
|
197
|
+
}
|
|
181
198
|
updateConfirmation(id, type, payload) {
|
|
182
199
|
let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
183
200
|
let validator = arguments.length > 4 ? arguments[4] : undefined;
|
|
@@ -220,13 +237,14 @@ class RequestService {
|
|
|
220
237
|
|
|
221
238
|
// General methods
|
|
222
239
|
get numRequests() {
|
|
223
|
-
return this.numMetaRequests + this.numAuthRequests + this.numSubstrateRequests + this.numEvmRequests + this.numConnectWCRequests + this.numNotSupportWCRequests + this.numTonRequests;
|
|
240
|
+
return this.numMetaRequests + this.numAuthRequests + this.numSubstrateRequests + this.numEvmRequests + this.numConnectWCRequests + this.numNotSupportWCRequests + this.numTonRequests + this.numCardanoRequests;
|
|
224
241
|
}
|
|
225
242
|
resetWallet() {
|
|
226
243
|
this.#authRequestHandler.resetWallet();
|
|
227
244
|
this.#substrateRequestHandler.resetWallet();
|
|
228
245
|
this.#evmRequestHandler.resetWallet();
|
|
229
246
|
this.#tonRequestHandler.resetWallet();
|
|
247
|
+
this.#cardanoRequestHandler.resetWallet();
|
|
230
248
|
this.#metadataRequestHandler.resetWallet();
|
|
231
249
|
this.#connectWCRequestHandler.resetWallet();
|
|
232
250
|
this.#notSupportWCRequestHandler.resetWallet();
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.DEFAULT_UNLOCK_TYPE = exports.DEFAULT_THEME = exports.DEFAULT_SHOW_ZERO_BALANCE = exports.DEFAULT_SHOW_BALANCE = exports.DEFAULT_SETTING = exports.DEFAULT_NOTIFICATION_TYPE = exports.DEFAULT_NOTIFICATION_SETUP = exports.DEFAULT_LANGUAGE = exports.DEFAULT_CURRENCY = exports.DEFAULT_CHAIN_PATROL_ENABLE = exports.DEFAULT_CAMERA_ENABLE = exports.DEFAULT_AUTO_LOCK_TIME = exports.DEFAULT_ALL_LOGO = exports.DEFAULT_ALLOW_ONE_SIGN = void 0;
|
|
6
|
+
exports.DEFAULT_UNLOCK_TYPE = exports.DEFAULT_UNIFIED_ACCOUNT_MIGRATION_IN_PROGRESS = exports.DEFAULT_UNIFIED_ACCOUNT_MIGRATION_IN_DONE = exports.DEFAULT_THEME = exports.DEFAULT_SHOW_ZERO_BALANCE = exports.DEFAULT_SHOW_BALANCE = exports.DEFAULT_SETTING = exports.DEFAULT_NOTIFICATION_TYPE = exports.DEFAULT_NOTIFICATION_SETUP = exports.DEFAULT_LANGUAGE = exports.DEFAULT_CURRENCY = exports.DEFAULT_CHAIN_PATROL_ENABLE = exports.DEFAULT_CAMERA_ENABLE = exports.DEFAULT_AUTO_LOCK_TIME = exports.DEFAULT_ALL_LOGO = exports.DEFAULT_ALLOW_ONE_SIGN = exports.DEFAULT_ACKNOWLEDGED_MIGRATION_STATUS = void 0;
|
|
7
7
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
8
8
|
var _utils = require("@subwallet/extension-base/utils");
|
|
9
9
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
@@ -48,6 +48,12 @@ const DEFAULT_NOTIFICATION_SETUP = {
|
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
50
|
exports.DEFAULT_NOTIFICATION_SETUP = DEFAULT_NOTIFICATION_SETUP;
|
|
51
|
+
const DEFAULT_ACKNOWLEDGED_MIGRATION_STATUS = false;
|
|
52
|
+
exports.DEFAULT_ACKNOWLEDGED_MIGRATION_STATUS = DEFAULT_ACKNOWLEDGED_MIGRATION_STATUS;
|
|
53
|
+
const DEFAULT_UNIFIED_ACCOUNT_MIGRATION_IN_PROGRESS = false;
|
|
54
|
+
exports.DEFAULT_UNIFIED_ACCOUNT_MIGRATION_IN_PROGRESS = DEFAULT_UNIFIED_ACCOUNT_MIGRATION_IN_PROGRESS;
|
|
55
|
+
const DEFAULT_UNIFIED_ACCOUNT_MIGRATION_IN_DONE = false;
|
|
56
|
+
exports.DEFAULT_UNIFIED_ACCOUNT_MIGRATION_IN_DONE = DEFAULT_UNIFIED_ACCOUNT_MIGRATION_IN_DONE;
|
|
51
57
|
const DEFAULT_SETTING = {
|
|
52
58
|
language: DEFAULT_LANGUAGE,
|
|
53
59
|
currency: DEFAULT_CURRENCY,
|
|
@@ -61,6 +67,9 @@ const DEFAULT_SETTING = {
|
|
|
61
67
|
timeAutoLock: DEFAULT_AUTO_LOCK_TIME,
|
|
62
68
|
enableChainPatrol: DEFAULT_CHAIN_PATROL_ENABLE,
|
|
63
69
|
notificationSetup: DEFAULT_NOTIFICATION_SETUP,
|
|
70
|
+
isAcknowledgedUnifiedAccountMigration: DEFAULT_ACKNOWLEDGED_MIGRATION_STATUS,
|
|
71
|
+
isUnifiedAccountMigrationInProgress: DEFAULT_UNIFIED_ACCOUNT_MIGRATION_IN_PROGRESS,
|
|
72
|
+
isUnifiedAccountMigrationDone: DEFAULT_UNIFIED_ACCOUNT_MIGRATION_IN_DONE,
|
|
64
73
|
walletReference: '',
|
|
65
74
|
allowOneSign: DEFAULT_ALLOW_ONE_SIGN
|
|
66
75
|
};
|
|
@@ -607,6 +607,9 @@ class DatabaseService {
|
|
|
607
607
|
removeAccountNotifications(proxyId) {
|
|
608
608
|
return this.stores.inappNotification.removeAccountNotifications(proxyId);
|
|
609
609
|
}
|
|
610
|
+
updateNotificationProxyId(proxyIds, newProxyId, newName) {
|
|
611
|
+
return this.stores.inappNotification.updateNotificationProxyId(proxyIds, newProxyId, newName);
|
|
612
|
+
}
|
|
610
613
|
async exportDB() {
|
|
611
614
|
const blob = await (0, _dexieExportImport.exportDB)(this._db, {
|
|
612
615
|
filter: (table, value, key) => {
|
|
@@ -43,6 +43,12 @@ class InappNotificationStore extends _BaseStore.default {
|
|
|
43
43
|
});
|
|
44
44
|
return filteredTable.toArray();
|
|
45
45
|
}
|
|
46
|
+
updateNotificationProxyId(proxyIds, newProxyId, newName) {
|
|
47
|
+
this.table.where('proxyId').anyOfIgnoreCase(proxyIds).modify(item => {
|
|
48
|
+
item.proxyId = newProxyId;
|
|
49
|
+
item.title = item.title.replace(/\[.*?\]/, `[${newName}]`);
|
|
50
|
+
}).catch(console.error);
|
|
51
|
+
}
|
|
46
52
|
async cleanUpOldNotifications(overdueTime) {
|
|
47
53
|
const currentTimestamp = Date.now();
|
|
48
54
|
return this.table.filter(item => item.time <= currentTimestamp - overdueTime).delete();
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.AssetHubSwapHandler = void 0;
|
|
8
|
-
var _SwapError = require("@subwallet/extension-base/background/errors/SwapError");
|
|
9
8
|
var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
|
|
10
9
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
11
10
|
var _constants = require("@subwallet/extension-base/constants");
|
|
@@ -23,7 +22,6 @@ var _router = require("./router");
|
|
|
23
22
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
24
23
|
// SPDX-License-Identifier: Apache-2.0
|
|
25
24
|
|
|
26
|
-
const PAH_LOW_LIQUIDITY_THRESHOLD = 0.15;
|
|
27
25
|
class AssetHubSwapHandler {
|
|
28
26
|
isReady = false;
|
|
29
27
|
constructor(chainService, balanceService, feeService, chain) {
|
|
@@ -157,57 +155,6 @@ class AssetHubSwapHandler {
|
|
|
157
155
|
generateOptimalProcess(params) {
|
|
158
156
|
return this.swapBaseHandler.generateOptimalProcess(params, [this.getXcmStep.bind(this), this.getSubmitStep.bind(this)]);
|
|
159
157
|
}
|
|
160
|
-
async getSwapQuote(request) {
|
|
161
|
-
const fromAsset = this.chainService.getAssetBySlug(request.pair.from);
|
|
162
|
-
const toAsset = this.chainService.getAssetBySlug(request.pair.to);
|
|
163
|
-
const fromChain = this.chainService.getChainInfoByKey(fromAsset.originChain);
|
|
164
|
-
const fromChainNativeTokenSlug = (0, _utils._getChainNativeTokenSlug)(fromChain);
|
|
165
|
-
if (!this.isReady || !this.router) {
|
|
166
|
-
return new _SwapError.SwapError(_swap2.SwapErrorType.UNKNOWN);
|
|
167
|
-
}
|
|
168
|
-
const earlyValidation = await this.validateSwapRequest(request);
|
|
169
|
-
if (earlyValidation.error) {
|
|
170
|
-
const metadata = earlyValidation.metadata;
|
|
171
|
-
return (0, _swap._getEarlyAssetHubValidationError)(earlyValidation.error, metadata);
|
|
172
|
-
}
|
|
173
|
-
try {
|
|
174
|
-
const paths = this.router.buildPath(request.pair);
|
|
175
|
-
const amountOut = earlyValidation.metadata.toAmount;
|
|
176
|
-
const toAmount = new _bignumber.default(amountOut);
|
|
177
|
-
const minReceive = toAmount.times(1 - request.slippage).integerValue(_bignumber.default.ROUND_DOWN);
|
|
178
|
-
const extrinsic = await this.router.buildSwapExtrinsic(paths, request.address, request.fromAmount, minReceive.toString());
|
|
179
|
-
const paymentInfo = await extrinsic.paymentInfo(request.address);
|
|
180
|
-
const networkFee = {
|
|
181
|
-
tokenSlug: fromChainNativeTokenSlug,
|
|
182
|
-
amount: paymentInfo.partialFee.toString(),
|
|
183
|
-
feeType: _swap2.SwapFeeType.NETWORK_FEE
|
|
184
|
-
};
|
|
185
|
-
const feeTokenOptions = [fromChainNativeTokenSlug];
|
|
186
|
-
const selectedFeeToken = fromChainNativeTokenSlug;
|
|
187
|
-
const priceImpactPct = earlyValidation.metadata.priceImpactPct || '0';
|
|
188
|
-
return {
|
|
189
|
-
pair: request.pair,
|
|
190
|
-
fromAmount: request.fromAmount,
|
|
191
|
-
toAmount: toAmount.toString(),
|
|
192
|
-
rate: (0, _utils2.convertSwapRate)(earlyValidation.metadata.quoteRate, fromAsset, toAsset),
|
|
193
|
-
provider: this.providerInfo,
|
|
194
|
-
aliveUntil: +Date.now() + (_utils2.SWAP_QUOTE_TIMEOUT_MAP[this.slug] || _utils2.SWAP_QUOTE_TIMEOUT_MAP.default),
|
|
195
|
-
feeInfo: {
|
|
196
|
-
feeComponent: [networkFee],
|
|
197
|
-
defaultFeeToken: fromChainNativeTokenSlug,
|
|
198
|
-
feeOptions: feeTokenOptions,
|
|
199
|
-
// TODO: enable fee options
|
|
200
|
-
selectedFeeToken
|
|
201
|
-
},
|
|
202
|
-
isLowLiquidity: Math.abs(parseFloat(priceImpactPct)) >= PAH_LOW_LIQUIDITY_THRESHOLD,
|
|
203
|
-
route: {
|
|
204
|
-
path: paths.map(asset => asset.slug)
|
|
205
|
-
}
|
|
206
|
-
};
|
|
207
|
-
} catch (e) {
|
|
208
|
-
return new _SwapError.SwapError(_swap2.SwapErrorType.ERROR_FETCHING_QUOTE);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
158
|
async handleXcmStep(params) {
|
|
212
159
|
const pair = params.quote.pair;
|
|
213
160
|
const alternativeAssetSlug = (0, _utils2.getSwapAlternativeAsset)(pair);
|
|
@@ -369,11 +316,5 @@ class AssetHubSwapHandler {
|
|
|
369
316
|
}
|
|
370
317
|
return [];
|
|
371
318
|
}
|
|
372
|
-
validateSwapRequest(request) {
|
|
373
|
-
if (!this.isReady || !this.router) {
|
|
374
|
-
throw new _SwapError.SwapError(_swap2.SwapErrorType.ERROR_FETCHING_QUOTE);
|
|
375
|
-
}
|
|
376
|
-
return this.router.earlyValidateSwapValidation(request);
|
|
377
|
-
}
|
|
378
319
|
}
|
|
379
320
|
exports.AssetHubSwapHandler = AssetHubSwapHandler;
|