@multiversx/sdk-web-wallet-cross-window-provider 0.0.4 → 0.0.6

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.
@@ -0,0 +1,26 @@
1
+ import { CrossWindowProviderRequestEnums, CrossWindowProviderResponseEnums, ReplyWithPostMessageType, ResponseTypeMap } from './types';
2
+ export declare class WindowManager {
3
+ private walletUrl;
4
+ private initialized;
5
+ private static _instance;
6
+ walletWindow: Window | null;
7
+ constructor();
8
+ static getInstance(): WindowManager;
9
+ setWalletUrl(url: string): WindowManager;
10
+ init(): Promise<boolean>;
11
+ handshake(): Promise<boolean>;
12
+ private addHandshakeChangeListener;
13
+ listenOnce<T extends CrossWindowProviderResponseEnums>(action: T): Promise<{
14
+ type: T;
15
+ payload: ReplyWithPostMessageType<T>['payload'];
16
+ }>;
17
+ closeConnection(): Promise<boolean>;
18
+ isInitialized(): boolean;
19
+ postMessage<T extends CrossWindowProviderRequestEnums>({ type, payload }: {
20
+ type: T;
21
+ payload: string;
22
+ }): Promise<{
23
+ type: ResponseTypeMap[T] | CrossWindowProviderResponseEnums.cancelResponse;
24
+ payload: ReplyWithPostMessageType<ResponseTypeMap[T]>['payload'];
25
+ }>;
26
+ }
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.WindowManager = void 0;
13
+ const constants_1 = require("./constants");
14
+ const errors_1 = require("./errors");
15
+ const types_1 = require("./types");
16
+ class WindowManager {
17
+ constructor() {
18
+ this.walletUrl = '';
19
+ this.initialized = false;
20
+ this.walletWindow = null;
21
+ window.addEventListener('beforeunload', () => {
22
+ var _a;
23
+ (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.close();
24
+ });
25
+ window.name = window.name = constants_1.DAPP_WINDOW_NAME;
26
+ WindowManager._instance = this; // TODO: remove singleton
27
+ }
28
+ static getInstance() {
29
+ return WindowManager._instance;
30
+ }
31
+ setWalletUrl(url) {
32
+ this.walletUrl = url;
33
+ return WindowManager._instance;
34
+ }
35
+ init() {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ window.name = constants_1.DAPP_WINDOW_NAME;
38
+ this.initialized = true;
39
+ return this.initialized;
40
+ });
41
+ }
42
+ handshake() {
43
+ var _a;
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.close();
46
+ this.walletWindow = window.open(this.walletUrl, this.walletUrl);
47
+ const { payload } = yield this.listenOnce(types_1.CrossWindowProviderResponseEnums.handshakeResponse);
48
+ if (!payload) {
49
+ throw new errors_1.ErrCannotEstablishHandshake();
50
+ }
51
+ this.addHandshakeChangeListener();
52
+ return true;
53
+ });
54
+ }
55
+ addHandshakeChangeListener() {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ const walletUrl = this.walletUrl;
58
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
59
+ const self = this;
60
+ window.addEventListener('message', function eventHandler(event) {
61
+ var _a;
62
+ try {
63
+ const { type, payload } = event.data;
64
+ const isWalletEvent = event.origin === new URL(walletUrl).origin;
65
+ if (isWalletEvent &&
66
+ type === types_1.CrossWindowProviderResponseEnums.handshakeResponse) {
67
+ if (payload === false) {
68
+ (_a = self.walletWindow) === null || _a === void 0 ? void 0 : _a.close();
69
+ self.walletWindow = null;
70
+ window.removeEventListener('message', eventHandler);
71
+ }
72
+ }
73
+ }
74
+ catch (_b) { }
75
+ });
76
+ });
77
+ }
78
+ listenOnce(action) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ if (!this.walletWindow) {
81
+ throw new errors_1.ErrWalletWindowNotInstantiated();
82
+ }
83
+ return yield new Promise((resolve) => {
84
+ const walletUrl = this.walletUrl;
85
+ window.addEventListener('message', function eventHandler(event) {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ const { type, payload } = event.data;
88
+ const isWalletEvent = event.origin === new URL(walletUrl).origin;
89
+ const isCurrentAction = action === type ||
90
+ type === types_1.CrossWindowProviderResponseEnums.cancelResponse; // TODO: check if this is needed
91
+ if (!isCurrentAction) {
92
+ return;
93
+ }
94
+ if (isWalletEvent) {
95
+ window.removeEventListener('message', eventHandler);
96
+ resolve({ type, payload });
97
+ }
98
+ });
99
+ });
100
+ });
101
+ });
102
+ }
103
+ closeConnection() {
104
+ var _a;
105
+ return __awaiter(this, void 0, void 0, function* () {
106
+ if (!this.initialized) {
107
+ throw new errors_1.ErrProviderNotInitialized();
108
+ }
109
+ yield this.handshake();
110
+ (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.close();
111
+ return true;
112
+ });
113
+ }
114
+ isInitialized() {
115
+ return this.initialized;
116
+ }
117
+ postMessage({ type, payload }) {
118
+ var _a, _b;
119
+ return __awaiter(this, void 0, void 0, function* () {
120
+ yield this.handshake();
121
+ (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.postMessage({
122
+ type,
123
+ payload
124
+ }, this.walletUrl);
125
+ const data = yield this.listenOnce(constants_1.responseTypeMap[type]);
126
+ (_b = this.walletWindow) === null || _b === void 0 ? void 0 : _b.close();
127
+ return data;
128
+ });
129
+ }
130
+ }
131
+ exports.WindowManager = WindowManager;
132
+ WindowManager._instance = new WindowManager();
133
+ //# sourceMappingURL=WindowManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WindowManager.js","sourceRoot":"","sources":["../src/WindowManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ResponseTypeMap } from './types';
2
+ export declare const responseTypeMap: ResponseTypeMap;
3
+ export declare const DAPP_WINDOW_NAME: string;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DAPP_WINDOW_NAME = exports.responseTypeMap = void 0;
4
+ const types_1 = require("./types");
5
+ exports.responseTypeMap = {
6
+ [types_1.CrossWindowProviderRequestEnums.signTransactionsRequest]: types_1.CrossWindowProviderResponseEnums.signTransactionsResponse,
7
+ [types_1.CrossWindowProviderRequestEnums.signMessageRequest]: types_1.CrossWindowProviderResponseEnums.signMessageResponse,
8
+ [types_1.CrossWindowProviderRequestEnums.loginRequest]: types_1.CrossWindowProviderResponseEnums.loginResponse,
9
+ [types_1.CrossWindowProviderRequestEnums.logoutRequest]: types_1.CrossWindowProviderResponseEnums.disconnectResponse,
10
+ [types_1.CrossWindowProviderRequestEnums.cancelAction]: types_1.CrossWindowProviderResponseEnums.cancelResponse
11
+ };
12
+ exports.DAPP_WINDOW_NAME = window.location.origin;
13
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,mCAIiB;AAEJ,QAAA,eAAe,GAAoB;IAC9C,CAAC,uCAA+B,CAAC,uBAAuB,CAAC,EACvD,wCAAgC,CAAC,wBAAwB;IAC3D,CAAC,uCAA+B,CAAC,kBAAkB,CAAC,EAClD,wCAAgC,CAAC,mBAAmB;IACtD,CAAC,uCAA+B,CAAC,YAAY,CAAC,EAC5C,wCAAgC,CAAC,aAAa;IAChD,CAAC,uCAA+B,CAAC,aAAa,CAAC,EAC7C,wCAAgC,CAAC,kBAAkB;IACrD,CAAC,uCAA+B,CAAC,YAAY,CAAC,EAC5C,wCAAgC,CAAC,cAAc;CAClD,CAAC;AAEW,QAAA,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC"}
@@ -1,38 +1,32 @@
1
1
  import { SignableMessage, Transaction } from '@multiversx/sdk-core';
2
2
  interface ICrossWindowWalletAccount {
3
3
  address: string;
4
- name?: string;
5
4
  signature?: string;
6
5
  }
7
- export declare const DAPP_WINDOW_NAME: string;
8
6
  export declare class CrossWindowProvider {
9
- private walletUrl;
10
7
  account: ICrossWindowWalletAccount;
11
8
  private initialized;
9
+ private windowManager;
12
10
  private static _instance;
13
- walletWindow: Window | null;
14
- private handshakeEstablished;
15
- private callbackUrl;
16
11
  private accessToken;
17
12
  private constructor();
13
+ private ensureConnected;
14
+ private disconnect;
18
15
  static getInstance(): CrossWindowProvider;
19
16
  setAddress(address: string): CrossWindowProvider;
20
17
  setWalletUrl(url: string): CrossWindowProvider;
21
18
  init(): Promise<boolean>;
22
- handshake(): Promise<boolean>;
23
- private onHandshakeChangeListener;
24
- listenOnce(): Promise<any>;
25
19
  login(options?: {
26
- callbackUrl?: string;
27
20
  token?: string;
28
- }): Promise<string>;
21
+ }): Promise<{
22
+ address: string;
23
+ signature: string | undefined;
24
+ }>;
29
25
  logout(): Promise<boolean>;
