@meshconnect/web-link-sdk 3.2.14 → 3.2.15

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.
Files changed (101) hide show
  1. package/jest.setup.ts +4 -0
  2. package/package.json +20 -8
  3. package/src/Link.test.ts +434 -0
  4. package/src/Link.ts +491 -0
  5. package/src/index.ts +3 -0
  6. package/src/utils/__snapshots__/popup.test.ts.snap +89 -0
  7. package/src/utils/connectors/evm/chainConfigs.ts +120 -0
  8. package/src/utils/connectors/evm/chainSwitching.ts +165 -0
  9. package/src/utils/connectors/evm/index.ts +8 -0
  10. package/src/utils/connectors/evm/provider.ts +22 -0
  11. package/src/utils/connectors/evm/signing.ts +39 -0
  12. package/src/utils/connectors/evm/transactions.ts +356 -0
  13. package/src/utils/connectors/evm/types.ts +63 -0
  14. package/src/utils/connectors/evm/walletConnection.ts +140 -0
  15. package/src/utils/connectors/evm/walletDiscovery.ts +67 -0
  16. package/src/utils/connectors/solana/connection.ts +69 -0
  17. package/src/utils/connectors/solana/index.ts +5 -0
  18. package/src/utils/connectors/solana/providerDiscovery.ts +153 -0
  19. package/src/utils/connectors/solana/signing.ts +18 -0
  20. package/src/utils/connectors/solana/transaction.ts +382 -0
  21. package/src/utils/connectors/solana/types.ts +66 -0
  22. package/{utils/event-types.js → src/utils/event-types.test.ts} +15 -5
  23. package/src/utils/event-types.ts +350 -0
  24. package/src/utils/popup.test.ts +50 -0
  25. package/src/utils/popup.ts +123 -0
  26. package/src/utils/sdk-specs.test.ts +18 -0
  27. package/src/utils/sdk-specs.ts +7 -0
  28. package/src/utils/style.test.ts +33 -0
  29. package/src/utils/style.ts +15 -0
  30. package/src/utils/types.ts +270 -0
  31. package/src/utils/version.ts +1 -0
  32. package/src/utils/wallet/EVMWalletStrategy.ts +176 -0
  33. package/src/utils/wallet/SolanaWalletStrategy.ts +207 -0
  34. package/src/utils/wallet/WalletStrategy.ts +99 -0
  35. package/src/utils/wallet/WalletStrategyFactory.ts +46 -0
  36. package/src/utils/wallet/__tests__/EVMWalletStrategy.test.ts +233 -0
  37. package/src/utils/wallet/__tests__/SolanaWalletStrategy.test.ts +253 -0
  38. package/src/utils/wallet/__tests__/WalletStrategy.test.ts +77 -0
  39. package/src/utils/wallet/__tests__/WalletStrategyFactory.test.ts +65 -0
  40. package/src/utils/wallet/index.ts +4 -0
  41. package/src/utils/wallet-browser-event-types.ts +190 -0
  42. package/tools/copy.js +26 -0
  43. package/tools/update-version.js +10 -0
  44. package/tsconfig.json +14 -0
  45. package/Link.d.ts +0 -2
  46. package/Link.js +0 -530
  47. package/index.d.ts +0 -3
  48. package/index.js +0 -3
  49. package/utils/connectors/evm/chainConfigs.d.ts +0 -2
  50. package/utils/connectors/evm/chainConfigs.js +0 -115
  51. package/utils/connectors/evm/chainSwitching.d.ts +0 -15
  52. package/utils/connectors/evm/chainSwitching.js +0 -242
  53. package/utils/connectors/evm/index.d.ts +0 -8
  54. package/utils/connectors/evm/index.js +0 -8
  55. package/utils/connectors/evm/provider.d.ts +0 -6
  56. package/utils/connectors/evm/provider.js +0 -13
  57. package/utils/connectors/evm/signing.d.ts +0 -1
  58. package/utils/connectors/evm/signing.js +0 -78
  59. package/utils/connectors/evm/transactions.d.ts +0 -28
  60. package/utils/connectors/evm/transactions.js +0 -381
  61. package/utils/connectors/evm/types.d.ts +0 -57
  62. package/utils/connectors/evm/types.js +0 -1
  63. package/utils/connectors/evm/walletConnection.d.ts +0 -20
  64. package/utils/connectors/evm/walletConnection.js +0 -160
  65. package/utils/connectors/evm/walletDiscovery.d.ts +0 -10
  66. package/utils/connectors/evm/walletDiscovery.js +0 -55
  67. package/utils/connectors/solana/connection.d.ts +0 -4
  68. package/utils/connectors/solana/connection.js +0 -108
  69. package/utils/connectors/solana/index.d.ts +0 -5
  70. package/utils/connectors/solana/index.js +0 -5
  71. package/utils/connectors/solana/providerDiscovery.d.ts +0 -3
  72. package/utils/connectors/solana/providerDiscovery.js +0 -127
  73. package/utils/connectors/solana/signing.d.ts +0 -1
  74. package/utils/connectors/solana/signing.js +0 -59
  75. package/utils/connectors/solana/transaction.d.ts +0 -17
  76. package/utils/connectors/solana/transaction.js +0 -362
  77. package/utils/connectors/solana/types.d.ts +0 -71
  78. package/utils/connectors/solana/types.js +0 -8
  79. package/utils/event-types.d.ts +0 -233
  80. package/utils/popup.d.ts +0 -3
  81. package/utils/popup.js +0 -36
  82. package/utils/sdk-specs.d.ts +0 -5
  83. package/utils/sdk-specs.js +0 -6
  84. package/utils/style.d.ts +0 -3
  85. package/utils/style.js +0 -13
  86. package/utils/types.d.ts +0 -234
  87. package/utils/types.js +0 -1
  88. package/utils/version.d.ts +0 -1
  89. package/utils/version.js +0 -1
  90. package/utils/wallet/EVMWalletStrategy.d.ts +0 -31
  91. package/utils/wallet/EVMWalletStrategy.js +0 -265
  92. package/utils/wallet/SolanaWalletStrategy.d.ts +0 -33
  93. package/utils/wallet/SolanaWalletStrategy.js +0 -293
  94. package/utils/wallet/WalletStrategy.d.ts +0 -61
  95. package/utils/wallet/WalletStrategy.js +0 -25
  96. package/utils/wallet/WalletStrategyFactory.d.ts +0 -15
  97. package/utils/wallet/WalletStrategyFactory.js +0 -31
  98. package/utils/wallet/index.d.ts +0 -4
  99. package/utils/wallet/index.js +0 -4
  100. package/utils/wallet-browser-event-types.d.ts +0 -116
  101. package/utils/wallet-browser-event-types.js +0 -17
