@meshconnect/web-link-sdk 2.1.0-rc.2 → 2.1.0-rc.4

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 (51) hide show
  1. package/Link.d.ts +2 -0
  2. package/Link.js +420 -0
  3. package/cjs/Link.js +424 -0
  4. package/cjs/index.js +21 -0
  5. package/cjs/utils/event-types.js +31 -0
  6. package/cjs/utils/popup.js +39 -0
  7. package/cjs/utils/sdk-specs.js +8 -0
  8. package/cjs/utils/style.js +18 -0
  9. package/cjs/utils/types.js +2 -0
  10. package/cjs/utils/version.js +4 -0
  11. package/cjs/utils/wagmiCoreConnectorsUtils.js +425 -0
  12. package/cjs/utils/wallet-browser-event-types.js +17 -0
  13. package/index.d.ts +3 -0
  14. package/index.js +3 -0
  15. package/package.json +11 -22
  16. package/utils/event-types.d.ts +152 -0
  17. package/utils/event-types.js +27 -0
  18. package/utils/popup.d.ts +3 -0
  19. package/utils/popup.js +34 -0
  20. package/utils/sdk-specs.d.ts +4 -0
  21. package/utils/sdk-specs.js +5 -0
  22. package/utils/style.d.ts +3 -0
  23. package/utils/style.js +13 -0
  24. package/utils/types.d.ts +134 -0
  25. package/utils/types.js +1 -0
  26. package/utils/version.d.ts +1 -0
  27. package/utils/version.js +1 -0
  28. package/utils/wagmiCoreConnectorsUtils.d.ts +11 -0
  29. package/utils/wagmiCoreConnectorsUtils.js +414 -0
  30. package/utils/wallet-browser-event-types.d.ts +59 -0
  31. package/utils/wallet-browser-event-types.js +13 -0
  32. package/jest.setup.ts +0 -4
  33. package/src/Link.test.ts +0 -395
  34. package/src/Link.ts +0 -350
  35. package/src/index.ts +0 -3
  36. package/src/utils/__snapshots__/popup.test.ts.snap +0 -90
  37. package/src/utils/event-types.test.ts +0 -24
  38. package/src/utils/event-types.ts +0 -226
  39. package/src/utils/popup.test.ts +0 -50
  40. package/src/utils/popup.ts +0 -132
  41. package/src/utils/sdk-specs.test.ts +0 -17
  42. package/src/utils/sdk-specs.ts +0 -6
  43. package/src/utils/style.test.ts +0 -33
  44. package/src/utils/style.ts +0 -15
  45. package/src/utils/types.ts +0 -156
  46. package/src/utils/version.ts +0 -1
  47. package/src/utils/wagmiCoreConnectorsUtils.ts +0 -332
  48. package/src/utils/wallet-browser-event-types.ts +0 -102
  49. package/tools/copy.js +0 -25
  50. package/tools/update-version.js +0 -10
  51. package/tsconfig.json +0 -14
