@meshconnect/web-link-sdk 2.1.0-rc.3 → 2.1.0-rc.5

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/cjs/Link.js CHANGED
@@ -50,7 +50,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
50
50
  exports.createLink = void 0;
51
51
  var popup_1 = require("./utils/popup");
52
52
  var event_types_1 = require("./utils/event-types");
53
+ var wallet_browser_event_types_1 = require("./utils/wallet-browser-event-types");
53
54
  var sdk_specs_1 = require("./utils/sdk-specs");
55
+ var wagmiCoreConnectorsUtils_1 = require("./utils/wagmiCoreConnectorsUtils");
54
56
  var currentOptions;
55
57
  var possibleOrigins = new Set([
56
58
  'https://web.meshconnect.com',
@@ -71,85 +73,337 @@ function sendMessageToIframe(message) {
71
73
  }
72
74
  });
73
75
  }
74
- function eventsListener(event) {
75
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
76
- switch (event.data.type) {
77
- case 'brokerageAccountAccessToken': {
78
- var payload = {
79
- accessToken: event.data.payload
80
- };
81
- (_a = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _a === void 0 ? void 0 : _a.call(currentOptions, {
82
- type: 'integrationConnected',
83
- payload: payload
84
- });
85
- (_b = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onIntegrationConnected) === null || _b === void 0 ? void 0 : _b.call(currentOptions, payload);
86
- break;
87
- }
88
- case 'delayedAuthentication': {
89
- var payload = {
90
- delayedAuth: event.data.payload
91
- };
92
- (_c = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _c === void 0 ? void 0 : _c.call(currentOptions, {
93
- type: 'integrationConnected',
94
- payload: payload
95
- });
96
- (_d = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onIntegrationConnected) === null || _d === void 0 ? void 0 : _d.call(currentOptions, payload);
97
- break;
98
- }
99
- case 'transferFinished': {
100
- var payload = event.data.payload;
101
- (_e = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _e === void 0 ? void 0 : _e.call(currentOptions, {
102
- type: 'transferCompleted',
103
- payload: payload
104
- });
105
- (_f = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onTransferFinished) === null || _f === void 0 ? void 0 : _f.call(currentOptions, payload);
106
- break;
107
- }
108
- case 'close':
109
- case 'done': {
110
- var payload = (_g = event.data) === null || _g === void 0 ? void 0 : _g.payload;
111
- (_h = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onExit) === null || _h === void 0 ? void 0 : _h.call(currentOptions, payload === null || payload === void 0 ? void 0 : payload.errorMessage, payload);
112
- (0, popup_1.removePopup)();
113
- break;
114
- }
115
- case 'oauthLinkOpen': {
116
- if (event.data.link) {
117
- var w = 700;
118
- var h = 800;
119
- var left = screen.width / 2 - w / 2;
120
- var top_1 = screen.height / 2 - h / 2;
121
- (_j = window
122
- .open(event.data.link, '_blank', "popup,noopener,noreferrer,resizable,scrollbars,width=".concat(w, ",height=").concat(h, ",top=").concat(top_1, ",left=").concat(left))) === null || _j === void 0 ? void 0 : _j.focus();
76
+ function handleLinkEvent(event) {
77
+ return __awaiter(this, void 0, void 0, function () {
78
+ var _a, payload, payload, payload, payload, w, h, left, top_1, injectedConnectors;
79
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
80
+ return __generator(this, function (_o) {
81
+ switch (_o.label) {
82
+ case 0:
83
+ _a = event.data.type;
84
+ switch (_a) {
85
+ case 'brokerageAccountAccessToken': return [3 /*break*/, 1];
86
+ case 'delayedAuthentication': return [3 /*break*/, 2];
87
+ case 'transferFinished': return [3 /*break*/, 3];
88
+ case 'close': return [3 /*break*/, 4];
89
+ case 'done': return [3 /*break*/, 4];
90
+ case 'oauthLinkOpen': return [3 /*break*/, 5];
91
+ case 'loaded': return [3 /*break*/, 6];
92
+ }
93
+ return [3 /*break*/, 8];
94
+ case 1:
95
+ {
96
+ payload = {
97
+ accessToken: event.data.payload
98
+ };
99
+ (_b = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _b === void 0 ? void 0 : _b.call(currentOptions, {
100
+ type: 'integrationConnected',
101
+ payload: payload
102
+ });
103
+ (_c = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onIntegrationConnected) === null || _c === void 0 ? void 0 : _c.call(currentOptions, payload);
104
+ return [3 /*break*/, 9];
105
+ }
106
+ _o.label = 2;
107
+ case 2:
108
+ {
109
+ payload = {
110
+ delayedAuth: event.data.payload
111
+ };
112
+ (_d = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _d === void 0 ? void 0 : _d.call(currentOptions, {
113
+ type: 'integrationConnected',
114
+ payload: payload
115
+ });
116
+ (_e = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onIntegrationConnected) === null || _e === void 0 ? void 0 : _e.call(currentOptions, payload);
117
+ return [3 /*break*/, 9];
118
+ }
119
+ _o.label = 3;
120
+ case 3:
121
+ {
122
+ payload = event.data.payload;
123
+ (_f = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _f === void 0 ? void 0 : _f.call(currentOptions, {
124
+ type: 'transferCompleted',
125
+ payload: payload
126
+ });
127
+ (_g = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onTransferFinished) === null || _g === void 0 ? void 0 : _g.call(currentOptions, payload);
128
+ return [3 /*break*/, 9];
129
+ }
130
+ _o.label = 4;
131
+ case 4:
132
+ {
133
+ payload = (_h = event.data) === null || _h === void 0 ? void 0 : _h.payload;
134
+ (_j = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onExit) === null || _j === void 0 ? void 0 : _j.call(currentOptions, payload === null || payload === void 0 ? void 0 : payload.errorMessage, payload);
135
+ (0, popup_1.removePopup)();
136
+ return [3 /*break*/, 9];
137
+ }
138
+ _o.label = 5;
139
+ case 5:
140
+ {
141
+ if (event.data.link) {
142
+ w = 700;
143
+ h = 800;
144
+ left = screen.width / 2 - w / 2;
145
+ top_1 = screen.height / 2 - h / 2;
146
+ (_k = window
147
+ .open(event.data.link, '_blank', "popup,noopener,noreferrer,resizable,scrollbars,width=".concat(w, ",height=").concat(h, ",top=").concat(top_1, ",left=").concat(left))) === null || _k === void 0 ? void 0 : _k.focus();
148
+ }
149
+ return [3 /*break*/, 9];
150
+ }
151
+ _o.label = 6;
152
+ case 6:
153
+ sendMessageToIframe({
154
+ type: 'meshSDKSpecs',
155
+ payload: __assign({}, sdk_specs_1.sdkSpecs)
156
+ });
157
+ if (currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.accessTokens) {
158
+ sendMessageToIframe({
159
+ type: 'frontAccessTokens',
160
+ payload: currentOptions.accessTokens
161
+ });
162
+ }
163
+ if (currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.transferDestinationTokens) {
164
+ sendMessageToIframe({
165
+ type: 'frontTransferDestinationTokens',
166
+ payload: currentOptions.transferDestinationTokens
167
+ });
168
+ }
169
+ return [4 /*yield*/, (0, wagmiCoreConnectorsUtils_1.getWagmiCoreInjectedData)()];
170
+ case 7:
171
+ injectedConnectors = _o.sent();
172
+ if (injectedConnectors) {
173
+ sendMessageToIframe({
174
+ type: 'SDKinjectedWagmiConnectorsData',
175
+ payload: injectedConnectors
176
+ });
177
+ }
178
+ (_l = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _l === void 0 ? void 0 : _l.call(currentOptions, { type: 'pageLoaded' });
179
+ return [3 /*break*/, 9];
180
+ case 8:
181
+ {
182
+ if ((0, event_types_1.isLinkEventTypeKey)(event.data.type)) {
183
+ (_m = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _m === void 0 ? void 0 : _m.call(currentOptions, event.data);
184
+ }
185
+ return [3 /*break*/, 9];
186
+ }
187
+ _o.label = 9;
188
+ case 9: return [2 /*return*/];
123
189
  }
124
- break;
125
- }
126
- case 'loaded': {
127
- sendMessageToIframe({
128
- type: 'meshSDKSpecs',
129
- payload: __assign({}, sdk_specs_1.sdkSpecs)
130
- });
131
- if (currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.accessTokens) {
132
- sendMessageToIframe({
133
- type: 'frontAccessTokens',
134
- payload: currentOptions.accessTokens
135
- });
136
- }
137
- if (currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.transferDestinationTokens) {
138
- sendMessageToIframe({
139
- type: 'frontTransferDestinationTokens',
140
- payload: currentOptions.transferDestinationTokens
141
- });
190
+ });
191
+ });
192
+ }
193
+ function handleWalletBrowserEvent(event) {
194
+ return __awaiter(this, void 0, void 0, function () {
195
+ var _a, payload, result, error_1, payload, result, error_2, payload, result, error_3, payload, result, error_4, payload, result, error_5, payload, result, error_6, payload, result, error_7;
196
+ return __generator(this, function (_b) {
197
+ switch (_b.label) {
198
+ case 0:
199
+ _a = event.data.type;
200
+ switch (_a) {
201
+ case 'walletBrowserInjectedWalletSelected': return [3 /*break*/, 1];
202
+ case 'walletBrowserSignRequest': return [3 /*break*/, 6];
203
+ case 'walletBrowserChainSwitchRequest': return [3 /*break*/, 11];
204
+ case 'walletBrowserNativeTransferRequest': return [3 /*break*/, 16];
205
+ case 'walletBrowserNonNativeTransferRequest': return [3 /*break*/, 21];
206
+ case 'walletBrowserNativeSmartDeposit': return [3 /*break*/, 26];
207
+ case 'walletBrowserNonNativeSmartDeposit': return [3 /*break*/, 31];
208
+ case 'walletBrowserDisconnect': return [3 /*break*/, 36];
209
+ }
210
+ return [3 /*break*/, 37];
211
+ case 1:
212
+ payload = event.data.payload;
213
+ _b.label = 2;
214
+ case 2:
215
+ _b.trys.push([2, 4, , 5]);
216
+ return [4 /*yield*/, (0, wagmiCoreConnectorsUtils_1.connectToSpecificWallet)(payload.integrationName)];
217
+ case 3:
218
+ result = _b.sent();
219
+ if (result instanceof Error) {
220
+ throw result;
221
+ }
222
+ sendMessageToIframe({
223
+ type: 'SDKinjectedConnectionCompleted',
224
+ payload: {
225
+ accounts: result.accounts,
226
+ chainId: result.chainId
227
+ }
228
+ });
229
+ return [3 /*break*/, 5];
230
+ case 4:
231
+ error_1 = _b.sent();
232
+ handleErrorAndSendMessage(error_1, 'SDKinjectedConnectionCompleted');
233
+ return [3 /*break*/, 5];
234
+ case 5: return [3 /*break*/, 37];
235
+ case 6:
236
+ payload = event.data.payload;
237
+ _b.label = 7;
238
+ case 7:
239
+ _b.trys.push([7, 9, , 10]);
240
+ return [4 /*yield*/, (0, wagmiCoreConnectorsUtils_1.signedMessage)(payload.address)];
241
+ case 8:
242
+ result = _b.sent();
243
+ if (result instanceof Error) {
244
+ throw result;
245
+ }
246
+ sendMessageToIframe({
247
+ type: 'SDKsignRequestCompleted',
248
+ payload: result
249
+ });
250
+ return [3 /*break*/, 10];
251
+ case 9:
252
+ error_2 = _b.sent();
253
+ handleErrorAndSendMessage(error_2, 'SDKsignRequestCompleted');
254
+ return [3 /*break*/, 10];
255
+ case 10: return [3 /*break*/, 37];
256
+ case 11:
257
+ payload = event.data.payload;
258
+ _b.label = 12;
259
+ case 12:
260
+ _b.trys.push([12, 14, , 15]);
261
+ return [4 /*yield*/, (0, wagmiCoreConnectorsUtils_1.switchChainFromSDK)(payload.chainId)];
262
+ case 13:
263
+ result = _b.sent();
264
+ if (result instanceof Error) {
265
+ throw result;
266
+ }
267
+ sendMessageToIframe({
268
+ type: 'SDKswitchChainCompleted',
269
+ payload: result
270
+ });
271
+ return [3 /*break*/, 15];
272
+ case 14:
273
+ error_3 = _b.sent();
274
+ handleErrorAndSendMessage(error_3, 'SDKswitchChainCompleted');
275
+ return [3 /*break*/, 15];
276
+ case 15: return [3 /*break*/, 37];
277
+ case 16:
278
+ payload = event.data.payload;
279
+ _b.label = 17;
280
+ case 17:
281
+ _b.trys.push([17, 19, , 20]);
282
+ return [4 /*yield*/, (0, wagmiCoreConnectorsUtils_1.sendTransactionFromSDK)(payload.toAddress, payload.amount, payload.decimalPlaces, payload.chainId, payload.account)];
283
+ case 18:
284
+ result = _b.sent();
285
+ if (result instanceof Error) {
286
+ throw result;
287
+ }
288
+ sendMessageToIframe({
289
+ type: 'SDKnativeTransferCompleted',
290
+ payload: result
291
+ });
292
+ return [3 /*break*/, 20];
293
+ case 19:
294
+ error_4 = _b.sent();
295
+ handleErrorAndSendMessage(error_4, 'SDKnativeTransferCompleted');
296
+ return [3 /*break*/, 20];
297
+ case 20: return [3 /*break*/, 37];
298
+ case 21:
299
+ payload = event.data.payload;
300
+ _b.label = 22;
301
+ case 22:
302
+ _b.trys.push([22, 24, , 25]);
303
+ return [4 /*yield*/, (0, wagmiCoreConnectorsUtils_1.sendNonNativeTransactionFromSDK)(payload.address, JSON.parse(payload.abi), payload.functionName, payload.args)];
304
+ case 23:
305
+ result = _b.sent();
306
+ if (result instanceof Error) {
307
+ throw result;
308
+ }
309
+ sendMessageToIframe({
310
+ type: 'SDKnonNativeTransferCompleted',
311
+ payload: result
312
+ });
313
+ return [3 /*break*/, 25];
314
+ case 24:
315
+ error_5 = _b.sent();
316
+ handleErrorAndSendMessage(error_5, 'SDKnonNativeTransferCompleted');
317
+ return [3 /*break*/, 25];
318
+ case 25: return [3 /*break*/, 37];
319
+ case 26:
320
+ payload = event.data.payload;
321
+ _b.label = 27;
322
+ case 27:
323
+ _b.trys.push([27, 29, , 30]);
324
+ return [4 /*yield*/, (0, wagmiCoreConnectorsUtils_1.sendNonNativeTransactionFromSDK)(payload.address, JSON.parse(payload.abi), payload.functionName, payload.args, payload.value)];
325
+ case 28:
326
+ result = _b.sent();
327
+ if (result instanceof Error) {
328
+ throw result;
329
+ }
330
+ sendMessageToIframe({
331
+ type: 'SDKnativeSmartDepositCompleted',
332
+ payload: {
333
+ txHash: result
334
+ }
335
+ });
336
+ return [3 /*break*/, 30];
337
+ case 29:
338
+ error_6 = _b.sent();
339
+ handleErrorAndSendMessage(error_6, 'SDKnativeSmartDepositCompleted');
340
+ return [3 /*break*/, 30];
341
+ case 30: return [3 /*break*/, 37];
342
+ case 31:
343
+ payload = event.data.payload;
344
+ _b.label = 32;
345
+ case 32:
346
+ _b.trys.push([32, 34, , 35]);
347
+ return [4 /*yield*/, (0, wagmiCoreConnectorsUtils_1.sendNonNativeTransactionFromSDK)(payload.address, JSON.parse(payload.abi), payload.functionName, payload.args)];
348
+ case 33:
349
+ result = _b.sent();
350
+ if (result) {
351
+ sendMessageToIframe({
352
+ type: 'SDKnonNativeSmartDepositCompleted',
353
+ payload: {
354
+ txHash: result
355
+ }
356
+ });
357
+ }
358
+ else {
359
+ throw new Error('Transfer failed');
360
+ }
361
+ return [3 /*break*/, 35];
362
+ case 34:
363
+ error_7 = _b.sent();
364
+ handleErrorAndSendMessage(error_7, 'SDKnonNativeSmartDepositCompleted');
365
+ return [3 /*break*/, 35];
366
+ case 35: return [3 /*break*/, 37];
367
+ case 36:
368
+ {
369
+ (0, wagmiCoreConnectorsUtils_1.disconnectAllAccounts)();
370
+ sendMessageToIframe({
371
+ type: 'SDKdisconnectSuccess'
372
+ });
373
+ return [3 /*break*/, 37];
374
+ }
375
+ _b.label = 37;
376
+ case 37: return [2 /*return*/];
142
377
  }
143
- (_k = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _k === void 0 ? void 0 : _k.call(currentOptions, { type: 'pageLoaded' });
144
- break;
145
- }
146
- default: {
147
- if ((0, event_types_1.isLinkEventTypeKey)(event.data.type)) {
148
- (_l = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _l === void 0 ? void 0 : _l.call(currentOptions, event.data);
378
+ });
379
+ });
380
+ }
381
+ function eventsListener(event) {
382
+ return __awaiter(this, void 0, void 0, function () {
383
+ return __generator(this, function (_a) {
384
+ switch (_a.label) {
385
+ case 0:
386
+ if (!(0, wallet_browser_event_types_1.isWalletBrowserEventTypeKey)(event.data.type)) return [3 /*break*/, 2];
387
+ return [4 /*yield*/, handleWalletBrowserEvent(event)];
388
+ case 1:
389
+ _a.sent();
390
+ return [3 /*break*/, 4];
391
+ case 2: return [4 /*yield*/, handleLinkEvent(event)];
392
+ case 3:
393
+ _a.sent();
394
+ _a.label = 4;
395
+ case 4: return [2 /*return*/];
149
396
  }
150
- break;
397
+ });
398
+ });
399
+ }
400
+ function handleErrorAndSendMessage(error, messageType) {
401
+ sendMessageToIframe({
402
+ type: messageType,
403
+ payload: {
404
+ error: error
151
405
  }
152
- }
406
+ });
153
407
  }
154
408
  var createLink = function (options) {
155
409
  var openLink = function (linkToken) { return __awaiter(void 0, void 0, void 0, function () {
@@ -177,6 +431,7 @@ var createLink = function (options) {
177
431
  (0, popup_1.removePopup)();
178
432
  window.removeEventListener('message', eventsListener);
179
433
  (_a = options.onExit) === null || _a === void 0 ? void 0 : _a.call(options);
434
+ (0, wagmiCoreConnectorsUtils_1.disconnectAllAccounts)();
180
435
  };
181
436
  return {
182
437
  openLink: openLink,
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sdkVersion = void 0;
4
- exports.sdkVersion = '2.1.0-rc.3';
4
+ exports.sdkVersion = '2.1.0-rc.5';