@multiversx/sdk-web-wallet-cross-window-provider 3.1.1 → 3.1.3
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/out/CrossWindowProvider/CrossWindowProvider.d.ts +1 -4
- package/out/CrossWindowProvider/CrossWindowProvider.js +1 -77
- package/out/CrossWindowProvider/CrossWindowProvider.js.map +1 -1
- package/out/WindowManager/WindowManager.d.ts +4 -1
- package/out/WindowManager/WindowManager.js +89 -11
- package/out/WindowManager/WindowManager.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,17 +12,15 @@ export declare class CrossWindowProvider {
|
|
|
12
12
|
private accessToken;
|
|
13
13
|
protected initialized: boolean;
|
|
14
14
|
protected windowManager: WindowManager;
|
|
15
|
-
protected _shouldShowConsentPopup: boolean;
|
|
16
15
|
protected static _instance: CrossWindowProvider | null;
|
|
17
16
|
constructor();
|
|
18
|
-
setShouldShowConsentPopup(shouldShow: boolean): void;
|
|
19
17
|
protected ensureConnected(): void;
|
|
20
18
|
protected disconnect(): void;
|
|
21
19
|
static getInstance(): CrossWindowProvider;
|
|
22
20
|
getWindowManager(): WindowManager;
|
|
23
21
|
setAddress(address: string): CrossWindowProvider;
|
|
24
22
|
setWalletUrl(url: string): CrossWindowProvider;
|
|
25
|
-
setWalletWindow(): Promise<
|
|
23
|
+
setWalletWindow(): Promise<boolean>;
|
|
26
24
|
init(): Promise<boolean>;
|
|
27
25
|
onDestroy(): boolean;
|
|
28
26
|
login(options?: {
|
|
@@ -40,5 +38,4 @@ export declare class CrossWindowProvider {
|
|
|
40
38
|
guardTransactions(transactions: Transaction[]): Promise<Transaction[]>;
|
|
41
39
|
signMessage(messageToSign: Message): Promise<Message>;
|
|
42
40
|
cancelAction(): Promise<import("../types").PostMessageReturnType<WindowProviderRequestEnums.cancelAction>> | undefined;
|
|
43
|
-
openPopupConsent(): Promise<boolean>;
|
|
44
41
|
}
|
|
@@ -1,27 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -34,22 +11,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
34
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
12
|
exports.CrossWindowProvider = void 0;
|
|
36
13
|
const sdk_core_1 = require("@multiversx/sdk-core");
|
|
37
|
-
const constants_1 = require("../constants");
|
|
38
14
|
const enums_1 = require("../enums");
|
|
39
15
|
const errors_1 = require("../errors");
|
|
40
16
|
const WindowManager_1 = require("../WindowManager");
|
|
41
|
-
const constants_2 = require("./PopupConsent/constants");
|
|
42
17
|
class CrossWindowProvider {
|
|
43
18
|
constructor() {
|
|
44
19
|
this.account = { address: '' };
|
|
45
20
|
this.accessToken = undefined;
|
|
46
21
|
this.initialized = false;
|
|
47
|
-
this._shouldShowConsentPopup = false;
|
|
48
22
|
this.windowManager = new WindowManager_1.WindowManager();
|
|
49
23
|
}
|
|
50
|
-
setShouldShowConsentPopup(shouldShow) {
|
|
51
|
-
this._shouldShowConsentPopup = shouldShow;
|
|
52
|
-
}
|
|
53
24
|
ensureConnected() {
|
|
54
25
|
if (!this.account.address) {
|
|
55
26
|
throw new errors_1.ErrAccountNotConnected();
|
|
@@ -106,10 +77,6 @@ class CrossWindowProvider {
|
|
|
106
77
|
};
|
|
107
78
|
}
|
|
108
79
|
this.accessToken = options.token;
|
|
109
|
-
const popupConsentResponse = yield this.openPopupConsent();
|
|
110
|
-
if (!popupConsentResponse) {
|
|
111
|
-
throw new errors_1.ErrCouldNotLogin();
|
|
112
|
-
}
|
|
113
80
|
const { payload: { data, error } } = yield this.windowManager.postMessage({
|
|
114
81
|
type: enums_1.WindowProviderRequestEnums.loginRequest,
|
|
115
82
|
payload: {
|
|
@@ -141,8 +108,7 @@ class CrossWindowProvider {
|
|
|
141
108
|
}
|
|
142
109
|
logout() {
|
|
143
110
|
return __awaiter(this, void 0, void 0, function* () {
|
|
144
|
-
|
|
145
|
-
if (!this.initialized || !popupConsentResponse) {
|
|
111
|
+
if (!this.initialized) {
|
|
146
112
|
throw new errors_1.ErrProviderNotInitialized();
|
|
147
113
|
}
|
|
148
114
|
this.ensureConnected();
|
|
@@ -185,10 +151,6 @@ class CrossWindowProvider {
|
|
|
185
151
|
signTransactions(transactions) {
|
|
186
152
|
return __awaiter(this, void 0, void 0, function* () {
|
|
187
153
|
this.ensureConnected();
|
|
188
|
-
const popupConsentResponse = yield this.openPopupConsent();
|
|
189
|
-
if (!popupConsentResponse) {
|
|
190
|
-
throw new errors_1.ErrTransactionCancelled();
|
|
191
|
-
}
|
|
192
154
|
const { type, payload: { data: signedPlainTransactions, error } } = yield this.windowManager.postMessage({
|
|
193
155
|
type: enums_1.WindowProviderRequestEnums.signTransactionsRequest,
|
|
194
156
|
payload: transactions.map((tx) => tx.toPlainObject())
|
|
@@ -209,10 +171,6 @@ class CrossWindowProvider {
|
|
|
209
171
|
guardTransactions(transactions) {
|
|
210
172
|
return __awaiter(this, void 0, void 0, function* () {
|
|
211
173
|
this.ensureConnected();
|
|
212
|
-
const popupConsentResponse = yield this.openPopupConsent();
|
|
213
|
-
if (!popupConsentResponse) {
|
|
214
|
-
throw new errors_1.ErrTransactionCancelled();
|
|
215
|
-
}
|
|
216
174
|
const { type, payload: { data: signedPlainTransactions, error } } = yield this.windowManager.postMessage({
|
|
217
175
|
type: enums_1.WindowProviderRequestEnums.guardTransactionsRequest,
|
|
218
176
|
payload: transactions.map((tx) => tx.toPlainObject())
|
|
@@ -234,10 +192,6 @@ class CrossWindowProvider {
|
|
|
234
192
|
var _a;
|
|
235
193
|
return __awaiter(this, void 0, void 0, function* () {
|
|
236
194
|
this.ensureConnected();
|
|
237
|
-
const popupConsentResponse = yield this.openPopupConsent();
|
|
238
|
-
if (!popupConsentResponse) {
|
|
239
|
-
throw new errors_1.ErrCouldNotSignMessage();
|
|
240
|
-
}
|
|
241
195
|
const { payload: { data, error } } = yield this.windowManager.postMessage({
|
|
242
196
|
type: enums_1.WindowProviderRequestEnums.signMessageRequest,
|
|
243
197
|
payload: {
|
|
@@ -271,36 +225,6 @@ class CrossWindowProvider {
|
|
|
271
225
|
payload: undefined
|
|
272
226
|
});
|
|
273
227
|
}
|
|
274
|
-
openPopupConsent() {
|
|
275
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
276
|
-
if (!this._shouldShowConsentPopup ||
|
|
277
|
-
typeof document === 'undefined' ||
|
|
278
|
-
typeof window === 'undefined') {
|
|
279
|
-
return true;
|
|
280
|
-
}
|
|
281
|
-
const module = yield Promise.resolve().then(() => __importStar(require('./PopupConsent/PopupConsent')));
|
|
282
|
-
const PopupConsent = module.PopupConsent;
|
|
283
|
-
const customElements = constants_1.safeWindow.customElements;
|
|
284
|
-
if (customElements && !customElements.get(constants_2.confirmationDialogTag)) {
|
|
285
|
-
customElements.define(constants_2.confirmationDialogTag, PopupConsent);
|
|
286
|
-
}
|
|
287
|
-
const popup = document.createElement(constants_2.confirmationDialogTag);
|
|
288
|
-
popup.walletUrl = this.windowManager.walletUrl;
|
|
289
|
-
document.body.appendChild(popup);
|
|
290
|
-
const popupConsentResponse = yield new Promise((resolve) => {
|
|
291
|
-
popup.onConfirm = () => {
|
|
292
|
-
resolve(true);
|
|
293
|
-
document.body.removeChild(popup);
|
|
294
|
-
};
|
|
295
|
-
popup.onCancel = () => {
|
|
296
|
-
resolve(false);
|
|
297
|
-
document.body.removeChild(popup);
|
|
298
|
-
};
|
|
299
|
-
});
|
|
300
|
-
this._shouldShowConsentPopup = false;
|
|
301
|
-
return popupConsentResponse;
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
228
|
}
|
|
305
229
|
CrossWindowProvider._instance = null;
|
|
306
230
|
exports.CrossWindowProvider = CrossWindowProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrossWindowProvider.js","sourceRoot":"","sources":["../../src/CrossWindowProvider/CrossWindowProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CrossWindowProvider.js","sourceRoot":"","sources":["../../src/CrossWindowProvider/CrossWindowProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@ export declare class WindowManager {
|
|
|
5
5
|
private _walletUrl;
|
|
6
6
|
protected initialized: boolean;
|
|
7
7
|
walletWindow: Window | null;
|
|
8
|
+
isPopupBlocked: boolean;
|
|
9
|
+
private _isLoggingOut;
|
|
8
10
|
private activeListeners;
|
|
9
11
|
private static readonly SESSION_STORAGE_KEY;
|
|
10
12
|
constructor();
|
|
@@ -16,6 +18,7 @@ export declare class WindowManager {
|
|
|
16
18
|
init(): Promise<boolean>;
|
|
17
19
|
onDestroy(): boolean;
|
|
18
20
|
isWalletOpened(type?: WindowProviderRequestEnums): boolean;
|
|
21
|
+
openPopupConsent(): Promise<boolean>;
|
|
19
22
|
handshake(type: WindowProviderRequestEnums): Promise<boolean>;
|
|
20
23
|
private addHandshakeChangeListener;
|
|
21
24
|
listenOnce<T extends WindowProviderResponseEnums>(action: T): Promise<{
|
|
@@ -26,5 +29,5 @@ export declare class WindowManager {
|
|
|
26
29
|
isInitialized(): boolean;
|
|
27
30
|
postMessage<T extends WindowProviderRequestEnums>({ type, payload }: PostMessageParamsType<T>): Promise<PostMessageReturnType<T>>;
|
|
28
31
|
closeWalletWindow(): void;
|
|
29
|
-
setWalletWindow(): Promise<
|
|
32
|
+
setWalletWindow(): Promise<boolean>;
|
|
30
33
|
}
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -11,6 +34,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
35
|
exports.WindowManager = void 0;
|
|
13
36
|
const constants_1 = require("../constants");
|
|
37
|
+
const constants_2 = require("../CrossWindowProvider/PopupConsent/constants");
|
|
14
38
|
const enums_1 = require("../enums");
|
|
15
39
|
const errors_1 = require("../errors");
|
|
16
40
|
class WindowManager {
|
|
@@ -20,6 +44,8 @@ class WindowManager {
|
|
|
20
44
|
this._walletUrl = '';
|
|
21
45
|
this.initialized = false;
|
|
22
46
|
this.walletWindow = null;
|
|
47
|
+
this.isPopupBlocked = false;
|
|
48
|
+
this._isLoggingOut = false;
|
|
23
49
|
this.activeListeners = new Map();
|
|
24
50
|
(_a = constants_1.safeWindow.addEventListener) === null || _a === void 0 ? void 0 : _a.call(constants_1.safeWindow, 'beforeunload', () => {
|
|
25
51
|
this.closeWalletWindow();
|
|
@@ -78,6 +104,35 @@ class WindowManager {
|
|
|
78
104
|
return (type === enums_1.WindowProviderRequestEnums.cancelAction &&
|
|
79
105
|
Boolean(this.walletWindow));
|
|
80
106
|
}
|
|
107
|
+
openPopupConsent() {
|
|
108
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
109
|
+
if (typeof document === 'undefined' ||
|
|
110
|
+
typeof window === 'undefined' ||
|
|
111
|
+
!this.isPopupBlocked) {
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
const module = yield Promise.resolve().then(() => __importStar(require('../CrossWindowProvider/PopupConsent/PopupConsent')));
|
|
115
|
+
const PopupConsent = module.PopupConsent;
|
|
116
|
+
const customElements = constants_1.safeWindow.customElements;
|
|
117
|
+
if (customElements && !customElements.get(constants_2.confirmationDialogTag)) {
|
|
118
|
+
customElements.define(constants_2.confirmationDialogTag, PopupConsent);
|
|
119
|
+
}
|
|
120
|
+
const popup = document.createElement(constants_2.confirmationDialogTag);
|
|
121
|
+
popup.walletUrl = this.walletUrl;
|
|
122
|
+
document.body.appendChild(popup);
|
|
123
|
+
const popupConsentResponse = yield new Promise((resolve) => {
|
|
124
|
+
popup.onConfirm = () => {
|
|
125
|
+
resolve(true);
|
|
126
|
+
document.body.removeChild(popup);
|
|
127
|
+
};
|
|
128
|
+
popup.onCancel = () => {
|
|
129
|
+
resolve(false);
|
|
130
|
+
document.body.removeChild(popup);
|
|
131
|
+
};
|
|
132
|
+
});
|
|
133
|
+
return popupConsentResponse;
|
|
134
|
+
});
|
|
135
|
+
}
|
|
81
136
|
handshake(type) {
|
|
82
137
|
var _a;
|
|
83
138
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -86,7 +141,13 @@ class WindowManager {
|
|
|
86
141
|
return true;
|
|
87
142
|
}
|
|
88
143
|
this.closeWalletWindow();
|
|
89
|
-
yield this.setWalletWindow();
|
|
144
|
+
const isWindowInitialized = yield this.setWalletWindow();
|
|
145
|
+
if (!isWindowInitialized) {
|
|
146
|
+
const popupConsentResponse = yield this.openPopupConsent();
|
|
147
|
+
if (!popupConsentResponse) {
|
|
148
|
+
throw new errors_1.ErrCouldNotLogin();
|
|
149
|
+
}
|
|
150
|
+
}
|
|
90
151
|
const { payload } = yield this.listenOnce(enums_1.WindowProviderResponseEnums.handshakeResponse);
|
|
91
152
|
if (!payload) {
|
|
92
153
|
throw new errors_1.ErrCannotEstablishHandshake();
|
|
@@ -140,8 +201,13 @@ class WindowManager {
|
|
|
140
201
|
}
|
|
141
202
|
listenOnce(action) {
|
|
142
203
|
return __awaiter(this, void 0, void 0, function* () {
|
|
204
|
+
// If the wallet window was previously blocked (e.g., by a popup blocker),
|
|
205
|
+
// reinitialize the connection by opening the wallet window again.
|
|
143
206
|
if (!this.walletWindow) {
|
|
144
|
-
|
|
207
|
+
const isWindowInitialized = yield this.setWalletWindow();
|
|
208
|
+
if (!isWindowInitialized) {
|
|
209
|
+
throw new errors_1.ErrProviderNotInstantiated();
|
|
210
|
+
}
|
|
145
211
|
}
|
|
146
212
|
return new Promise((resolve) => {
|
|
147
213
|
const walletUrl = this.walletUrl;
|
|
@@ -171,18 +237,27 @@ class WindowManager {
|
|
|
171
237
|
}
|
|
172
238
|
closeConnection() {
|
|
173
239
|
return __awaiter(this, void 0, void 0, function* () {
|
|
240
|
+
if (this._isLoggingOut) {
|
|
241
|
+
console.warn('Logout already in progress');
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
174
244
|
if (!this.initialized) {
|
|
175
245
|
throw new errors_1.ErrProviderNotInitialized();
|
|
176
246
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
247
|
+
this._isLoggingOut = true;
|
|
248
|
+
try {
|
|
249
|
+
yield this.postMessage({
|
|
250
|
+
type: enums_1.WindowProviderRequestEnums.logoutRequest,
|
|
251
|
+
payload: undefined
|
|
252
|
+
});
|
|
253
|
+
this._session = Date.now().toString();
|
|
254
|
+
this._clearSessionFromStorage();
|
|
255
|
+
this.initialized = false;
|
|
256
|
+
return true;
|
|
257
|
+
}
|
|
258
|
+
finally {
|
|
259
|
+
this._isLoggingOut = false;
|
|
260
|
+
}
|
|
186
261
|
});
|
|
187
262
|
}
|
|
188
263
|
isInitialized() {
|
|
@@ -210,6 +285,9 @@ class WindowManager {
|
|
|
210
285
|
return __awaiter(this, void 0, void 0, function* () {
|
|
211
286
|
this.walletWindow =
|
|
212
287
|
(_b = (_a = constants_1.safeWindow.open) === null || _a === void 0 ? void 0 : _a.call(constants_1.safeWindow, this.walletUrl, this.walletUrl)) !== null && _b !== void 0 ? _b : null;
|
|
288
|
+
const isWindowInitialized = Boolean(this.walletWindow);
|
|
289
|
+
this.isPopupBlocked = !isWindowInitialized;
|
|
290
|
+
return isWindowInitialized;
|
|
213
291
|
});
|
|
214
292
|
}
|
|
215
293
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WindowManager.js","sourceRoot":"","sources":["../../src/WindowManager/WindowManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WindowManager.js","sourceRoot":"","sources":["../../src/WindowManager/WindowManager.ts"],"names":[],"mappings":"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"}
|