package/Link.js DELETED
@@ -1,530 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
- return new (P || (P = Promise))(function (resolve, reject) {
15
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
- step((generator = generator.apply(thisArg, _arguments || [])).next());
19
- });
20
- };
21
- var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
- function verb(n) { return function (v) { return step([n, v]); }; }
25
- function step(op) {
26
- if (f) throw new TypeError("Generator is already executing.");
27
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
- if (y = 0, t) op = [op[0] & 2, t.value];
30
- switch (op[0]) {
31
- case 0: case 1: t = op; break;
32
- case 4: _.label++; return { value: op[1], done: false };
33
- case 5: _.label++; y = op[1]; op = [0]; continue;
34
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
- default:
36
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
- if (t[2]) _.ops.pop();
41
- _.trys.pop(); continue;
42
- }
43
- op = body.call(thisArg, _);
44
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
- }
47
- };
48
- import { addPopup, iframeId, removePopup } from './utils/popup';
49
- import { isLinkEventTypeKey } from './utils/event-types';
50
- import { isWalletBrowserEventTypeKey } from './utils/wallet-browser-event-types';
51
- import { sdkSpecs } from './utils/sdk-specs';
52
- import { WalletStrategyFactory } from './utils/wallet';
53
- var currentOptions;
54
- var targetOrigin;
55
- var linkTokenOrigin;
56
- var currentIframeId = iframeId;
57
- var iframeElement = function () {
58
- return document.getElementById(currentIframeId);
59
- };
60
- function sendMessageToIframe(message) {
61
- var _a;
62
- var iframe = iframeElement();
63
- if (!iframe) {
64
- console.warn("Mesh SDK: Failed to deliver ".concat(message.type, " message to the iframe - no iframe element found"));
65
- return;
66
- }
67
- if (!linkTokenOrigin) {
68
- console.warn("Mesh SDK: Failed to deliver ".concat(message.type, " message to the iframe - no link token origin found"));
69
- return;
70
- }
71
- try {
72
- (_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.postMessage(message, linkTokenOrigin);
73
- }
74
- catch (e) {
75
- console.error("Mesh SDK: Failed to deliver ".concat(message.type, " message to the iframe"));
76
- console.error(e);
77
- }
78
- }
79
- function handleLinkEvent(event) {
80
- return __awaiter(this, void 0, void 0, function () {
81
- var payload, payload, payload, payload, walletFactory, allProviders;
82
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
83
- return __generator(this, function (_l) {
84
- switch (event.data.type) {
85
- case 'brokerageAccountAccessToken': {
86
- payload = {
87
- accessToken: event.data.payload
88
- };
89
- (_a = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _a === void 0 ? void 0 : _a.call(currentOptions, {
90
- type: 'integrationConnected',
91
- payload: payload
92
- });
93
- (_b = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onIntegrationConnected) === null || _b === void 0 ? void 0 : _b.call(currentOptions, payload);
94
- break;
95
- }
96
- case 'delayedAuthentication': {
97
- payload = {
98
- delayedAuth: event.data.payload
99
- };
100
- (_c = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _c === void 0 ? void 0 : _c.call(currentOptions, {
101
- type: 'integrationConnected',
102
- payload: payload
103
- });
104
- (_d = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onIntegrationConnected) === null || _d === void 0 ? void 0 : _d.call(currentOptions, payload);
105
- break;
106
- }
107
- case 'transferFinished': {
108
- payload = event.data.payload;
109
- (_e = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _e === void 0 ? void 0 : _e.call(currentOptions, {
110
- type: 'transferCompleted',
111
- payload: payload
112
- });
113
- (_f = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onTransferFinished) === null || _f === void 0 ? void 0 : _f.call(currentOptions, payload);
114
- break;
115
- }
116
- case 'close':
117
- case 'done': {
118
- payload = (_g = event.data) === null || _g === void 0 ? void 0 : _g.payload;
119
- (_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);
120
- removePopup();
121
- break;
122
- }
123
- case 'loaded': {
124
- sendMessageToIframe({
125
- type: 'meshSDKSpecs',
126
- payload: __assign({}, sdkSpecs)
127
- });
128
- walletFactory = WalletStrategyFactory.getInstance();
129
- allProviders = walletFactory.getAllProviders();
130
- sendMessageToIframe({
131
- type: 'SDKinjectedWalletProviders',
132
- payload: allProviders
133
- });
134
- if (currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.accessTokens) {
135
- sendMessageToIframe({
136
- type: 'frontAccessTokens',
137
- payload: currentOptions.accessTokens
138
- });
139
- }
140
- if (currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.transferDestinationTokens) {
141
- sendMessageToIframe({
142
- type: 'frontTransferDestinationTokens',
143
- payload: currentOptions.transferDestinationTokens
144
- });
145
- }
146
- (_j = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _j === void 0 ? void 0 : _j.call(currentOptions, { type: 'pageLoaded' });
147
- break;
148
- }
149
- default: {
150
- if (isLinkEventTypeKey(event.data.type)) {
151
- (_k = currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.onEvent) === null || _k === void 0 ? void 0 : _k.call(currentOptions, event.data);
152
- }
153
- break;
154
- }
155
- }
156
- return [2 /*return*/];
157
- });
158
- });
159
- }
160
- function handleWalletBrowserEvent(event) {
161
- return __awaiter(this, void 0, void 0, function () {
162
- var walletFactory, _a, payload, networkType, strategy, result, error_1, payload, networkType, strategy, result, error_2, payload, networkType, strategy, result, error_3, payload, networkType, strategy, result, error_4, payload, getResponseType, networkType, strategy, result, responseType, error_5, errorType, payload, getResponseType, networkType, strategy, result, responseType, error_6, errorType, payload, responseType, networkType, strategy, result, error_7, payload, responseType, networkType, strategy, result, error_8, payload, networkType, strategy, error_9, payload, networkType, strategy, result, error_10;
163
- var _b;
164
- return __generator(this, function (_c) {
165
- switch (_c.label) {
166
- case 0:
167
- walletFactory = WalletStrategyFactory.getInstance();
168
- _a = event.data.type;
169
- switch (_a) {
170
- case 'walletBrowserInjectedWalletSelected': return [3 /*break*/, 1];
171
- case 'walletBrowserSignRequest': return [3 /*break*/, 6];
172
- case 'walletBrowserChainSwitchRequest': return [3 /*break*/, 11];
173
- case 'walletBrowserNativeTransferRequest': return [3 /*break*/, 16];
174
- case 'walletBrowserNonNativeTransferRequest': return [3 /*break*/, 21];
175
- case 'walletBrowserNonNativeSmartDeposit': return [3 /*break*/, 21];
176
- case 'walletBrowserNativeSmartDeposit': return [3 /*break*/, 26];
177
- case 'walletBrowserTransactionBatchRequest': return [3 /*break*/, 31];
178
- case 'walletBrowserWalletCapabilities': return [3 /*break*/, 36];
179
- case 'walletBrowserDisconnect': return [3 /*break*/, 41];
180
- case 'walletBrowserSolanaTransferWithInstructionsRequest': return [3 /*break*/, 49];
181
- }
182
- return [3 /*break*/, 54];
183
- case 1:
184
- payload = event.data.payload;
185
- _c.label = 2;
186
- case 2:
187
- _c.trys.push([2, 4, , 5]);
188
- networkType = (((_b = payload.networkType) === null || _b === void 0 ? void 0 : _b.includes('solana')) ? 'solana' : 'evm');
189
- strategy = walletFactory.getStrategy(networkType);
190
- return [4 /*yield*/, strategy.connect(payload)];
191
- case 3:
192
- result = _c.sent();
193
- sendMessageToIframe({
194
- type: 'SDKinjectedConnectionCompleted',
195
- payload: {
196
- accounts: result.accounts,
197
- chainId: result.chainId,
198
- networkType: networkType
199
- }
200
- });
201
- return [3 /*break*/, 5];
202
- case 4:
203
- error_1 = _c.sent();
204
- console.error('Connection error:', error_1);
205
- handleErrorAndSendMessage(error_1, 'SDKinjectedConnectionCompleted');
206
- return [3 /*break*/, 5];
207
- case 5: return [3 /*break*/, 54];
208
- case 6:
209
- payload = event.data.payload;
210
- _c.label = 7;
211
- case 7:
212
- _c.trys.push([7, 9, , 10]);
213
- networkType = (!payload.address.startsWith('0x') ? 'solana' : 'evm');
214
- strategy = walletFactory.getStrategy(networkType);
215
- return [4 /*yield*/, strategy.signMessage(payload)];
216
- case 8:
217
- result = _c.sent();
218
- sendMessageToIframe({
219
- type: 'SDKsignRequestCompleted',
220
- payload: result
221
- });
222
- return [3 /*break*/, 10];
223
- case 9:
224
- error_2 = _c.sent();
225
- handleErrorAndSendMessage(error_2, 'SDKsignRequestCompleted');
226
- return [3 /*break*/, 10];
227
- case 10: return [3 /*break*/, 54];
228
- case 11:
229
- payload = event.data.payload;
230
- _c.label = 12;
231
- case 12:
232
- _c.trys.push([12, 14, , 15]);
233
- networkType = (payload.networkType === 'solana' ? 'solana' : 'evm');
234
- strategy = walletFactory.getStrategy(networkType);
235
- return [4 /*yield*/, strategy.switchChain(payload)];
236
- case 13:
237
- result = _c.sent();
238
- sendMessageToIframe({
239
- type: 'SDKswitchChainCompleted',
240
- payload: {
241
- chainId: result.chainId,
242
- accounts: result.accounts,
243
- networkType: networkType
244
- }
245
- });
246
- return [3 /*break*/, 15];
247
- case 14:
248
- error_3 = _c.sent();
249
- console.error('Chain switch failed:', error_3);
250
- handleErrorAndSendMessage(error_3, 'SDKswitchChainCompleted');
251
- return [3 /*break*/, 15];
252
- case 15: return [3 /*break*/, 54];
253
- case 16:
254
- payload = event.data.payload;
255
- _c.label = 17;
256
- case 17:
257
- _c.trys.push([17, 19, , 20]);
258
- networkType = (payload.network === 'solana' ? 'solana' : 'evm');
259
- strategy = walletFactory.getStrategy(networkType);
260
- return [4 /*yield*/, strategy.sendNativeTransfer(payload)];
261
- case 18:
262
- result = _c.sent();
263
- sendMessageToIframe({
264
- type: 'SDKnativeTransferCompleted',
265
- payload: result
266
- });
267
- return [3 /*break*/, 20];
268
- case 19:
269
- error_4 = _c.sent();
270
- handleErrorAndSendMessage(error_4, 'SDKnativeTransferCompleted');
271
- return [3 /*break*/, 20];
272
- case 20: return [3 /*break*/, 54];
273
- case 21:
274
- payload = event.data.payload;
275
- getResponseType = function (type) {
276
- switch (type) {
277
- case 'walletBrowserNonNativeTransferRequest':
278
- return 'SDKnonNativeTransferCompleted';
279
- case 'walletBrowserNativeSmartDeposit':
280
- return 'SDKnativeSmartDepositCompleted';
281
- case 'walletBrowserNonNativeSmartDeposit':
282
- return 'SDKnonNativeSmartDepositCompleted';
283
- default:
284
- return 'SDKnonNativeTransferCompleted';
285
- }
286
- };
287
- _c.label = 22;
288
- case 22:
289
- _c.trys.push([22, 24, , 25]);
290
- networkType = (payload.address.startsWith('0x') ? 'evm' : 'solana');
291
- strategy = walletFactory.getStrategy(networkType);
292
- return [4 /*yield*/, strategy.sendSmartContractInteraction(payload)];
293
- case 23:
294
- result = _c.sent();
295
- responseType = getResponseType(event.data.type);
296
- sendMessageToIframe({
297
- type: responseType,
298
- payload: {
299
- txHash: result
300
- }
301
- });
302
- return [3 /*break*/, 25];
303
- case 24:
304
- error_5 = _c.sent();
305
- errorType = getResponseType(event.data.type);
306
- handleErrorAndSendMessage(error_5, errorType);
307
- return [3 /*break*/, 25];
308
- case 25: return [3 /*break*/, 54];
309
- case 26:
310
- payload = event.data.payload;
311
- getResponseType = function (type) {
312
- switch (type) {
313
- case 'walletBrowserNonNativeTransferRequest':
314
- return 'SDKnonNativeTransferCompleted';
315
- case 'walletBrowserNativeSmartDeposit':
316
- return 'SDKnativeSmartDepositCompleted';
317
- case 'walletBrowserNonNativeSmartDeposit':
318
- return 'SDKnonNativeSmartDepositCompleted';
319
- default:
320
- return 'SDKnonNativeTransferCompleted';
321
- }
322
- };
323
- _c.label = 27;
324
- case 27:
325
- _c.trys.push([27, 29, , 30]);
326
- networkType = (payload.address.startsWith('0x') ? 'evm' : 'solana');
327
- strategy = walletFactory.getStrategy(networkType);
328
- return [4 /*yield*/, strategy.sendNativeSmartContractInteraction(payload)];
329
- case 28:
330
- result = _c.sent();
331
- responseType = getResponseType(event.data.type);
332
- sendMessageToIframe({
333
- type: responseType,
334
- payload: {
335
- txHash: result
336
- }
337
- });
338
- return [3 /*break*/, 30];
339
- case 29:
340
- error_6 = _c.sent();
341
- errorType = getResponseType(event.data.type);
342
- handleErrorAndSendMessage(error_6, errorType);
343
- return [3 /*break*/, 30];
344
- case 30: return [3 /*break*/, 54];
345
- case 31:
346
- payload = event.data.payload;
347
- responseType = 'SDKtransactionBatchCompleted';
348
- _c.label = 32;
349
- case 32:
350
- _c.trys.push([32, 34, , 35]);
351
- networkType = (payload.from.startsWith('0x') ? 'evm' : 'solana');
352
- strategy = walletFactory.getStrategy(networkType);
353
- return [4 /*yield*/, strategy.sendTransactionBatch(payload)];
354
- case 33:
355
- result = _c.sent();
356
- sendMessageToIframe({
357
- type: responseType,
358
- payload: {
359
- txHash: result
360
- }
361
- });
362
- return [3 /*break*/, 35];
363
- case 34:
364
- error_7 = _c.sent();
365
- handleErrorAndSendMessage(error_7, responseType);
366
- return [3 /*break*/, 35];
367
- case 35: return [3 /*break*/, 54];
368
- case 36:
369
- payload = event.data.payload;
370
- responseType = 'SDKwalletCapabilitiesCompleted';
371
- _c.label = 37;
372
- case 37:
373
- _c.trys.push([37, 39, , 40]);
374
- networkType = (payload.from.startsWith('0x') ? 'evm' : 'solana');
375
- strategy = walletFactory.getStrategy(networkType);
376
- return [4 /*yield*/, strategy.getWalletCapabilities(payload)];
377
- case 38:
378
- result = _c.sent();
379
- sendMessageToIframe({
380
- type: responseType,
381
- payload: result
382
- });
383
- return [3 /*break*/, 40];
384
- case 39:
385
- error_8 = _c.sent();
386
- handleErrorAndSendMessage(error_8, responseType);
387
- return [3 /*break*/, 40];
388
- case 40: return [3 /*break*/, 54];
389
- case 41:
390
- payload = event.data.payload;
391
- _c.label = 42;
392
- case 42:
393
- _c.trys.push([42, 47, , 48]);
394
- if (!(payload === null || payload === void 0 ? void 0 : payload.networkType)) return [3 /*break*/, 44];
395
- networkType = (payload.networkType === 'solana' ? 'solana' : 'evm');
396
- strategy = walletFactory.getStrategy(networkType);
397
- return [4 /*yield*/, strategy.disconnect(payload)];
398
- case 43:
399
- _c.sent();
400
- return [3 /*break*/, 46];
401
- case 44:
402
- // Disconnect from all if no specific network type
403
- return [4 /*yield*/, Promise.all([
404
- walletFactory.getStrategy('solana').disconnect(payload),
405
- walletFactory.getStrategy('evm').disconnect(payload)
406
- ])];
407
- case 45:
408
- // Disconnect from all if no specific network type
409
- _c.sent();
410
- _c.label = 46;
411
- case 46:
412
- sendMessageToIframe({
413
- type: 'SDKdisconnectSuccess'
414
- });
415
- return [3 /*break*/, 48];
416
- case 47:
417
- error_9 = _c.sent();
418
- console.error('Error during disconnect:', error_9);
419
- handleErrorAndSendMessage(error_9, 'SDKdisconnectSuccess');
420
- return [3 /*break*/, 48];
421
- case 48: return [3 /*break*/, 54];
422
- case 49:
423
- payload = event.data
424
- .payload;
425
- _c.label = 50;
426
- case 50:
427
- _c.trys.push([50, 52, , 53]);
428
- networkType = 'solana';
429
- strategy = walletFactory.getStrategy(networkType);
430
- return [4 /*yield*/, strategy.sendTransactionWithInstructions(payload)];
431
- case 51:
432
- result = _c.sent();
433
- sendMessageToIframe({
434
- type: 'SDKnonNativeTransferCompleted',
435
- payload: {
436
- txHash: result
437
- }
438
- });
439
- return [3 /*break*/, 53];
440
- case 52:
441
- error_10 = _c.sent();
442
- handleErrorAndSendMessage(error_10, 'SDKdisconnectSuccess');
443
- return [3 /*break*/, 53];
444
- case 53: return [3 /*break*/, 54];
445
- case 54: return [2 /*return*/];
446
- }
447
- });
448
- });
449
- }
450
- function eventsListener(event) {
451
- return __awaiter(this, void 0, void 0, function () {
452
- return __generator(this, function (_a) {
453
- switch (_a.label) {
454
- case 0:
455
- if (!(event.origin !== targetOrigin && event.origin !== linkTokenOrigin)) return [3 /*break*/, 1];
456
- console.warn('Received message from untrusted origin:', event.origin);
457
- return [3 /*break*/, 5];
458
- case 1:
459
- if (!isWalletBrowserEventTypeKey(event.data.type)) return [3 /*break*/, 3];
460
- return [4 /*yield*/, handleWalletBrowserEvent(event)];
461
- case 2:
462
- _a.sent();
463
- return [3 /*break*/, 5];
464
- case 3: return [4 /*yield*/, handleLinkEvent(event)];
465
- case 4:
466
- _a.sent();
467
- _a.label = 5;
468
- case 5: return [2 /*return*/];
469
- }
470
- });
471
- });
472
- }
473
- function handleErrorAndSendMessage(error, messageType) {
474
- sendMessageToIframe({
475
- type: messageType,
476
- payload: {
477
- error: error
478
- }
479
- });
480
- }
481
- export var createLink = function (options) {
482
- var openLink = function (linkToken, customIframeId) {
483
- var _a;
484
- if (!linkToken) {
485
- (_a = options === null || options === void 0 ? void 0 : options.onExit) === null || _a === void 0 ? void 0 : _a.call(options, 'Invalid link token!');
486
- return;
487
- }
488
- currentOptions = options;
489
- var linkUrl = window.atob(linkToken);
490
- linkUrl = addLanguage(linkUrl, currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.language);
491
- linkTokenOrigin = new URL(linkUrl).origin;
492
- window.removeEventListener('message', eventsListener);
493
- if (customIframeId) {
494
- var iframe = document.getElementById(customIframeId);
495
- if (iframe) {
496
- iframe.allow = 'clipboard-read *; clipboard-write *';
497
- iframe.src = linkUrl;
498
- currentIframeId = customIframeId;
499
- }
500
- else {
501
- console.warn("Mesh SDK: No iframe found with id ".concat(customIframeId));
502
- }
503
- }
504
- else {
505
- currentIframeId = iframeId;
506
- addPopup(linkUrl);
507
- }
508
- window.addEventListener('message', eventsListener);
509
- targetOrigin = window.location.origin;
510
- };
511
- var closeLink = function () {
512
- var _a;
513
- removePopup();
514
- window.removeEventListener('message', eventsListener);
515
- (_a = options.onExit) === null || _a === void 0 ? void 0 : _a.call(options);
516
- };
517
- return {
518
- openLink: openLink,
519
- closeLink: closeLink
520
- };
521
- };
522
- function addLanguage(linkUrl, language) {
523
- if (language === 'system') {
524
- language =
525
- typeof navigator !== 'undefined' && navigator.language
526
- ? encodeURIComponent(navigator.language)
527
- : undefined;
528
- }
529
- return "".concat(linkUrl).concat(linkUrl.includes('?') ? '&' : '?', "lng=").concat(language || 'en');
530
- }
package/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './utils/types';
2
- export * from './utils/event-types';
3
- export { createLink } from './Link';
package/index.js DELETED
@@ -1,3 +0,0 @@
1
- export * from './utils/types';
2
- export * from './utils/event-types';
3
- export { createLink } from './Link';
@@ -1,2 +0,0 @@
1
- import { ChainConfig } from './types';
2
- export declare const getChainConfiguration: (chainId: number) => ChainConfig | undefined;
@@ -1,115 +0,0 @@
1
- // Chain configurations
2
- var chainConfigs = {
3
- 43114: {
4
- // Avalanche
5
- name: 'Avalanche',
6
- nativeCurrency: {
7
- decimals: 18,
8
- name: 'Avalanche',
9
- symbol: 'AVAX'
10
- },
11
- rpcUrls: {
12
- default: { http: ['https://avalanche-mainnet.infura.io'] }
13
- },
14
- blockExplorers: {
15
- default: {
16
- name: 'SnowTrace',
17
- url: 'https://snowtrace.io'
18
- }
19
- }
20
- },
21
- 42161: {
22
- // Arbitrum
23
- name: 'Arbitrum One',
24
- nativeCurrency: {
25
- decimals: 18,
26
- name: 'Ether',
27
- symbol: 'ETH'
28
- },
29
- rpcUrls: {
30
- default: { http: ['https://arb1.arbitrum.io/rpc'] }
31
- },
32
- blockExplorers: {
33
- default: {
34
- name: 'Arbiscan',
35
- url: 'https://arbiscan.io'
36
- }
37
- }
38
- },
39
- 10: {
40
- // Optimism
41
- name: 'OP Mainnet',
42
- nativeCurrency: {
43
- decimals: 18,
44
- name: 'Ether',
45
- symbol: 'ETH'
46
- },
47
- rpcUrls: {
48
- default: { http: ['https://mainnet.optimism.io'] }
49
- },
50
- blockExplorers: {
51
- default: {
52
- name: 'Optimism Explorer',
53
- url: 'https://optimistic.etherscan.io'
54
- }
55
- }
56
- },
57
- 8453: {
58
- // Base
59
- name: 'Base',
60
- nativeCurrency: {
61
- decimals: 18,
62
- name: 'Ether',
63
- symbol: 'ETH'
64
- },
65
- rpcUrls: {
66
- default: { http: ['https://mainnet.base.org'] }
67
- },
68
- blockExplorers: {
69
- default: {
70
- name: 'Basescan',
71
- url: 'https://basescan.org'
72
- }
73
- }
74
- },
75
- 137: {
76
- // Polygon
77
- name: 'Polygon',
78
- nativeCurrency: {
79
- decimals: 18,
80
- name: 'MATIC',
81
- symbol: 'MATIC'
82
- },
83
- rpcUrls: {
84
- default: { http: ['https://polygon-rpc.com'] }
85
- },
86
- blockExplorers: {
87
- default: {
88
- name: 'PolygonScan',
89
- url: 'https://polygonscan.com'
90
- }
91
- }
92
- },
93
- 56: {
94
- // BSC
95
- name: 'BNB Smart Chain',
96
- nativeCurrency: {
97
- decimals: 18,
98
- name: 'BNB',
99
- symbol: 'BNB'
100
- },
101
- rpcUrls: {
102
- default: { http: ['https://rpc.ankr.com/bsc'] }
103
- },
104
- blockExplorers: {
105
- default: {
106
- name: 'BscScan',
107
- url: 'https://bscscan.com'
108
- }
109
- }
110
- }
111
- };
112
- // Helper function to get chain configuration
113
- export var getChainConfiguration = function (chainId) {
114
- return chainConfigs[chainId];
115
- };
@@ -1,15 +0,0 @@
1
- import { EVMProvider } from './types';
2
- /**
3
- * Switches the current EVM chain
4
- */
5
- export declare const switchEVMChain: (chainId: number, provider?: EVMProvider) => Promise<{
6
- chainId: number;
7
- accounts: string[];
8
- } | Error>;
9
- /**
10
- * Gets the current chain switch status
11
- */
12
- export declare const getChainSwitchStatus: () => {
13
- isChainSwitching: boolean;
14
- chainSwitchError: null;
15
- };