30
- private disconnect;
31
26
  getAddress(): Promise<string>;
32
27
  isInitialized(): boolean;
33
28
  isConnected(): Promise<boolean>;
34
29
  signTransaction(transaction: Transaction): Promise<Transaction>;
35
- private ensureConnected;
36
30
  signTransactions(transactions: Transaction[]): Promise<Transaction[]>;
37
31
  signMessage(message: SignableMessage): Promise<SignableMessage>;
38
32
  cancelAction(): void;
@@ -9,34 +9,31 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.CrossWindowProvider = exports.DAPP_WINDOW_NAME = void 0;
12
+ exports.CrossWindowProvider = void 0;
13
13
  const sdk_core_1 = require("@multiversx/sdk-core");
14
14
  const errors_1 = require("./errors");
15
15
  const helpers_1 = require("./helpers");
16
- exports.DAPP_WINDOW_NAME = window.location.origin;
16
+ const types_1 = require("./types");
17
+ const WindowManager_1 = require("./WindowManager");
17
18
  class CrossWindowProvider {
18
19
  constructor() {
19
- this.walletUrl = '';
20
20
  this.account = { address: '' };
21
21
  this.initialized = false;
22
- this.walletWindow = null;
23
- this.handshakeEstablished = false;
24
- this.callbackUrl = undefined;
25
22
  this.accessToken = undefined;
26
23
  if (CrossWindowProvider._instance) {
27
- throw new Error('Error: Instantiation failed: Use CrossWindowProvider.getInstance() instead of new.');
24
+ throw new errors_1.ErrInstantiationFailed();
28
25
  }
29
- window.addEventListener('beforeunload', () => {
30
- var _a, _b;
31
- if (this.walletWindow && window.opener) {
32
- return (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.postMessage({ type: 'mxDappHandshake', payload: false }, // TODO: use const here
33
- this.walletUrl);
34
- }
35
- (_b = this.walletWindow) === null || _b === void 0 ? void 0 : _b.close();
36
- });
37
- window.name = window.name = exports.DAPP_WINDOW_NAME;
26
+ this.windowManager = WindowManager_1.WindowManager.getInstance();
38
27
  CrossWindowProvider._instance = this;
39
28
  }
29
+ ensureConnected() {
30
+ if (!this.account.address) {
31
+ throw new errors_1.ErrAccountNotConnected();
32
+ }
33
+ }
34
+ disconnect() {
35
+ this.account = { address: '' };
36
+ }
40
37
  static getInstance() {
41
38
  return CrossWindowProvider._instance;
42
39
  }
@@ -45,176 +42,62 @@ class CrossWindowProvider {
45
42
  return CrossWindowProvider._instance;
46
43
  }
47
44
  setWalletUrl(url) {
48
- this.walletUrl = url;
45
+ this.windowManager.setWalletUrl(url);
49
46
  return CrossWindowProvider._instance;
50
47
  }
51
48
  init() {
52
49
  return __awaiter(this, void 0, void 0, function* () {
53
- window.name = exports.DAPP_WINDOW_NAME;
54
- this.initialized = true;
50
+ this.initialized = yield this.windowManager.init();
55
51
  return this.initialized;
56
52
  });
57
53
  }
58
- handshake() {
59
- var _a, _b;
54
+ login(options = {}) {
60
55
  return __awaiter(this, void 0, void 0, function* () {
61
- if (!this.walletWindow) {
62
- console.log('In HANDSHAKE: ', 'opening new wallet window');
63
- this.walletWindow = window.open(this.walletUrl, this.walletUrl);
64
- }
65
- else {
66
- console.log('In HANDSHAKE: ', 'opening Existing window');
67
- window.open('', this.walletUrl); // TODO: since walletWindow is always closed, is this needed?
68
- }
69
- // TODO: is this needed?
70
- if (this.handshakeEstablished) {
71
- console.log('In HANDSHAKE: ', 'handshakeEstablished', this.handshakeEstablished);
72
- return true;
73
- }
74
- console.log('In HANDSHAKE: ', 'start listening for handshake event from wallet');
75
- const { type, payload } = yield this.listenOnce();
76
- if (type !== 'handshake' || !payload) {
77
- throw new Error('Handshake could not be established');
56
+ if (!this.initialized) {
57
+ throw new errors_1.ErrProviderNotInitialized();
78
58
  }
79
- console.log('In HANDSHAKE: ', 'Listen once event received: ', {
80
- type,
81
- payload
82
- });
83
- (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.postMessage({ type: 'mxDappHandshake', payload: true }, this.walletUrl);
84
- this.onHandshakeChangeListener();
85
- const payloadQueryString = helpers_1.buildWalletQueryString({
86
- params: {
87
- token: this.accessToken
88
- }
89
- });
90
59
  const isRelogin = yield this.isConnected();
91
- console.log('In HANDSHAKE: ', 'Posting mxDappHandshake `true` to wallet', {
92
- isRelogin
93
- });
94
- // TODO: handshake should not handle login logic
95
- (_b = this.walletWindow) === null || _b === void 0 ? void 0 : _b.postMessage({
96
- type: 'mxDappConnect',
97
- payload: { queryString: payloadQueryString, isRelogin }
98
- }, this.walletUrl);
99
- console.log('In HANDSHAKE: ', 'Posting mxDappConnect connect intent to wallet', {
100
- type: 'mxDappConnect',
101
- payload: { queryString: payloadQueryString, isRelogin }
102
- });
103
- if (!isRelogin) {
104
- console.log('In HANDSHAKE: ', 'Waiting for connect event from wallet ');
105
- const { type: connectType, payload: { address, signature } } = yield this.listenOnce();
106
- if (connectType !== 'connect') {
107
- throw new Error(`Could not connect. received ${connectType} event instead of connect`);
108
- }
109
- this.account.address = address;
110
- this.account.signature = signature;
111
- console.log('In HANDSHAKE: ', 'Is first login', {
60
+ if (isRelogin) {
61
+ const { address, signature } = this.account;
62
+ return {
112
63
  address,
113
64
  signature
114
- });
65
+ };
115
66
  }
116
- console.log('In HANDSHAKE: ', 'handshakeEstablished done');
117
- this.handshakeEstablished = true;
118
- return true;
119
- });
120
- }
121
- onHandshakeChangeListener() {
122
- return __awaiter(this, void 0, void 0, function* () {
123
- console.log('add handshake change listener');
124
- const walletUrl = this.walletUrl;
125
- // eslint-disable-next-line @typescript-eslint/no-this-alias
126
- const self = this;
127
- window.addEventListener('message', function eventHandler(event) {
128
- var _a;
129
- try {
130
- const { type, payload } = event.data;
131
- const isWalletEvent = event.origin === new URL(walletUrl).origin;
132
- if (isWalletEvent && type === 'handshake') {
133
- console.log('handshake changed! ', payload);
134
- if (payload === false) {
135
- (_a = self.walletWindow) === null || _a === void 0 ? void 0 : _a.close();
136
- self.handshakeEstablished = false;
137
- self.walletWindow = null;
138
- console.log('remove handshake!!@#s');
139
- window.removeEventListener('message', eventHandler);
140
- }
141
- }
67
+ this.accessToken = options.token;
68
+ const payloadQueryString = helpers_1.buildWalletQueryString({
69
+ params: {
70
+ token: this.accessToken
142
71
  }
143
- catch (_b) { }
144
72
  });
145
- });
146
- }
147
- // TODO: remove any
148
- //param for specific action to listen to
149
- listenOnce() {
150
- return __awaiter(this, void 0, void 0, function* () {
151
- if (!this.walletWindow) {
152
- throw new Error('Wallet window is not instantiated');
153
- }
154
- // eslint-disable-next-line @typescript-eslint/no-this-alias
155
- const self = this;
156
- return yield new Promise((resolve) => {
157
- const walletUrl = this.walletUrl;
158
- window.addEventListener('message', function eventHandler(event) {
159
- return __awaiter(this, void 0, void 0, function* () {
160
- try {
161
- const { type, payload } = event.data;
162
- const isWalletEvent = event.origin === new URL(walletUrl).origin;
163
- const isRelogin = yield self.isConnected();
164
- if (isRelogin && type === 'connect') {
165
- return;
166
- }
167
- if (isWalletEvent) {
168
- window.removeEventListener('message', eventHandler);
169
- resolve({ type, payload });
170
- }
171
- }
172
- catch (_a) { }
173
- });
174
- });
73
+ const { payload: { address, signature } } = yield this.windowManager.postMessage({
74
+ type: types_1.CrossWindowProviderRequestEnums.loginRequest,
75
+ payload: { queryString: payloadQueryString } // TODO: needs to change to plain qyerystirng
175
76
  });
176
- });
177
- }
178
- login(options = {}) {
179
- var _a;
180
- return __awaiter(this, void 0, void 0, function* () {
181
- if (!this.initialized) {
182
- throw new Error('Wallet cross window provider is not initialised, call init() first');
183
- }
184
- this.callbackUrl = options.callbackUrl;
185
- this.accessToken = options.token;
186
- yield this.handshake();
187
- (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.close();
188
- return this.account.address; // TODO: whee is the signature ?
77
+ this.account.address = address;
78
+ this.account.signature = signature;
79
+ return { address: this.account.address, signature: this.account.signature };
189
80
  });
190
81
  }
191
82
  logout() {
192
- var _a;
193
83
  return __awaiter(this, void 0, void 0, function* () {
194
84
  if (!this.initialized) {
195
- throw new Error('CrossWindow provider is not initialised, call init() first');
85
+ throw new errors_1.ErrProviderNotInitialized();
196
86
  }
197
87
  this.ensureConnected();
198
- yield this.handshake();
199
- try {
200
- this.disconnect();
201
- (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.close();
202
- }
203
- catch (error) {
204
- console.warn('CrossWindow origin url is already cleared!', error);
205
- }
206
- return true;
88
+ this.disconnect();
89
+ const connectionClosed = yield this.windowManager.closeConnection();
90
+ // TODO: postMessage to wallet to logout
91
+ return connectionClosed;
207
92
  });
208
93
  }
209
- disconnect() {
210
- this.account = { address: '' };
211
- }
212
94
  getAddress() {
95
+ var _a, _b;
213
96
  return __awaiter(this, void 0, void 0, function* () {
214
97
  if (!this.initialized) {
215
- throw new Error('CrossWindow provider is not initialised, call init() first');
98
+ throw new errors_1.ErrProviderNotInitialized();
216
99
  }
217
- return this.account ? this.account.address : '';
100
+ return (_b = (_a = this.account) === null || _a === void 0 ? void 0 : _a.address) !== null && _b !== void 0 ? _b : '';
218
101
  });
219
102
  }
220
103
  isInitialized() {
@@ -235,25 +118,20 @@ class CrossWindowProvider {
235
118
  return signedTransactions[0];
236
119
  });
237
120
  }
238
- ensureConnected() {
239
- if (!this.account.address) {
240
- throw new errors_1.ErrAccountNotConnected();
241
- }
242
- }
243
121
  signTransactions(transactions) {
244
- var _a, _b;
245
122
  return __awaiter(this, void 0, void 0, function* () {
246
123
  this.ensureConnected();
247
- yield this.handshake();
248
124
  const payloadQueryString = helpers_1.buildTransactionsQueryString(transactions);
249
- (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.postMessage({ type: 'mxDappSignTransactions', payload: payloadQueryString }, this.walletUrl);
250
- const { type, payload: signedPlainTransactions } = yield this.listenOnce();
251
- (_b = this.walletWindow) === null || _b === void 0 ? void 0 : _b.close();
252
- if (type === 'cancel') {
253
- throw new Error('Transaction canceled.');
125
+ const { type, payload: signedPlainTransactions } = yield this.windowManager.postMessage({
126
+ type: types_1.CrossWindowProviderRequestEnums.signTransactionsRequest,
127
+ payload: payloadQueryString
128
+ });
129
+ if (type === types_1.CrossWindowProviderResponseEnums.cancelResponse) {
130
+ throw new errors_1.ErrTransactionCancelled();
254
131
  }
255
- if (!signedPlainTransactions || !signedPlainTransactions.length) {
256
- throw new Error('Could not sign transactions');
132
+ const hasTransactions = (signedPlainTransactions === null || signedPlainTransactions === void 0 ? void 0 : signedPlainTransactions.length) > 0;
133
+ if (!hasTransactions) {
134
+ throw new errors_1.ErrCouldNotSignTransaction();
257
135
  }
258
136
  const signedTransactions = signedPlainTransactions.map((tx) => {
259
137
  const transaction = sdk_core_1.Transaction.fromPlainObject(tx);
@@ -263,31 +141,30 @@ class CrossWindowProvider {
263
141
  });
264
142
  }
265
143
  signMessage(message) {
266
- var _a, _b;
267
144
  return __awaiter(this, void 0, void 0, function* () {
268
145
  this.ensureConnected();
269
- yield this.handshake();
270
146
  const payloadQueryString = helpers_1.buildWalletQueryString({
271
147
  params: {
272
148
  message: message.message.toString()
273
149
  }
274
150
  });
275
- (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.postMessage({ type: 'mxDappSignMessage', payload: payloadQueryString }, this.walletUrl);
276
- const { type, payload: { status, signature } } = yield this.listenOnce();
277
- (_b = this.walletWindow) === null || _b === void 0 ? void 0 : _b.close();
278
- if (type !== 'signMessage') {
279
- throw new Error(`Could not connect. received ${type} event instead of signMessage`);
280
- }
281
- if (status !== 'signed') {
282
- throw new Error('Could not sign message');
151
+ const { payload: { status, signature } } = yield this.windowManager.postMessage({
152
+ type: types_1.CrossWindowProviderRequestEnums.signMessageRequest,
153
+ payload: payloadQueryString
154
+ });
155
+ if (status !== types_1.SignMessageStatusEnum.signed) {
156
+ throw new errors_1.ErrCouldNotSignMessage();
283
157
  }
284
- message.applySignature(Buffer.from(signature, 'hex'));
158
+ message.applySignature(Buffer.from(String(signature), 'hex'));
285
159
  return message;
286
160
  });
287
161
  }
288
162
  cancelAction() {
289
163
  var _a;
290
- (_a = this.walletWindow) === null || _a === void 0 ? void 0 : _a.postMessage({ type: 'mxDappCancelAction' }, this.walletUrl);
164
+ (_a = this.windowManager) === null || _a === void 0 ? void 0 : _a.postMessage({
165
+ type: types_1.CrossWindowProviderRequestEnums.cancelAction,
166
+ payload: ''
167
+ });
291
168
  }
292
169
  }
293
170
  exports.CrossWindowProvider = CrossWindowProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"crossWindowProvider.js","sourceRoot":"","sources":["../src/crossWindowProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crossWindowProvider.js","sourceRoot":"","sources":["../src/crossWindowProvider.ts"],"names":[],"mappings":"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"}
package/out/errors.d.ts CHANGED
@@ -11,3 +11,24 @@ export declare class ErrCannotSignSingleTransaction extends Err {
11
11
  export declare class ErrAccountNotConnected extends Err {
12
12
  constructor();
13
13
  }
14
+ export declare class ErrCannotEstablishHandshake extends Err {
15
+ constructor();
16
+ }
17
+ export declare class ErrInstantiationFailed extends Err {
18
+ constructor();
19
+ }
20
+ export declare class ErrWalletWindowNotInstantiated extends Err {
21
+ constructor();
22
+ }
23
+ export declare class ErrProviderNotInitialized extends Err {
24
+ constructor();
25
+ }
26
+ export declare class ErrTransactionCancelled extends Err {
27
+ constructor();
28
+ }
29
+ export declare class ErrCouldNotSignTransaction extends Err {
30
+ constructor();
31
+ }
32
+ export declare class ErrCouldNotSignMessage extends Err {
33
+ constructor();
34
+ }
package/out/errors.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ErrAccountNotConnected = exports.ErrCannotSignSingleTransaction = exports.Err = void 0;
3
+ exports.ErrCouldNotSignMessage = exports.ErrCouldNotSignTransaction = exports.ErrTransactionCancelled = exports.ErrProviderNotInitialized = exports.ErrWalletWindowNotInstantiated = exports.ErrInstantiationFailed = exports.ErrCannotEstablishHandshake = exports.ErrAccountNotConnected = exports.ErrCannotSignSingleTransaction = exports.Err = void 0;
4
4
  /**
5
5
  * The base class for exceptions (errors).
6
6
  */
@@ -24,4 +24,46 @@ class ErrAccountNotConnected extends Err {
24
24
  }
25
25
  }
26
26
  exports.ErrAccountNotConnected = ErrAccountNotConnected;
27
+ class ErrCannotEstablishHandshake extends Err {
28
+ constructor() {
29
+ super('Handshake could not be established');
30
+ }
31
+ }
32
+ exports.ErrCannotEstablishHandshake = ErrCannotEstablishHandshake;
33
+ class ErrInstantiationFailed extends Err {
34
+ constructor() {
35
+ super('Error: Instantiation failed: Use CrossWindowProvider.getInstance() instead of new.');
36
+ }
37
+ }
38
+ exports.ErrInstantiationFailed = ErrInstantiationFailed;
39
+ class ErrWalletWindowNotInstantiated extends Err {
40
+ constructor() {
41
+ super('Wallet window is not instantiated');
42
+ }
43
+ }
44
+ exports.ErrWalletWindowNotInstantiated = ErrWalletWindowNotInstantiated;
45
+ class ErrProviderNotInitialized extends Err {
46
+ constructor() {
47
+ super('Wallet cross window provider is not initialised, call init() first');
48
+ }
49
+ }
50
+ exports.ErrProviderNotInitialized = ErrProviderNotInitialized;
51
+ class ErrTransactionCancelled extends Err {
52
+ constructor() {
53
+ super('Transaction canceled.');
54
+ }
55
+ }
56
+ exports.ErrTransactionCancelled = ErrTransactionCancelled;
57
+ class ErrCouldNotSignTransaction extends Err {
58
+ constructor() {
59
+ super('Could not sign transactions');
60
+ }
61
+ }
62
+ exports.ErrCouldNotSignTransaction = ErrCouldNotSignTransaction;
63
+ class ErrCouldNotSignMessage extends Err {
64
+ constructor() {
65
+ super('Could not sign message');
66
+ }
67
+ }
68
+ exports.ErrCouldNotSignMessage = ErrCouldNotSignMessage;
27
69
  //# sourceMappingURL=errors.js.map
package/out/errors.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,GAAI,SAAQ,KAAK;IAG5B,YAAmB,OAAe,EAAE,KAAa;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHjB,UAAK,GAAsB,SAAS,CAAC;QAInC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAPD,kBAOC;AAED,MAAa,8BAA+B,SAAQ,GAAG;IACrD;QACE,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC3C,CAAC;CACF;AAJD,wEAIC;AAED,MAAa,sBAAuB,SAAQ,GAAG;IAC7C;QACE,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACrC,CAAC;CACF;AAJD,wDAIC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,GAAI,SAAQ,KAAK;IAG5B,YAAmB,OAAe,EAAE,KAAa;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHjB,UAAK,GAAsB,SAAS,CAAC;QAInC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAPD,kBAOC;AAED,MAAa,8BAA+B,SAAQ,GAAG;IACrD;QACE,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC3C,CAAC;CACF;AAJD,wEAIC;AAED,MAAa,sBAAuB,SAAQ,GAAG;IAC7C;QACE,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACrC,CAAC;CACF;AAJD,wDAIC;AAED,MAAa,2BAA4B,SAAQ,GAAG;IAClD;QACE,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC9C,CAAC;CACF;AAJD,kEAIC;AAED,MAAa,sBAAuB,SAAQ,GAAG;IAC7C;QACE,KAAK,CACH,oFAAoF,CACrF,CAAC;IACJ,CAAC;CACF;AAND,wDAMC;AAED,MAAa,8BAA+B,SAAQ,GAAG;IACrD;QACE,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC7C,CAAC;CACF;AAJD,wEAIC;AAED,MAAa,yBAA0B,SAAQ,GAAG;IAChD;QACE,KAAK,CAAC,oEAAoE,CAAC,CAAC;IAC9E,CAAC;CACF;AAJD,8DAIC;AAED,MAAa,uBAAwB,SAAQ,GAAG;IAC9C;QACE,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACjC,CAAC;CACF;AAJD,0DAIC;AAED,MAAa,0BAA2B,SAAQ,GAAG;IACjD;QACE,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACvC,CAAC;CACF;AAJD,gEAIC;AAED,MAAa,sBAAuB,SAAQ,GAAG;IAC7C;QACE,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClC,CAAC;CACF;AAJD,wDAIC"}
@@ -1,2 +1,2 @@
1
- import { Transaction } from "@multiversx/sdk-core/out";
1
+ import { Transaction } from '@multiversx/sdk-core/out';
2
2
  export declare const buildTransactionsQueryString: (transactions: Transaction[]) => string;
@@ -2,6 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildTransactionsQueryString = void 0;
4
4
  const buildWalletQueryString_1 = require("./buildWalletQueryString");
5
+ const prepareWalletTransaction = (transaction) => {
6
+ const plainTransaction = transaction.toPlainObject();
7
+ // We adjust the data field, in order to make it compatible with what the web wallet expects.
8
+ if (plainTransaction.data) {
9
+ plainTransaction.data = Buffer.from(plainTransaction.data, 'base64').toString();
10
+ if (plainTransaction.receiverUsername) {
11
+ plainTransaction.receiverUsername = Buffer.from(plainTransaction.receiverUsername, 'base64').toString();
12
+ }
13
+ if (plainTransaction.senderUsername) {
14
+ plainTransaction.senderUsername = Buffer.from(plainTransaction.senderUsername, 'base64').toString();
15
+ }
16
+ // The web wallet expects the data field to be a string, even if it's empty (early 2023).
17
+ plainTransaction.data = plainTransaction.data || '';
18
+ }
19
+ return plainTransaction;
20
+ };
5
21
  const buildTransactionsQueryString = (transactions) => {
6
22
  const jsonToSend = {};
7
23
  transactions.map((tx) => {
@@ -15,24 +31,8 @@ const buildTransactionsQueryString = (transactions) => {
15
31
  }
16
32
  });
17
33
  return buildWalletQueryString_1.buildWalletQueryString({
18
- params: jsonToSend,
34
+ params: jsonToSend
19
35
  });
20
36
  };
21
37
  exports.buildTransactionsQueryString = buildTransactionsQueryString;
22
- const prepareWalletTransaction = (transaction) => {
23
- const plainTransaction = transaction.toPlainObject();
24
- // We adjust the data field, in order to make it compatible with what the web wallet expects.
25
- if (plainTransaction.data) {
26
- plainTransaction.data = Buffer.from(plainTransaction.data, "base64").toString();
27
- if (plainTransaction.receiverUsername) {
28
- plainTransaction.receiverUsername = Buffer.from(plainTransaction.receiverUsername, "base64").toString();
29
- }
30
- if (plainTransaction.senderUsername) {
31
- plainTransaction.senderUsername = Buffer.from(plainTransaction.senderUsername, "base64").toString();
32
- }
33
- // The web wallet expects the data field to be a string, even if it's empty (early 2023).
34
- plainTransaction.data = plainTransaction.data || "";
35
- }
36
- return plainTransaction;
37
- };
38
38
  //# sourceMappingURL=buildTransactionsQueryString.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildTransactionsQueryString.js","sourceRoot":"","sources":["../../src/helpers/buildTransactionsQueryString.ts"],"names":[],"mappings":";;;AACA,qEAAkE;AAE3D,MAAM,4BAA4B,GAAG,CACxC,YAA2B,EACnB,EAAE;IACV,MAAM,UAAU,GAAQ,EAAE,CAAC;IAC3B,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,IACE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC9B,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,EAClC;gBACA,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;aACzB;YAED,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SAC1C;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,+CAAsB,CAAC;QAC5B,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;AACL,CAAC,CAAC;AArBS,QAAA,4BAA4B,gCAqBrC;AAEF,MAAM,wBAAwB,GAAG,CAAC,WAAwB,EAAO,EAAE;IACjE,MAAM,gBAAgB,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC;IAErD,6FAA6F;IAC7F,IAAI,gBAAgB,CAAC,IAAI,EAAE;QACzB,gBAAgB,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CACjC,gBAAgB,CAAC,IAAI,EACrB,QAAQ,CACT,CAAC,QAAQ,EAAE,CAAC;QAEb,IAAI,gBAAgB,CAAC,gBAAgB,EAAE;YACrC,gBAAgB,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAC7C,gBAAgB,CAAC,gBAAgB,EACjC,QAAQ,CACT,CAAC,QAAQ,EAAE,CAAC;SACd;QAED,IAAI,gBAAgB,CAAC,cAAc,EAAE;YACnC,gBAAgB,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAC3C,gBAAgB,CAAC,cAAc,EAC/B,QAAQ,CACT,CAAC,QAAQ,EAAE,CAAC;SACd;QACD,yFAAyF;QACzF,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC;KACrD;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"buildTransactionsQueryString.js","sourceRoot":"","sources":["../../src/helpers/buildTransactionsQueryString.ts"],"names":[],"mappings":";;;AACA,qEAAkE;AAElE,MAAM,wBAAwB,GAAG,CAAC,WAAwB,EAAO,EAAE;IACjE,MAAM,gBAAgB,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC;IAErD,6FAA6F;IAC7F,IAAI,gBAAgB,CAAC,IAAI,EAAE;QACzB,gBAAgB,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CACjC,gBAAgB,CAAC,IAAI,EACrB,QAAQ,CACT,CAAC,QAAQ,EAAE,CAAC;QAEb,IAAI,gBAAgB,CAAC,gBAAgB,EAAE;YACrC,gBAAgB,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAC7C,gBAAgB,CAAC,gBAAgB,EACjC,QAAQ,CACT,CAAC,QAAQ,EAAE,CAAC;SACd;QAED,IAAI,gBAAgB,CAAC,cAAc,EAAE;YACnC,gBAAgB,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAC3C,gBAAgB,CAAC,cAAc,EAC/B,QAAQ,CACT,CAAC,QAAQ,EAAE,CAAC;SACd;QACD,yFAAyF;QACzF,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC;KACrD;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEK,MAAM,4BAA4B,GAAG,CAC1C,YAA2B,EACnB,EAAE;IACV,MAAM,UAAU,GAAQ,EAAE,CAAC;IAC3B,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,IACE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC9B,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,EAClC;gBACA,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;aACzB;YAED,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SAC1C;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,+CAAsB,CAAC;QAC5B,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;AACL,CAAC,CAAC;AArBW,QAAA,4BAA4B,gCAqBvC"}
package/out/types.d.ts ADDED
@@ -0,0 +1,53 @@
1
+ import { IPlainTransactionObject } from '@multiversx/sdk-core';
2
+ export declare enum CrossWindowProviderRequestEnums {
3
+ signTransactionsRequest = "SIGN_TRANSACTIONS_REQUEST",
4
+ signMessageRequest = "SIGN_MESSAGE_REQUEST",
5
+ loginRequest = "LOGIN_REQUEST",
6
+ logoutRequest = "LOGOUT_REQUEST",
7
+ cancelAction = "CANCEL_ACTION_REQUEST"
8
+ }
9
+ export declare enum CrossWindowProviderResponseEnums {
10
+ handshakeResponse = "HANDSHAKE_RESPONSE",
11
+ loginResponse = "LOGIN_RESPONSE",
12
+ disconnectResponse = "DISCONNECT_RESPONSE",
13
+ cancelResponse = "CANCEL_RESPONSE",
14
+ signTransactionsResponse = "SIGN_TRANSACTIONS_RESPONSE",
15
+ signMessageResponse = "SIGN_MESSAGE_RESPONSE",
16
+ noneResponse = "NONE_RESPONSE"
17
+ }
18
+ export declare enum SignMessageStatusEnum {
19
+ pending = "pending",
20
+ failed = "failed",
21
+ signed = "signed",
22
+ cancelled = "cancelled"
23
+ }
24
+ declare type ReplyWithPostMessageObjectType = {
25
+ [CrossWindowProviderResponseEnums.handshakeResponse]: boolean;
26
+ [CrossWindowProviderResponseEnums.loginResponse]: {
27
+ address: string;
28
+ name?: string;
29
+ signature?: string;
30
+ };
31
+ [CrossWindowProviderResponseEnums.disconnectResponse]: null;
32
+ [CrossWindowProviderResponseEnums.cancelResponse]: {
33
+ address: string;
34
+ };
35
+ [CrossWindowProviderResponseEnums.signTransactionsResponse]: IPlainTransactionObject[];
36
+ [CrossWindowProviderResponseEnums.signMessageResponse]: {
37
+ signature?: string;
38
+ status: SignMessageStatusEnum;
39
+ };
40
+ [CrossWindowProviderResponseEnums.noneResponse]: null;
41
+ };
42
+ export declare type ReplyWithPostMessageType<T extends CrossWindowProviderResponseEnums> = {
43
+ type: T;
44
+ payload: ReplyWithPostMessageObjectType[T];
45
+ };
46
+ export declare type ResponseTypeMap = {
47
+ [CrossWindowProviderRequestEnums.signTransactionsRequest]: CrossWindowProviderResponseEnums.signTransactionsResponse;
48
+ [CrossWindowProviderRequestEnums.signMessageRequest]: CrossWindowProviderResponseEnums.signMessageResponse;
49
+ [CrossWindowProviderRequestEnums.loginRequest]: CrossWindowProviderResponseEnums.loginResponse;
50
+ [CrossWindowProviderRequestEnums.logoutRequest]: CrossWindowProviderResponseEnums.disconnectResponse;
51
+ [CrossWindowProviderRequestEnums.cancelAction]: CrossWindowProviderResponseEnums.cancelResponse;
52
+ };
53
+ export {};
package/out/types.js ADDED
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SignMessageStatusEnum = exports.CrossWindowProviderResponseEnums = exports.CrossWindowProviderRequestEnums = void 0;
4
+ var CrossWindowProviderRequestEnums;
5
+ (function (CrossWindowProviderRequestEnums) {
6
+ CrossWindowProviderRequestEnums["signTransactionsRequest"] = "SIGN_TRANSACTIONS_REQUEST";
7
+ CrossWindowProviderRequestEnums["signMessageRequest"] = "SIGN_MESSAGE_REQUEST";
8
+ CrossWindowProviderRequestEnums["loginRequest"] = "LOGIN_REQUEST";
9
+ CrossWindowProviderRequestEnums["logoutRequest"] = "LOGOUT_REQUEST";
10
+ CrossWindowProviderRequestEnums["cancelAction"] = "CANCEL_ACTION_REQUEST";
11
+ })(CrossWindowProviderRequestEnums = exports.CrossWindowProviderRequestEnums || (exports.CrossWindowProviderRequestEnums = {}));
12
+ var CrossWindowProviderResponseEnums;
13
+ (function (CrossWindowProviderResponseEnums) {
14
+ CrossWindowProviderResponseEnums["handshakeResponse"] = "HANDSHAKE_RESPONSE";
15
+ CrossWindowProviderResponseEnums["loginResponse"] = "LOGIN_RESPONSE";
16
+ CrossWindowProviderResponseEnums["disconnectResponse"] = "DISCONNECT_RESPONSE";
17
+ CrossWindowProviderResponseEnums["cancelResponse"] = "CANCEL_RESPONSE";
18
+ CrossWindowProviderResponseEnums["signTransactionsResponse"] = "SIGN_TRANSACTIONS_RESPONSE";
19
+ CrossWindowProviderResponseEnums["signMessageResponse"] = "SIGN_MESSAGE_RESPONSE";
20
+ CrossWindowProviderResponseEnums["noneResponse"] = "NONE_RESPONSE";
21
+ })(CrossWindowProviderResponseEnums = exports.CrossWindowProviderResponseEnums || (exports.CrossWindowProviderResponseEnums = {}));
22
+ var SignMessageStatusEnum;
23
+ (function (SignMessageStatusEnum) {
24
+ SignMessageStatusEnum["pending"] = "pending";
25
+ SignMessageStatusEnum["failed"] = "failed";
26
+ SignMessageStatusEnum["signed"] = "signed";
27
+ SignMessageStatusEnum["cancelled"] = "cancelled";
28
+ })(SignMessageStatusEnum = exports.SignMessageStatusEnum || (exports.SignMessageStatusEnum = {}));
29
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,+BAMX;AAND,WAAY,+BAA+B;IACzC,wFAAqD,CAAA;IACrD,8EAA2C,CAAA;IAC3C,iEAA8B,CAAA;IAC9B,mEAAgC,CAAA;IAChC,yEAAsC,CAAA;AACxC,CAAC,EANW,+BAA+B,GAA/B,uCAA+B,KAA/B,uCAA+B,QAM1C;AAED,IAAY,gCAQX;AARD,WAAY,gCAAgC;IAC1C,4EAAwC,CAAA;IACxC,oEAAgC,CAAA;IAChC,8EAA0C,CAAA;IAC1C,sEAAkC,CAAA;IAClC,2FAAuD,CAAA;IACvD,iFAA6C,CAAA;IAC7C,kEAA8B,CAAA;AAChC,CAAC,EARW,gCAAgC,GAAhC,wCAAgC,KAAhC,wCAAgC,QAQ3C;AAED,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,0CAAiB,CAAA;IACjB,gDAAuB,CAAA;AACzB,CAAC,EALW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAKhC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiversx/sdk-web-wallet-cross-window-provider",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "Signing provider for dApps: Cross Window",
5
5
  "main": "out/index.js",
6
6
  "types": "out/index.d.js",