@metamask/connect-multichain 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -1
- package/dist/browser/es/connect-multichain.d.mts +26 -9
- package/dist/browser/es/connect-multichain.mjs +341 -78
- package/dist/browser/es/connect-multichain.mjs.map +1 -1
- package/dist/browser/es/metafile-esm.json +1 -1
- package/dist/browser/iife/connect-multichain.d.ts +26 -9
- package/dist/browser/iife/connect-multichain.js +961 -151
- package/dist/browser/iife/connect-multichain.js.map +1 -1
- package/dist/browser/iife/metafile-iife.json +1 -1
- package/dist/browser/umd/connect-multichain.d.ts +26 -9
- package/dist/browser/umd/connect-multichain.js +341 -78
- package/dist/browser/umd/connect-multichain.js.map +1 -1
- package/dist/browser/umd/metafile-cjs.json +1 -1
- package/dist/node/cjs/connect-multichain.d.ts +26 -9
- package/dist/node/cjs/connect-multichain.js +342 -79
- package/dist/node/cjs/connect-multichain.js.map +1 -1
- package/dist/node/cjs/metafile-cjs.json +1 -1
- package/dist/node/es/connect-multichain.d.mts +26 -9
- package/dist/node/es/connect-multichain.mjs +341 -78
- package/dist/node/es/connect-multichain.mjs.map +1 -1
- package/dist/node/es/metafile-esm.json +1 -1
- package/dist/react-native/es/connect-multichain.d.mts +26 -9
- package/dist/react-native/es/connect-multichain.mjs +328 -69
- package/dist/react-native/es/connect-multichain.mjs.map +1 -1
- package/dist/react-native/es/metafile-esm.json +1 -1
- package/dist/src/domain/multichain/index.d.ts +4 -4
- package/dist/src/domain/multichain/index.d.ts.map +1 -1
- package/dist/src/domain/multichain/index.js.map +1 -1
- package/dist/src/domain/multichain/types.d.ts +4 -3
- package/dist/src/domain/multichain/types.d.ts.map +1 -1
- package/dist/src/domain/ui/types.d.ts +7 -0
- package/dist/src/domain/ui/types.d.ts.map +1 -1
- package/dist/src/domain/ui/types.js.map +1 -1
- package/dist/src/index.browser.d.ts +1 -1
- package/dist/src/index.browser.d.ts.map +1 -1
- package/dist/src/index.browser.js +1 -1
- package/dist/src/index.browser.js.map +1 -1
- package/dist/src/index.native.d.ts +1 -1
- package/dist/src/index.native.d.ts.map +1 -1
- package/dist/src/index.native.js +2 -2
- package/dist/src/index.native.js.map +1 -1
- package/dist/src/index.node.d.ts +1 -1
- package/dist/src/index.node.d.ts.map +1 -1
- package/dist/src/index.node.js +1 -1
- package/dist/src/index.node.js.map +1 -1
- package/dist/src/multichain/index.d.ts +6 -6
- package/dist/src/multichain/index.d.ts.map +1 -1
- package/dist/src/multichain/index.js +103 -43
- package/dist/src/multichain/index.js.map +1 -1
- package/dist/src/multichain/transports/default/index.d.ts +2 -1
- package/dist/src/multichain/transports/default/index.d.ts.map +1 -1
- package/dist/src/multichain/transports/default/index.js +1 -0
- package/dist/src/multichain/transports/default/index.js.map +1 -1
- package/dist/src/multichain/transports/multichainApiClientWrapper/index.d.ts +21 -0
- package/dist/src/multichain/transports/multichainApiClientWrapper/index.d.ts.map +1 -0
- package/dist/src/multichain/transports/multichainApiClientWrapper/index.js +159 -0
- package/dist/src/multichain/transports/multichainApiClientWrapper/index.js.map +1 -0
- package/dist/src/multichain/transports/mwp/index.d.ts +4 -1
- package/dist/src/multichain/transports/mwp/index.d.ts.map +1 -1
- package/dist/src/multichain/transports/mwp/index.js +54 -2
- package/dist/src/multichain/transports/mwp/index.js.map +1 -1
- package/dist/src/ui/ModalFactory.d.ts +54 -0
- package/dist/src/ui/ModalFactory.d.ts.map +1 -0
- package/dist/src/ui/ModalFactory.js +171 -0
- package/dist/src/ui/ModalFactory.js.map +1 -0
- package/dist/src/ui/index.d.ts +14 -38
- package/dist/src/ui/index.d.ts.map +1 -1
- package/dist/src/ui/index.js +24 -142
- package/dist/src/ui/index.js.map +1 -1
- package/dist/src/ui/index.native.d.ts +13 -0
- package/dist/src/ui/index.native.d.ts.map +1 -0
- package/dist/src/ui/{preload.native.js → index.native.js} +12 -6
- package/dist/src/ui/index.native.js.map +1 -0
- package/dist/src/ui/modals/base/AbstractInstallModal.d.ts.map +1 -1
- package/dist/src/ui/modals/base/AbstractInstallModal.js +0 -4
- package/dist/src/ui/modals/base/AbstractInstallModal.js.map +1 -1
- package/dist/types/connect-multichain.d.ts +26 -9
- package/package.json +4 -2
- package/dist/src/ui/preload.native.d.ts +0 -5
- package/dist/src/ui/preload.native.d.ts.map +0 -1
- package/dist/src/ui/preload.native.js.map +0 -1
- package/dist/src/ui/preload.web.d.ts +0 -5
- package/dist/src/ui/preload.web.d.ts.map +0 -1
- package/dist/src/ui/preload.web.js +0 -27
- package/dist/src/ui/preload.web.js.map +0 -1
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
11
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
12
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
13
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
14
|
+
};
|
|
15
|
+
var _MultichainApiClientWrapperTransport_instances, _MultichainApiClientWrapperTransport_walletCreateSession, _MultichainApiClientWrapperTransport_walletGetSession, _MultichainApiClientWrapperTransport_walletRevokeSession, _MultichainApiClientWrapperTransport_walletInvokeMethod;
|
|
16
|
+
import { providerErrors } from '@metamask/rpc-errors';
|
|
17
|
+
// uint32 (two's complement) max
|
|
18
|
+
// more conservative than Number.MAX_SAFE_INTEGER
|
|
19
|
+
const MAX = 4294967295;
|
|
20
|
+
let idCounter = Math.floor(Math.random() * MAX);
|
|
21
|
+
const getUniqueId = () => {
|
|
22
|
+
idCounter = (idCounter + 1) % MAX;
|
|
23
|
+
return idCounter;
|
|
24
|
+
};
|
|
25
|
+
export class MultichainApiClientWrapperTransport {
|
|
26
|
+
constructor(multichainSDK) {
|
|
27
|
+
_MultichainApiClientWrapperTransport_instances.add(this);
|
|
28
|
+
this.multichainSDK = multichainSDK;
|
|
29
|
+
this.requestId = getUniqueId();
|
|
30
|
+
this.notificationCallbacks = new Set();
|
|
31
|
+
}
|
|
32
|
+
isTransportDefined() {
|
|
33
|
+
try {
|
|
34
|
+
return Boolean(this.multichainSDK.transport);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
clearNotificationCallbacks() {
|
|
41
|
+
this.notificationCallbacks.clear();
|
|
42
|
+
}
|
|
43
|
+
notifyCallbacks(data) {
|
|
44
|
+
this.notificationCallbacks.forEach((callback) => {
|
|
45
|
+
callback(data);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
setupNotifcationListener() {
|
|
49
|
+
this.multichainSDK.transport.onNotification(this.notifyCallbacks.bind(this));
|
|
50
|
+
}
|
|
51
|
+
connect() {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
console.log('📚 connect');
|
|
54
|
+
// noop
|
|
55
|
+
return Promise.resolve();
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
disconnect() {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
return Promise.resolve();
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
isConnected() {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
request(params_1) {
|
|
67
|
+
return __awaiter(this, arguments, void 0, function* (params, _options = {}) {
|
|
68
|
+
const id = this.requestId++;
|
|
69
|
+
const requestPayload = Object.assign({ id, jsonrpc: '2.0' }, params);
|
|
70
|
+
switch (requestPayload.method) {
|
|
71
|
+
case 'wallet_createSession':
|
|
72
|
+
return __classPrivateFieldGet(this, _MultichainApiClientWrapperTransport_instances, "m", _MultichainApiClientWrapperTransport_walletCreateSession).call(this, requestPayload);
|
|
73
|
+
case 'wallet_getSession':
|
|
74
|
+
return __classPrivateFieldGet(this, _MultichainApiClientWrapperTransport_instances, "m", _MultichainApiClientWrapperTransport_walletGetSession).call(this, requestPayload);
|
|
75
|
+
case 'wallet_revokeSession':
|
|
76
|
+
return __classPrivateFieldGet(this, _MultichainApiClientWrapperTransport_instances, "m", _MultichainApiClientWrapperTransport_walletRevokeSession).call(this, requestPayload);
|
|
77
|
+
case 'wallet_invokeMethod':
|
|
78
|
+
return __classPrivateFieldGet(this, _MultichainApiClientWrapperTransport_instances, "m", _MultichainApiClientWrapperTransport_walletInvokeMethod).call(this, requestPayload);
|
|
79
|
+
default:
|
|
80
|
+
throw new Error(`Unsupported method: ${requestPayload.method}`);
|
|
81
|
+
}
|
|
82
|
+
throw new Error(`Unknown method: ${requestPayload.method}`);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
onNotification(callback) {
|
|
86
|
+
if (!this.isTransportDefined()) {
|
|
87
|
+
this.notificationCallbacks.add(callback);
|
|
88
|
+
return () => {
|
|
89
|
+
this.notificationCallbacks.delete(callback);
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
return this.multichainSDK.transport.onNotification(callback);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
_MultichainApiClientWrapperTransport_instances = new WeakSet(), _MultichainApiClientWrapperTransport_walletCreateSession = function _MultichainApiClientWrapperTransport_walletCreateSession(request) {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
console.log('📚 #walletCreateSession', request);
|
|
98
|
+
const createSessionParams = request.params;
|
|
99
|
+
const scopes = Object.keys(Object.assign(Object.assign({}, createSessionParams.optionalScopes), createSessionParams.requiredScopes));
|
|
100
|
+
const scopeAccounts = [];
|
|
101
|
+
scopes.forEach((scope) => {
|
|
102
|
+
var _a, _b, _c, _d;
|
|
103
|
+
const requiredScope = (_a = createSessionParams.requiredScopes) === null || _a === void 0 ? void 0 : _a[scope];
|
|
104
|
+
const optionalScope = (_b = createSessionParams.optionalScopes) === null || _b === void 0 ? void 0 : _b[scope];
|
|
105
|
+
if (requiredScope) {
|
|
106
|
+
scopeAccounts.push(...((_c = requiredScope.accounts) !== null && _c !== void 0 ? _c : []));
|
|
107
|
+
}
|
|
108
|
+
if (optionalScope) {
|
|
109
|
+
scopeAccounts.push(...((_d = optionalScope.accounts) !== null && _d !== void 0 ? _d : []));
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
const accounts = [...new Set(scopeAccounts)];
|
|
113
|
+
console.log('📚 SDK connect');
|
|
114
|
+
yield this.multichainSDK.connect(scopes, accounts, createSessionParams.sessionProperties);
|
|
115
|
+
console.log('📚 SDK connected');
|
|
116
|
+
return this.multichainSDK.transport.request({
|
|
117
|
+
method: 'wallet_getSession',
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
}, _MultichainApiClientWrapperTransport_walletGetSession = function _MultichainApiClientWrapperTransport_walletGetSession(request) {
|
|
121
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
122
|
+
if (!this.isTransportDefined()) {
|
|
123
|
+
return {
|
|
124
|
+
jsonrpc: '2.0',
|
|
125
|
+
id: request.id,
|
|
126
|
+
result: {
|
|
127
|
+
sessionScopes: {},
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
return this.multichainSDK.transport.request({
|
|
132
|
+
method: 'wallet_getSession',
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
}, _MultichainApiClientWrapperTransport_walletRevokeSession = function _MultichainApiClientWrapperTransport_walletRevokeSession(request) {
|
|
136
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
137
|
+
if (!this.isTransportDefined()) {
|
|
138
|
+
return { jsonrpc: '2.0', id: request.id, result: true };
|
|
139
|
+
}
|
|
140
|
+
try {
|
|
141
|
+
this.multichainSDK.disconnect();
|
|
142
|
+
return { jsonrpc: '2.0', id: request.id, result: true };
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
return { jsonrpc: '2.0', id: request.id, result: false };
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}, _MultichainApiClientWrapperTransport_walletInvokeMethod = function _MultichainApiClientWrapperTransport_walletInvokeMethod(request) {
|
|
149
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
150
|
+
if (!this.isTransportDefined()) {
|
|
151
|
+
return { error: providerErrors.unauthorized() };
|
|
152
|
+
}
|
|
153
|
+
const result = this.multichainSDK.invokeMethod(request.params);
|
|
154
|
+
return {
|
|
155
|
+
result,
|
|
156
|
+
};
|
|
157
|
+
});
|
|
158
|
+
};
|
|
159
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/multichain/transports/multichainApiClientWrapper/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Session, SessionRequest } from '@metamask/mobile-wallet-protocol-core';
|
|
2
2
|
import type { DappClient } from '@metamask/mobile-wallet-protocol-dapp-client';
|
|
3
|
-
import { type TransportRequest, type TransportResponse } from '@metamask/multichain-api-client';
|
|
3
|
+
import { SessionProperties, type TransportRequest, type TransportResponse } from '@metamask/multichain-api-client';
|
|
4
4
|
import type { CaipAccountId } from '@metamask/utils';
|
|
5
5
|
import { type ExtendedTransport, type Scope, type StoreAdapter } from '../../../domain';
|
|
6
6
|
type PendingRequests = {
|
|
@@ -32,6 +32,7 @@ export declare class MWPTransport implements ExtendedTransport {
|
|
|
32
32
|
constructor(dappClient: DappClient, kvstore: StoreAdapter, options?: {
|
|
33
33
|
requestTimeout: number;
|
|
34
34
|
connectionTimeout: number;
|
|
35
|
+
resumeTimeout: number;
|
|
35
36
|
});
|
|
36
37
|
private onWindowFocus;
|
|
37
38
|
private notifyCallbacks;
|
|
@@ -44,6 +45,7 @@ export declare class MWPTransport implements ExtendedTransport {
|
|
|
44
45
|
connect(options?: {
|
|
45
46
|
scopes: Scope[];
|
|
46
47
|
caipAccountIds: CaipAccountId[];
|
|
48
|
+
sessionProperties?: SessionProperties;
|
|
47
49
|
}): Promise<void>;
|
|
48
50
|
/**
|
|
49
51
|
* Disconnects from the Mobile Wallet Protocol
|
|
@@ -70,6 +72,7 @@ export declare class MWPTransport implements ExtendedTransport {
|
|
|
70
72
|
}): Promise<TResponse>;
|
|
71
73
|
onNotification(callback: (data: unknown) => void): () => void;
|
|
72
74
|
getActiveSession(): Promise<Session | undefined>;
|
|
75
|
+
private waitForWalletSessionIfNotCached;
|
|
73
76
|
}
|
|
74
77
|
export {};
|
|
75
78
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/multichain/transports/mwp/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACf,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,KAAK,EAEV,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/multichain/transports/mwp/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACf,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAEL,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,KAAK,EAEV,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AA4BzB,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,CAAC;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC5C,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;CACzB,CAAC;AAIF;;;GAGG;AACH,qBAAa,YAAa,YAAW,iBAAiB;IAwBlD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IAzBjB,OAAO,CAAC,OAAO,CAAK;IAEpB,OAAO,CAAC,iBAAiB,CAAsC;IAE/D,OAAO,CAAC,qBAAqB,CAAsC;IAEnE,OAAO,CAAC,qBAAqB,CAA6B;IAE1D,OAAO,CAAC,kBAAkB,CAA2B;IAErD,IAAI,eAAe,IAIkB,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAFhE;IAED,IAAI,eAAe,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EAEhE;IAED,IAAI,cAAc,+BAEjB;gBAGS,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAI1F;IAYH,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,aAAa;YAoFP,eAAe;IA0EvB,kBAAkB,CACtB,QAAQ,SAAS,gBAAgB,EACjC,SAAS,SAAS,iBAAiB,EACnC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAsClE,OAAO,CAAC,OAAO,CAAC,EAAE;QACtB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,cAAc,EAAE,aAAa,EAAE,CAAC;QAChC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC,GAAG,OAAO,CAAC,IAAI,CAAC;IA0HjB;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBjC;;;;OAIG;IACH,WAAW,IAAI,OAAO;IAKtB;;;;OAIG;YAGW,oBAAoB;YA0BpB,iBAAiB;YAqCjB,kBAAkB;IAuB1B,OAAO,CACX,QAAQ,SAAS,gBAAgB,EACjC,SAAS,SAAS,iBAAiB,EACnC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IA0CxE,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAOvD,gBAAgB,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;YAsBxC,+BAA+B;CA6B9C"}
|
|
@@ -15,6 +15,7 @@ import { MULTICHAIN_PROVIDER_STREAM_NAME } from '../constants';
|
|
|
15
15
|
const DEFAULT_REQUEST_TIMEOUT = 60 * 1000;
|
|
16
16
|
const CONNECTION_GRACE_PERIOD = 60 * 1000;
|
|
17
17
|
const DEFAULT_CONNECTION_TIMEOUT = DEFAULT_REQUEST_TIMEOUT + CONNECTION_GRACE_PERIOD;
|
|
18
|
+
const DEFAULT_RESUME_TIMEOUT = 10 * 1000;
|
|
18
19
|
const SESSION_STORE_KEY = 'cache_wallet_getSession';
|
|
19
20
|
const ACCOUNTS_STORE_KEY = 'cache_eth_accounts';
|
|
20
21
|
const CHAIN_STORE_KEY = 'cache_eth_chainId';
|
|
@@ -45,6 +46,7 @@ export class MWPTransport {
|
|
|
45
46
|
constructor(dappClient, kvstore, options = {
|
|
46
47
|
requestTimeout: DEFAULT_REQUEST_TIMEOUT,
|
|
47
48
|
connectionTimeout: DEFAULT_CONNECTION_TIMEOUT,
|
|
49
|
+
resumeTimeout: DEFAULT_RESUME_TIMEOUT,
|
|
48
50
|
}) {
|
|
49
51
|
this.dappClient = dappClient;
|
|
50
52
|
this.kvstore = kvstore;
|
|
@@ -107,6 +109,15 @@ export class MWPTransport {
|
|
|
107
109
|
'metamask_accountsChanged') {
|
|
108
110
|
this.kvstore.set(ACCOUNTS_STORE_KEY, JSON.stringify(message.data.params));
|
|
109
111
|
}
|
|
112
|
+
// Ensure session changes are always persisted to the store
|
|
113
|
+
if (message.data.method ===
|
|
114
|
+
'wallet_sessionChanged') {
|
|
115
|
+
const notification = message.data;
|
|
116
|
+
const response = {
|
|
117
|
+
result: notification.params,
|
|
118
|
+
};
|
|
119
|
+
this.kvstore.set(SESSION_STORE_KEY, JSON.stringify(response));
|
|
120
|
+
}
|
|
110
121
|
this.notifyCallbacks(message.data);
|
|
111
122
|
}
|
|
112
123
|
}
|
|
@@ -116,9 +127,11 @@ export class MWPTransport {
|
|
|
116
127
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
128
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
118
129
|
try {
|
|
130
|
+
yield this.waitForWalletSessionIfNotCached();
|
|
119
131
|
const sessionRequest = yield this.request({
|
|
120
132
|
method: 'wallet_getSession',
|
|
121
133
|
});
|
|
134
|
+
// TODO: verify if this branching logic can ever be hit
|
|
122
135
|
if (sessionRequest.error) {
|
|
123
136
|
return resumeReject(new Error(sessionRequest.error.message));
|
|
124
137
|
}
|
|
@@ -147,6 +160,7 @@ export class MWPTransport {
|
|
|
147
160
|
}
|
|
148
161
|
}
|
|
149
162
|
else if (!walletSession) {
|
|
163
|
+
// TODO: verify if this branching logic can ever be hit
|
|
150
164
|
const optionalScopes = addValidAccounts(getOptionalScopes((_f = options === null || options === void 0 ? void 0 : options.scopes) !== null && _f !== void 0 ? _f : []), getValidAccounts((_g = options === null || options === void 0 ? void 0 : options.caipAccountIds) !== null && _g !== void 0 ? _g : []));
|
|
151
165
|
const sessionRequest = { optionalScopes };
|
|
152
166
|
const response = yield this.request({
|
|
@@ -211,7 +225,7 @@ export class MWPTransport {
|
|
|
211
225
|
}
|
|
212
226
|
let timeout;
|
|
213
227
|
let initialConnectionMessageHandler;
|
|
214
|
-
const connectionPromise = new Promise((resolve, reject) => {
|
|
228
|
+
const connectionPromise = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
215
229
|
let connection;
|
|
216
230
|
if (session) {
|
|
217
231
|
connection = new Promise((resumeResolve, resumeReject) => {
|
|
@@ -233,6 +247,7 @@ export class MWPTransport {
|
|
|
233
247
|
const optionalScopes = addValidAccounts(getOptionalScopes((_a = options === null || options === void 0 ? void 0 : options.scopes) !== null && _a !== void 0 ? _a : []), getValidAccounts((_b = options === null || options === void 0 ? void 0 : options.caipAccountIds) !== null && _b !== void 0 ? _b : []));
|
|
234
248
|
const sessionRequest = {
|
|
235
249
|
optionalScopes,
|
|
250
|
+
sessionProperties: options === null || options === void 0 ? void 0 : options.sessionProperties,
|
|
236
251
|
};
|
|
237
252
|
const request = {
|
|
238
253
|
jsonrpc: '2.0',
|
|
@@ -281,7 +296,7 @@ export class MWPTransport {
|
|
|
281
296
|
reject(new TransportTimeoutError());
|
|
282
297
|
}, this.options.connectionTimeout);
|
|
283
298
|
connection.then(resolve).catch(reject);
|
|
284
|
-
});
|
|
299
|
+
}));
|
|
285
300
|
return connectionPromise
|
|
286
301
|
.catch((error) => {
|
|
287
302
|
throw error;
|
|
@@ -475,5 +490,42 @@ export class MWPTransport {
|
|
|
475
490
|
}
|
|
476
491
|
});
|
|
477
492
|
}
|
|
493
|
+
// This method checks if an existing CAIP session response is cached or waits for one
|
|
494
|
+
// to be received from the wallet if not cached. This is necessary because there is an edge
|
|
495
|
+
// case during the initial connection flow where after the user has accepted the permission approval
|
|
496
|
+
// and returned back to the dapp from the wallet, the dapp page may have gotten unloaded and refreshed.
|
|
497
|
+
// When it is unloaded and refreshed, it will try to resume the session by making a request for wallet_getSession
|
|
498
|
+
// which should resolve from cache, but because a race condition makes it possible for the response from the wallet
|
|
499
|
+
// for the initial wallet_createSession connection request to not have been handled and cached yet. This results
|
|
500
|
+
// in the wallet_getSession request never resolving unless we wait for it explicitly as done in this method.
|
|
501
|
+
waitForWalletSessionIfNotCached() {
|
|
502
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
503
|
+
const cachedWalletGetSessionResponse = yield this.kvstore.get(SESSION_STORE_KEY);
|
|
504
|
+
if (cachedWalletGetSessionResponse) {
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
507
|
+
let unsubscribe;
|
|
508
|
+
const responsePromise = new Promise((resolve) => {
|
|
509
|
+
unsubscribe = this.onNotification((message) => {
|
|
510
|
+
if (typeof message === 'object' && message !== null) {
|
|
511
|
+
if ('data' in message) {
|
|
512
|
+
const messagePayload = message.data;
|
|
513
|
+
if (messagePayload.method === 'wallet_getSession' || messagePayload.method === 'wallet_sessionChanged') {
|
|
514
|
+
unsubscribe();
|
|
515
|
+
resolve();
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
});
|
|
520
|
+
});
|
|
521
|
+
const timeoutPromise = new Promise((_resolve, reject) => {
|
|
522
|
+
setTimeout(() => {
|
|
523
|
+
unsubscribe();
|
|
524
|
+
reject(new TransportTimeoutError());
|
|
525
|
+
}, this.options.resumeTimeout);
|
|
526
|
+
});
|
|
527
|
+
return Promise.race([responsePromise, timeoutPromise]);
|
|
528
|
+
});
|
|
529
|
+
}
|
|
478
530
|
}
|
|
479
531
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/multichain/transports/mwp/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/multichain/transports/mwp/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type ConnectionRequest, type Modal, type OTPCode } from '../domain';
|
|
2
|
+
import type { AbstractOTPCodeModal } from './modals/base/AbstractOTPModal';
|
|
3
|
+
import type { FactoryModals } from './modals/types';
|
|
4
|
+
/**
|
|
5
|
+
* Preload function type for loading UI dependencies
|
|
6
|
+
*/
|
|
7
|
+
export type PreloadFn = () => Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Base ModalFactory class that accepts a preload function.
|
|
10
|
+
* Platform-specific implementations should extend this class.
|
|
11
|
+
*/
|
|
12
|
+
export declare abstract class BaseModalFactory<T extends FactoryModals = FactoryModals> {
|
|
13
|
+
protected readonly options: T;
|
|
14
|
+
modal: Modal<any>;
|
|
15
|
+
private readonly platform;
|
|
16
|
+
private successCallback;
|
|
17
|
+
private displayUriCallback?;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new modal factory instance.
|
|
20
|
+
*
|
|
21
|
+
* @param options - The modals configuration object
|
|
22
|
+
*/
|
|
23
|
+
constructor(options: T);
|
|
24
|
+
/**
|
|
25
|
+
* Platform-specific preload function to be implemented by subclasses.
|
|
26
|
+
*/
|
|
27
|
+
protected abstract preload(): Promise<void>;
|
|
28
|
+
private validateModals;
|
|
29
|
+
unload(error?: Error): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Determines if the current platform is a mobile native environment.
|
|
32
|
+
* Currently only includes React Native.
|
|
33
|
+
*/
|
|
34
|
+
get isMobile(): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Determines if the current platform is a Node.js environment.
|
|
37
|
+
* Used for server-side or non-browser environments.
|
|
38
|
+
*/
|
|
39
|
+
get isNode(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Determines if the current platform is a web environment.
|
|
42
|
+
* Includes desktop web, MetaMask mobile webview, and mobile web.
|
|
43
|
+
*/
|
|
44
|
+
get isWeb(): boolean;
|
|
45
|
+
private getContainer;
|
|
46
|
+
private getMountedContainer;
|
|
47
|
+
createConnectionDeeplink(connectionRequest?: ConnectionRequest): string;
|
|
48
|
+
createConnectionUniversalLink(connectionRequest?: ConnectionRequest): string;
|
|
49
|
+
private onCloseModal;
|
|
50
|
+
private onStartDesktopOnboarding;
|
|
51
|
+
renderInstallModal(showInstallModal: boolean, createConnectionRequest: () => Promise<ConnectionRequest>, successCallback: (error?: Error) => Promise<void>, onDisplayUri?: (uri: string) => void): Promise<void>;
|
|
52
|
+
renderOTPCodeModal(createOTPCode: () => Promise<OTPCode>, successCallback: (error?: Error) => Promise<void>, updateOTPCode: (otpCode: OTPCode, modal: AbstractOTPCodeModal) => void): Promise<void>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=ModalFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalFactory.d.ts","sourceRoot":"","sources":["../../../src/ui/ModalFactory.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,iBAAiB,EAGtB,KAAK,KAAK,EACV,KAAK,OAAO,EAEb,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,gBAAgB,CAAC;AAGhE;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5C;;;GAGG;AACH,8BAAsB,gBAAgB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAchE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAblC,KAAK,EAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAE5D,OAAO,CAAC,eAAe,CAAoC;IAE3D,OAAO,CAAC,kBAAkB,CAAC,CAAwB;IAEnD;;;;OAIG;gBAC4B,OAAO,EAAE,CAAC;IAIzC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3C,OAAO,CAAC,cAAc;IAUhB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK;IAK1B;;;OAGG;IACH,IAAI,QAAQ,YAEX;IAED;;;OAGG;IACH,IAAI,MAAM,YAET;IAED;;;OAGG;IACH,IAAI,KAAK,YAMR;IAED,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,mBAAmB;IAW3B,wBAAwB,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IAU9D,6BAA6B,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;YAUrD,YAAY;IAM1B,OAAO,CAAC,wBAAwB;IAInB,kBAAkB,CAC7B,gBAAgB,EAAE,OAAO,EACzB,uBAAuB,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,EACzD,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,EACjD,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;IAoCzB,kBAAkB,CAC7B,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EACrC,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,EACjD,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,KAAK,IAAI;CAqBzE"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
/* eslint-disable @typescript-eslint/no-shadow */
|
|
11
|
+
/* eslint-disable @typescript-eslint/no-misused-promises */
|
|
12
|
+
/* eslint-disable no-restricted-globals */
|
|
13
|
+
/* eslint-disable jsdoc/require-returns */
|
|
14
|
+
/* eslint-disable @typescript-eslint/parameter-properties */
|
|
15
|
+
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
16
|
+
/* eslint-disable no-restricted-syntax */
|
|
17
|
+
/* eslint-disable promise/no-return-wrap */
|
|
18
|
+
/* eslint-disable require-atomic-updates */
|
|
19
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
20
|
+
import MetaMaskOnboarding from '@metamask/onboarding';
|
|
21
|
+
import { METAMASK_CONNECT_BASE_URL, METAMASK_DEEPLINK_BASE } from '../config';
|
|
22
|
+
import { getPlatformType, getVersion, PlatformType, } from '../domain';
|
|
23
|
+
import { compressString } from '../multichain/utils';
|
|
24
|
+
/**
|
|
25
|
+
* Base ModalFactory class that accepts a preload function.
|
|
26
|
+
* Platform-specific implementations should extend this class.
|
|
27
|
+
*/
|
|
28
|
+
export class BaseModalFactory {
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new modal factory instance.
|
|
31
|
+
*
|
|
32
|
+
* @param options - The modals configuration object
|
|
33
|
+
*/
|
|
34
|
+
constructor(options) {
|
|
35
|
+
this.options = options;
|
|
36
|
+
this.platform = getPlatformType();
|
|
37
|
+
this.validateModals();
|
|
38
|
+
}
|
|
39
|
+
validateModals() {
|
|
40
|
+
const requiredModals = ['InstallModal', 'OTPCodeModal'];
|
|
41
|
+
const missingModals = requiredModals.filter((modal) => !this.options[modal]);
|
|
42
|
+
if (missingModals.length > 0) {
|
|
43
|
+
throw new Error(`Missing required modals: ${missingModals.join(', ')}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
unload(error) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
var _a, _b;
|
|
49
|
+
(_a = this.modal) === null || _a === void 0 ? void 0 : _a.unmount();
|
|
50
|
+
yield ((_b = this.successCallback) === null || _b === void 0 ? void 0 : _b.call(this, error));
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Determines if the current platform is a mobile native environment.
|
|
55
|
+
* Currently only includes React Native.
|
|
56
|
+
*/
|
|
57
|
+
get isMobile() {
|
|
58
|
+
return this.platform === PlatformType.ReactNative;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Determines if the current platform is a Node.js environment.
|
|
62
|
+
* Used for server-side or non-browser environments.
|
|
63
|
+
*/
|
|
64
|
+
get isNode() {
|
|
65
|
+
return this.platform === PlatformType.NonBrowser;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Determines if the current platform is a web environment.
|
|
69
|
+
* Includes desktop web, MetaMask mobile webview, and mobile web.
|
|
70
|
+
*/
|
|
71
|
+
get isWeb() {
|
|
72
|
+
return (this.platform === PlatformType.DesktopWeb ||
|
|
73
|
+
this.platform === PlatformType.MetaMaskMobileWebview ||
|
|
74
|
+
this.platform === PlatformType.MobileWeb);
|
|
75
|
+
}
|
|
76
|
+
getContainer() {
|
|
77
|
+
return typeof document === 'undefined'
|
|
78
|
+
? undefined
|
|
79
|
+
: document.createElement('div');
|
|
80
|
+
}
|
|
81
|
+
getMountedContainer() {
|
|
82
|
+
if (typeof document === 'undefined') {
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
const container = this.getContainer();
|
|
86
|
+
if (container) {
|
|
87
|
+
document.body.appendChild(container);
|
|
88
|
+
}
|
|
89
|
+
return container;
|
|
90
|
+
}
|
|
91
|
+
createConnectionDeeplink(connectionRequest) {
|
|
92
|
+
if (!connectionRequest) {
|
|
93
|
+
throw new Error('createConnectionDeeplink can only be called with a connection request');
|
|
94
|
+
}
|
|
95
|
+
const json = JSON.stringify(connectionRequest);
|
|
96
|
+
const compressed = compressString(json);
|
|
97
|
+
const urlEncoded = encodeURIComponent(compressed);
|
|
98
|
+
return `${METAMASK_DEEPLINK_BASE}/mwp?p=${urlEncoded}&c=1`;
|
|
99
|
+
}
|
|
100
|
+
createConnectionUniversalLink(connectionRequest) {
|
|
101
|
+
if (!connectionRequest) {
|
|
102
|
+
return `${METAMASK_CONNECT_BASE_URL}`;
|
|
103
|
+
}
|
|
104
|
+
const json = JSON.stringify(connectionRequest);
|
|
105
|
+
const compressed = compressString(json);
|
|
106
|
+
const urlEncoded = encodeURIComponent(compressed);
|
|
107
|
+
return `${METAMASK_CONNECT_BASE_URL}/mwp?p=${urlEncoded}&c=1`;
|
|
108
|
+
}
|
|
109
|
+
onCloseModal() {
|
|
110
|
+
return __awaiter(this, arguments, void 0, function* (shouldTerminate = true) {
|
|
111
|
+
return this.unload(shouldTerminate ? new Error('User closed modal') : undefined);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
onStartDesktopOnboarding() {
|
|
115
|
+
new MetaMaskOnboarding().startOnboarding();
|
|
116
|
+
}
|
|
117
|
+
renderInstallModal(showInstallModal, createConnectionRequest, successCallback, onDisplayUri) {
|
|
118
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
+
var _a, _b;
|
|
120
|
+
(_a = this.modal) === null || _a === void 0 ? void 0 : _a.unmount();
|
|
121
|
+
yield this.preload();
|
|
122
|
+
this.successCallback = successCallback;
|
|
123
|
+
this.displayUriCallback = onDisplayUri;
|
|
124
|
+
const parentElement = this.getMountedContainer();
|
|
125
|
+
const connectionRequest = yield createConnectionRequest();
|
|
126
|
+
const qrCodeLink = this.createConnectionDeeplink(connectionRequest);
|
|
127
|
+
(_b = this.displayUriCallback) === null || _b === void 0 ? void 0 : _b.call(this, qrCodeLink);
|
|
128
|
+
const modal = new this.options.InstallModal({
|
|
129
|
+
expiresIn: (connectionRequest.sessionRequest.expiresAt - Date.now()) / 1000,
|
|
130
|
+
connectionRequest,
|
|
131
|
+
parentElement,
|
|
132
|
+
showInstallModal,
|
|
133
|
+
link: qrCodeLink,
|
|
134
|
+
sdkVersion: getVersion(),
|
|
135
|
+
generateQRCode: (request) => __awaiter(this, void 0, void 0, function* () {
|
|
136
|
+
var _a;
|
|
137
|
+
const newLink = this.createConnectionDeeplink(request);
|
|
138
|
+
(_a = this.displayUriCallback) === null || _a === void 0 ? void 0 : _a.call(this, newLink);
|
|
139
|
+
return newLink;
|
|
140
|
+
}),
|
|
141
|
+
onClose: this.onCloseModal.bind(this),
|
|
142
|
+
startDesktopOnboarding: this.onStartDesktopOnboarding.bind(this),
|
|
143
|
+
createConnectionRequest,
|
|
144
|
+
onDisplayUri: this.displayUriCallback,
|
|
145
|
+
});
|
|
146
|
+
this.modal = modal;
|
|
147
|
+
modal.mount();
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
renderOTPCodeModal(createOTPCode, successCallback, updateOTPCode) {
|
|
151
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
152
|
+
var _a;
|
|
153
|
+
(_a = this.modal) === null || _a === void 0 ? void 0 : _a.unmount();
|
|
154
|
+
yield this.preload();
|
|
155
|
+
this.successCallback = successCallback;
|
|
156
|
+
const container = this.getMountedContainer();
|
|
157
|
+
const otpCode = yield createOTPCode();
|
|
158
|
+
const modal = new this.options.OTPCodeModal({
|
|
159
|
+
parentElement: container,
|
|
160
|
+
sdkVersion: getVersion(),
|
|
161
|
+
otpCode,
|
|
162
|
+
onClose: this.onCloseModal.bind(this),
|
|
163
|
+
createOTPCode,
|
|
164
|
+
updateOTPCode: (otpCode) => updateOTPCode(otpCode, modal),
|
|
165
|
+
});
|
|
166
|
+
this.modal = modal;
|
|
167
|
+
modal.mount();
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=ModalFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalFactory.js","sourceRoot":"","sources":["../../../src/ui/ModalFactory.ts"],"names":[],"mappings":"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"}
|