@@ -0,0 +1,425 @@
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
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40
+ if (ar || !(i in from)) {
41
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42
+ ar[i] = from[i];
43
+ }
44
+ }
45
+ return to.concat(ar || Array.prototype.slice.call(from));
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.disconnectAllAccounts = exports.sendNonNativeTransactionFromSDK = exports.sendTransactionFromSDK = exports.switchChainFromSDK = exports.walletBalance = exports.signedMessage = exports.connectToSpecificWallet = exports.getWagmiCoreInjectedData = void 0;
49
+ var core_1 = require("@wagmi/core");
50
+ var connectors_1 = require("@wagmi/connectors");
51
+ var viem_1 = require("viem");
52
+ var resolveConfigReady;
53
+ var configReady = new Promise(function (resolve) {
54
+ resolveConfigReady = resolve;
55
+ });
56
+ var setConfig = function (config) {
57
+ try {
58
+ var transports = {};
59
+ for (var chainId in config.transports) {
60
+ var urls = config.transports[chainId];
61
+ if (Array.isArray(urls)) {
62
+ // If the URL is an array, create a fallback transport with multiple transports
63
+ transports[chainId] = (0, core_1.fallback)(urls.map(function (url) { return (0, core_1.http)(url); }));
64
+ }
65
+ else {
66
+ // If the URL is a string, create a single HTTP transport
67
+ transports[chainId] = (0, core_1.http)(urls);
68
+ }
69
+ }
70
+ var chainsTuple = __spreadArray([], config.chains, true);
71
+ var dynamicConfig = (0, core_1.createConfig)({
72
+ chains: chainsTuple,
73
+ multiInjectedProviderDiscovery: true,
74
+ transports: transports,
75
+ connectors: [(0, connectors_1.injected)()]
76
+ });
77
+ resolveConfigReady(dynamicConfig);
78
+ }
79
+ catch (error) {
80
+ console.error('Error setting configuration:', error);
81
+ }
82
+ };
83
+ window.addEventListener('message', function (event) {
84
+ if (event.data.type === 'walletBrowserConfigInitialize') {
85
+ try {
86
+ var parsedConfig = JSON.parse(event.data.payload);
87
+ setConfig(parsedConfig);
88
+ }
89
+ catch (error) {
90
+ console.error('Error parsing configuration:', error);
91
+ }
92
+ }
93
+ });
94
+ var configPromise = configReady;
95
+ var getWagmiCoreInjectedData = function () { return __awaiter(void 0, void 0, void 0, function () {
96
+ return __generator(this, function (_a) {
97
+ return [2 /*return*/, withWagmiErrorHandling(function () { return __awaiter(void 0, void 0, void 0, function () {
98
+ var config, connectors, mappedConnectors;
99
+ return __generator(this, function (_a) {
100
+ switch (_a.label) {
101
+ case 0: return [4 /*yield*/, configPromise];
102
+ case 1:
103
+ config = _a.sent();
104
+ return [4 /*yield*/, (0, core_1.getConnectors)(config)];
105
+ case 2:
106
+ connectors = _a.sent();
107
+ mappedConnectors = connectors.map(function (_a) {
108
+ var id = _a.id, name = _a.name, type = _a.type, uid = _a.uid, icon = _a.icon;
109
+ return ({
110
+ id: id,
111
+ name: name,
112
+ type: type,
113
+ uid: uid,
114
+ icon: icon || undefined
115
+ });
116
+ });
117
+ return [2 /*return*/, mappedConnectors];
118
+ }
119
+ });
120
+ }); })];
121
+ });
122
+ }); };
123
+ exports.getWagmiCoreInjectedData = getWagmiCoreInjectedData;
124
+ var connectToSpecificWallet = function (walletName) { return __awaiter(void 0, void 0, void 0, function () {
125
+ return __generator(this, function (_a) {
126
+ return [2 /*return*/, withWagmiErrorHandling(function () { return __awaiter(void 0, void 0, void 0, function () {
127
+ var config, connectors, selectedConnector, result, accountInfo, txSigned;
128
+ return __generator(this, function (_a) {
129
+ switch (_a.label) {
130
+ case 0: return [4 /*yield*/, configPromise];
131
+ case 1:
132
+ config = _a.sent();
133
+ connectors = (0, core_1.getConnectors)(config);
134
+ selectedConnector = connectors.find(function (connector) {
135
+ return connector.name.toLowerCase() === walletName.toLowerCase();
136
+ });
137
+ if (!selectedConnector) {
138
+ throw new Error("No connector found for wallet: ".concat(walletName));
139
+ }
140
+ return [4 /*yield*/, disconnectCurrentAccount(config, selectedConnector)];
141
+ case 2:
142
+ _a.sent();
143
+ return [4 /*yield*/, (0, core_1.connect)(config, { connector: selectedConnector })];
144
+ case 3:
145
+ result = _a.sent();
146
+ return [4 /*yield*/, (0, core_1.getAccount)(config)];
147
+ case 4:
148
+ accountInfo = _a.sent();
149
+ return [4 /*yield*/, (0, exports.signedMessage)(config, accountInfo)];
150
+ case 5:
151
+ txSigned = _a.sent();
152
+ return [2 /*return*/, {
153
+ accounts: __spreadArray([], result.accounts, true),
154
+ chainId: result.chainId,
155
+ txSigned: txSigned
156
+ }];
157
+ }
158
+ });
159
+ }); })];
160
+ });
161
+ }); };
162
+ exports.connectToSpecificWallet = connectToSpecificWallet;
163
+ var signedMessage = function (config, accountInfo) { return __awaiter(void 0, void 0, void 0, function () {
164
+ return __generator(this, function (_a) {
165
+ if (!accountInfo.address) {
166
+ return [2 /*return*/, new Error('Address not found')];
167
+ }
168
+ return [2 /*return*/, withWagmiErrorHandling(function () { return __awaiter(void 0, void 0, void 0, function () {
169
+ var signedMessage;
170
+ return __generator(this, function (_a) {
171
+ switch (_a.label) {
172
+ case 0: return [4 /*yield*/, (0, core_1.signMessage)(config, {
173
+ account: accountInfo.address,
174
+ message: 'Sign to verify ownership of wallet'
175
+ })];
176
+ case 1:
177
+ signedMessage = _a.sent();
178
+ return [2 /*return*/, signedMessage];
179
+ }
180
+ });
181
+ }); })];
182
+ });
183
+ }); };
184
+ exports.signedMessage = signedMessage;
185
+ var walletBalance = function (account, chainId) { return __awaiter(void 0, void 0, void 0, function () {
186
+ return __generator(this, function (_a) {
187
+ return [2 /*return*/, withWagmiErrorHandling(function () { return __awaiter(void 0, void 0, void 0, function () {
188
+ var config, balance;
189
+ return __generator(this, function (_a) {
190
+ switch (_a.label) {
191
+ case 0: return [4 /*yield*/, configPromise];
192
+ case 1:
193
+ config = _a.sent();
194
+ return [4 /*yield*/, (0, core_1.getBalance)(config, {
195
+ address: account,
196
+ chainId: chainId
197
+ })];
198
+ case 2:
199
+ balance = _a.sent();
200
+ return [2 /*return*/, balance];
201
+ }
202
+ });
203
+ }); })];
204
+ });
205
+ }); };
206
+ exports.walletBalance = walletBalance;
207
+ var switchChainFromSDK = function (chainId) { return __awaiter(void 0, void 0, void 0, function () {
208
+ return __generator(this, function (_a) {
209
+ switch (_a.label) {
210
+ case 0: return [4 /*yield*/, withWagmiErrorHandling(function () { return __awaiter(void 0, void 0, void 0, function () {
211
+ var config, result;
212
+ return __generator(this, function (_a) {
213
+ switch (_a.label) {
214
+ case 0: return [4 /*yield*/, configPromise];
215
+ case 1:
216
+ config = _a.sent();
217
+ return [4 /*yield*/, (0, core_1.switchChain)(config, { chainId: chainId })];
218
+ case 2:
219
+ result = _a.sent();
220
+ return [2 /*return*/, result];
221
+ }
222
+ });
223
+ }); })];
224
+ case 1: return [2 /*return*/, _a.sent()];
225
+ }
226
+ });
227
+ }); };
228
+ exports.switchChainFromSDK = switchChainFromSDK;
229
+ var sendTransactionFromSDK = function (toAddress, amount, decimalPlaces, chainId, account) { return __awaiter(void 0, void 0, void 0, function () {
230
+ return __generator(this, function (_a) {
231
+ switch (_a.label) {
232
+ case 0: return [4 /*yield*/, withWagmiErrorHandling(function () { return __awaiter(void 0, void 0, void 0, function () {
233
+ var config, result;
234
+ return __generator(this, function (_a) {
235
+ switch (_a.label) {
236
+ case 0: return [4 /*yield*/, configPromise];
237
+ case 1:
238
+ config = _a.sent();
239
+ return [4 /*yield*/, (0, core_1.sendTransaction)(config, {
240
+ to: formatAddress(toAddress),
241
+ value: (0, viem_1.parseUnits)(amount.toFixed(decimalPlaces) || '0', decimalPlaces),
242
+ chainId: chainId,
243
+ account: formatAddress(account)
244
+ })];
245
+ case 2:
246
+ result = _a.sent();
247
+ return [2 /*return*/, result];
248
+ }
249
+ });
250
+ }); })];
251
+ case 1: return [2 /*return*/, _a.sent()];
252
+ }
253
+ });
254
+ }); };
255
+ exports.sendTransactionFromSDK = sendTransactionFromSDK;
256
+ var formatAddress = function (address) {
257
+ return address.startsWith('0x') ? address : "0x".concat(address);
258
+ };
259
+ var sendNonNativeTransactionFromSDK = function (address, abi, functionName, args, // eslint-disable-line @typescript-eslint/no-explicit-any
260
+ value) { return __awaiter(void 0, void 0, void 0, function () {
261
+ return __generator(this, function (_a) {
262
+ switch (_a.label) {
263
+ case 0: return [4 /*yield*/, withWagmiErrorHandling(function () { return __awaiter(void 0, void 0, void 0, function () {
264
+ var config, connector, request, result;
265
+ return __generator(this, function (_a) {
266
+ switch (_a.label) {
267
+ case 0: return [4 /*yield*/, configPromise];
268
+ case 1:
269
+ config = _a.sent();
270
+ return [4 /*yield*/, (0, core_1.getAccount)(config)];
271
+ case 2:
272
+ connector = (_a.sent()).connector;
273
+ return [4 /*yield*/, (0, core_1.simulateContract)(config, {
274
+ address: formatAddress(address),
275
+ abi: abi,
276
+ functionName: functionName,
277
+ args: args,
278
+ value: value,
279
+ connector: connector
280
+ })];
281
+ case 3:
282
+ request = (_a.sent()).request;
283
+ return [4 /*yield*/, (0, core_1.writeContract)(config, request)];
284
+ case 4:
285
+ result = _a.sent();
286
+ return [2 /*return*/, result];
287
+ }
288
+ });
289
+ }); })];
290
+ case 1: return [2 /*return*/, _a.sent()];
291
+ }
292
+ });
293
+ }); };
294
+ exports.sendNonNativeTransactionFromSDK = sendNonNativeTransactionFromSDK;
295
+ var disconnectCurrentAccount = function (config, currentConnector) { return __awaiter(void 0, void 0, void 0, function () {
296
+ return __generator(this, function (_a) {
297
+ switch (_a.label) {
298
+ case 0: return [4 /*yield*/, withWagmiErrorHandling(function () { return __awaiter(void 0, void 0, void 0, function () {
299
+ return __generator(this, function (_a) {
300
+ switch (_a.label) {
301
+ case 0: return [4 /*yield*/, (0, core_1.disconnect)(config, { connector: currentConnector })];
302
+ case 1:
303
+ _a.sent();
304
+ return [2 /*return*/];
305
+ }
306
+ });
307
+ }); })];
308
+ case 1: return [2 /*return*/, _a.sent()];
309
+ }
310
+ });
311
+ }); };
312
+ var disconnectAllAccounts = function () { return __awaiter(void 0, void 0, void 0, function () {
313
+ var config;
314
+ return __generator(this, function (_a) {
315
+ switch (_a.label) {
316
+ case 0: return [4 /*yield*/, configPromise];
317
+ case 1:
318
+ config = _a.sent();
319
+ return [2 /*return*/, withWagmiErrorHandling(function () { return __awaiter(void 0, void 0, void 0, function () {
320
+ return __generator(this, function (_a) {
321
+ switch (_a.label) {
322
+ case 0: return [4 /*yield*/, (0, core_1.disconnect)(config)];
323
+ case 1:
324
+ _a.sent();
325
+ return [2 /*return*/];
326
+ }
327
+ });
328
+ }); })];
329
+ }
330
+ });
331
+ }); };
332
+ exports.disconnectAllAccounts = disconnectAllAccounts;
333
+ /**
334
+ * Wrapper function for Wagmi Core functions that handles errors
335
+ * @param fn - The function to wrap
336
+ * @returns - The result of the function or an error
337
+ */
338
+ function withWagmiErrorHandling(fn) {
339
+ return __awaiter(this, void 0, void 0, function () {
340
+ var error_1;
341
+ return __generator(this, function (_a) {
342
+ switch (_a.label) {
343
+ case 0:
344
+ _a.trys.push([0, 2, , 3]);
345
+ return [4 /*yield*/, fn()];
346
+ case 1: return [2 /*return*/, _a.sent()];
347
+ case 2:
348
+ error_1 = _a.sent();
349
+ if (error_1 instanceof core_1.BaseError) {
350
+ return [2 /*return*/, handleWagmiError(error_1)];
351
+ }
352
+ else {
353
+ if (error_1 instanceof Error) {
354
+ throw new Error(error_1.message);
355
+ }
356
+ else {
357
+ throw new Error('An unexpected error has occurred');
358
+ }
359
+ }
360
+ return [3 /*break*/, 3];
361
+ case 3: return [2 /*return*/];
362
+ }
363
+ });
364
+ });
365
+ }
366
+ var handleWagmiError = function (error) {
367
+ if (error instanceof core_1.ChainNotConfiguredError) {
368
+ return handleChainNotConfiguredError(error);
369
+ }
370
+ else if (error instanceof core_1.ConnectorAccountNotFoundError) {
371
+ return handleConnectorAccountNotFoundError(error);
372
+ }
373
+ else if (error instanceof core_1.ConnectorAlreadyConnectedError) {
374
+ return handleConnectorAlreadyConnectedError(error);
375
+ }
376
+ else if (error instanceof core_1.ConnectorNotConnectedError) {
377
+ return handleConnectorNotConnectedError(error);
378
+ }
379
+ else if (error instanceof core_1.ConnectorNotFoundError) {
380
+ return handleConnectorNotFoundError(error);
381
+ }
382
+ else if (error instanceof core_1.ProviderNotFoundError) {
383
+ return handleProviderNotFoundError(error);
384
+ }
385
+ else if (error instanceof core_1.SwitchChainNotSupportedError) {
386
+ return handleSwitchChainNotSupportedError(error);
387
+ }
388
+ else if (error instanceof core_1.BaseError) {
389
+ return handleBaseError(error);
390
+ }
391
+ else {
392
+ // Handle unknown error types
393
+ if (error instanceof Error) {
394
+ throw new Error(error.message);
395
+ }
396
+ else {
397
+ throw new Error('An unexpected error has occurred');
398
+ }
399
+ }
400
+ };
401
+ // All errors extend base error
402
+ var handleBaseError = function (error) {
403
+ throw new Error(error.message);
404
+ };
405
+ var handleChainNotConfiguredError = function (error) {
406
+ throw new Error("Chain not configured: ".concat(error.message));
407
+ };
408
+ var handleConnectorAccountNotFoundError = function (error) {
409
+ throw new Error("Connector account not found: ".concat(error.message));
410
+ };
411
+ var handleConnectorAlreadyConnectedError = function (error) {
412
+ throw new Error("Connector already connected: ".concat(error.message));
413
+ };
414
+ var handleConnectorNotConnectedError = function (error) {
415
+ throw new Error("Connector not connected: ".concat(error.message));
416
+ };
417
+ var handleConnectorNotFoundError = function (error) {
418
+ throw new Error("Connector not found: ".concat(error.message));
419
+ };
420
+ var handleProviderNotFoundError = function (error) {
421
+ throw new Error("Provider not found: ".concat(error.message));
422
+ };
423
+ var handleSwitchChainNotSupportedError = function (error) {
424
+ throw new Error("Switch chain not supported: ".concat(error.message));
425
+ };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isWalletBrowserEventTypeKey = void 0;
4
+ var WALLET_BROWSER_EVENT_TYPE_KEYS = [
5
+ 'walletBrowserInjectedWalletSelected',
6
+ 'walletBrowserChainSwitchRequest',
7
+ 'walletBrowserTransferBalanceRequest',
8
+ 'walletBrowserNativeTransferRequest',
9
+ 'walletBrowserNonNativeTransferRequest',
10
+ 'walletBrowserNativeSmartDeposit',
11
+ 'walletBrowserNonNativeSmartDeposit',
12
+ 'walletBrowserDisconnect'
13
+ ];
14
+ function isWalletBrowserEventTypeKey(key) {
15
+ return WALLET_BROWSER_EVENT_TYPE_KEYS.includes(key);
16
+ }
17
+ exports.isWalletBrowserEventTypeKey = isWalletBrowserEventTypeKey;
package/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './utils/types';
2
+ export * from './utils/event-types';
3
+ export { createLink } from './Link';
package/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './utils/types';
2
+ export * from './utils/event-types';
3
+ export { createLink } from './Link';
package/package.json CHANGED
@@ -1,11 +1,7 @@
1
1
  {
2
2
  "name": "@meshconnect/web-link-sdk",
3
- "version": "2.1.0-rc.2",
3
+ "version": "2.1.0-rc.4",
4
4
  "description": "A client-side JS library for integrating with Mesh Connect",
5
- "main": "./src/index.ts",
6
- "module": "./src/index.ts",
7
- "types": "./src/index.ts",
8
- "type": "module",
9
5
  "license": "MIT",
10
6
  "repository": "https://github.com/FrontFin/mesh-web-sdk.git",
11
7
  "homepage": "https://github.com/FrontFin/mesh-web-sdk",
@@ -26,26 +22,16 @@
26
22
  },
