@subwallet/extension-base 1.0.12-0 → 1.0.13-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 +89 -0
- package/background/KoniTypes.js +18 -19
- package/background/handlers/Extension.js +17 -2
- package/background/handlers/State.d.ts +0 -1
- package/background/handlers/State.js +4 -8
- package/background/types.d.ts +6 -1
- package/cjs/background/KoniTypes.js +21 -11
- package/cjs/background/handlers/Extension.js +22 -6
- package/cjs/background/handlers/State.js +4 -8
- package/cjs/constants/index.js +7 -1
- package/cjs/defaults.js +1 -1
- package/cjs/koni/api/dotsama/balance.js +5 -0
- package/cjs/koni/api/dotsama/transfer.js +6 -0
- package/cjs/koni/api/nft/config.js +11 -6
- package/cjs/koni/api/xcm/polkadotXcm.js +1 -1
- package/cjs/koni/api/xcm/xTokens.js +2 -2
- package/cjs/koni/background/cron.js +12 -1
- package/cjs/koni/background/handlers/Extension.js +457 -131
- package/cjs/koni/background/handlers/State.js +236 -53
- package/cjs/koni/background/handlers/Tabs.js +61 -9
- package/cjs/koni/background/subscription.js +3 -0
- package/cjs/packageInfo.js +1 -1
- package/cjs/page/Metadata.js +3 -0
- package/cjs/services/chain-service/constants.js +10 -4
- package/cjs/services/chain-service/handler/SubstrateApi.js +2 -1
- package/cjs/services/chain-service/handler/SubstrateChainHandler.js +3 -1
- package/cjs/services/chain-service/handler/manta/MantaPrivateHandler.js +147 -0
- package/cjs/services/chain-service/index.js +54 -5
- package/cjs/services/chain-service/utils.js +32 -0
- package/cjs/services/event-service/types.js +3 -1
- package/cjs/services/request-service/handler/AuthRequestHandler.js +4 -9
- package/cjs/services/request-service/handler/SubstrateRequestHandler.js +2 -2
- package/cjs/services/request-service/handler/WalletConnectRequestHandler.js +71 -0
- package/cjs/services/request-service/index.js +24 -6
- package/cjs/services/storage-service/DatabaseService.js +31 -1
- package/cjs/services/storage-service/databases/index.js +3 -0
- package/cjs/services/storage-service/db-stores/MantaPay.js +40 -0
- package/cjs/services/transaction-service/helpers/index.js +3 -2
- package/cjs/services/transaction-service/index.js +2 -1
- package/cjs/services/wallet-connect-service/constants.js +38 -0
- package/cjs/services/wallet-connect-service/handler/Eip155RequestHandler.js +113 -0
- package/cjs/services/wallet-connect-service/handler/PolkadotRequestHandler.js +123 -0
- package/cjs/services/wallet-connect-service/helpers.js +81 -0
- package/cjs/services/wallet-connect-service/index.js +273 -0
- package/cjs/services/wallet-connect-service/types.js +27 -0
- package/cjs/utils/array.js +17 -0
- package/cjs/utils/environment.js +66 -0
- package/cjs/utils/index.js +78 -1
- package/cjs/utils/lazy.js +52 -0
- package/constants/index.d.ts +2 -0
- package/constants/index.js +2 -0
- package/defaults.d.ts +1 -1
- package/defaults.js +1 -1
- package/koni/api/dotsama/balance.js +6 -1
- package/koni/api/dotsama/transfer.js +7 -1
- package/koni/api/nft/config.js +11 -6
- package/koni/api/xcm/polkadotXcm.js +1 -1
- package/koni/api/xcm/xTokens.js +2 -2
- package/koni/background/cron.d.ts +1 -0
- package/koni/background/cron.js +13 -2
- package/koni/background/handlers/Extension.d.ts +11 -0
- package/koni/background/handlers/Extension.js +329 -12
- package/koni/background/handlers/State.d.ts +17 -3
- package/koni/background/handlers/State.js +238 -52
- package/koni/background/handlers/Tabs.d.ts +2 -0
- package/koni/background/handlers/Tabs.js +58 -7
- package/koni/background/subscription.js +3 -0
- package/package.json +72 -6
- package/packageInfo.js +1 -1
- package/page/Metadata.d.ts +2 -0
- package/page/Metadata.js +3 -0
- package/services/chain-service/constants.d.ts +3 -0
- package/services/chain-service/constants.js +5 -2
- package/services/chain-service/handler/SubstrateApi.d.ts +1 -1
- package/services/chain-service/handler/SubstrateApi.js +2 -1
- package/services/chain-service/handler/SubstrateChainHandler.d.ts +1 -1
- package/services/chain-service/handler/SubstrateChainHandler.js +3 -1
- package/services/chain-service/handler/manta/MantaPrivateHandler.d.ts +30 -0
- package/services/chain-service/handler/manta/MantaPrivateHandler.js +140 -0
- package/services/chain-service/handler/types.d.ts +2 -0
- package/services/chain-service/index.d.ts +7 -3
- package/services/chain-service/index.js +56 -7
- package/services/chain-service/utils.d.ts +3 -0
- package/services/chain-service/utils.js +28 -0
- package/services/event-service/types.d.ts +3 -0
- package/services/event-service/types.js +3 -1
- package/services/request-service/handler/AuthRequestHandler.d.ts +0 -1
- package/services/request-service/handler/AuthRequestHandler.js +5 -10
- package/services/request-service/handler/SubstrateRequestHandler.d.ts +1 -1
- package/services/request-service/handler/SubstrateRequestHandler.js +2 -2
- package/services/request-service/handler/WalletConnectRequestHandler.d.ts +15 -0
- package/services/request-service/handler/WalletConnectRequestHandler.js +62 -0
- package/services/request-service/index.d.ts +7 -2
- package/services/request-service/index.js +24 -6
- package/services/storage-service/DatabaseService.d.ts +10 -1
- package/services/storage-service/DatabaseService.js +31 -1
- package/services/storage-service/databases/index.d.ts +2 -0
- package/services/storage-service/databases/index.js +3 -0
- package/services/storage-service/db-stores/MantaPay.d.ts +9 -0
- package/services/storage-service/db-stores/MantaPay.js +32 -0
- package/services/transaction-service/helpers/index.d.ts +1 -1
- package/services/transaction-service/helpers/index.js +2 -2
- package/services/transaction-service/index.js +2 -1
- package/services/transaction-service/types.d.ts +2 -1
- package/services/wallet-connect-service/constants.d.ts +11 -0
- package/services/wallet-connect-service/constants.js +23 -0
- package/services/wallet-connect-service/handler/Eip155RequestHandler.d.ts +8 -0
- package/services/wallet-connect-service/handler/Eip155RequestHandler.js +106 -0
- package/services/wallet-connect-service/handler/PolkadotRequestHandler.d.ts +8 -0
- package/services/wallet-connect-service/handler/PolkadotRequestHandler.js +114 -0
- package/services/wallet-connect-service/helpers.d.ts +12 -0
- package/services/wallet-connect-service/helpers.js +67 -0
- package/services/wallet-connect-service/index.d.ts +20 -0
- package/services/wallet-connect-service/index.js +265 -0
- package/services/wallet-connect-service/types.d.ts +46 -0
- package/services/wallet-connect-service/types.js +20 -0
- package/utils/array.d.ts +1 -0
- package/utils/array.js +10 -0
- package/utils/environment.d.ts +2 -0
- package/utils/environment.js +59 -0
- package/utils/index.d.ts +4 -0
- package/utils/index.js +10 -2
- package/utils/lazy.d.ts +2 -0
- package/utils/lazy.js +43 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { _AssetRefPath, _AssetType, _SubstrateChainType } from '@subwallet/chain-list/types';
|
|
5
|
+
import { _MANTA_ZK_CHAIN_GROUP, _ZK_ASSET_PREFIX } from '@subwallet/extension-base/services/chain-service/constants';
|
|
5
6
|
import { _CUSTOM_PREFIX, _SMART_CONTRACT_STANDARDS } from '@subwallet/extension-base/services/chain-service/types';
|
|
6
7
|
import { isEthereumAddress } from '@polkadot/util-crypto';
|
|
7
8
|
export function _isCustomChain(slug) {
|
|
@@ -330,4 +331,31 @@ export function _isCustomProvider(providerKey) {
|
|
|
330
331
|
}
|
|
331
332
|
export function _generateCustomProviderKey(index) {
|
|
332
333
|
return `${_CUSTOM_PREFIX}provider-${index}`;
|
|
334
|
+
}
|
|
335
|
+
export const findChainInfoByHalfGenesisHash = (chainMap, halfGenesisHash) => {
|
|
336
|
+
if (!halfGenesisHash) {
|
|
337
|
+
return null;
|
|
338
|
+
}
|
|
339
|
+
for (const chainInfo of Object.values(chainMap)) {
|
|
340
|
+
var _getSubstrateGenesisH;
|
|
341
|
+
if (((_getSubstrateGenesisH = _getSubstrateGenesisHash(chainInfo)) === null || _getSubstrateGenesisH === void 0 ? void 0 : _getSubstrateGenesisH.toLowerCase().substring(2, 2 + 32)) === halfGenesisHash.toLowerCase()) {
|
|
342
|
+
return chainInfo;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
return null;
|
|
346
|
+
};
|
|
347
|
+
export const findChainInfoByChainId = (chainMap, chainId) => {
|
|
348
|
+
if (!chainId) {
|
|
349
|
+
return null;
|
|
350
|
+
}
|
|
351
|
+
for (const chainInfo of Object.values(chainMap)) {
|
|
352
|
+
var _chainInfo$evmInfo5;
|
|
353
|
+
if (((_chainInfo$evmInfo5 = chainInfo.evmInfo) === null || _chainInfo$evmInfo5 === void 0 ? void 0 : _chainInfo$evmInfo5.evmChainId) === chainId) {
|
|
354
|
+
return chainInfo;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
return null;
|
|
358
|
+
};
|
|
359
|
+
export function _isMantaZkAsset(chainAsset) {
|
|
360
|
+
return _MANTA_ZK_CHAIN_GROUP.includes(chainAsset.originChain) && chainAsset.symbol.startsWith(_ZK_ASSET_PREFIX);
|
|
333
361
|
}
|
|
@@ -20,6 +20,9 @@ export interface EventRegistry {
|
|
|
20
20
|
'transaction.failed': [SWTransaction | undefined];
|
|
21
21
|
'transaction.submitStaking': [string];
|
|
22
22
|
'transaction.transferNft': [SWTransaction | undefined];
|
|
23
|
+
'mantaPay.initSync': [string | undefined];
|
|
24
|
+
'mantaPay.submitTransaction': [SWTransaction | undefined];
|
|
25
|
+
'mantaPay.enable': [string];
|
|
23
26
|
}
|
|
24
27
|
export declare type EventType = keyof EventRegistry;
|
|
25
28
|
export declare const COMMON_RELOAD_EVENTS: EventType[];
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
export const COMMON_RELOAD_EVENTS = ['account.updateCurrent', 'asset.updateState', 'account.add', 'chain.updateState', 'account.remove', 'chain.add'
|
|
4
|
+
export const COMMON_RELOAD_EVENTS = ['account.updateCurrent', 'asset.updateState', 'account.add', 'chain.updateState', 'account.remove', 'chain.add', 'mantaPay.initSync',
|
|
5
|
+
// TODO: re-check this
|
|
6
|
+
'mantaPay.enable'];
|
|
@@ -15,7 +15,6 @@ export default class AuthRequestHandler {
|
|
|
15
15
|
private readonly evmChainSubject;
|
|
16
16
|
readonly authSubjectV2: BehaviorSubject<AuthorizeRequest[]>;
|
|
17
17
|
constructor(requestService: RequestService, chainService: ChainService, keyringService: KeyringService);
|
|
18
|
-
stripUrl(url: string): string;
|
|
19
18
|
private getAddressList;
|
|
20
19
|
get numAuthRequestsV2(): number;
|
|
21
20
|
private get allAuthRequestsV2();
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { _isChainEvmCompatible } from '@subwallet/extension-base/services/chain-service/utils';
|
|
5
5
|
import { PREDEFINED_CHAIN_DAPP_CHAIN_MAP } from '@subwallet/extension-base/services/request-service/constants';
|
|
6
6
|
import AuthorizeStore from '@subwallet/extension-base/stores/Authorize';
|
|
7
|
-
import { getDomainFromUrl } from '@subwallet/extension-base/utils';
|
|
7
|
+
import { getDomainFromUrl, stripUrl } from '@subwallet/extension-base/utils';
|
|
8
8
|
import { getId } from '@subwallet/extension-base/utils/getId';
|
|
9
9
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
10
10
|
import { assert } from '@polkadot/util';
|
|
@@ -24,11 +24,6 @@ export default class AuthRequestHandler {
|
|
|
24
24
|
this.#requestService = requestService;
|
|
25
25
|
this.#chainService = chainService;
|
|
26
26
|
}
|
|
27
|
-
stripUrl(url) {
|
|
28
|
-
assert(url && (url.startsWith('http:') || url.startsWith('https:') || url.startsWith('ipfs:') || url.startsWith('ipns:')), `Invalid url ${url}, expected to start with http: or https: or ipfs: or ipns:`);
|
|
29
|
-
const parts = url.split('/');
|
|
30
|
-
return parts[2];
|
|
31
|
-
}
|
|
32
27
|
getAddressList(value = false) {
|
|
33
28
|
const addressList = Object.keys(this.keyringService.accounts);
|
|
34
29
|
return addressList.reduce((addressList, v) => ({
|
|
@@ -161,7 +156,7 @@ export default class AuthRequestHandler {
|
|
|
161
156
|
if (value) {
|
|
162
157
|
authorizeList = value;
|
|
163
158
|
}
|
|
164
|
-
const existed = authorizeList[
|
|
159
|
+
const existed = authorizeList[stripUrl(url)];
|
|
165
160
|
|
|
166
161
|
// On cancel don't save anything
|
|
167
162
|
if (isCancelled) {
|
|
@@ -170,7 +165,7 @@ export default class AuthRequestHandler {
|
|
|
170
165
|
cb();
|
|
171
166
|
return;
|
|
172
167
|
}
|
|
173
|
-
authorizeList[
|
|
168
|
+
authorizeList[stripUrl(url)] = {
|
|
174
169
|
count: 0,
|
|
175
170
|
id: idStr,
|
|
176
171
|
isAllowed,
|
|
@@ -210,7 +205,7 @@ export default class AuthRequestHandler {
|
|
|
210
205
|
if (!authList) {
|
|
211
206
|
authList = {};
|
|
212
207
|
}
|
|
213
|
-
const idStr =
|
|
208
|
+
const idStr = stripUrl(url);
|
|
214
209
|
// Do not enqueue duplicate authorization requests.
|
|
215
210
|
const isDuplicate = Object.values(this.#authRequestsV2).some(request => request.idStr === idStr);
|
|
216
211
|
assert(!isDuplicate, `The source ${url} has a pending authorization request`);
|
|
@@ -265,7 +260,7 @@ export default class AuthRequestHandler {
|
|
|
265
260
|
return this.authorizeUrlSubject;
|
|
266
261
|
}
|
|
267
262
|
ensureUrlAuthorizedV2(url) {
|
|
268
|
-
const idStr =
|
|
263
|
+
const idStr = stripUrl(url);
|
|
269
264
|
return new Promise((resolve, reject) => {
|
|
270
265
|
this.getAuthorize(value => {
|
|
271
266
|
if (!value) {
|
|
@@ -12,7 +12,7 @@ export default class SubstrateRequestHandler {
|
|
|
12
12
|
private updateIconSign;
|
|
13
13
|
private signComplete;
|
|
14
14
|
get numSubstrateRequests(): number;
|
|
15
|
-
sign(url: string, request: RequestSign, account: AccountJson): Promise<ResponseSigning>;
|
|
15
|
+
sign(url: string, request: RequestSign, account: AccountJson, _id?: string): Promise<ResponseSigning>;
|
|
16
16
|
signTransaction(id: string, address: string, url: string, payload: SignerPayloadJSON): Promise<ResponseSigning>;
|
|
17
17
|
resetWallet(): void;
|
|
18
18
|
}
|
|
@@ -57,8 +57,8 @@ export default class SubstrateRequestHandler {
|
|
|
57
57
|
get numSubstrateRequests() {
|
|
58
58
|
return Object.keys(this.#substrateRequests).length;
|
|
59
59
|
}
|
|
60
|
-
sign(url, request, account) {
|
|
61
|
-
const id = getId();
|
|
60
|
+
sign(url, request, account, _id) {
|
|
61
|
+
const id = _id || getId();
|
|
62
62
|
return new Promise((resolve, reject) => {
|
|
63
63
|
this.#substrateRequests[id] = {
|
|
64
64
|
...this.signComplete(id, resolve, reject),
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import RequestService from '@subwallet/extension-base/services/request-service';
|
|
2
|
+
import { RequestWalletConnectSession, WalletConnectSessionRequest } from '@subwallet/extension-base/services/wallet-connect-service/types';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
export default class WalletConnectRequestHandler {
|
|
5
|
+
#private;
|
|
6
|
+
readonly connectWCSubject: BehaviorSubject<WalletConnectSessionRequest[]>;
|
|
7
|
+
constructor(requestService: RequestService);
|
|
8
|
+
get allConnectWCRequests(): WalletConnectSessionRequest[];
|
|
9
|
+
get numConnectWCRequests(): number;
|
|
10
|
+
getConnectWCRequest(id: string): RequestWalletConnectSession;
|
|
11
|
+
private updateIconConnectWC;
|
|
12
|
+
private connectWCComplete;
|
|
13
|
+
addConnectWCRequest(request: WalletConnectSessionRequest): void;
|
|
14
|
+
resetWallet(): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { BehaviorSubject } from 'rxjs';
|
|
5
|
+
|
|
6
|
+
// WC = WalletConnect
|
|
7
|
+
export default class WalletConnectRequestHandler {
|
|
8
|
+
#requestService;
|
|
9
|
+
#walletConnectSessionRequests = {};
|
|
10
|
+
connectWCSubject = new BehaviorSubject([]);
|
|
11
|
+
constructor(requestService) {
|
|
12
|
+
this.#requestService = requestService;
|
|
13
|
+
}
|
|
14
|
+
get allConnectWCRequests() {
|
|
15
|
+
return Object.values(this.#walletConnectSessionRequests)
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
|
+
.map(({
|
|
18
|
+
reject,
|
|
19
|
+
resolve,
|
|
20
|
+
...data
|
|
21
|
+
}) => data);
|
|
22
|
+
}
|
|
23
|
+
get numConnectWCRequests() {
|
|
24
|
+
return Object.keys(this.#walletConnectSessionRequests).length;
|
|
25
|
+
}
|
|
26
|
+
getConnectWCRequest(id) {
|
|
27
|
+
return this.#walletConnectSessionRequests[id];
|
|
28
|
+
}
|
|
29
|
+
updateIconConnectWC(shouldClose) {
|
|
30
|
+
this.connectWCSubject.next(this.allConnectWCRequests);
|
|
31
|
+
this.#requestService.updateIconV2(shouldClose);
|
|
32
|
+
}
|
|
33
|
+
connectWCComplete = id => {
|
|
34
|
+
const complete = shouldClose => {
|
|
35
|
+
delete this.#walletConnectSessionRequests[id];
|
|
36
|
+
this.updateIconConnectWC(shouldClose);
|
|
37
|
+
};
|
|
38
|
+
return {
|
|
39
|
+
reject: () => {
|
|
40
|
+
complete(true);
|
|
41
|
+
},
|
|
42
|
+
resolve: () => {
|
|
43
|
+
complete(true);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
addConnectWCRequest(request) {
|
|
48
|
+
const id = request.id;
|
|
49
|
+
this.#walletConnectSessionRequests[id] = {
|
|
50
|
+
...this.connectWCComplete(id),
|
|
51
|
+
...request
|
|
52
|
+
};
|
|
53
|
+
this.updateIconConnectWC();
|
|
54
|
+
this.#requestService.popupOpen();
|
|
55
|
+
}
|
|
56
|
+
resetWallet() {
|
|
57
|
+
for (const request of Object.values(this.#walletConnectSessionRequests)) {
|
|
58
|
+
request.reject(new Error('Reset wallet'));
|
|
59
|
+
}
|
|
60
|
+
this.connectWCSubject.next([]);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -4,6 +4,7 @@ import { ChainService } from '@subwallet/extension-base/services/chain-service';
|
|
|
4
4
|
import { KeyringService } from '@subwallet/extension-base/services/keyring-service';
|
|
5
5
|
import { AuthUrls, MetaRequest } from '@subwallet/extension-base/services/request-service/types';
|
|
6
6
|
import SettingService from '@subwallet/extension-base/services/setting-service/SettingService';
|
|
7
|
+
import { WalletConnectSessionRequest } from '@subwallet/extension-base/services/wallet-connect-service/types';
|
|
7
8
|
import { MetadataDef } from '@subwallet/extension-inject/types';
|
|
8
9
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
9
10
|
import { SignerPayloadJSON } from '@polkadot/types/types/extrinsic';
|
|
@@ -14,7 +15,6 @@ export default class RequestService {
|
|
|
14
15
|
constructor(chainService: ChainService, settingService: SettingService, keyringService: KeyringService);
|
|
15
16
|
get numAllRequests(): number;
|
|
16
17
|
updateIconV2(shouldClose?: boolean): void;
|
|
17
|
-
stripUrl(url: string): string;
|
|
18
18
|
getAddressList(value?: boolean): Record<string, boolean>;
|
|
19
19
|
get popup(): number[];
|
|
20
20
|
popupClose(): void;
|
|
@@ -43,7 +43,7 @@ export default class RequestService {
|
|
|
43
43
|
ensureUrlAuthorizedV2(url: string): Promise<boolean>;
|
|
44
44
|
get signSubject(): BehaviorSubject<SigningRequest[]>;
|
|
45
45
|
get allSubstrateRequests(): SigningRequest[];
|
|
46
|
-
sign(url: string, request: RequestSign, account: AccountJson): Promise<ResponseSigning>;
|
|
46
|
+
sign(url: string, request: RequestSign, account: AccountJson, id?: string): Promise<ResponseSigning>;
|
|
47
47
|
get numSubstrateRequests(): number;
|
|
48
48
|
get numEvmRequests(): number;
|
|
49
49
|
get confirmationsQueueSubject(): BehaviorSubject<ConfirmationsQueue>;
|
|
@@ -52,6 +52,11 @@ export default class RequestService {
|
|
|
52
52
|
addConfirmation<CT extends ConfirmationType>(id: string, url: string, type: CT, payload: ConfirmationDefinitions[CT][0]['payload'], options?: ConfirmationsQueueItemOptions, validator?: (input: ConfirmationDefinitions[CT][1]) => Error | undefined): Promise<ConfirmationDefinitions[CT][1]>;
|
|
53
53
|
completeConfirmation(request: RequestConfirmationComplete): Promise<boolean>;
|
|
54
54
|
updateConfirmation<CT extends ConfirmationType>(id: string, type: CT, payload: ConfirmationDefinitions[CT][0]['payload'], options?: ConfirmationsQueueItemOptions, validator?: (input: ConfirmationDefinitions[CT][1]) => Error | undefined): void;
|
|
55
|
+
getConnectWCRequest(id: string): import("@subwallet/extension-base/services/wallet-connect-service/types").RequestWalletConnectSession;
|
|
56
|
+
get connectWCSubject(): BehaviorSubject<WalletConnectSessionRequest[]>;
|
|
57
|
+
get allConnectWCRequests(): WalletConnectSessionRequest[];
|
|
58
|
+
get numConnectWCRequests(): number;
|
|
59
|
+
addConnectWCRequest(request: WalletConnectSessionRequest): void;
|
|
55
60
|
get numRequests(): number;
|
|
56
61
|
resetWallet(): void;
|
|
57
62
|
}
|
|
@@ -6,6 +6,7 @@ import EvmRequestHandler from '@subwallet/extension-base/services/request-servic
|
|
|
6
6
|
import MetadataRequestHandler from '@subwallet/extension-base/services/request-service/handler/MetadataRequestHandler';
|
|
7
7
|
import PopupHandler from '@subwallet/extension-base/services/request-service/handler/PopupHandler';
|
|
8
8
|
import SubstrateRequestHandler from '@subwallet/extension-base/services/request-service/handler/SubstrateRequestHandler';
|
|
9
|
+
import WalletConnectRequestHandler from '@subwallet/extension-base/services/request-service/handler/WalletConnectRequestHandler';
|
|
9
10
|
export default class RequestService {
|
|
10
11
|
// Common
|
|
11
12
|
#chainService;
|
|
@@ -14,6 +15,7 @@ export default class RequestService {
|
|
|
14
15
|
#authRequestHandler;
|
|
15
16
|
#substrateRequestHandler;
|
|
16
17
|
#evmRequestHandler;
|
|
18
|
+
#walletConnectRequestHandler;
|
|
17
19
|
|
|
18
20
|
// Common
|
|
19
21
|
constructor(chainService, settingService, keyringService) {
|
|
@@ -25,6 +27,7 @@ export default class RequestService {
|
|
|
25
27
|
this.#authRequestHandler = new AuthRequestHandler(this, this.#chainService, this.keyringService);
|
|
26
28
|
this.#substrateRequestHandler = new SubstrateRequestHandler(this);
|
|
27
29
|
this.#evmRequestHandler = new EvmRequestHandler(this);
|
|
30
|
+
this.#walletConnectRequestHandler = new WalletConnectRequestHandler(this);
|
|
28
31
|
|
|
29
32
|
// Reset icon on start service
|
|
30
33
|
this.updateIconV2();
|
|
@@ -35,9 +38,6 @@ export default class RequestService {
|
|
|
35
38
|
updateIconV2(shouldClose) {
|
|
36
39
|
this.#popupHandler.updateIconV2(shouldClose);
|
|
37
40
|
}
|
|
38
|
-
stripUrl(url) {
|
|
39
|
-
return this.#authRequestHandler.stripUrl(url);
|
|
40
|
-
}
|
|
41
41
|
getAddressList(value = false) {
|
|
42
42
|
const addressList = Object.keys(this.keyringService.accounts);
|
|
43
43
|
return addressList.reduce((addressList, v) => ({
|
|
@@ -128,8 +128,8 @@ export default class RequestService {
|
|
|
128
128
|
get allSubstrateRequests() {
|
|
129
129
|
return this.#substrateRequestHandler.allSubstrateRequests;
|
|
130
130
|
}
|
|
131
|
-
sign(url, request, account) {
|
|
132
|
-
return this.#substrateRequestHandler.sign(url, request, account);
|
|
131
|
+
sign(url, request, account, id) {
|
|
132
|
+
return this.#substrateRequestHandler.sign(url, request, account, id);
|
|
133
133
|
}
|
|
134
134
|
get numSubstrateRequests() {
|
|
135
135
|
return this.#substrateRequestHandler.numSubstrateRequests;
|
|
@@ -158,14 +158,32 @@ export default class RequestService {
|
|
|
158
158
|
return this.#evmRequestHandler.updateConfirmation(id, type, payload, options, validator);
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
+
// Wallet Connect requests
|
|
162
|
+
getConnectWCRequest(id) {
|
|
163
|
+
return this.#walletConnectRequestHandler.getConnectWCRequest(id);
|
|
164
|
+
}
|
|
165
|
+
get connectWCSubject() {
|
|
166
|
+
return this.#walletConnectRequestHandler.connectWCSubject;
|
|
167
|
+
}
|
|
168
|
+
get allConnectWCRequests() {
|
|
169
|
+
return this.#walletConnectRequestHandler.allConnectWCRequests;
|
|
170
|
+
}
|
|
171
|
+
get numConnectWCRequests() {
|
|
172
|
+
return this.#walletConnectRequestHandler.numConnectWCRequests;
|
|
173
|
+
}
|
|
174
|
+
addConnectWCRequest(request) {
|
|
175
|
+
return this.#walletConnectRequestHandler.addConnectWCRequest(request);
|
|
176
|
+
}
|
|
177
|
+
|
|
161
178
|
// General methods
|
|
162
179
|
get numRequests() {
|
|
163
|
-
return this.numMetaRequests + this.numAuthRequests + this.numSubstrateRequests + this.numEvmRequests;
|
|
180
|
+
return this.numMetaRequests + this.numAuthRequests + this.numSubstrateRequests + this.numEvmRequests + this.numConnectWCRequests;
|
|
164
181
|
}
|
|
165
182
|
resetWallet() {
|
|
166
183
|
this.#authRequestHandler.resetWallet();
|
|
167
184
|
this.#substrateRequestHandler.resetWallet();
|
|
168
185
|
this.#evmRequestHandler.resetWallet();
|
|
169
186
|
this.#metadataRequestHandler.resetWallet();
|
|
187
|
+
this.#walletConnectRequestHandler.resetWallet();
|
|
170
188
|
}
|
|
171
189
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { _ChainAsset } from '@subwallet/chain-list/types';
|
|
2
|
-
import { BalanceItem, ChainStakingMetadata, CrowdloanItem, NftCollection, NftItem, NominatorMetadata, PriceJson, StakingItem, StakingType, TransactionHistoryItem } from '@subwallet/extension-base/background/KoniTypes';
|
|
2
|
+
import { BalanceItem, ChainStakingMetadata, CrowdloanItem, MantaPayConfig, NftCollection, NftItem, NominatorMetadata, PriceJson, StakingItem, StakingType, TransactionHistoryItem } from '@subwallet/extension-base/background/KoniTypes';
|
|
3
3
|
import { EventService } from '@subwallet/extension-base/services/event-service';
|
|
4
4
|
import { IBalance, IChain, INft } from '@subwallet/extension-base/services/storage-service/databases';
|
|
5
5
|
import { AssetStore, BalanceStore, ChainStore, CrowdloanStore, MetadataStore, MigrationStore, NftCollectionStore, NftStore, PriceStore, StakingStore, TransactionStore } from '@subwallet/extension-base/services/storage-service/db-stores';
|
|
6
6
|
import ChainStakingMetadataStore from '@subwallet/extension-base/services/storage-service/db-stores/ChainStakingMetadata';
|
|
7
|
+
import MantaPayStore from '@subwallet/extension-base/services/storage-service/db-stores/MantaPay';
|
|
7
8
|
import NominatorMetadataStore from '@subwallet/extension-base/services/storage-service/db-stores/NominatorMetadata';
|
|
8
9
|
import { HistoryQuery } from '@subwallet/extension-base/services/storage-service/db-stores/Transaction';
|
|
9
10
|
import { Subscription } from 'dexie';
|
|
@@ -24,6 +25,7 @@ export default class DatabaseService {
|
|
|
24
25
|
asset: AssetStore;
|
|
25
26
|
chainStakingMetadata: ChainStakingMetadataStore;
|
|
26
27
|
nominatorMetadata: NominatorMetadataStore;
|
|
28
|
+
mantaPay: MantaPayStore;
|
|
27
29
|
};
|
|
28
30
|
private logger;
|
|
29
31
|
private nftSubscription;
|
|
@@ -67,4 +69,11 @@ export default class DatabaseService {
|
|
|
67
69
|
updateNominatorMetadata(item: NominatorMetadata): Promise<unknown>;
|
|
68
70
|
getNominatorMetadata(): Promise<NominatorMetadata[]>;
|
|
69
71
|
resetWallet(resetAll: boolean): Promise<void>;
|
|
72
|
+
setMantaPayData(data: any): Promise<void>;
|
|
73
|
+
updateMantaPayData(key: string, data: Record<string, any>): Promise<void>;
|
|
74
|
+
getMantaPayData(key: string): Promise<any>;
|
|
75
|
+
deleteMantaPayConfig(key: string): Promise<number>;
|
|
76
|
+
subscribeMantaPayConfig(chain: string, callback: (data: MantaPayConfig[]) => void): void;
|
|
77
|
+
getMantaPayConfig(chain: string): Promise<any[]>;
|
|
78
|
+
getMantaPayFirstConfig(chain: string): Promise<any>;
|
|
70
79
|
}
|
|
@@ -5,6 +5,7 @@ import { APIItemState, StakingType } from '@subwallet/extension-base/background/
|
|
|
5
5
|
import KoniDatabase from '@subwallet/extension-base/services/storage-service/databases';
|
|
6
6
|
import { AssetStore, BalanceStore, ChainStore, CrowdloanStore, MetadataStore, MigrationStore, NftCollectionStore, NftStore, PriceStore, StakingStore, TransactionStore } from '@subwallet/extension-base/services/storage-service/db-stores';
|
|
7
7
|
import ChainStakingMetadataStore from '@subwallet/extension-base/services/storage-service/db-stores/ChainStakingMetadata';
|
|
8
|
+
import MantaPayStore from '@subwallet/extension-base/services/storage-service/db-stores/MantaPay';
|
|
8
9
|
import NominatorMetadataStore from '@subwallet/extension-base/services/storage-service/db-stores/NominatorMetadata';
|
|
9
10
|
import { reformatAddress } from '@subwallet/extension-base/utils';
|
|
10
11
|
import { logger as createLogger } from '@polkadot/util';
|
|
@@ -32,7 +33,8 @@ export default class DatabaseService {
|
|
|
32
33
|
asset: new AssetStore(this._db.asset),
|
|
33
34
|
// staking
|
|
34
35
|
chainStakingMetadata: new ChainStakingMetadataStore(this._db.chainStakingMetadata),
|
|
35
|
-
nominatorMetadata: new NominatorMetadataStore(this._db.nominatorMetadata)
|
|
36
|
+
nominatorMetadata: new NominatorMetadataStore(this._db.nominatorMetadata),
|
|
37
|
+
mantaPay: new MantaPayStore(this._db.mantaPay)
|
|
36
38
|
};
|
|
37
39
|
}
|
|
38
40
|
async updatePriceStore(priceData) {
|
|
@@ -229,4 +231,32 @@ export default class DatabaseService {
|
|
|
229
231
|
});
|
|
230
232
|
});
|
|
231
233
|
}
|
|
234
|
+
async setMantaPayData(data) {
|
|
235
|
+
await this._db.mantaPay.put(data); // just override if exist
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
async updateMantaPayData(key, data) {
|
|
239
|
+
await this._db.mantaPay.update(key, data); // just override if exist
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
async getMantaPayData(key) {
|
|
243
|
+
return this._db.mantaPay.get({
|
|
244
|
+
key
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
async deleteMantaPayConfig(key) {
|
|
248
|
+
return this.stores.mantaPay.deleteRecord(key);
|
|
249
|
+
}
|
|
250
|
+
subscribeMantaPayConfig(chain, callback) {
|
|
251
|
+
this.stores.mantaPay.subscribeMantaPayConfig(chain).subscribe({
|
|
252
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
253
|
+
next: data => callback && callback(data)
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
async getMantaPayConfig(chain) {
|
|
257
|
+
return this.stores.mantaPay.getConfig(chain);
|
|
258
|
+
}
|
|
259
|
+
async getMantaPayFirstConfig(chain) {
|
|
260
|
+
return this.stores.mantaPay.getFirstConfig(chain);
|
|
261
|
+
}
|
|
232
262
|
}
|
|
@@ -28,6 +28,7 @@ export interface IMigration {
|
|
|
28
28
|
}
|
|
29
29
|
export interface IMetadataItem extends MetadataItem, DefaultChainDoc {
|
|
30
30
|
}
|
|
31
|
+
export declare type IMantaPayLedger = any;
|
|
31
32
|
export default class KoniDatabase extends Dexie {
|
|
32
33
|
price: Table<PriceJson, object>;
|
|
33
34
|
balances: Table<IBalance, object>;
|
|
@@ -42,6 +43,7 @@ export default class KoniDatabase extends Dexie {
|
|
|
42
43
|
asset: Table<_ChainAsset, object>;
|
|
43
44
|
chainStakingMetadata: Table<ChainStakingMetadata, object>;
|
|
44
45
|
nominatorMetadata: Table<NominatorMetadata, object>;
|
|
46
|
+
mantaPay: Table<IMantaPayLedger, object>;
|
|
45
47
|
private schemaVersion;
|
|
46
48
|
constructor(name?: string, schemaVersion?: number);
|
|
47
49
|
private conditionalVersion;
|
|
@@ -27,6 +27,9 @@ export default class KoniDatabase extends Dexie {
|
|
|
27
27
|
this.conditionalVersion(2, {
|
|
28
28
|
metadata: 'genesisHash, chain'
|
|
29
29
|
});
|
|
30
|
+
this.conditionalVersion(3, {
|
|
31
|
+
mantaPay: 'key, chain'
|
|
32
|
+
});
|
|
30
33
|
}
|
|
31
34
|
conditionalVersion(version, schema, upgrade) {
|
|
32
35
|
if (this.schemaVersion != null && this.schemaVersion < version) {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IMantaPayLedger } from '@subwallet/extension-base/services/storage-service/databases';
|
|
2
|
+
import BaseStore from '@subwallet/extension-base/services/storage-service/db-stores/BaseStore';
|
|
3
|
+
export default class MantaPayStore extends BaseStore<IMantaPayLedger> {
|
|
4
|
+
getAll(): Promise<any[]>;
|
|
5
|
+
subscribeMantaPayConfig(chain: string): import("dexie").Observable<any[]>;
|
|
6
|
+
getConfig(chain: string): import("dexie").PromiseExtended<any[]>;
|
|
7
|
+
getFirstConfig(chain: string): import("dexie").PromiseExtended<any>;
|
|
8
|
+
deleteRecord(key: string): import("dexie").PromiseExtended<number>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import BaseStore from '@subwallet/extension-base/services/storage-service/db-stores/BaseStore';
|
|
5
|
+
import { liveQuery } from 'dexie';
|
|
6
|
+
export default class MantaPayStore extends BaseStore {
|
|
7
|
+
async getAll() {
|
|
8
|
+
return this.table.toArray();
|
|
9
|
+
}
|
|
10
|
+
subscribeMantaPayConfig(chain) {
|
|
11
|
+
return liveQuery(
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return
|
|
13
|
+
() => this.table.where({
|
|
14
|
+
chain
|
|
15
|
+
}).filter(data => (data === null || data === void 0 ? void 0 : data.key) && (data === null || data === void 0 ? void 0 : data.key.startsWith('config'))).toArray());
|
|
16
|
+
}
|
|
17
|
+
getConfig(chain) {
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return
|
|
19
|
+
return this.table.where({
|
|
20
|
+
chain
|
|
21
|
+
}).filter(data => (data === null || data === void 0 ? void 0 : data.key) && (data === null || data === void 0 ? void 0 : data.key.startsWith('config'))).toArray();
|
|
22
|
+
}
|
|
23
|
+
getFirstConfig(chain) {
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return
|
|
25
|
+
return this.table.where({
|
|
26
|
+
chain
|
|
27
|
+
}).filter(data => (data === null || data === void 0 ? void 0 : data.key) && (data === null || data === void 0 ? void 0 : data.key.startsWith('config'))).first();
|
|
28
|
+
}
|
|
29
|
+
deleteRecord(key) {
|
|
30
|
+
return this.table.where('key').equals(key).delete();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { _ChainInfo } from '@subwallet/chain-list/types';
|
|
2
2
|
import { SWTransaction } from '@subwallet/extension-base/services/transaction-service/types';
|
|
3
3
|
import { SubmittableExtrinsic } from '@polkadot/api/promise/types';
|
|
4
|
-
export declare const getTransactionId: (chainType: string, chain: string, isInternal: boolean) => string;
|
|
4
|
+
export declare const getTransactionId: (chainType: string, chain: string, isInternal: boolean, isWalletConnect?: boolean) => string;
|
|
5
5
|
export declare const getValidationId: (chainType: string, chain: string) => string;
|
|
6
6
|
export declare const isSubstrateTransaction: (tx: SWTransaction['transaction']) => tx is SubmittableExtrinsic;
|
|
7
7
|
export declare const getBaseTransactionInfo: (transaction: SWTransaction, chainInfoMap: Record<string, _ChainInfo>) => string;
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
|
|
5
5
|
let transactionCount = 0;
|
|
6
6
|
let validationCount = 0;
|
|
7
|
-
export const getTransactionId = (chainType, chain, isInternal) => {
|
|
8
|
-
return `${isInternal ? 'internal' : 'external'}.${chainType}.${chain}.${Date.now()}.${++transactionCount}`;
|
|
7
|
+
export const getTransactionId = (chainType, chain, isInternal, isWalletConnect = false) => {
|
|
8
|
+
return `${isInternal ? 'internal' : !isWalletConnect ? 'external' : 'wallet-connect'}.${chainType}.${chain}.${Date.now()}.${++transactionCount}`;
|
|
9
9
|
};
|
|
10
10
|
export const getValidationId = (chainType, chain) => {
|
|
11
11
|
return `${chainType}.${chain}.${Date.now()}.${++validationCount}`;
|
|
@@ -13,6 +13,7 @@ import { TRANSACTION_TIMEOUT } from '@subwallet/extension-base/services/transact
|
|
|
13
13
|
import { parseTransferEventLogs, parseXcmEventLogs } from '@subwallet/extension-base/services/transaction-service/event-parser';
|
|
14
14
|
import { getBaseTransactionInfo, getTransactionId, isSubstrateTransaction } from '@subwallet/extension-base/services/transaction-service/helpers';
|
|
15
15
|
import { getExplorerLink, parseTransactionData } from '@subwallet/extension-base/services/transaction-service/utils';
|
|
16
|
+
import { isWalletConnectRequest } from '@subwallet/extension-base/services/wallet-connect-service/helpers';
|
|
16
17
|
import { anyNumberToBN } from '@subwallet/extension-base/utils/eth';
|
|
17
18
|
import { mergeTransactionAndSignature } from '@subwallet/extension-base/utils/eth/mergeTransactionAndSignature';
|
|
18
19
|
import { isContractAddress, parseContractInput } from '@subwallet/extension-base/utils/eth/parseTransaction';
|
|
@@ -170,7 +171,7 @@ export default class TransactionService {
|
|
|
170
171
|
}
|
|
171
172
|
fillTransactionDefaultInfo(transaction) {
|
|
172
173
|
const isInternal = !transaction.url;
|
|
173
|
-
const transactionId = getTransactionId(transaction.chainType, transaction.chain, isInternal);
|
|
174
|
+
const transactionId = getTransactionId(transaction.chainType, transaction.chain, isInternal, isWalletConnectRequest(transaction.id));
|
|
174
175
|
return {
|
|
175
176
|
...transaction,
|
|
176
177
|
createdAt: new Date().getTime(),
|
|
@@ -23,7 +23,8 @@ export interface SWTransaction extends ValidateTransactionResponse, Partial<Pick
|
|
|
23
23
|
}
|
|
24
24
|
export declare type SWTransactionResult = Omit<SWTransaction, 'transaction' | 'additionalValidator' | 'eventsHandler'>;
|
|
25
25
|
declare type SwInputBase = Pick<SWTransaction, 'address' | 'url' | 'data' | 'extrinsicType' | 'chain' | 'chainType' | 'ignoreWarnings' | 'transferNativeAmount'> & Partial<Pick<SWTransaction, 'additionalValidator' | 'eventsHandler'>>;
|
|
26
|
-
export interface SWTransactionInput extends SwInputBase {
|
|
26
|
+
export interface SWTransactionInput extends SwInputBase, Partial<Pick<SWTransaction, 'estimateFee'>> {
|
|
27
|
+
id?: string;
|
|
27
28
|
transaction?: SWTransaction['transaction'] | null;
|
|
28
29
|
warnings?: SWTransaction['warnings'];
|
|
29
30
|
errors?: SWTransaction['errors'];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { WalletConnectSigningMethod } from '@subwallet/extension-base/services/wallet-connect-service/types';
|
|
2
|
+
import { SignClientTypes } from '@walletconnect/types';
|
|
3
|
+
export declare const PROJECT_ID = "6da34c0b48164d27681924dd9a46d6be";
|
|
4
|
+
export declare const RELAY_URL = "wss://relay.walletconnect.com";
|
|
5
|
+
export declare const DEFAULT_WALLET_CONNECT_OPTIONS: SignClientTypes.Options;
|
|
6
|
+
export declare const ALL_WALLET_CONNECT_EVENT: SignClientTypes.Event[];
|
|
7
|
+
export declare const WALLET_CONNECT_SUPPORTED_METHODS: WalletConnectSigningMethod[];
|
|
8
|
+
export declare const WALLET_CONNECT_REQUEST_KEY = "wallet-connect";
|
|
9
|
+
export declare const WALLET_CONNECT_EIP155_NAMESPACE = "eip155";
|
|
10
|
+
export declare const WALLET_CONNECT_POLKADOT_NAMESPACE = "polkadot";
|
|
11
|
+
export declare const WALLET_CONNECT_SUPPORT_NAMESPACES: string[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { EIP155_SIGNING_METHODS, POLKADOT_SIGNING_METHODS } from '@subwallet/extension-base/services/wallet-connect-service/types';
|
|
5
|
+
export const PROJECT_ID = '6da34c0b48164d27681924dd9a46d6be';
|
|
6
|
+
export const RELAY_URL = 'wss://relay.walletconnect.com';
|
|
7
|
+
export const DEFAULT_WALLET_CONNECT_OPTIONS = {
|
|
8
|
+
logger: 'debug',
|
|
9
|
+
projectId: PROJECT_ID,
|
|
10
|
+
relayUrl: RELAY_URL,
|
|
11
|
+
metadata: {
|
|
12
|
+
name: 'SubWallet',
|
|
13
|
+
description: 'React Wallet for WalletConnect',
|
|
14
|
+
url: 'https://www.subwallet.app/',
|
|
15
|
+
icons: ['https://1570604715-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lh39Kwxa1xxZM9WX_Bs%2Ficon%2FiETEgi1ykXUQRW63vPnL%2FLogo%3DWhite%2C%20Background%3DGradient.jpg?alt=media&token=46c5dafa-ce09-4576-bcd9-a5c796786f1a']
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
export const ALL_WALLET_CONNECT_EVENT = ['session_proposal', 'session_update', 'session_extend', 'session_ping', 'session_delete', 'session_expire', 'session_request', 'session_request_sent', 'session_event', 'proposal_expire'];
|
|
19
|
+
export const WALLET_CONNECT_SUPPORTED_METHODS = [POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_MESSAGE, POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_TRANSACTION, EIP155_SIGNING_METHODS.ETH_SEND_TRANSACTION, EIP155_SIGNING_METHODS.PERSONAL_SIGN, EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V1, EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V3, EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V4];
|
|
20
|
+
export const WALLET_CONNECT_REQUEST_KEY = 'wallet-connect';
|
|
21
|
+
export const WALLET_CONNECT_EIP155_NAMESPACE = 'eip155';
|
|
22
|
+
export const WALLET_CONNECT_POLKADOT_NAMESPACE = 'polkadot';
|
|
23
|
+
export const WALLET_CONNECT_SUPPORT_NAMESPACES = [WALLET_CONNECT_EIP155_NAMESPACE, WALLET_CONNECT_POLKADOT_NAMESPACE];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import KoniState from '@subwallet/extension-base/koni/background/handlers/State';
|
|
2
|
+
import WalletConnectService from '@subwallet/extension-base/services/wallet-connect-service';
|
|
3
|
+
import { SignClientTypes } from '@walletconnect/types';
|
|
4
|
+
export default class Eip155RequestHandler {
|
|
5
|
+
#private;
|
|
6
|
+
constructor(koniState: KoniState, walletConnectService: WalletConnectService);
|
|
7
|
+
handleRequest(requestEvent: SignClientTypes.EventArguments['session_request']): void;
|
|
8
|
+
}
|