@ksangkuk10/wallet-controller 1.7.14
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/README.md +7 -0
- package/_commonjs/controller.js +704 -0
- package/_commonjs/env.js +9 -0
- package/_commonjs/exception/isError.js +15 -0
- package/_commonjs/exception/mapExtensionTxError.js +46 -0
- package/_commonjs/exception/mapWalletConnectError.js +69 -0
- package/_commonjs/getChainOptions.js +57 -0
- package/_commonjs/index.js +22 -0
- package/_commonjs/modules/connect-modal/index.js +80 -0
- package/_commonjs/modules/connect-modal/style.js +161 -0
- package/_commonjs/modules/extension-router/ExtensionRouter.js +241 -0
- package/_commonjs/modules/extension-router/index.js +19 -0
- package/_commonjs/modules/extension-router/modal.js +80 -0
- package/_commonjs/modules/extension-router/modal.style.js +161 -0
- package/_commonjs/modules/extension-router/multiChannel.js +18 -0
- package/_commonjs/modules/extension-router/session.js +37 -0
- package/_commonjs/modules/extension-router/types.js +16 -0
- package/_commonjs/modules/legacy-extension/LegacyExtensionConnector.js +143 -0
- package/_commonjs/modules/legacy-extension/createFixedExtension.js +236 -0
- package/_commonjs/modules/legacy-extension/index.js +19 -0
- package/_commonjs/modules/readonly-wallet/connect.js +24 -0
- package/_commonjs/modules/readonly-wallet/index.js +20 -0
- package/_commonjs/modules/readonly-wallet/modal.js +123 -0
- package/_commonjs/modules/readonly-wallet/modal.style.js +204 -0
- package/_commonjs/modules/readonly-wallet/storage.js +40 -0
- package/_commonjs/modules/readonly-wallet/types.js +3 -0
- package/_commonjs/modules/walletconnect/connect.js +421 -0
- package/_commonjs/modules/walletconnect/errors.js +51 -0
- package/_commonjs/modules/walletconnect/impl/socket-transport/index.js +204 -0
- package/_commonjs/modules/walletconnect/impl/socket-transport/network.js +30 -0
- package/_commonjs/modules/walletconnect/index.js +22 -0
- package/_commonjs/modules/walletconnect/modal.js +147 -0
- package/_commonjs/modules/walletconnect/modal.style.js +138 -0
- package/_commonjs/modules/walletconnect/types.js +13 -0
- package/_commonjs/operators/getExtensions.js +55 -0
- package/_commonjs/operators/toConnectedWallet.js +24 -0
- package/_commonjs/operators/toLcdClient.js +15 -0
- package/_commonjs/utils/browser-check.js +47 -0
- package/_commonjs/utils/checkExtensionReady.js +28 -0
- package/_commonjs/utils/sortConnections.js +13 -0
- package/_commonjs/verifyBytes.js +19 -0
- package/controller.d.ts +220 -0
- package/controller.js +697 -0
- package/env.d.ts +2 -0
- package/env.js +5 -0
- package/exception/isError.d.ts +3 -0
- package/exception/isError.js +11 -0
- package/exception/mapExtensionTxError.d.ts +5 -0
- package/exception/mapExtensionTxError.js +41 -0
- package/exception/mapWalletConnectError.d.ts +6 -0
- package/exception/mapWalletConnectError.js +63 -0
- package/getChainOptions.d.ts +3 -0
- package/getChainOptions.js +53 -0
- package/index.d.ts +6 -0
- package/index.js +6 -0
- package/modules/connect-modal/index.d.ts +2 -0
- package/modules/connect-modal/index.js +76 -0
- package/modules/connect-modal/style.d.ts +1 -0
- package/modules/connect-modal/style.js +158 -0
- package/modules/extension-router/ExtensionRouter.d.ts +43 -0
- package/modules/extension-router/ExtensionRouter.js +237 -0
- package/modules/extension-router/index.d.ts +2 -0
- package/modules/extension-router/index.js +3 -0
- package/modules/extension-router/modal.d.ts +2 -0
- package/modules/extension-router/modal.js +76 -0
- package/modules/extension-router/modal.style.d.ts +1 -0
- package/modules/extension-router/modal.style.js +158 -0
- package/modules/extension-router/multiChannel.d.ts +13 -0
- package/modules/extension-router/multiChannel.js +14 -0
- package/modules/extension-router/session.d.ts +8 -0
- package/modules/extension-router/session.js +31 -0
- package/modules/extension-router/types.d.ts +35 -0
- package/modules/extension-router/types.js +13 -0
- package/modules/legacy-extension/LegacyExtensionConnector.d.ts +30 -0
- package/modules/legacy-extension/LegacyExtensionConnector.js +139 -0
- package/modules/legacy-extension/createFixedExtension.d.ts +46 -0
- package/modules/legacy-extension/createFixedExtension.js +232 -0
- package/modules/legacy-extension/index.d.ts +2 -0
- package/modules/legacy-extension/index.js +3 -0
- package/modules/readonly-wallet/connect.d.ts +8 -0
- package/modules/readonly-wallet/connect.js +19 -0
- package/modules/readonly-wallet/index.d.ts +3 -0
- package/modules/readonly-wallet/index.js +4 -0
- package/modules/readonly-wallet/modal.d.ts +7 -0
- package/modules/readonly-wallet/modal.js +119 -0
- package/modules/readonly-wallet/modal.style.d.ts +1 -0
- package/modules/readonly-wallet/modal.style.js +201 -0
- package/modules/readonly-wallet/storage.d.ts +4 -0
- package/modules/readonly-wallet/storage.js +34 -0
- package/modules/readonly-wallet/types.d.ts +5 -0
- package/modules/readonly-wallet/types.js +2 -0
- package/modules/walletconnect/connect.d.ts +42 -0
- package/modules/walletconnect/connect.js +390 -0
- package/modules/walletconnect/errors.d.ts +22 -0
- package/modules/walletconnect/errors.js +41 -0
- package/modules/walletconnect/impl/socket-transport/index.d.ts +39 -0
- package/modules/walletconnect/impl/socket-transport/index.js +199 -0
- package/modules/walletconnect/impl/socket-transport/network.d.ts +8 -0
- package/modules/walletconnect/impl/socket-transport/network.js +28 -0
- package/modules/walletconnect/index.d.ts +5 -0
- package/modules/walletconnect/index.js +6 -0
- package/modules/walletconnect/modal.d.ts +12 -0
- package/modules/walletconnect/modal.js +143 -0
- package/modules/walletconnect/modal.style.d.ts +1 -0
- package/modules/walletconnect/modal.style.js +135 -0
- package/modules/walletconnect/types.d.ts +24 -0
- package/modules/walletconnect/types.js +10 -0
- package/operators/getExtensions.d.ts +9 -0
- package/operators/getExtensions.js +51 -0
- package/operators/toConnectedWallet.d.ts +4 -0
- package/operators/toConnectedWallet.js +20 -0
- package/operators/toLcdClient.d.ts +4 -0
- package/operators/toLcdClient.js +11 -0
- package/package.json +550 -0
- package/utils/browser-check.d.ts +3 -0
- package/utils/browser-check.js +38 -0
- package/utils/checkExtensionReady.d.ts +6 -0
- package/utils/checkExtensionReady.js +24 -0
- package/utils/sortConnections.d.ts +2 -0
- package/utils/sortConnections.js +9 -0
- package/verifyBytes.d.ts +4 -0
- package/verifyBytes.js +15 -0
- package/~/.npm/_cacache/content-v2/sha512/ad/b5/8c87dfae7c208906a88f1997b323933e7efb4e481bcfdc559cb13199d077e1b40abcb161561a293ca59cd98aae224cd0877555e6e7a2e11021bc55ebedf4 +0 -0
- package/~/.npm/_cacache/index-v5/6a/39/c03f62d7353a7cc1411e180ec37c393f9fedcfd081fa567f67bf32e6fb68 +2 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { XplaWebExtensionFeatures, WebExtensionNetworkInfo, WebExtensionWalletInfo } from '@ksangkuk10/web-extension-interface';
|
|
2
|
+
import { ExtensionInfo } from './multiChannel';
|
|
3
|
+
export declare enum ExtensionRouterConnectorType {
|
|
4
|
+
LEGACY = "LEGACY",
|
|
5
|
+
WEB_EXTENSION = "WEB_EXTENSION"
|
|
6
|
+
}
|
|
7
|
+
export declare enum ExtensionRouterStatus {
|
|
8
|
+
INITIALIZING = "INITIALIZING",
|
|
9
|
+
NO_AVAILABLE = "NO_AVAILABLE",
|
|
10
|
+
WALLET_NOT_CONNECTED = "WALLET_NOT_CONNECTED",
|
|
11
|
+
WALLET_CONNECTED = "WALLET_CONNECTED"
|
|
12
|
+
}
|
|
13
|
+
export interface ExtensionRouterInitializing {
|
|
14
|
+
type: ExtensionRouterStatus.INITIALIZING;
|
|
15
|
+
network: WebExtensionNetworkInfo;
|
|
16
|
+
}
|
|
17
|
+
export interface ExtensionRouterNoAvailable {
|
|
18
|
+
type: ExtensionRouterStatus.NO_AVAILABLE;
|
|
19
|
+
network: WebExtensionNetworkInfo;
|
|
20
|
+
isConnectorExists: boolean;
|
|
21
|
+
isApproved?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface ExtensionRouterWalletNotConnected {
|
|
24
|
+
type: ExtensionRouterStatus.WALLET_NOT_CONNECTED;
|
|
25
|
+
network: WebExtensionNetworkInfo;
|
|
26
|
+
}
|
|
27
|
+
export interface ExtensionRouterWalletConnected {
|
|
28
|
+
type: ExtensionRouterStatus.WALLET_CONNECTED;
|
|
29
|
+
network: WebExtensionNetworkInfo;
|
|
30
|
+
wallet: WebExtensionWalletInfo;
|
|
31
|
+
connectorType: ExtensionRouterConnectorType;
|
|
32
|
+
supportFeatures: Set<XplaWebExtensionFeatures>;
|
|
33
|
+
extensionInfo: ExtensionInfo;
|
|
34
|
+
}
|
|
35
|
+
export type ExtensionRouterStates = ExtensionRouterInitializing | ExtensionRouterNoAvailable | ExtensionRouterWalletNotConnected | ExtensionRouterWalletConnected;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export var ExtensionRouterConnectorType;
|
|
2
|
+
(function (ExtensionRouterConnectorType) {
|
|
3
|
+
ExtensionRouterConnectorType["LEGACY"] = "LEGACY";
|
|
4
|
+
ExtensionRouterConnectorType["WEB_EXTENSION"] = "WEB_EXTENSION";
|
|
5
|
+
})(ExtensionRouterConnectorType || (ExtensionRouterConnectorType = {}));
|
|
6
|
+
export var ExtensionRouterStatus;
|
|
7
|
+
(function (ExtensionRouterStatus) {
|
|
8
|
+
ExtensionRouterStatus["INITIALIZING"] = "INITIALIZING";
|
|
9
|
+
ExtensionRouterStatus["NO_AVAILABLE"] = "NO_AVAILABLE";
|
|
10
|
+
ExtensionRouterStatus["WALLET_NOT_CONNECTED"] = "WALLET_NOT_CONNECTED";
|
|
11
|
+
ExtensionRouterStatus["WALLET_CONNECTED"] = "WALLET_CONNECTED";
|
|
12
|
+
})(ExtensionRouterStatus || (ExtensionRouterStatus = {}));
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQGtzYW5na3VrMTAvd2FsbGV0LWNvbnRyb2xsZXIvbW9kdWxlcy9leHRlbnNpb24tcm91dGVyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sQ0FBTixJQUFZLDRCQUdYO0FBSEQsV0FBWSw0QkFBNEI7SUFDdEMsaURBQWlCLENBQUE7SUFDakIsK0RBQStCLENBQUE7QUFDakMsQ0FBQyxFQUhXLDRCQUE0QixLQUE1Qiw0QkFBNEIsUUFHdkM7QUFFRCxNQUFNLENBQU4sSUFBWSxxQkFLWDtBQUxELFdBQVkscUJBQXFCO0lBQy9CLHNEQUE2QixDQUFBO0lBQzdCLHNEQUE2QixDQUFBO0lBQzdCLHNFQUE2QyxDQUFBO0lBQzdDLDhEQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFMVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBS2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgWHBsYVdlYkV4dGVuc2lvbkZlYXR1cmVzLFxuICBXZWJFeHRlbnNpb25OZXR3b3JrSW5mbyxcbiAgV2ViRXh0ZW5zaW9uV2FsbGV0SW5mbyxcbn0gZnJvbSAnQGtzYW5na3VrMTAvd2ViLWV4dGVuc2lvbi1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRXh0ZW5zaW9uSW5mbyB9IGZyb20gJy4vbXVsdGlDaGFubmVsJztcblxuZXhwb3J0IGVudW0gRXh0ZW5zaW9uUm91dGVyQ29ubmVjdG9yVHlwZSB7XG4gIExFR0FDWSA9ICdMRUdBQ1knLFxuICBXRUJfRVhURU5TSU9OID0gJ1dFQl9FWFRFTlNJT04nLFxufVxuXG5leHBvcnQgZW51bSBFeHRlbnNpb25Sb3V0ZXJTdGF0dXMge1xuICBJTklUSUFMSVpJTkcgPSAnSU5JVElBTElaSU5HJyxcbiAgTk9fQVZBSUxBQkxFID0gJ05PX0FWQUlMQUJMRScsXG4gIFdBTExFVF9OT1RfQ09OTkVDVEVEID0gJ1dBTExFVF9OT1RfQ09OTkVDVEVEJyxcbiAgV0FMTEVUX0NPTk5FQ1RFRCA9ICdXQUxMRVRfQ09OTkVDVEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25Sb3V0ZXJJbml0aWFsaXppbmcge1xuICB0eXBlOiBFeHRlbnNpb25Sb3V0ZXJTdGF0dXMuSU5JVElBTElaSU5HO1xuICBuZXR3b3JrOiBXZWJFeHRlbnNpb25OZXR3b3JrSW5mbztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25Sb3V0ZXJOb0F2YWlsYWJsZSB7XG4gIHR5cGU6IEV4dGVuc2lvblJvdXRlclN0YXR1cy5OT19BVkFJTEFCTEU7XG4gIG5ldHdvcms6IFdlYkV4dGVuc2lvbk5ldHdvcmtJbmZvO1xuICBpc0Nvbm5lY3RvckV4aXN0czogYm9vbGVhbjtcbiAgaXNBcHByb3ZlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uUm91dGVyV2FsbGV0Tm90Q29ubmVjdGVkIHtcbiAgdHlwZTogRXh0ZW5zaW9uUm91dGVyU3RhdHVzLldBTExFVF9OT1RfQ09OTkVDVEVEO1xuICBuZXR3b3JrOiBXZWJFeHRlbnNpb25OZXR3b3JrSW5mbztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25Sb3V0ZXJXYWxsZXRDb25uZWN0ZWQge1xuICB0eXBlOiBFeHRlbnNpb25Sb3V0ZXJTdGF0dXMuV0FMTEVUX0NPTk5FQ1RFRDtcbiAgbmV0d29yazogV2ViRXh0ZW5zaW9uTmV0d29ya0luZm87XG4gIHdhbGxldDogV2ViRXh0ZW5zaW9uV2FsbGV0SW5mbztcbiAgY29ubmVjdG9yVHlwZTogRXh0ZW5zaW9uUm91dGVyQ29ubmVjdG9yVHlwZTtcbiAgc3VwcG9ydEZlYXR1cmVzOiBTZXQ8WHBsYVdlYkV4dGVuc2lvbkZlYXR1cmVzPjtcbiAgZXh0ZW5zaW9uSW5mbzogRXh0ZW5zaW9uSW5mbztcbn1cblxuZXhwb3J0IHR5cGUgRXh0ZW5zaW9uUm91dGVyU3RhdGVzID1cbiAgfCBFeHRlbnNpb25Sb3V0ZXJJbml0aWFsaXppbmdcbiAgfCBFeHRlbnNpb25Sb3V0ZXJOb0F2YWlsYWJsZVxuICB8IEV4dGVuc2lvblJvdXRlcldhbGxldE5vdENvbm5lY3RlZFxuICB8IEV4dGVuc2lvblJvdXRlcldhbGxldENvbm5lY3RlZDtcbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { XplaWebExtensionConnector, XplaWebExtensionFeatures, WebExtensionPostPayload, WebExtensionSignBytesPayload, WebExtensionSignPayload, WebExtensionStates, WebExtensionTxResult } from '@ksangkuk10/web-extension-interface';
|
|
4
|
+
import { CreateTxOptions, SignMode } from '@xpla/xpla.js';
|
|
5
|
+
import { Observer, Subscribable } from 'rxjs';
|
|
6
|
+
export declare class LegacyExtensionConnector implements XplaWebExtensionConnector {
|
|
7
|
+
private identifier;
|
|
8
|
+
private _states;
|
|
9
|
+
private _extension;
|
|
10
|
+
private hostWindow;
|
|
11
|
+
private statesSubscription;
|
|
12
|
+
supportFeatures(): XplaWebExtensionFeatures[];
|
|
13
|
+
constructor(identifier: string);
|
|
14
|
+
open: (hostWindow: Window, statesObserver: Observer<WebExtensionStates>) => void;
|
|
15
|
+
close: () => void;
|
|
16
|
+
requestApproval: () => void;
|
|
17
|
+
refetchStates: () => void;
|
|
18
|
+
post: (xplaAddress: string, tx: CreateTxOptions) => Subscribable<WebExtensionTxResult<WebExtensionPostPayload>>;
|
|
19
|
+
sign: (xplaAddress: string, tx: CreateTxOptions & {
|
|
20
|
+
sequence?: number;
|
|
21
|
+
accountNumber?: number;
|
|
22
|
+
signMode?: SignMode;
|
|
23
|
+
}) => Subscribable<WebExtensionTxResult<WebExtensionSignPayload>>;
|
|
24
|
+
signBytes: (xplaAddress: string, bytes: Buffer) => Subscribable<WebExtensionTxResult<WebExtensionSignBytesPayload>>;
|
|
25
|
+
hasCW20Tokens: () => never;
|
|
26
|
+
addCW20Tokens: () => never;
|
|
27
|
+
hasNetwork: () => never;
|
|
28
|
+
addNetwork: () => never;
|
|
29
|
+
recheckStates: () => Promise<void>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { WebExtensionStatus, WebExtensionTxStatus, } from '@ksangkuk10/web-extension-interface';
|
|
2
|
+
import { AccAddress } from '@xpla/xpla.js';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { filter } from 'rxjs/operators';
|
|
5
|
+
import { createFixedExtension } from './createFixedExtension';
|
|
6
|
+
const supportFeatures = [
|
|
7
|
+
'post',
|
|
8
|
+
'sign',
|
|
9
|
+
'sign-bytes',
|
|
10
|
+
];
|
|
11
|
+
export class LegacyExtensionConnector {
|
|
12
|
+
supportFeatures() {
|
|
13
|
+
return supportFeatures;
|
|
14
|
+
}
|
|
15
|
+
constructor(identifier) {
|
|
16
|
+
this.identifier = identifier;
|
|
17
|
+
this.hostWindow = null;
|
|
18
|
+
this.statesSubscription = null;
|
|
19
|
+
this.open = (hostWindow, statesObserver) => {
|
|
20
|
+
this.hostWindow = hostWindow;
|
|
21
|
+
this.statesSubscription = this._states
|
|
22
|
+
.pipe(filter((states) => !!states))
|
|
23
|
+
.subscribe(statesObserver);
|
|
24
|
+
this.refetchStates();
|
|
25
|
+
};
|
|
26
|
+
this.close = () => {
|
|
27
|
+
this._extension.disconnect();
|
|
28
|
+
};
|
|
29
|
+
this.requestApproval = () => {
|
|
30
|
+
this.recheckStates();
|
|
31
|
+
};
|
|
32
|
+
this.refetchStates = () => {
|
|
33
|
+
this.recheckStates();
|
|
34
|
+
};
|
|
35
|
+
this.post = (xplaAddress, tx) => {
|
|
36
|
+
const subject = new BehaviorSubject({
|
|
37
|
+
status: WebExtensionTxStatus.PROGRESS,
|
|
38
|
+
});
|
|
39
|
+
this._extension
|
|
40
|
+
.post(tx)
|
|
41
|
+
.then(({ payload }) => {
|
|
42
|
+
subject.next({
|
|
43
|
+
status: WebExtensionTxStatus.SUCCEED,
|
|
44
|
+
payload: payload.result,
|
|
45
|
+
});
|
|
46
|
+
subject.complete();
|
|
47
|
+
})
|
|
48
|
+
.catch((error) => subject.error(error));
|
|
49
|
+
return subject.asObservable();
|
|
50
|
+
};
|
|
51
|
+
this.sign = (xplaAddress, tx) => {
|
|
52
|
+
const subject = new BehaviorSubject({
|
|
53
|
+
status: WebExtensionTxStatus.PROGRESS,
|
|
54
|
+
});
|
|
55
|
+
this._extension
|
|
56
|
+
.sign(tx)
|
|
57
|
+
.then(({ payload }) => {
|
|
58
|
+
subject.next({
|
|
59
|
+
status: WebExtensionTxStatus.SUCCEED,
|
|
60
|
+
payload: payload.result,
|
|
61
|
+
});
|
|
62
|
+
subject.complete();
|
|
63
|
+
})
|
|
64
|
+
.catch((error) => subject.error(error));
|
|
65
|
+
return subject.asObservable();
|
|
66
|
+
};
|
|
67
|
+
this.signBytes = (xplaAddress, bytes) => {
|
|
68
|
+
const subject = new BehaviorSubject({
|
|
69
|
+
status: WebExtensionTxStatus.PROGRESS,
|
|
70
|
+
});
|
|
71
|
+
this._extension
|
|
72
|
+
.signBytes(bytes)
|
|
73
|
+
.then(({ payload }) => {
|
|
74
|
+
subject.next({
|
|
75
|
+
status: WebExtensionTxStatus.SUCCEED,
|
|
76
|
+
payload: {
|
|
77
|
+
recid: payload.result.recid,
|
|
78
|
+
signature: payload.result.signature,
|
|
79
|
+
public_key: {
|
|
80
|
+
'@type': '/cosmos.crypto.secp256k1.PubKey',
|
|
81
|
+
'key': payload.result.public_key,
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
})
|
|
86
|
+
.catch((error) => subject.error(error));
|
|
87
|
+
return subject.asObservable();
|
|
88
|
+
};
|
|
89
|
+
this.hasCW20Tokens = () => {
|
|
90
|
+
throw new Error('[LegacyExtensionConnector] does not support hasCW20Tokens()');
|
|
91
|
+
};
|
|
92
|
+
this.addCW20Tokens = () => {
|
|
93
|
+
throw new Error('[LegacyExtensionConnector] does not support addCW20Tokens()');
|
|
94
|
+
};
|
|
95
|
+
this.hasNetwork = () => {
|
|
96
|
+
throw new Error('[LegacyExtensionConnector] does not support hasNetwork()');
|
|
97
|
+
};
|
|
98
|
+
this.addNetwork = () => {
|
|
99
|
+
throw new Error('[LegacyExtensionConnector] does not support addNetwork()');
|
|
100
|
+
};
|
|
101
|
+
// ---------------------------------------------
|
|
102
|
+
// internal
|
|
103
|
+
// ---------------------------------------------
|
|
104
|
+
this.recheckStates = async () => {
|
|
105
|
+
if (this._extension.inTransactionProgress()) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const infoResult = await this._extension.info();
|
|
109
|
+
const connectResult = await this._extension.connect();
|
|
110
|
+
if (connectResult.address && AccAddress.validate(connectResult.address)) {
|
|
111
|
+
this._states.next({
|
|
112
|
+
type: WebExtensionStatus.READY,
|
|
113
|
+
network: infoResult,
|
|
114
|
+
focusedWalletAddress: connectResult.address,
|
|
115
|
+
wallets: [
|
|
116
|
+
{
|
|
117
|
+
name: '',
|
|
118
|
+
xplaAddress: connectResult.address,
|
|
119
|
+
design: 'xpla',
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this._states.next({
|
|
126
|
+
type: WebExtensionStatus.READY,
|
|
127
|
+
network: infoResult,
|
|
128
|
+
focusedWalletAddress: undefined,
|
|
129
|
+
wallets: [],
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
this._states = new BehaviorSubject({
|
|
134
|
+
type: WebExtensionStatus.INITIALIZING,
|
|
135
|
+
});
|
|
136
|
+
this._extension = createFixedExtension(identifier);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVnYWN5RXh0ZW5zaW9uQ29ubmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0Brc2FuZ2t1azEwL3dhbGxldC1jb250cm9sbGVyL21vZHVsZXMvbGVnYWN5LWV4dGVuc2lvbi9MZWdhY3lFeHRlbnNpb25Db25uZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQU9MLGtCQUFrQixFQUVsQixvQkFBb0IsR0FDckIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUF3QyxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLG9CQUFvQixFQUFrQixNQUFNLHdCQUF3QixDQUFDO0FBRTlFLE1BQU0sZUFBZSxHQUErQjtJQUNsRCxNQUFNO0lBQ04sTUFBTTtJQUNOLFlBQVk7Q0FDYixDQUFDO0FBRUYsTUFBTSxPQUFPLHdCQUF3QjtJQU1uQyxlQUFlO1FBQ2IsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVELFlBQW9CLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFQOUIsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFDakMsdUJBQWtCLEdBQXdCLElBQUksQ0FBQztRQWN2RCxTQUFJLEdBQUcsQ0FBQyxVQUFrQixFQUFFLGNBQTRDLEVBQUUsRUFBRTtZQUMxRSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUM3QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU87aUJBQ25DLElBQUksQ0FDSCxNQUFNLENBQ0osQ0FBQyxNQUFpQyxFQUFnQyxFQUFFLENBQ2xFLENBQUMsQ0FBQyxNQUFNLENBQ1gsQ0FDRjtpQkFDQSxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7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QU8sRUFBRSxVQUFVO29CQUNuQixvQkFBb0IsRUFBRSxhQUFhLENBQUMsT0FBTztvQkFDM0MsT0FBTyxFQUFFO3dCQUNQOzRCQUNFLElBQUksRUFBRSxFQUFFOzRCQUNSLFdBQVcsRUFBRSxhQUFhLENBQUMsT0FBTzs0QkFDbEMsTUFBTSxFQUFFLE1BQU07eUJBQ2Y7cUJBQ0Y7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ2hCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxLQUFLO29CQUM5QixPQUFPLEVBQUUsVUFBVTtvQkFDbkIsb0JBQW9CLEVBQUUsU0FBUztvQkFDL0IsT0FBTyxFQUFFLEVBQUU7aUJBQ1osQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUM7UUF2S0EsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBcUI7WUFDckQsSUFBSSxFQUFFLGtCQUFrQixDQUFDLFlBQVk7U0FDdEMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBbUtGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmV0d29ya0luZm8gfSBmcm9tICdAa3NhbmdrdWsxMC93YWxsZXQtdHlwZXMnO1xuaW1wb3J0IHtcbiAgWHBsYVdlYkV4dGVuc2lvbkNvbm5lY3RvcixcbiAgWHBsYVdlYkV4dGVuc2lvbkZlYXR1cmVzLFxuICBXZWJFeHRlbnNpb25Qb3N0UGF5bG9hZCxcbiAgV2ViRXh0ZW5zaW9uU2lnbkJ5dGVzUGF5bG9hZCxcbiAgV2ViRXh0ZW5zaW9uU2lnblBheWxvYWQsXG4gIFdlYkV4dGVuc2lvblN0YXRlcyxcbiAgV2ViRXh0ZW5zaW9uU3RhdHVzLFxuICBXZWJFeHRlbnNpb25UeFJlc3VsdCxcbiAgV2ViRXh0ZW5zaW9uVHhTdGF0dXMsXG59IGZyb20gJ0Brc2FuZ2t1azEwL3dlYi1leHRlbnNpb24taW50ZXJmYWNlJztcbmltcG9ydCB7IEFjY0FkZHJlc3MsIENyZWF0ZVR4T3B0aW9ucywgU2lnbk1vZGUgfSBmcm9tICdAeHBsYS94cGxhLmpzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2ZXIsIFN1YnNjcmliYWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjcmVhdGVGaXhlZEV4dGVuc2lvbiwgRml4ZWRFeHRlbnNpb24gfSBmcm9tICcuL2NyZWF0ZUZpeGVkRXh0ZW5zaW9uJztcblxuY29uc3Qgc3VwcG9ydEZlYXR1cmVzOiBYcGxhV2ViRXh0ZW5zaW9uRmVhdHVyZXNbXSA9IFtcbiAgJ3Bvc3QnLFxuICAnc2lnbicsXG4gICdzaWduLWJ5dGVzJyxcbl07XG5cbmV4cG9ydCBjbGFzcyBMZWdhY3lFeHRlbnNpb25Db25uZWN0b3IgaW1wbGVtZW50cyBYcGxhV2ViRXh0ZW5zaW9uQ29ubmVjdG9yIHtcbiAgcHJpdmF0ZSBfc3RhdGVzOiBCZWhhdmlvclN1YmplY3Q8V2ViRXh0ZW5zaW9uU3RhdGVzPjtcbiAgcHJpdmF0ZSBfZXh0ZW5zaW9uOiBGaXhlZEV4dGVuc2lvbjtcbiAgcHJpdmF0ZSBob3N0V2luZG93OiBXaW5kb3cgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzdGF0ZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHN1cHBvcnRGZWF0dXJlcygpIHtcbiAgICByZXR1cm4gc3VwcG9ydEZlYXR1cmVzO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpZGVudGlmaWVyOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zdGF0ZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdlYkV4dGVuc2lvblN0YXRlcz4oe1xuICAgICAgdHlwZTogV2ViRXh0ZW5zaW9uU3RhdHVzLklOSVRJQUxJWklORyxcbiAgICB9KTtcblxuICAgIHRoaXMuX2V4dGVuc2lvbiA9IGNyZWF0ZUZpeGVkRXh0ZW5zaW9uKGlkZW50aWZpZXIpO1xuICB9XG5cbiAgb3BlbiA9IChob3N0V2luZG93OiBXaW5kb3csIHN0YXRlc09ic2VydmVyOiBPYnNlcnZlcjxXZWJFeHRlbnNpb25TdGF0ZXM+KSA9PiB7XG4gICAgdGhpcy5ob3N0V2luZG93ID0gaG9zdFdpbmRvdztcbiAgICB0aGlzLnN0YXRlc1N1YnNjcmlwdGlvbiA9IHRoaXMuX3N0YXRlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAoc3RhdGVzOiBXZWJFeHRlbnNpb25TdGF0ZXMgfCBudWxsKTogc3RhdGVzIGlzIFdlYkV4dGVuc2lvblN0YXRlcyA9PlxuICAgICAgICAgICAgISFzdGF0ZXMsXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHN0YXRlc09ic2VydmVyKTtcblxuICAgIHRoaXMucmVmZXRjaFN0YXRlcygpO1xuICB9O1xuXG4gIGNsb3NlID0gKCkgPT4ge1xuICAgIHRoaXMuX2V4dGVuc2lvbi5kaXNjb25uZWN0KCk7XG4gIH07XG5cbiAgcmVxdWVzdEFwcHJvdmFsID0gKCkgPT4ge1xuICAgIHRoaXMucmVjaGVja1N0YXRlcygpO1xuICB9O1xuXG4gIHJlZmV0Y2hTdGF0ZXMgPSAoKSA9PiB7XG4gICAgdGhpcy5yZWNoZWNrU3RhdGVzKCk7XG4gIH07XG5cbiAgcG9zdCA9IChcbiAgICB4cGxhQWRkcmVzczogc3RyaW5nLFxuICAgIHR4OiBDcmVhdGVUeE9wdGlvbnMsXG4gICk6IFN1YnNjcmliYWJsZTxXZWJFeHRlbnNpb25UeFJlc3VsdDxXZWJFeHRlbnNpb25Qb3N0UGF5bG9hZD4+ID0+IHtcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICAgIFdlYkV4dGVuc2lvblR4UmVzdWx0PFdlYkV4dGVuc2lvblBvc3RQYXlsb2FkPlxuICAgID4oe1xuICAgICAgc3RhdHVzOiBXZWJFeHRlbnNpb25UeFN0YXR1cy5QUk9HUkVTUyxcbiAgICB9KTtcblxuICAgIHRoaXMuX2V4dGVuc2lvblxuICAgICAgLnBvc3QodHgpXG4gICAgICAudGhlbigoeyBwYXlsb2FkIH0pID0+IHtcbiAgICAgICAgc3ViamVjdC5uZXh0KHtcbiAgICAgICAgICBzdGF0dXM6IFdlYkV4dGVuc2lvblR4U3RhdHVzLlNVQ0NFRUQsXG4gICAgICAgICAgcGF5bG9hZDogcGF5bG9hZC5yZXN1bHQsXG4gICAgICAgIH0pO1xuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4gc3ViamVjdC5lcnJvcihlcnJvcikpO1xuXG4gICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH07XG5cbiAgc2lnbiA9IChcbiAgICB4cGxhQWRkcmVzczogc3RyaW5nLFxuICAgIHR4OiBDcmVhdGVUeE9wdGlvbnMgJiB7XG4gICAgICBzZXF1ZW5jZT86IG51bWJlcjtcbiAgICAgIGFjY291bnROdW1iZXI/OiBudW1iZXI7XG4gICAgICBzaWduTW9kZT86IFNpZ25Nb2RlO1xuICAgIH0sXG4gICk6IFN1YnNjcmliYWJsZTxXZWJFeHRlbnNpb25UeFJlc3VsdDxXZWJFeHRlbnNpb25TaWduUGF5bG9hZD4+ID0+IHtcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICAgIFdlYkV4dGVuc2lvblR4UmVzdWx0PFdlYkV4dGVuc2lvblNpZ25QYXlsb2FkPlxuICAgID4oe1xuICAgICAgc3RhdHVzOiBXZWJFeHRlbnNpb25UeFN0YXR1cy5QUk9HUkVTUyxcbiAgICB9KTtcblxuICAgIHRoaXMuX2V4dGVuc2lvblxuICAgICAgLnNpZ24odHgpXG4gICAgICAudGhlbigoeyBwYXlsb2FkIH0pID0+IHtcbiAgICAgICAgc3ViamVjdC5uZXh0KHtcbiAgICAgICAgICBzdGF0dXM6IFdlYkV4dGVuc2lvblR4U3RhdHVzLlNVQ0NFRUQsXG4gICAgICAgICAgcGF5bG9hZDogcGF5bG9hZC5yZXN1bHQsXG4gICAgICAgIH0pO1xuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4gc3ViamVjdC5lcnJvcihlcnJvcikpO1xuXG4gICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH07XG5cbiAgc2lnbkJ5dGVzID0gKFxuICAgIHhwbGFBZGRyZXNzOiBzdHJpbmcsXG4gICAgYnl0ZXM6IEJ1ZmZlcixcbiAgKTogU3Vic2NyaWJhYmxlPFdlYkV4dGVuc2lvblR4UmVzdWx0PFdlYkV4dGVuc2lvblNpZ25CeXRlc1BheWxvYWQ+PiA9PiB7XG4gICAgY29uc3Qgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgICBXZWJFeHRlbnNpb25UeFJlc3VsdDxXZWJFeHRlbnNpb25TaWduQnl0ZXNQYXlsb2FkPlxuICAgID4oe1xuICAgICAgc3RhdHVzOiBXZWJFeHRlbnNpb25UeFN0YXR1cy5QUk9HUkVTUyxcbiAgICB9KTtcblxuICAgIHRoaXMuX2V4dGVuc2lvblxuICAgICAgLnNpZ25CeXRlcyhieXRlcylcbiAgICAgIC50aGVuKCh7IHBheWxvYWQgfSkgPT4ge1xuICAgICAgICBzdWJqZWN0Lm5leHQoe1xuICAgICAgICAgIHN0YXR1czogV2ViRXh0ZW5zaW9uVHhTdGF0dXMuU1VDQ0VFRCxcbiAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICByZWNpZDogcGF5bG9hZC5yZXN1bHQucmVjaWQsXG4gICAgICAgICAgICBzaWduYXR1cmU6IHBheWxvYWQucmVzdWx0LnNpZ25hdHVyZSxcbiAgICAgICAgICAgIHB1YmxpY19rZXk6IHtcbiAgICAgICAgICAgICAgJ0B0eXBlJzogJy9jb3Ntb3MuY3J5cHRvLnNlY3AyNTZrMS5QdWJLZXknLFxuICAgICAgICAgICAgICAna2V5JzogcGF5bG9hZC5yZXN1bHQucHVibGljX2tleSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4gc3ViamVjdC5lcnJvcihlcnJvcikpO1xuXG4gICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH07XG5cbiAgaGFzQ1cyMFRva2VucyA9ICgpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnW0xlZ2FjeUV4dGVuc2lvbkNvbm5lY3Rvcl0gZG9lcyBub3Qgc3VwcG9ydCBoYXNDVzIwVG9rZW5zKCknLFxuICAgICk7XG4gIH07XG5cbiAgYWRkQ1cyMFRva2VucyA9ICgpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnW0xlZ2FjeUV4dGVuc2lvbkNvbm5lY3Rvcl0gZG9lcyBub3Qgc3VwcG9ydCBhZGRDVzIwVG9rZW5zKCknLFxuICAgICk7XG4gIH07XG5cbiAgaGFzTmV0d29yayA9ICgpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1tMZWdhY3lFeHRlbnNpb25Db25uZWN0b3JdIGRvZXMgbm90IHN1cHBvcnQgaGFzTmV0d29yaygpJyk7XG4gIH07XG5cbiAgYWRkTmV0d29yayA9ICgpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1tMZWdhY3lFeHRlbnNpb25Db25uZWN0b3JdIGRvZXMgbm90IHN1cHBvcnQgYWRkTmV0d29yaygpJyk7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIGludGVybmFsXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICByZWNoZWNrU3RhdGVzID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICh0aGlzLl9leHRlbnNpb24uaW5UcmFuc2FjdGlvblByb2dyZXNzKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbmZvUmVzdWx0OiBOZXR3b3JrSW5mbyA9IGF3YWl0IHRoaXMuX2V4dGVuc2lvbi5pbmZvKCk7XG4gICAgY29uc3QgY29ubmVjdFJlc3VsdDogeyBhZGRyZXNzPzogc3RyaW5nIH0gPSBhd2FpdCB0aGlzLl9leHRlbnNpb24uY29ubmVjdCgpO1xuXG4gICAgaWYgKGNvbm5lY3RSZXN1bHQuYWRkcmVzcyAmJiBBY2NBZGRyZXNzLnZhbGlkYXRlKGNvbm5lY3RSZXN1bHQuYWRkcmVzcykpIHtcbiAgICAgIHRoaXMuX3N0YXRlcy5uZXh0KHtcbiAgICAgICAgdHlwZTogV2ViRXh0ZW5zaW9uU3RhdHVzLlJFQURZLFxuICAgICAgICBuZXR3b3JrOiBpbmZvUmVzdWx0LFxuICAgICAgICBmb2N1c2VkV2FsbGV0QWRkcmVzczogY29ubmVjdFJlc3VsdC5hZGRyZXNzLFxuICAgICAgICB3YWxsZXRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgICB4cGxhQWRkcmVzczogY29ubmVjdFJlc3VsdC5hZGRyZXNzLFxuICAgICAgICAgICAgZGVzaWduOiAneHBsYScsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zdGF0ZXMubmV4dCh7XG4gICAgICAgIHR5cGU6IFdlYkV4dGVuc2lvblN0YXR1cy5SRUFEWSxcbiAgICAgICAgbmV0d29yazogaW5mb1Jlc3VsdCxcbiAgICAgICAgZm9jdXNlZFdhbGxldEFkZHJlc3M6IHVuZGVmaW5lZCxcbiAgICAgICAgd2FsbGV0czogW10sXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { NetworkInfo } from '@ksangkuk10/wallet-types';
|
|
4
|
+
import { CreateTxOptions, SignMode, Tx } from '@xpla/xpla.js';
|
|
5
|
+
type ConnectResponse = {
|
|
6
|
+
address?: string;
|
|
7
|
+
};
|
|
8
|
+
type PostResponse = {
|
|
9
|
+
payload: {
|
|
10
|
+
result: {
|
|
11
|
+
height: number;
|
|
12
|
+
raw_log: string;
|
|
13
|
+
txhash: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
type SignResponse = {
|
|
18
|
+
payload: {
|
|
19
|
+
result: Tx.Data;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
type SignBytesResponse = {
|
|
23
|
+
payload: {
|
|
24
|
+
result: {
|
|
25
|
+
public_key: string;
|
|
26
|
+
recid: number;
|
|
27
|
+
signature: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
type InfoResponse = NetworkInfo;
|
|
32
|
+
export interface FixedExtension {
|
|
33
|
+
post: (data: CreateTxOptions) => Promise<PostResponse>;
|
|
34
|
+
sign: (data: CreateTxOptions & {
|
|
35
|
+
sequence?: number;
|
|
36
|
+
accountNumber?: number;
|
|
37
|
+
signMode?: SignMode;
|
|
38
|
+
}) => Promise<SignResponse>;
|
|
39
|
+
signBytes: (bytes: Buffer) => Promise<SignBytesResponse>;
|
|
40
|
+
info: () => Promise<InfoResponse>;
|
|
41
|
+
connect: () => Promise<ConnectResponse>;
|
|
42
|
+
inTransactionProgress: () => boolean;
|
|
43
|
+
disconnect: () => void;
|
|
44
|
+
}
|
|
45
|
+
export declare function createFixedExtension(identifier: string): FixedExtension;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { WebExtensionCreateTxFailed, WebExtensionTxFailed, WebExtensionTxUnspecifiedError, WebExtensionUserDenied, } from '@ksangkuk10/web-extension-interface';
|
|
2
|
+
import { Extension } from '@xpla/xpla.js';
|
|
3
|
+
function getErrorMessage(error) {
|
|
4
|
+
try {
|
|
5
|
+
if (typeof error.message === 'string') {
|
|
6
|
+
return error.message;
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
return JSON.stringify(error);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
catch (_a) {
|
|
13
|
+
return String(error);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function toExplicitError(error) {
|
|
17
|
+
if (error && 'code' in error) {
|
|
18
|
+
switch (error.code) {
|
|
19
|
+
// @see https://github.com/terra-project/station/blob/main/src/extension/Confirm.tsx#L182
|
|
20
|
+
case 1:
|
|
21
|
+
return new WebExtensionUserDenied();
|
|
22
|
+
// @see https://github.com/terra-project/station/blob/main/src/extension/Confirm.tsx#L137
|
|
23
|
+
case 2:
|
|
24
|
+
if (error.data) {
|
|
25
|
+
const { txhash } = error.data;
|
|
26
|
+
return new WebExtensionTxFailed(txhash, getErrorMessage(error), null);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return new WebExtensionTxFailed(undefined, getErrorMessage(error), null);
|
|
30
|
+
}
|
|
31
|
+
// @see https://github.com/terra-project/station/blob/main/src/extension/Confirm.tsx#L153
|
|
32
|
+
case 3:
|
|
33
|
+
return new WebExtensionCreateTxFailed(getErrorMessage(error));
|
|
34
|
+
default:
|
|
35
|
+
return new WebExtensionTxUnspecifiedError(getErrorMessage(error));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return new WebExtensionTxUnspecifiedError(getErrorMessage(error));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function isValidResult({ error, ...payload }) {
|
|
43
|
+
if (typeof payload.success !== 'boolean') {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
else if (typeof payload.result === 'undefined' &&
|
|
47
|
+
typeof error === 'undefined') {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
const pool = new Map();
|
|
53
|
+
export function createFixedExtension(identifier) {
|
|
54
|
+
if (pool.has(identifier)) {
|
|
55
|
+
return pool.get(identifier);
|
|
56
|
+
}
|
|
57
|
+
const extension = new Extension(identifier);
|
|
58
|
+
let _inTransactionProgress = false;
|
|
59
|
+
const postResolvers = new Map();
|
|
60
|
+
const signResolvers = new Map();
|
|
61
|
+
const signBytesResolvers = new Map();
|
|
62
|
+
const infoResolvers = new Set();
|
|
63
|
+
const connectResolvers = new Set();
|
|
64
|
+
extension.on('onPost', (result) => {
|
|
65
|
+
if (!result || !isValidResult(result)) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const { error, ...payload } = result;
|
|
69
|
+
if (!postResolvers.has(payload.id)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const [resolve, reject] = postResolvers.get(payload.id);
|
|
73
|
+
if (!payload.success) {
|
|
74
|
+
reject(toExplicitError(error));
|
|
75
|
+
}
|
|
76
|
+
else if (resolve) {
|
|
77
|
+
resolve({ name: 'onPost', payload });
|
|
78
|
+
}
|
|
79
|
+
postResolvers.delete(payload.id);
|
|
80
|
+
if (postResolvers.size === 0) {
|
|
81
|
+
_inTransactionProgress = false;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
extension.on('onSign', (result) => {
|
|
85
|
+
if (!result || !isValidResult(result)) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const { error, ...payload } = result;
|
|
89
|
+
if (signResolvers.has(payload.id)) {
|
|
90
|
+
const [resolve, reject] = signResolvers.get(payload.id);
|
|
91
|
+
if (!payload.success) {
|
|
92
|
+
reject(toExplicitError(error));
|
|
93
|
+
}
|
|
94
|
+
else if (resolve) {
|
|
95
|
+
resolve({ name: 'onSign', payload });
|
|
96
|
+
}
|
|
97
|
+
signResolvers.delete(payload.id);
|
|
98
|
+
if (signResolvers.size === 0) {
|
|
99
|
+
_inTransactionProgress = false;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else if (signBytesResolvers.has(payload.id)) {
|
|
103
|
+
const [resolve, reject] = signBytesResolvers.get(payload.id);
|
|
104
|
+
if (!payload.success) {
|
|
105
|
+
reject(toExplicitError(error));
|
|
106
|
+
}
|
|
107
|
+
else if (resolve) {
|
|
108
|
+
resolve({ name: 'onSignBytes', payload });
|
|
109
|
+
}
|
|
110
|
+
signBytesResolvers.delete(payload.id);
|
|
111
|
+
if (signBytesResolvers.size === 0) {
|
|
112
|
+
_inTransactionProgress = false;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
extension.on('onInfo', (result) => {
|
|
117
|
+
if (!result)
|
|
118
|
+
return;
|
|
119
|
+
const { error, ...payload } = result;
|
|
120
|
+
for (const [resolve, reject] of infoResolvers) {
|
|
121
|
+
if (error) {
|
|
122
|
+
reject(error);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
resolve(payload);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
infoResolvers.clear();
|
|
129
|
+
});
|
|
130
|
+
extension.on('onConnect', (result) => {
|
|
131
|
+
if (!result)
|
|
132
|
+
return;
|
|
133
|
+
const { error, ...payload } = result;
|
|
134
|
+
for (const [resolve, reject] of connectResolvers) {
|
|
135
|
+
if (error) {
|
|
136
|
+
reject(error);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
resolve(payload);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
connectResolvers.clear();
|
|
143
|
+
});
|
|
144
|
+
function post(data) {
|
|
145
|
+
return new Promise((...resolver) => {
|
|
146
|
+
_inTransactionProgress = true;
|
|
147
|
+
const id = extension.post({
|
|
148
|
+
...data,
|
|
149
|
+
purgeQueue: true,
|
|
150
|
+
});
|
|
151
|
+
postResolvers.set(id, resolver);
|
|
152
|
+
setTimeout(() => {
|
|
153
|
+
if (postResolvers.has(id)) {
|
|
154
|
+
postResolvers.delete(id);
|
|
155
|
+
if (postResolvers.size === 0) {
|
|
156
|
+
_inTransactionProgress = false;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}, 1000 * 120);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
function sign(data) {
|
|
163
|
+
return new Promise((...resolver) => {
|
|
164
|
+
_inTransactionProgress = true;
|
|
165
|
+
const id = extension.sign({
|
|
166
|
+
...data,
|
|
167
|
+
purgeQueue: true,
|
|
168
|
+
});
|
|
169
|
+
signResolvers.set(id, resolver);
|
|
170
|
+
setTimeout(() => {
|
|
171
|
+
if (signResolvers.has(id)) {
|
|
172
|
+
signResolvers.delete(id);
|
|
173
|
+
if (signResolvers.size === 0) {
|
|
174
|
+
_inTransactionProgress = false;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}, 1000 * 120);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
function signBytes(bytes) {
|
|
181
|
+
return new Promise((...resolver) => {
|
|
182
|
+
_inTransactionProgress = true;
|
|
183
|
+
const id = extension.signBytes({
|
|
184
|
+
bytes,
|
|
185
|
+
purgeQueue: true,
|
|
186
|
+
});
|
|
187
|
+
signBytesResolvers.set(id, resolver);
|
|
188
|
+
setTimeout(() => {
|
|
189
|
+
if (signBytesResolvers.has(id)) {
|
|
190
|
+
signBytesResolvers.delete(id);
|
|
191
|
+
if (signBytesResolvers.size === 0) {
|
|
192
|
+
_inTransactionProgress = false;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}, 1000 * 120);
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
function connect() {
|
|
199
|
+
return new Promise((...resolver) => {
|
|
200
|
+
connectResolvers.add(resolver);
|
|
201
|
+
extension.connect();
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
function info() {
|
|
205
|
+
return new Promise((...resolver) => {
|
|
206
|
+
infoResolvers.add(resolver);
|
|
207
|
+
extension.info();
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
function disconnect() {
|
|
211
|
+
connectResolvers.clear();
|
|
212
|
+
infoResolvers.clear();
|
|
213
|
+
postResolvers.clear();
|
|
214
|
+
signResolvers.clear();
|
|
215
|
+
signBytesResolvers.clear();
|
|
216
|
+
}
|
|
217
|
+
function inTransactionProgress() {
|
|
218
|
+
return _inTransactionProgress;
|
|
219
|
+
}
|
|
220
|
+
const result = {
|
|
221
|
+
post,
|
|
222
|
+
sign,
|
|
223
|
+
signBytes,
|
|
224
|
+
connect,
|
|
225
|
+
info,
|
|
226
|
+
disconnect,
|
|
227
|
+
inTransactionProgress,
|
|
228
|
+
};
|
|
229
|
+
pool.set(identifier, result);
|
|
230
|
+
return result;
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRml4ZWRFeHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQGtzYW5na3VrMTAvd2FsbGV0LWNvbnRyb2xsZXIvbW9kdWxlcy9sZWdhY3ktZXh0ZW5zaW9uL2NyZWF0ZUZpeGVkRXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLDhCQUE4QixFQUM5QixzQkFBc0IsR0FDdkIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQW1CLFNBQVMsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUE0Q3pFLFNBQVMsZUFBZSxDQUFDLEtBQVU7SUFDakMsSUFBSTtRQUNGLElBQUksT0FBTyxLQUFLLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUNyQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUM7U0FDdEI7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtLQUNGO0lBQUMsV0FBTTtRQUNOLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3RCO0FBQ0gsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLEtBQVU7SUFDakMsSUFBSSxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRTtRQUM1QixRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDbEIseUZBQXlGO1lBQ3pGLEtBQUssQ0FBQztnQkFDSixPQUFPLElBQUksc0JBQXNCLEVBQUUsQ0FBQztZQUN0Qyx5RkFBeUY7WUFDekYsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtvQkFDZCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDOUIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUs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QUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxVQUFVO1FBQ2pCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxTQUFTLHFCQUFxQjtRQUM1QixPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBbUI7UUFDN0IsSUFBSTtRQUNKLElBQUk7UUFDSixTQUFTO1FBQ1QsT0FBTztRQUNQLElBQUk7UUFDSixVQUFVO1FBQ1YscUJBQXFCO0tBQ3RCLENBQUM7SUFFRixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU3QixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmV0d29ya0luZm8gfSBmcm9tICdAa3NhbmdrdWsxMC93YWxsZXQtdHlwZXMnO1xuaW1wb3J0IHtcbiAgV2ViRXh0ZW5zaW9uQ3JlYXRlVHhGYWlsZWQsXG4gIFdlYkV4dGVuc2lvblR4RmFpbGVkLFxuICBXZWJFeHRlbnNpb25UeFVuc3BlY2lmaWVkRXJyb3IsXG4gIFdlYkV4dGVuc2lvblVzZXJEZW5pZWQsXG59IGZyb20gJ0Brc2FuZ2t1azEwL3dlYi1leHRlbnNpb24taW50ZXJmYWNlJztcbmltcG9ydCB7IENyZWF0ZVR4T3B0aW9ucywgRXh0ZW5zaW9uLCBTaWduTW9kZSwgVHggfSBmcm9tICdAeHBsYS94cGxhLmpzJztcblxudHlwZSBDb25uZWN0UmVzcG9uc2UgPSB7IGFkZHJlc3M/OiBzdHJpbmcgfTtcbnR5cGUgUG9zdFJlc3BvbnNlID0ge1xuICBwYXlsb2FkOiB7XG4gICAgcmVzdWx0OiB7XG4gICAgICBoZWlnaHQ6IG51bWJlcjtcbiAgICAgIHJhd19sb2c6IHN0cmluZztcbiAgICAgIHR4aGFzaDogc3RyaW5nO1xuICAgIH07XG4gIH07XG59O1xudHlwZSBTaWduUmVzcG9uc2UgPSB7XG4gIHBheWxvYWQ6IHtcbiAgICByZXN1bHQ6IFR4LkRhdGE7XG4gIH07XG59O1xudHlwZSBTaWduQnl0ZXNSZXNwb25zZSA9IHtcbiAgcGF5bG9hZDoge1xuICAgIHJlc3VsdDoge1xuICAgICAgcHVibGljX2tleTogc3RyaW5nO1xuICAgICAgcmVjaWQ6IG51bWJlcjtcbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgIH07XG4gIH07XG59O1xudHlwZSBJbmZvUmVzcG9uc2UgPSBOZXR3b3JrSW5mbztcblxuZXhwb3J0IGludGVyZmFjZSBGaXhlZEV4dGVuc2lvbiB7XG4gIHBvc3Q6IChkYXRhOiBDcmVhdGVUeE9wdGlvbnMpID0+IFByb21pc2U8UG9zdFJlc3BvbnNlPjtcbiAgc2lnbjogKFxuICAgIGRhdGE6IENyZWF0ZVR4T3B0aW9ucyAmIHtcbiAgICAgIHNlcXVlbmNlPzogbnVtYmVyO1xuICAgICAgYWNjb3VudE51bWJlcj86IG51bWJlcjtcbiAgICAgIHNpZ25Nb2RlPzogU2lnbk1vZGU7XG4gICAgfVxuICApID0+IFByb21pc2U8U2lnblJlc3BvbnNlPjtcbiAgc2lnbkJ5dGVzOiAoYnl0ZXM6IEJ1ZmZlcikgPT4gUHJvbWlzZTxTaWduQnl0ZXNSZXNwb25zZT47XG4gIGluZm86ICgpID0+IFByb21pc2U8SW5mb1Jlc3BvbnNlPjtcbiAgY29ubmVjdDogKCkgPT4gUHJvbWlzZTxDb25uZWN0UmVzcG9uc2U+O1xuICBpblRyYW5zYWN0aW9uUHJvZ3Jlc3M6ICgpID0+IGJvb2xlYW47XG4gIGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQ7XG59XG5cbmZ1bmN0aW9uIGdldEVycm9yTWVzc2FnZShlcnJvcjogYW55KTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodHlwZW9mIGVycm9yLm1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZXJyb3IubWVzc2FnZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGVycm9yKTtcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBTdHJpbmcoZXJyb3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRvRXhwbGljaXRFcnJvcihlcnJvcjogYW55KSB7XG4gIGlmIChlcnJvciAmJiAnY29kZScgaW4gZXJyb3IpIHtcbiAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3RlcnJhLXByb2plY3Qvc3RhdGlvbi9ibG9iL21haW4vc3JjL2V4dGVuc2lvbi9Db25maXJtLnRzeCNMMTgyXG4gICAgICBjYXNlIDE6XG4gICAgICAgIHJldHVybiBuZXcgV2ViRXh0ZW5zaW9uVXNlckRlbmllZCgpO1xuICAgICAgLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vdGVycmEtcHJvamVjdC9zdGF0aW9uL2Jsb2IvbWFpbi9zcmMvZXh0ZW5zaW9uL0NvbmZpcm0udHN4I0wxMzdcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgaWYgKGVycm9yLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCB7IHR4aGFzaCB9ID0gZXJyb3IuZGF0YTtcbiAgICAgICAgICByZXR1cm4gbmV3IFdlYkV4dGVuc2lvblR4RmFpbGVkKHR4aGFzaCwgZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSwgbnVsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBXZWJFeHRlbnNpb25UeEZhaWxlZChcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGdldEVycm9yTWVzc2FnZShlcnJvciksXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3RlcnJhLXByb2plY3Qvc3RhdGlvbi9ibG9iL21haW4vc3JjL2V4dGVuc2lvbi9Db25maXJtLnRzeCNMMTUzXG4gICAgICBjYXNlIDM6XG4gICAgICAgIHJldHVybiBuZXcgV2ViRXh0ZW5zaW9uQ3JlYXRlVHhGYWlsZWQoZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbmV3IFdlYkV4dGVuc2lvblR4VW5zcGVjaWZpZWRFcnJvcihnZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBXZWJFeHRlbnNpb25UeFVuc3BlY2lmaWVkRXJyb3IoZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNWYWxpZFJlc3VsdCh7IGVycm9yLCAuLi5wYXlsb2FkIH06IGFueSk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIHBheWxvYWQuc3VjY2VzcyAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2UgaWYgKFxuICAgIHR5cGVvZiBwYXlsb2FkLnJlc3VsdCA9PT0gJ3VuZGVmaW5lZCcgJiZcbiAgICB0eXBlb2YgZXJyb3IgPT09ICd1bmRlZmluZWQnXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuY29uc3QgcG9vbCA9IG5ldyBNYXA8c3RyaW5nLCBGaXhlZEV4dGVuc2lvbj4oKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZpeGVkRXh0ZW5zaW9uKGlkZW50aWZpZXI6IHN0cmluZyk6IEZpeGVkRXh0ZW5zaW9uIHtcbiAgaWYgKHBvb2wuaGFzKGlkZW50aWZpZXIpKSB7XG4gICAgcmV0dXJuIHBvb2wuZ2V0KGlkZW50aWZpZXIpITtcbiAgfVxuXG4gIGNvbnN0IGV4dGVuc2lvbiA9IG5ldyBFeHRlbnNpb24oaWRlbnRpZmllcik7XG5cbiAgbGV0IF9pblRyYW5zYWN0aW9uUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICBjb25zdCBwb3N0UmVzb2x2ZXJzID0gbmV3IE1hcDxcbiAgICBudW1iZXIsXG4gICAgWyhkYXRhOiBhbnkpID0+IHZvaWQsIChlcnJvcjogYW55KSA9PiB2b2lkXVxuICA+KCk7XG5cbiAgY29uc3Qgc2lnblJlc29sdmVycyA9IG5ldyBNYXA8XG4gICAgbnVtYmVyLFxuICAgIFsoZGF0YTogYW55KSA9PiB2b2lkLCAoZXJyb3I6IGFueSkgPT4gdm9pZF1cbiAgPigpO1xuXG4gIGNvbnN0IHNpZ25CeXRlc1Jlc29sdmVycyA9IG5ldyBNYXA8XG4gICAgbnVtYmVyLFxuICAgIFsoZGF0YTogYW55KSA9PiB2b2lkLCAoZXJyb3I6IGFueSkgPT4gdm9pZF1cbiAgPigpO1xuXG4gIGNvbnN0IGluZm9SZXNvbHZlcnMgPSBuZXcgU2V0PFsoZGF0YTogYW55KSA9PiB2b2lkLCAoZXJyb3I6IGFueSkgPT4gdm9pZF0+KCk7XG5cbiAgY29uc3QgY29ubmVjdFJlc29sdmVycyA9IG5ldyBTZXQ8XG4gICAgWyhkYXRhOiBhbnkpID0+IHZvaWQsIChlcnJvcjogYW55KSA9PiB2b2lkXVxuICA+KCk7XG5cbiAgZXh0ZW5zaW9uLm9uKCdvblBvc3QnLCAocmVzdWx0KSA9PiB7XG4gICAgaWYgKCFyZXN1bHQgfHwgIWlzVmFsaWRSZXN1bHQocmVzdWx0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgZXJyb3IsIC4uLnBheWxvYWQgfSA9IHJlc3VsdDtcblxuICAgIGlmICghcG9zdFJlc29sdmVycy5oYXMocGF5bG9hZC5pZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBbcmVzb2x2ZSwgcmVqZWN0XSA9IHBvc3RSZXNvbHZlcnMuZ2V0KHBheWxvYWQuaWQpITtcblxuICAgIGlmICghcGF5bG9hZC5zdWNjZXNzKSB7XG4gICAgICByZWplY3QodG9FeHBsaWNpdEVycm9yKGVycm9yKSk7XG4gICAgfSBlbHNlIGlmIChyZXNvbHZlKSB7XG4gICAgICByZXNvbHZlKHsgbmFtZTogJ29uUG9zdCcsIHBheWxvYWQgfSk7XG4gICAgfVxuXG4gICAgcG9zdFJlc29sdmVycy5kZWxldGUocGF5bG9hZC5pZCk7XG5cbiAgICBpZiAocG9zdFJlc29sdmVycy5zaXplID09PSAwKSB7XG4gICAgICBfaW5UcmFuc2FjdGlvblByb2dyZXNzID0gZmFsc2U7XG4gICAgfVxuICB9KTtcblxuICBleHRlbnNpb24ub24oJ29uU2lnbicsIChyZXN1bHQpID0+IHtcbiAgICBpZiAoIXJlc3VsdCB8fCAhaXNWYWxpZFJlc3VsdChyZXN1bHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBlcnJvciwgLi4ucGF5bG9hZCB9ID0gcmVzdWx0O1xuXG4gICAgaWYgKHNpZ25SZXNvbHZlcnMuaGFzKHBheWxvYWQuaWQpKSB7XG4gICAgICBjb25zdCBbcmVzb2x2ZSwgcmVqZWN0XSA9IHNpZ25SZXNvbHZlcnMuZ2V0KHBheWxvYWQuaWQpITtcblxuICAgICAgaWYgKCFwYXlsb2FkLnN1Y2Nlc3MpIHtcbiAgICAgICAgcmVqZWN0KHRvRXhwbGljaXRFcnJvcihlcnJvcikpO1xuICAgICAgfSBlbHNlIGlmIChyZXNvbHZlKSB7XG4gICAgICAgIHJlc29sdmUoeyBuYW1lOiAnb25TaWduJywgcGF5bG9hZCB9KTtcbiAgICAgIH1cblxuICAgICAgc2lnblJlc29sdmVycy5kZWxldGUocGF5bG9hZC5pZCk7XG5cbiAgICAgIGlmIChzaWduUmVzb2x2ZXJzLnNpemUgPT09IDApIHtcbiAgICAgICAgX2luVHJhbnNhY3Rpb25Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc2lnbkJ5dGVzUmVzb2x2ZXJzLmhhcyhwYXlsb2FkLmlkKSkge1xuICAgICAgY29uc3QgW3Jlc29sdmUsIHJlamVjdF0gPSBzaWduQnl0ZXNSZXNvbHZlcnMuZ2V0KHBheWxvYWQuaWQpITtcblxuICAgICAgaWYgKCFwYXlsb2FkLnN1Y2Nlc3MpIHtcbiAgICAgICAgcmVqZWN0KHRvRXhwbGljaXRFcnJvcihlcnJvcikpO1xuICAgICAgfSBlbHNlIGlmIChyZXNvbHZlKSB7XG4gICAgICAgIHJlc29sdmUoeyBuYW1lOiAnb25TaWduQnl0ZXMnLCBwYXlsb2FkIH0pO1xuICAgICAgfVxuXG4gICAgICBzaWduQnl0ZXNSZXNvbHZlcnMuZGVsZXRlKHBheWxvYWQuaWQpO1xuXG4gICAgICBpZiAoc2lnbkJ5dGVzUmVzb2x2ZXJzLnNpemUgPT09IDApIHtcbiAgICAgICAgX2luVHJhbnNhY3Rpb25Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgZXh0ZW5zaW9uLm9uKCdvbkluZm8nLCAocmVzdWx0KSA9PiB7XG4gICAgaWYgKCFyZXN1bHQpIHJldHVybjtcbiAgICBjb25zdCB7IGVycm9yLCAuLi5wYXlsb2FkIH0gPSByZXN1bHQ7XG5cbiAgICBmb3IgKGNvbnN0IFtyZXNvbHZlLCByZWplY3RdIG9mIGluZm9SZXNvbHZlcnMpIHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShwYXlsb2FkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbmZvUmVzb2x2ZXJzLmNsZWFyKCk7XG4gIH0pO1xuXG4gIGV4dGVuc2lvbi5vbignb25Db25uZWN0JywgKHJlc3VsdCkgPT4ge1xuICAgIGlmICghcmVzdWx0KSByZXR1cm47XG4gICAgY29uc3QgeyBlcnJvciwgLi4ucGF5bG9hZCB9ID0gcmVzdWx0O1xuXG4gICAgZm9yIChjb25zdCBbcmVzb2x2ZSwgcmVqZWN0XSBvZiBjb25uZWN0UmVzb2x2ZXJzKSB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUocGF5bG9hZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29ubmVjdFJlc29sdmVycy5jbGVhcigpO1xuICB9KTtcblxuICBmdW5jdGlvbiBwb3N0KGRhdGE6IG9iamVjdCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxQb3N0UmVzcG9uc2U+KCguLi5yZXNvbHZlcikgPT4ge1xuICAgICAgX2luVHJhbnNhY3Rpb25Qcm9ncmVzcyA9IHRydWU7XG5cbiAgICAgIGNvbnN0IGlkID0gZXh0ZW5zaW9uLnBvc3Qoe1xuICAgICAgICAuLi4oZGF0YSBhcyBhbnkpLFxuICAgICAgICBwdXJnZVF1ZXVlOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIHBvc3RSZXNvbHZlcnMuc2V0KGlkLCByZXNvbHZlcik7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAocG9zdFJlc29sdmVycy5oYXMoaWQpKSB7XG4gICAgICAgICAgcG9zdFJlc29sdmVycy5kZWxldGUoaWQpO1xuXG4gICAgICAgICAgaWYgKHBvc3RSZXNvbHZlcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgX2luVHJhbnNhY3Rpb25Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgMTAwMCAqIDEyMCk7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBzaWduKGRhdGE6IG9iamVjdCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxTaWduUmVzcG9uc2U+KCguLi5yZXNvbHZlcikgPT4ge1xuICAgICAgX2luVHJhbnNhY3Rpb25Qcm9ncmVzcyA9IHRydWU7XG5cbiAgICAgIGNvbnN0IGlkID0gZXh0ZW5zaW9uLnNpZ24oe1xuICAgICAgICAuLi4oZGF0YSBhcyBhbnkpLFxuICAgICAgICBwdXJnZVF1ZXVlOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIHNpZ25SZXNvbHZlcnMuc2V0KGlkLCByZXNvbHZlcik7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoc2lnblJlc29sdmVycy5oYXMoaWQpKSB7XG4gICAgICAgICAgc2lnblJlc29sdmVycy5kZWxldGUoaWQpO1xuXG4gICAgICAgICAgaWYgKHNpZ25SZXNvbHZlcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgX2luVHJhbnNhY3Rpb25Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgMTAwMCAqIDEyMCk7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBzaWduQnl0ZXMoYnl0ZXM6IEJ1ZmZlcikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxTaWduQnl0ZXNSZXNwb25zZT4oKC4uLnJlc29sdmVyKSA9PiB7XG4gICAgICBfaW5UcmFuc2FjdGlvblByb2dyZXNzID0gdHJ1ZTtcblxuICAgICAgY29uc3QgaWQgPSBleHRlbnNpb24uc2lnbkJ5dGVzKHtcbiAgICAgICAgYnl0ZXMsXG4gICAgICAgIHB1cmdlUXVldWU6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgc2lnbkJ5dGVzUmVzb2x2ZXJzLnNldChpZCwgcmVzb2x2ZXIpO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHNpZ25CeXRlc1Jlc29sdmVycy5oYXMoaWQpKSB7XG4gICAgICAgICAgc2lnbkJ5dGVzUmVzb2x2ZXJzLmRlbGV0ZShpZCk7XG5cbiAgICAgICAgICBpZiAoc2lnbkJ5dGVzUmVzb2x2ZXJzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIF9pblRyYW5zYWN0aW9uUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMDAgKiAxMjApO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gY29ubmVjdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Q29ubmVjdFJlc3BvbnNlPigoLi4ucmVzb2x2ZXIpID0+IHtcbiAgICAgIGNvbm5lY3RSZXNvbHZlcnMuYWRkKHJlc29sdmVyKTtcbiAgICAgIGV4dGVuc2lvbi5jb25uZWN0KCk7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBpbmZvKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxJbmZvUmVzcG9uc2U+KCguLi5yZXNvbHZlcikgPT4ge1xuICAgICAgaW5mb1Jlc29sdmVycy5hZGQocmVzb2x2ZXIpO1xuICAgICAgZXh0ZW5zaW9uLmluZm8oKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRpc2Nvbm5lY3QoKSB7XG4gICAgY29ubmVjdFJlc29sdmVycy5jbGVhcigpO1xuICAgIGluZm9SZXNvbHZlcnMuY2xlYXIoKTtcbiAgICBwb3N0UmVzb2x2ZXJzLmNsZWFyKCk7XG4gICAgc2lnblJlc29sdmVycy5jbGVhcigpO1xuICAgIHNpZ25CeXRlc1Jlc29sdmVycy5jbGVhcigpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5UcmFuc2FjdGlvblByb2dyZXNzKCkge1xuICAgIHJldHVybiBfaW5UcmFuc2FjdGlvblByb2dyZXNzO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBGaXhlZEV4dGVuc2lvbiA9IHtcbiAgICBwb3N0LFxuICAgIHNpZ24sXG4gICAgc2lnbkJ5dGVzLFxuICAgIGNvbm5lY3QsXG4gICAgaW5mbyxcbiAgICBkaXNjb25uZWN0LFxuICAgIGluVHJhbnNhY3Rpb25Qcm9ncmVzcyxcbiAgfTtcblxuICBwb29sLnNldChpZGVudGlmaWVyLCByZXN1bHQpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './LegacyExtensionConnector';
|
|
2
|
+
export * from './createFixedExtension';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQGtzYW5na3VrMTAvd2FsbGV0LWNvbnRyb2xsZXIvbW9kdWxlcy9sZWdhY3ktZXh0ZW5zaW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vTGVnYWN5RXh0ZW5zaW9uQ29ubmVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlRml4ZWRFeHRlbnNpb24nO1xuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReadonlyWalletSession } from './types';
|
|
2
|
+
export interface ReadonlyWalletController extends ReadonlyWalletSession {
|
|
3
|
+
disconnect: () => void;
|
|
4
|
+
}
|
|
5
|
+
export interface ReadonlyWalletOptions extends ReadonlyWalletSession {
|
|
6
|
+
}
|
|
7
|
+
export declare function connectIfSessionExists(): ReadonlyWalletController | null;
|
|
8
|
+
export declare function connect(options: ReadonlyWalletOptions): ReadonlyWalletController;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { clearStoredSession, getStoredSession, storeSession } from './storage';
|
|
2
|
+
export function connectIfSessionExists() {
|
|
3
|
+
const storedSession = getStoredSession();
|
|
4
|
+
if (!!storedSession) {
|
|
5
|
+
return connect(storedSession);
|
|
6
|
+
}
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
export function connect(options) {
|
|
10
|
+
storeSession(options);
|
|
11
|
+
function disconnect() {
|
|
12
|
+
clearStoredSession();
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
...options,
|
|
16
|
+
disconnect,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9Aa3NhbmdrdWsxMC93YWxsZXQtY29udHJvbGxlci9tb2R1bGVzL3JlYWRvbmx5LXdhbGxldC9jb25uZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFTL0UsTUFBTSxVQUFVLHNCQUFzQjtJQUNwQyxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRXpDLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRTtRQUNuQixPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUMvQjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQ3JCLE9BQThCO0lBRTlCLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV0QixTQUFTLFVBQVU7UUFDakIsa0JBQWtCLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTztRQUNMLEdBQUcsT0FBTztRQUNWLFVBQVU7S0FDWCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsZWFyU3RvcmVkU2Vzc2lvbiwgZ2V0U3RvcmVkU2Vzc2lvbiwgc3RvcmVTZXNzaW9uIH0gZnJvbSAnLi9zdG9yYWdlJztcbmltcG9ydCB7IFJlYWRvbmx5V2FsbGV0U2Vzc2lvbiB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRvbmx5V2FsbGV0Q29udHJvbGxlciBleHRlbmRzIFJlYWRvbmx5V2FsbGV0U2Vzc2lvbiB7XG4gIGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZG9ubHlXYWxsZXRPcHRpb25zIGV4dGVuZHMgUmVhZG9ubHlXYWxsZXRTZXNzaW9uIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25uZWN0SWZTZXNzaW9uRXhpc3RzKCk6IFJlYWRvbmx5V2FsbGV0Q29udHJvbGxlciB8IG51bGwge1xuICBjb25zdCBzdG9yZWRTZXNzaW9uID0gZ2V0U3RvcmVkU2Vzc2lvbigpO1xuXG4gIGlmICghIXN0b3JlZFNlc3Npb24pIHtcbiAgICByZXR1cm4gY29ubmVjdChzdG9yZWRTZXNzaW9uKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29ubmVjdChcbiAgb3B0aW9uczogUmVhZG9ubHlXYWxsZXRPcHRpb25zLFxuKTogUmVhZG9ubHlXYWxsZXRDb250cm9sbGVyIHtcbiAgc3RvcmVTZXNzaW9uKG9wdGlvbnMpO1xuXG4gIGZ1bmN0aW9uIGRpc2Nvbm5lY3QoKSB7XG4gICAgY2xlYXJTdG9yZWRTZXNzaW9uKCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLm9wdGlvbnMsXG4gICAgZGlzY29ubmVjdCxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './connect';
|
|
3
|
+
export * from './modal';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQGtzYW5na3VrMTAvd2FsbGV0LWNvbnRyb2xsZXIvbW9kdWxlcy9yZWFkb25seS13YWxsZXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGFsJztcbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { NetworkInfo } from '@ksangkuk10/wallet-types';
|
|
2
|
+
import { ReadonlyWalletSession } from './types';
|
|
3
|
+
interface Options {
|
|
4
|
+
networks: NetworkInfo[];
|
|
5
|
+
}
|
|
6
|
+
export declare function readonlyWalletModal({ networks, }: Options): Promise<ReadonlyWalletSession | null>;
|
|
7
|
+
export {};
|