27
23
  "dependencies": {
28
24
  "@meshconnect/node-api": "^2.0.5",
29
- "@wagmi/core": "^2.10.5",
25
+ "@wagmi/core": "^2.11.2",
30
26
  "viem": "^2.x",
31
- "@wagmi/connectors": "^5.0.7"
32
- },
33
- "scripts": {
34
- "build": "yarn updateVersion && rimraf dist && yarn build:esm && yarn build:cjs && yarn copy",
35
- "build:esm": "tsc --outDir dist",
36
- "build:cjs": "tsc --module commonjs --outDir dist/cjs",
37
- "typecheck": "tsc --noEmit --skipLibCheck",
38
- "lint": "eslint **/*.ts",
39
- "copy": "node ./tools/copy",
40
- "updateVersion": "node ./tools/update-version",
41
- "publish:npm": "yarn build && cd dist && yarn publish --access public --tag rc",
42
- "test": "jest",
43
- "test:cov": "jest --ci --coverage"
27
+ "@wagmi/connectors": "^5.0.14"
44
28
  },
45
29
  "jest": {
46
30
  "preset": "ts-jest",
47
31
  "testEnvironment": "jsdom",
48
- "setupFiles": ["./jest.setup.ts"],
32
+ "setupFiles": [
33
+ "./jest.setup.ts"
34
+ ],
49
35
  "testPathIgnorePatterns": [
50
36
  "/node_modules/",
51
37
  "/dist/"
@@ -68,5 +54,8 @@
68
54
  "testEnvironmentOptions": {
69
55
  "url": "http://localhost/"
70
56
  }
71
- }
72
- }
57
+ },
58
+ "main": "./cjs/index.js",
59
+ "module": "./index.js",
60
+ "types": "./index.d.ts"
61
+ }
@@ -0,0 +1,152 @@
1
+ import { LinkPayload, TransferFinishedPayload } from './types';
2
+ export type LinkEventType = IntegrationConnected | IntegrationConnectionError | TransferCompleted | IntegrationSelected | CredentialsEntered | TransferStarted | TransferPreviewed | TransferPreviewError | TransferExecutionError | PageLoaded | IntegrationMfaRequired | IntegrationMfaEntered | IntegrationOAuthStarted | IntegrationAccountSelectionRequired | TransferAssetSelected | TransferNetworkSelected | TransferAmountEntered | TransferMfaRequired | TransferMfaEntered | TransferKycRequired | DoneEvent | CloseEvent;
3
+ declare const LINK_EVENT_TYPE_KEYS: readonly ["integrationConnected", "integrationConnectionError", "integrationMfaRequired", "integrationMfaEntered", "integrationOAuthStarted", "integrationAccountSelectionRequired", "transferCompleted", "integrationSelected", "credentialsEntered", "transferStarted", "transferPreviewed", "transferPreviewError", "transferExecutionError", "pageLoaded", "transferAssetSelected", "transferNetworkSelected", "transferAmountEntered", "transferMfaRequired", "transferMfaEntered", "transferKycRequired", "done", "close"];
4
+ export type LinkEventTypeKeys = (typeof LINK_EVENT_TYPE_KEYS)[number];
5
+ export declare function isLinkEventTypeKey(key: string): key is LinkEventTypeKeys;
6
+ interface LinkEventBase {
7
+ type: LinkEventTypeKeys;
8
+ }
9
+ export interface PageLoaded {
10
+ type: 'pageLoaded';
11
+ }
12
+ export interface IntegrationConnected extends LinkEventBase {
13
+ type: 'integrationConnected';
14
+ payload: LinkPayload;
15
+ }
16
+ export interface IntegrationConnectionError extends LinkEventBase {
17
+ type: 'integrationConnectionError';
18
+ payload: {
19
+ errorMessage: string;
20
+ };
21
+ }
22
+ export interface TransferCompleted extends LinkEventBase {
23
+ type: 'transferCompleted';
24
+ payload: TransferFinishedPayload;
25
+ }
26
+ export interface IntegrationSelected extends LinkEventBase {
27
+ type: 'integrationSelected';
28
+ payload: {
29
+ integrationType: string;
30
+ integrationName: string;
31
+ };
32
+ }
33
+ export interface CredentialsEntered extends LinkEventBase {
34
+ type: 'credentialsEntered';
35
+ }
36
+ export interface TransferStarted extends LinkEventBase {
37
+ type: 'transferStarted';
38
+ }
39
+ export interface TransferPreviewed extends LinkEventBase {
40
+ type: 'transferPreviewed';
41
+ payload: {
42
+ amount: number;
43
+ symbol: string;
44
+ toAddress: string;
45
+ networkId: string;
46
+ previewId: string;
47
+ networkName?: string;
48
+ amountInFiat?: number;
49
+ estimatedNetworkGasFee?: {
50
+ fee?: number;
51
+ feeCurrency?: string;
52
+ feeInFiat?: number;
53
+ };
54
+ };
55
+ }
56
+ export interface TransferPreviewError extends LinkEventBase {
57
+ type: 'transferPreviewError';
58
+ payload: {
59
+ errorMessage: string;
60
+ };
61
+ }
62
+ export interface TransferExecutionError extends LinkEventBase {
63
+ type: 'transferExecutionError';
64
+ payload: {
65
+ errorMessage: string;
66
+ };
67
+ }
68
+ export interface IntegrationMfaRequired extends LinkEventBase {
69
+ type: 'integrationMfaRequired';
70
+ }
71
+ export interface IntegrationMfaEntered extends LinkEventBase {
72
+ type: 'integrationMfaEntered';
73
+ }
74
+ export interface IntegrationOAuthStarted extends LinkEventBase {
75
+ type: 'integrationOAuthStarted';
76
+ }
77
+ export interface IntegrationAccountSelectionRequired extends LinkEventBase {
78
+ type: 'integrationAccountSelectionRequired';
79
+ }
80
+ export interface TransferAssetSelected extends LinkEventBase {
81
+ type: 'transferAssetSelected';
82
+ payload: {
83
+ symbol: string;
84
+ };
85
+ }
86
+ export interface TransferNetworkSelected extends LinkEventBase {
87
+ type: 'transferNetworkSelected';
88
+ payload: {
89
+ id: string;
90
+ name: string;
91
+ };
92
+ }
93
+ export interface TransferAmountEntered extends LinkEventBase {
94
+ type: 'transferAmountEntered';
95
+ }
96
+ export interface TransferMfaRequired extends LinkEventBase {
97
+ type: 'transferMfaRequired';
98
+ }
99
+ export interface TransferMfaEntered extends LinkEventBase {
100
+ type: 'transferMfaEntered';
101
+ }
102
+ export interface TransferKycRequired extends LinkEventBase {
103
+ type: 'transferKycRequired';
104
+ }
105
+ export interface DoneEvent extends LinkEventBase {
106
+ type: 'done';
107
+ payload: SessionSymmary;
108
+ }
109
+ export interface CloseEvent extends LinkEventBase {
110
+ type: 'close';
111
+ payload: SessionSymmary;
112
+ }
113
+ export interface SessionSymmary {
114
+ /**
115
+ * Current page of application. Possible values:
116
+ * `startPage`
117
+ * `integrationsCatalogPage`
118
+ * `integrationLoginPage`
119
+ * `integrationMfaPage`
120
+ * `integrationAccountSelectPage`
121
+ * `integrationConnectedPage`
122
+ * `errorPage`
123
+ * `transferKycPage`
124
+ * `transferHoldingSelectionPage`
125
+ * `transferNetworkSelectionPage`
126
+ * `transferAmountSelectionPage`
127
+ * `transferPreviewPage`
128
+ * `transferMfaPage`
129
+ * `transferFundingPage`
130
+ * `transferExecutedPage`
131
+ * `termsAndConditionPage`
132
+ *
133
+ * This list may change in future.
134
+ */
135
+ page: string;
136
+ /** Selected integration */
137
+ selectedIntegration?: {
138
+ id?: string;
139
+ name?: string;
140
+ };
141
+ /** Transfer information */
142
+ transfer?: {
143
+ previewId?: string;
144
+ symbol?: string;
145
+ amount?: number;
146
+ amountInFiat?: number;
147
+ transactionId?: string;
148
+ networkId?: string;
149
+ };
150
+ errorMessage?: string;
151
+ }
152
+ export {};