@formo/analytics 1.11.4 → 1.12.0-alpha.2

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 (56) hide show
  1. package/dist/cjs/src/FormoAnalytics.d.ts +72 -2
  2. package/dist/cjs/src/FormoAnalytics.d.ts.map +1 -1
  3. package/dist/cjs/src/FormoAnalytics.js +282 -5
  4. package/dist/cjs/src/FormoAnalytics.js.map +1 -1
  5. package/dist/cjs/src/constants/events.d.ts +8 -0
  6. package/dist/cjs/src/constants/events.d.ts.map +1 -0
  7. package/dist/cjs/src/constants/events.js +12 -0
  8. package/dist/cjs/src/constants/events.js.map +1 -0
  9. package/dist/cjs/src/constants/index.d.ts +1 -0
  10. package/dist/cjs/src/constants/index.d.ts.map +1 -1
  11. package/dist/cjs/src/constants/index.js +1 -0
  12. package/dist/cjs/src/constants/index.js.map +1 -1
  13. package/dist/cjs/src/types/base.d.ts +1 -0
  14. package/dist/cjs/src/types/base.d.ts.map +1 -1
  15. package/dist/cjs/src/types/index.d.ts +1 -0
  16. package/dist/cjs/src/types/index.d.ts.map +1 -1
  17. package/dist/cjs/src/types/index.js +1 -0
  18. package/dist/cjs/src/types/index.js.map +1 -1
  19. package/dist/cjs/src/types/wallet.d.ts +11 -0
  20. package/dist/cjs/src/types/wallet.d.ts.map +1 -0
  21. package/dist/cjs/src/types/wallet.js +3 -0
  22. package/dist/cjs/src/types/wallet.js.map +1 -0
  23. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  24. package/dist/esm/src/FormoAnalytics.d.ts +72 -2
  25. package/dist/esm/src/FormoAnalytics.d.ts.map +1 -1
  26. package/dist/esm/src/FormoAnalytics.js +283 -6
  27. package/dist/esm/src/FormoAnalytics.js.map +1 -1
  28. package/dist/esm/src/constants/events.d.ts +8 -0
  29. package/dist/esm/src/constants/events.d.ts.map +1 -0
  30. package/dist/esm/src/constants/events.js +9 -0
  31. package/dist/esm/src/constants/events.js.map +1 -0
  32. package/dist/esm/src/constants/index.d.ts +1 -0
  33. package/dist/esm/src/constants/index.d.ts.map +1 -1
  34. package/dist/esm/src/constants/index.js +1 -0
  35. package/dist/esm/src/constants/index.js.map +1 -1
  36. package/dist/esm/src/types/base.d.ts +1 -0
  37. package/dist/esm/src/types/base.d.ts.map +1 -1
  38. package/dist/esm/src/types/index.d.ts +1 -0
  39. package/dist/esm/src/types/index.d.ts.map +1 -1
  40. package/dist/esm/src/types/index.js +1 -0
  41. package/dist/esm/src/types/index.js.map +1 -1
  42. package/dist/esm/src/types/wallet.d.ts +11 -0
  43. package/dist/esm/src/types/wallet.d.ts.map +1 -0
  44. package/dist/esm/src/types/wallet.js +2 -0
  45. package/dist/esm/src/types/wallet.js.map +1 -0
  46. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  47. package/dist/index.umd.min.js +1 -1
  48. package/dist/index.umd.min.js.map +1 -1
  49. package/package.json +1 -1
  50. package/src/FormoAnalytics.ts +322 -6
  51. package/src/constants/events.ts +7 -0
  52. package/src/constants/index.ts +1 -0
  53. package/src/global.d.ts +4 -0
  54. package/src/types/base.ts +2 -0
  55. package/src/types/index.ts +1 -0
  56. package/src/types/wallet.ts +12 -0
@@ -1,17 +1,57 @@
1
+ import { ChainID, EIP1193Provider } from './types';
1
2
  interface IFormoAnalytics {
3
+ /**
4
+ * Initializes the FormoAnalytics instance with the provided API key and project ID.
5
+ */
2
6
  init(apiKey: string, projectId: string): Promise<FormoAnalytics>;
3
- identify(userData: any): void;
7
+ /**
8
+ * Identifies the user with the provided user data.
9
+ */
10
+ identify(userData: Record<string, any>): void;
11
+ /**
12
+ * Tracks page visit events.
13
+ */
4
14
  page(): void;
5
- track(eventName: string, eventData: any): void;
15
+ /**
16
+ * Connects to a wallet with the specified chain ID and address.
17
+ */
18
+ connect(params: {
19
+ account: string;
20
+ chainId: ChainID;
21
+ }): Promise<void>;
22
+ /**
23
+ * Disconnects the current wallet and clears the session information.
24
+ */
25
+ disconnect(attributes?: {
26
+ account?: string;
27
+ chainId?: ChainID;
28
+ }): void;
29
+ /**
30
+ * Tracks a specific event with a name and associated data.
31
+ */
32
+ track(eventName: string, eventData: Record<string, any>): void;
33
+ /**
34
+ * Switches the blockchain chain context and optionally logs additional attributes.
35
+ */
36
+ chain(attributes: {
37
+ chainId: ChainID;
38
+ account?: string;
39
+ }): void;
6
40
  }
7
41
  export declare class FormoAnalytics implements IFormoAnalytics {
8
42
  readonly apiKey: string;
9
43
  projectId: string;
44
+ private _provider?;
45
+ private _registeredProviderListeners;
46
+ private sessionKey;
10
47
  private config;
11
48
  private sessionIdKey;
12
49
  private timezoneToCountry;
50
+ currentChainId?: string | null;
51
+ currentConnectedAccount?: string;
13
52
  private constructor();
14
53
  static init(apiKey: string, projectId: string): Promise<FormoAnalytics>;
54
+ get provider(): EIP1193Provider | undefined;
15
55
  private identifyUser;
16
56
  private getSessionId;
17
57
  private setSessionCookie;
@@ -20,7 +60,37 @@ export declare class FormoAnalytics implements IFormoAnalytics {
20
60
  private trackEvent;
21
61
  private maskSensitiveData;
22
62
  private trackPageHit;
63
+ private trackProvider;
64
+ private registerChainChangedListener;
65
+ private handleAccountDisconnected;
66
+ private onChainChanged;
67
+ private onAccountsChanged;
68
+ private registerAccountsChangedListener;
69
+ private getCurrentChainId;
70
+ private handleAccountConnected;
71
+ private getCurrentWallet;
72
+ /**
73
+ * Stores the wallet address in session storage when connected.
74
+ * @param address - The wallet address to store.
75
+ */
76
+ private storeWalletAddress;
77
+ /**
78
+ * Clears the wallet address from session storage when disconnected.
79
+ */
80
+ private clearWalletAddress;
23
81
  private buildApiUrl;
82
+ connect({ account, chainId }: {
83
+ account: string;
84
+ chainId: ChainID;
85
+ }): Promise<void>;
86
+ disconnect(attributes?: {
87
+ account?: string;
88
+ chainId?: ChainID;
89
+ }): Promise<void> | undefined;
90
+ chain({ chainId, account }: {
91
+ chainId: ChainID;
92
+ account?: string;
93
+ }): Promise<void>;
24
94
  init(apiKey: string, projectId: string): Promise<FormoAnalytics>;
25
95
  identify(userData: any): void;
26
96
  page(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"FormoAnalytics.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACjE,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC;CAChD;AACD,qBAAa,cAAe,YAAW,eAAe;aAMlC,MAAM,EAAE,MAAM;IACvB,SAAS,EAAE,MAAM;IAN1B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,iBAAiB,CAAwC;IAEjE,OAAO;WASM,IAAI,CACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;IAU1B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,cAAc;YAUR,UAAU;IAyDxB,OAAO,CAAC,iBAAiB;IAkEzB,OAAO,CAAC,YAAY;IAoCpB,OAAO,CAAC,WAAW;IAiBnB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMhE,QAAQ,CAAC,QAAQ,EAAE,GAAG;IAItB,IAAI;IAIJ,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;CAGxC"}
1
+ {"version":3,"file":"FormoAnalytics.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":"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"}
@@ -57,13 +57,20 @@ var utils_1 = require("./utils");
57
57
  var highlight_run_1 = require("highlight.run");
58
58
  var FormoAnalytics = /** @class */ (function () {
59
59
  function FormoAnalytics(apiKey, projectId) {
60
+ var _a;
60
61
  this.apiKey = apiKey;
61
62
  this.projectId = projectId;
63
+ this._registeredProviderListeners = {};
64
+ this.sessionKey = 'walletAddress';
62
65
  this.sessionIdKey = constants_1.SESSION_STORAGE_ID_KEY;
63
66
  this.timezoneToCountry = constants_1.COUNTRY_LIST;
64
67
  this.config = {
65
68
  token: this.apiKey,
66
69
  };
70
+ var provider = (window === null || window === void 0 ? void 0 : window.ethereum) || ((_a = window.web3) === null || _a === void 0 ? void 0 : _a.currentProvider);
71
+ if (provider) {
72
+ this.trackProvider(provider);
73
+ }
67
74
  }
68
75
  FormoAnalytics.init = function (apiKey, projectId) {
69
76
  return __awaiter(this, void 0, void 0, function () {
@@ -78,8 +85,15 @@ var FormoAnalytics = /** @class */ (function () {
78
85
  });
79
86
  });
80
87
  };
88
+ Object.defineProperty(FormoAnalytics.prototype, "provider", {
89
+ get: function () {
90
+ return this._provider;
91
+ },
92
+ enumerable: false,
93
+ configurable: true
94
+ });
81
95
  FormoAnalytics.prototype.identifyUser = function (userData) {
82
- this.trackEvent('identify', userData);
96
+ this.trackEvent(constants_1.Event.IDENTIFY, userData);
83
97
  };
84
98
  FormoAnalytics.prototype.getSessionId = function () {
85
99
  var existingSessionId = this.getCookieValue(this.sessionIdKey);
@@ -114,7 +128,7 @@ var FormoAnalytics = /** @class */ (function () {
114
128
  // Function to send tracking data
115
129
  FormoAnalytics.prototype.trackEvent = function (action, payload) {
116
130
  return __awaiter(this, void 0, void 0, function () {
117
- var maxRetries, attempt, apiUrl, requestData, sendRequest;
131
+ var maxRetries, attempt, apiUrl, address, requestData, sendRequest;
118
132
  var _this = this;
119
133
  return __generator(this, function (_a) {
120
134
  switch (_a.label) {
@@ -123,9 +137,12 @@ var FormoAnalytics = /** @class */ (function () {
123
137
  attempt = 0;
124
138
  this.setSessionCookie(this.config.domain);
125
139
  apiUrl = this.buildApiUrl();
140
+ return [4 /*yield*/, this.getCurrentWallet()];
141
+ case 1:
142
+ address = _a.sent();
126
143
  requestData = {
127
144
  project_id: this.projectId,
128
- address: '', // TODO: get cached / session wallet address
145
+ address: address,
129
146
  session_id: this.getSessionId(),
130
147
  timestamp: new Date().toISOString(),
131
148
  action: action,
@@ -170,7 +187,7 @@ var FormoAnalytics = /** @class */ (function () {
170
187
  });
171
188
  }); };
172
189
  return [4 /*yield*/, sendRequest()];
173
- case 1:
190
+ case 2:
174
191
  _a.sent();
175
192
  return [2 /*return*/];
176
193
  }
@@ -254,7 +271,7 @@ var FormoAnalytics = /** @class */ (function () {
254
271
  setTimeout(function () {
255
272
  var url = new URL(window.location.href);
256
273
  var params = new URLSearchParams(url.search);
257
- _this.trackEvent('page_hit', {
274
+ _this.trackEvent(constants_1.Event.PAGE, {
258
275
  'user-agent': window.navigator.userAgent,
259
276
  locale: language,
260
277
  location: location,
@@ -268,6 +285,221 @@ var FormoAnalytics = /** @class */ (function () {
268
285
  });
269
286
  }, 300);
270
287
  };
288
+ FormoAnalytics.prototype.trackProvider = function (provider) {
289
+ if (provider === this._provider) {
290
+ return;
291
+ }
292
+ this.currentChainId = undefined;
293
+ this.currentConnectedAccount = undefined;
294
+ if (this._provider) {
295
+ var eventNames = Object.keys(this._registeredProviderListeners);
296
+ for (var _i = 0, eventNames_1 = eventNames; _i < eventNames_1.length; _i++) {
297
+ var eventName = eventNames_1[_i];
298
+ this._provider.removeListener(eventName, this._registeredProviderListeners[eventName]);
299
+ delete this._registeredProviderListeners[eventName];
300
+ }
301
+ }
302
+ this._provider = provider;
303
+ this.getCurrentWallet();
304
+ this.registerAccountsChangedListener();
305
+ this.registerChainChangedListener();
306
+ };
307
+ FormoAnalytics.prototype.registerChainChangedListener = function () {
308
+ var _this = this;
309
+ var _a;
310
+ var listener = function () {
311
+ var args = [];
312
+ for (var _i = 0; _i < arguments.length; _i++) {
313
+ args[_i] = arguments[_i];
314
+ }
315
+ return _this.onChainChanged(args[0]);
316
+ };
317
+ (_a = this.provider) === null || _a === void 0 ? void 0 : _a.on('chainChanged', listener);
318
+ this._registeredProviderListeners['chainChanged'] = listener;
319
+ };
320
+ FormoAnalytics.prototype.handleAccountDisconnected = function () {
321
+ if (!this.currentConnectedAccount) {
322
+ return;
323
+ }
324
+ var disconnectAttributes = {
325
+ account: this.currentConnectedAccount,
326
+ chainId: this.currentChainId,
327
+ };
328
+ this.currentChainId = undefined;
329
+ this.currentConnectedAccount = undefined;
330
+ this.clearWalletAddress();
331
+ return this.trackEvent(constants_1.Event.DISCONNECT, disconnectAttributes);
332
+ };
333
+ FormoAnalytics.prototype.onChainChanged = function (chainIdHex) {
334
+ return __awaiter(this, void 0, void 0, function () {
335
+ var res, err_1;
336
+ return __generator(this, function (_a) {
337
+ switch (_a.label) {
338
+ case 0:
339
+ this.currentChainId = parseInt(chainIdHex).toString();
340
+ if (!!this.currentConnectedAccount) return [3 /*break*/, 4];
341
+ if (!this.provider) {
342
+ console.error('error', 'FormoAnalytics::onChainChanged: provider not found. CHAIN_CHANGED not reported');
343
+ return [2 /*return*/];
344
+ }
345
+ _a.label = 1;
346
+ case 1:
347
+ _a.trys.push([1, 3, , 4]);
348
+ return [4 /*yield*/, this.provider.request({
349
+ method: 'eth_accounts',
350
+ })];
351
+ case 2:
352
+ res = _a.sent();
353
+ if (!res || res.length === 0) {
354
+ console.error('error', 'FormoAnalytics::onChainChanged: unable to get account. eth_accounts returned empty');
355
+ return [2 /*return*/];
356
+ }
357
+ this.currentConnectedAccount = res[0];
358
+ return [3 /*break*/, 4];
359
+ case 3:
360
+ err_1 = _a.sent();
361
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
362
+ if (err_1.code !== 4001) {
363
+ // 4001: The request is rejected by the user , see https://docs.metamask.io/wallet/reference/provider-api/#errors
364
+ console.error('error', "FormoAnalytics::onChainChanged: unable to get account. eth_accounts threw an error", err_1);
365
+ return [2 /*return*/];
366
+ }
367
+ return [3 /*break*/, 4];
368
+ case 4: return [2 /*return*/, this.chain({
369
+ chainId: this.currentChainId,
370
+ account: this.currentConnectedAccount,
371
+ })];
372
+ }
373
+ });
374
+ });
375
+ };
376
+ FormoAnalytics.prototype.onAccountsChanged = function (accounts) {
377
+ return __awaiter(this, void 0, void 0, function () {
378
+ var newAccount;
379
+ return __generator(this, function (_a) {
380
+ if (accounts.length > 0) {
381
+ newAccount = accounts[0];
382
+ if (newAccount !== this.currentConnectedAccount) {
383
+ this.handleAccountConnected(newAccount);
384
+ }
385
+ }
386
+ else {
387
+ this.handleAccountDisconnected();
388
+ }
389
+ return [2 /*return*/];
390
+ });
391
+ });
392
+ };
393
+ FormoAnalytics.prototype.registerAccountsChangedListener = function () {
394
+ var _this = this;
395
+ var _a, _b;
396
+ var listener = function () {
397
+ var args = [];
398
+ for (var _i = 0; _i < arguments.length; _i++) {
399
+ args[_i] = arguments[_i];
400
+ }
401
+ return _this.onAccountsChanged(args[0]);
402
+ };
403
+ (_a = this._provider) === null || _a === void 0 ? void 0 : _a.on('accountsChanged', listener);
404
+ this._registeredProviderListeners['accountsChanged'] = listener;
405
+ var handleAccountDisconnected = this.handleAccountDisconnected.bind(this);
406
+ (_b = this._provider) === null || _b === void 0 ? void 0 : _b.on('disconnect', handleAccountDisconnected);
407
+ this._registeredProviderListeners['disconnect'] = handleAccountDisconnected;
408
+ };
409
+ FormoAnalytics.prototype.getCurrentChainId = function () {
410
+ return __awaiter(this, void 0, void 0, function () {
411
+ var chainIdHex;
412
+ var _a;
413
+ return __generator(this, function (_b) {
414
+ switch (_b.label) {
415
+ case 0:
416
+ if (!this.provider) {
417
+ console.error('FormoAnalytics::getCurrentChainId: provider not set');
418
+ }
419
+ return [4 /*yield*/, ((_a = this.provider) === null || _a === void 0 ? void 0 : _a.request({
420
+ method: 'eth_chainId',
421
+ }))];
422
+ case 1:
423
+ chainIdHex = _b.sent();
424
+ // Because we're connected, the chainId cannot be null
425
+ if (!chainIdHex) {
426
+ console.error("FormoAnalytics::getCurrentChainId: chainIdHex is: ".concat(chainIdHex));
427
+ }
428
+ return [2 /*return*/, parseInt(chainIdHex, 16).toString()];
429
+ }
430
+ });
431
+ });
432
+ };
433
+ FormoAnalytics.prototype.handleAccountConnected = function (account) {
434
+ return __awaiter(this, void 0, void 0, function () {
435
+ var _a;
436
+ return __generator(this, function (_b) {
437
+ switch (_b.label) {
438
+ case 0:
439
+ if (account === this.currentConnectedAccount) {
440
+ // We have already reported this account
441
+ return [2 /*return*/];
442
+ }
443
+ else {
444
+ this.currentConnectedAccount = account;
445
+ }
446
+ _a = this;
447
+ return [4 /*yield*/, this.getCurrentChainId()];
448
+ case 1:
449
+ _a.currentChainId = _b.sent();
450
+ this.connect({ account: account, chainId: this.currentChainId });
451
+ this.storeWalletAddress(account);
452
+ return [2 /*return*/];
453
+ }
454
+ });
455
+ });
456
+ };
457
+ FormoAnalytics.prototype.getCurrentWallet = function () {
458
+ return __awaiter(this, void 0, void 0, function () {
459
+ var sessionData, parsedData, sessionExpiry, currentTime;
460
+ return __generator(this, function (_a) {
461
+ if (!this.provider) {
462
+ console.warn('FormoAnalytics::getCurrentWallet: the provider is not set');
463
+ return [2 /*return*/];
464
+ }
465
+ sessionData = sessionStorage.getItem(this.sessionKey);
466
+ if (!sessionData) {
467
+ return [2 /*return*/, null];
468
+ }
469
+ parsedData = JSON.parse(sessionData);
470
+ sessionExpiry = 30 * 60 * 1000;
471
+ currentTime = Date.now();
472
+ if (currentTime - parsedData.timestamp > sessionExpiry) {
473
+ console.warn('Session expired. Ignoring wallet address.');
474
+ sessionStorage.removeItem(this.sessionKey); // Clear expired session data
475
+ return [2 /*return*/, ''];
476
+ }
477
+ this.handleAccountConnected(parsedData.address);
478
+ return [2 /*return*/, parsedData.address || ''];
479
+ });
480
+ });
481
+ };
482
+ /**
483
+ * Stores the wallet address in session storage when connected.
484
+ * @param address - The wallet address to store.
485
+ */
486
+ FormoAnalytics.prototype.storeWalletAddress = function (address) {
487
+ if (!address) {
488
+ console.error('No wallet address provided to store.');
489
+ return;
490
+ }
491
+ var sessionData = {
492
+ address: address,
493
+ timestamp: Date.now(),
494
+ };
495
+ sessionStorage.setItem(this.sessionKey, JSON.stringify(sessionData));
496
+ };
497
+ /**
498
+ * Clears the wallet address from session storage when disconnected.
499
+ */
500
+ FormoAnalytics.prototype.clearWalletAddress = function () {
501
+ sessionStorage.removeItem(this.sessionKey);
502
+ };
271
503
  // Function to build the API URL
272
504
  FormoAnalytics.prototype.buildApiUrl = function () {
273
505
  var _a = this.config, host = _a.host, proxy = _a.proxy, token = _a.token, _b = _a.dataSource, dataSource = _b === void 0 ? 'analytics_events' : _b;
@@ -282,6 +514,51 @@ var FormoAnalytics = /** @class */ (function () {
282
514
  }
283
515
  return 'Error: No token provided';
284
516
  };
517
+ FormoAnalytics.prototype.connect = function (_a) {
518
+ var account = _a.account, chainId = _a.chainId;
519
+ if (!chainId) {
520
+ throw new Error('FormoAnalytics::connect: chainId cannot be empty');
521
+ }
522
+ if (!account) {
523
+ throw new Error('FormoAnalytics::connect: account cannot be empty');
524
+ }
525
+ this.currentChainId = chainId.toString();
526
+ this.currentConnectedAccount = account;
527
+ return this.trackEvent(constants_1.Event.CONNECT, {
528
+ chainId: chainId,
529
+ address: account,
530
+ });
531
+ };
532
+ FormoAnalytics.prototype.disconnect = function (attributes) {
533
+ var account = (attributes === null || attributes === void 0 ? void 0 : attributes.account) || this.currentConnectedAccount;
534
+ if (!account) {
535
+ // We have most likely already reported this disconnection with the automatic
536
+ // `disconnect` detection
537
+ return;
538
+ }
539
+ var chainId = (attributes === null || attributes === void 0 ? void 0 : attributes.chainId) || this.currentChainId;
540
+ var eventAttributes = __assign({ account: account }, (chainId && { chainId: chainId }));
541
+ this.currentChainId = undefined;
542
+ this.currentConnectedAccount = undefined;
543
+ return this.trackEvent(constants_1.Event.DISCONNECT, eventAttributes);
544
+ };
545
+ FormoAnalytics.prototype.chain = function (_a) {
546
+ var chainId = _a.chainId, account = _a.account;
547
+ if (!chainId || Number(chainId) === 0) {
548
+ throw new Error('FormoAnalytics::chain: chainId cannot be empty or 0');
549
+ }
550
+ if (!account && !this.currentConnectedAccount) {
551
+ throw new Error('FormoAnalytics::chain: account was empty and no previous account has been recorded. You can either pass an account or call connect() first');
552
+ }
553
+ if (isNaN(Number(chainId))) {
554
+ throw new Error('FormoAnalytics::chain: chainId must be a valid hex or decimal number');
555
+ }
556
+ this.currentChainId = chainId.toString();
557
+ return this.trackEvent(constants_1.Event.CHAIN_CHANGED, {
558
+ chainId: chainId,
559
+ account: account || this.currentConnectedAccount,
560
+ });
561
+ };
285
562
  FormoAnalytics.prototype.init = function (apiKey, projectId) {
286
563
  var instance = new FormoAnalytics(apiKey, projectId);
287
564
  return Promise.resolve(instance);
@@ -1 +1 @@
1
- {"version":3,"file":"FormoAnalytics.js","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormoAnalytics.js","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,yCAKqB;AACrB,iCAAqC;AACrC,+CAAkC;AAuClC;IAeE,wBACkB,MAAc,EACvB,SAAiB;;QADR,WAAM,GAAN,MAAM,CAAQ;QACvB,cAAS,GAAT,SAAS,CAAQ;QAflB,iCAA4B,GAGhC,EAAE,CAAC;QAEC,eAAU,GAAG,eAAe,CAAC;QAE7B,iBAAY,GAAW,kCAAsB,CAAC;QAC9C,sBAAiB,GAA2B,wBAAY,CAAC;QAS/D,IAAI,CAAC,MAAM,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,MAAM;SACnB,CAAC;QAEF,IAAM,QAAQ,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,MAAI,MAAA,MAAM,CAAC,IAAI,0CAAE,eAAe,CAAA,CAAC;QAClE,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAEY,mBAAI,GAAjB,UACE,MAAc,EACd,SAAiB;;;;gBAEX,MAAM,GAAG;oBACb,KAAK,EAAE,MAAM;iBACd,CAAC;gBACI,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBACvD,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;gBAEzB,sBAAO,QAAQ,EAAC;;;KACjB;IAED,sBAAI,oCAAQ;aAAZ;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;;;OAAA;IAEO,qCAAY,GAApB,UAAqB,QAAa;QAChC,IAAI,CAAC,UAAU,CAAC,iBAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAEO,qCAAY,GAApB;QACE,IAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEjE,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAED,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC9C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,qCAAqC;IAC7B,yCAAgB,GAAxB,UAAyB,MAAe;QACtC,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,WAAW,GAAG,UAAG,IAAI,CAAC,YAAY,cAAI,SAAS,mCAAgC,CAAC;QACpF,IAAI,MAAM,EAAE,CAAC;YACX,WAAW,IAAI,mBAAY,MAAM,CAAE,CAAC;QACtC,CAAC;QACD,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC;IAChC,CAAC;IAED,wCAAwC;IAChC,0CAAiB,GAAzB;QACE,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IAED,yCAAyC;IACjC,uCAAc,GAAtB,UAAuB,IAAY;QACjC,IAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,MAAM;YACtD,IAAA,KAAe,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAA/B,GAAG,QAAA,EAAE,KAAK,QAAqB,CAAC;YACvC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;YACxB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAA4B,CAAC,CAAC;QACjC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,iCAAiC;IACnB,mCAAU,GAAxB,UAAyB,MAAc,EAAE,OAAY;;;;;;;wBAC7C,UAAU,GAAG,CAAC,CAAC;wBACjB,OAAO,GAAG,CAAC,CAAC;wBAEhB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBACpC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;wBAClB,qBAAM,IAAI,CAAC,gBAAgB,EAAE,EAAA;;wBAAvC,OAAO,GAAG,SAA6B;wBAEvC,WAAW,GAAG;4BAClB,UAAU,EAAE,IAAI,CAAC,SAAS;4BAC1B,OAAO,EAAE,OAAO;4BAChB,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE;4BAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACnC,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE,GAAG;4BACZ,OAAO,EAAE,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;yBACzE,CAAC;wBAEI,WAAW,GAAG;;;;;;wCAEC,qBAAM,eAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;gDACrE,OAAO,EAAE;oDACP,cAAc,EAAE,kBAAkB;iDACnC;6CACF,CAAC,EAAA;;wCAJI,QAAQ,GAAG,SAIf;wCAEF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;4CACpD,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;wCAClD,CAAC;6CAAM,CAAC;4CACN,MAAM,IAAI,KAAK,CAAC,8BAAuB,QAAQ,CAAC,MAAM,CAAE,CAAC,CAAC;wCAC5D,CAAC;;;;wCAED,OAAO,EAAE,CAAC;wCAEV,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;4CACpB,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;4CAC/C,OAAO,CAAC,KAAK,CACX,kBAAW,OAAO,gCAAqB,MAAM,mBAC3C,UAAU,GAAG,IAAI,gBACN,CACd,CAAC;4CACF,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;wCACtC,CAAC;6CAAM,CAAC;4CACN,iBAAC,CAAC,YAAY,CACZ,OAAc,EACd,wBAAiB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAE,CAC/C,CAAC;4CACF,OAAO,CAAC,KAAK,CACX,kBAAU,MAAM,6BAAkB,UAAU,+BAAqB,OAAK,CAAE,CACzE,CAAC;wCACJ,CAAC;;;;;6BAEJ,CAAC;wBAEF,qBAAM,WAAW,EAAE,EAAA;;wBAAnB,SAAmB,CAAC;;;;;KACrB;IAED,iDAAiD;IACzC,0CAAiB,GAAzB,UACE,IAA+B;QAE/B,qCAAqC;QACrC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,0DAA0D;QAC1D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,UAAU,SAAqB,CAAC;YACpC,IAAI,CAAC;gBACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;gBAC9C,OAAO,IAAI,CAAC,CAAC,+BAA+B;YAC9C,CAAC;YAED,IAAM,eAAe,GAAG;gBACtB,UAAU;gBACV,MAAM;gBACN,SAAS;gBACT,UAAU;gBACV,OAAO;gBACP,OAAO;aACR,CAAC;YAEF,2CAA2C;YAC3C,IAAM,YAAU,gBAAQ,UAAU,CAAE,CAAC;YAErC,wBAAwB;YACxB,eAAe,CAAC,OAAO,CAAC,UAAC,KAAK;gBAC5B,IAAI,KAAK,IAAI,YAAU,EAAE,CAAC;oBACxB,YAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,mCAAmC;gBACrE,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,YAAU,CAAC,CAAC,2CAA2C;QAChE,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,wDAAwD;YACxD,IAAM,eAAe,GAAG;gBACtB,UAAU;gBACV,MAAM;gBACN,SAAS;gBACT,UAAU;gBACV,OAAO;gBACP,OAAO;aACR,CAAC;YAEF,IAAM,YAAU,gBAAS,IAA4B,CAAE,CAAC;YAExD,wBAAwB;YACxB,eAAe,CAAC,OAAO,CAAC,UAAC,KAAK;gBAC5B,IAAI,KAAK,IAAI,YAAU,EAAE,CAAC;oBACxB,YAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,mCAAmC;gBACrE,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,YAAU,CAAC,CAAC,2CAA2C;QAChE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8BAA8B;IACtB,qCAAY,GAApB;QAAA,iBAiCC;QAhCC,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO;YACpE,OAAO;QAET,IAAI,QAA4B,CAAC;QACjC,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;YAClE,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC5C,QAAQ;gBACN,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM;oBAC/C,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;oBACxB,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;QAED,UAAU,CAAC;YACT,IAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/C,KAAI,CAAC,UAAU,CAAC,iBAAK,CAAC,IAAI,EAAE;gBAC1B,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS;gBACxC,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;gBAClC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;gBAC1B,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;gBACpC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;gBACpC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;gBACxC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;aACvB,CAAC,CAAC;QACL,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAEO,sCAAa,GAArB,UAAsB,QAAyB;QAC7C,IAAI,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;QAEzC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAClE,KAAwB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,EAAE,CAAC;gBAAhC,IAAM,SAAS,mBAAA;gBAClB,IAAI,CAAC,SAAS,CAAC,cAAc,CAC3B,SAAS,EACT,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAC7C,CAAC;gBACF,OAAO,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,+BAA+B,EAAE,CAAC;QACvC,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACtC,CAAC;IAEO,qDAA4B,GAApC;QAAA,iBAKC;;QAJC,IAAM,QAAQ,GAAG;YAAC,cAAkB;iBAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;gBAAlB,yBAAkB;;YAClC,OAAA,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAW,CAAC;QAAtC,CAAsC,CAAC;QACzC,MAAA,IAAI,CAAC,QAAQ,0CAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,4BAA4B,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;IAC/D,CAAC;IAEO,kDAAyB,GAAjC;QACE,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAM,oBAAoB,GAAG;YAC3B,OAAO,EAAE,IAAI,CAAC,uBAAuB;YACrC,OAAO,EAAE,IAAI,CAAC,cAAc;SAC7B,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;QACzC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAK,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IACjE,CAAC;IAEa,uCAAc,GAA5B,UAA6B,UAAkB;;;;;;wBAC7C,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;6BAClD,CAAC,IAAI,CAAC,uBAAuB,EAA7B,wBAA6B;wBAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACnB,OAAO,CAAC,KAAK,CACX,OAAO,EACP,gFAAgF,CACjF,CAAC;4BACF,sBAAO;wBACT,CAAC;;;;wBAG0C,qBAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gCACnE,MAAM,EAAE,cAAc;6BACvB,CAAC,EAAA;;wBAFI,GAAG,GAAgC,SAEvC;wBACF,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC7B,OAAO,CAAC,KAAK,CACX,OAAO,EACP,oFAAoF,CACrF,CAAC;4BACF,sBAAO;wBACT,CAAC;wBAED,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;;;;wBAEtC,8DAA8D;wBAC9D,IAAK,KAAW,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;4BAC/B,iHAAiH;4BACjH,OAAO,CAAC,KAAK,CACX,OAAO,EACP,oFAAoF,EACpF,KAAG,CACJ,CAAC;4BACF,sBAAO;wBACT,CAAC;;4BAIL,sBAAO,IAAI,CAAC,KAAK,CAAC;4BAChB,OAAO,EAAE,IAAI,CAAC,cAAc;4BAC5B,OAAO,EAAE,IAAI,CAAC,uBAAuB;yBACtC,CAAC,EAAC;;;;KACJ;IAEa,0CAAiB,GAA/B,UAAgC,QAAkB;;;;gBAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClB,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,UAAU,KAAK,IAAI,CAAC,uBAAuB,EAAE,CAAC;wBAChD,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACnC,CAAC;;;;KACF;IAEO,wDAA+B,GAAvC;QAAA,iBAUC;;QATC,IAAM,QAAQ,GAAG;YAAC,cAAkB;iBAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;gBAAlB,yBAAkB;;YAClC,OAAA,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAa,CAAC;QAA3C,CAA2C,CAAC;QAE9C,MAAA,IAAI,CAAC,SAAS,0CAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,4BAA4B,CAAC,iBAAiB,CAAC,GAAG,QAAQ,CAAC;QAEhE,IAAM,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAA,IAAI,CAAC,SAAS,0CAAE,EAAE,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;QAC5D,IAAI,CAAC,4BAA4B,CAAC,YAAY,CAAC,GAAG,yBAAyB,CAAC;IAC9E,CAAC;IAEa,0CAAiB,GAA/B;;;;;;;wBACE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACnB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;wBACvE,CAAC;wBAEkB,qBAAM,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,CAAS;gCACtD,MAAM,EAAE,aAAa;6BACtB,CAAC,CAAA,EAAA;;wBAFI,UAAU,GAAG,SAEjB;wBACF,sDAAsD;wBACtD,IAAI,CAAC,UAAU,EAAE,CAAC;4BAChB,OAAO,CAAC,KAAK,CACX,4DAAqD,UAAU,CAAE,CAClE,CAAC;wBACJ,CAAC;wBAED,sBAAO,QAAQ,CAAC,UAAoB,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAC;;;;KACtD;IAEa,+CAAsB,GAApC,UAAqC,OAAe;;;;;;wBAClD,IAAI,OAAO,KAAK,IAAI,CAAC,uBAAuB,EAAE,CAAC;4BAC7C,wCAAwC;4BACxC,sBAAO;wBACT,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC;wBACzC,CAAC;wBAED,KAAA,IAAI,CAAA;wBAAkB,qBAAM,IAAI,CAAC,iBAAiB,EAAE,EAAA;;wBAApD,GAAK,cAAc,GAAG,SAA8B,CAAC;wBAErD,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,SAAA,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;wBACxD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;;;;;KAClC;IAEa,yCAAgB,GAA9B;;;;gBACE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;oBAC1E,sBAAO;gBACT,CAAC;gBACK,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE5D,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,sBAAO,IAAI,EAAC;gBACd,CAAC;gBAEK,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACrC,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;gBAC/B,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAE/B,IAAI,WAAW,GAAG,UAAU,CAAC,SAAS,GAAG,aAAa,EAAE,CAAC;oBACvD,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;oBAC1D,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,6BAA6B;oBACzE,sBAAO,EAAE,EAAC;gBACZ,CAAC;gBAED,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAChD,sBAAO,UAAU,CAAC,OAAO,IAAI,EAAE,EAAC;;;KACjC;IAED;;;OAGG;IACK,2CAAkB,GAA1B,UAA2B,OAAe;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,IAAM,WAAW,GAAG;YAClB,OAAO,SAAA;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACK,2CAAkB,GAA1B;QACE,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,gCAAgC;IACxB,oCAAW,GAAnB;QACQ,IAAA,KAA0D,IAAI,CAAC,MAAM,EAAnE,IAAI,UAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,kBAA+B,EAA/B,UAAU,mBAAG,kBAAkB,KAAgB,CAAC;QAC5E,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,UAAG,KAAK,kBAAe,CAAC;YACjC,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,UAAG,IAAI,CAAC,OAAO,CACpB,MAAM,EACN,EAAE,CACH,6BAAmB,UAAU,oBAAU,KAAK,CAAE,CAAC;YAClD,CAAC;YACD,OAAO,UAAG,sBAAU,mBAAS,UAAU,oBAAU,KAAK,CAAE,CAAC;QAC3D,CAAC;QACD,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,gCAAO,GAAP,UAAQ,EAA2D;YAAzD,OAAO,aAAA,EAAE,OAAO,aAAA;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC;QAEvC,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAK,CAAC,OAAO,EAAE;YACpC,OAAO,SAAA;YACP,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;IACL,CAAC;IAED,mCAAU,GAAV,UAAW,UAAoD;QAC7D,IAAM,OAAO,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,KAAI,IAAI,CAAC,uBAAuB,CAAC;QACpE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,6EAA6E;YAC7E,yBAAyB;YACzB,OAAO;QACT,CAAC;QAED,IAAM,OAAO,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,KAAI,IAAI,CAAC,cAAc,CAAC;QAC3D,IAAM,eAAe,cACnB,OAAO,SAAA,IACJ,CAAC,OAAO,IAAI,EAAE,OAAO,SAAA,EAAE,CAAC,CAC5B,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;QAEzC,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAK,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAC5D,CAAC;IAED,8BAAK,GAAL,UAAM,EAA4D;YAA1D,OAAO,aAAA,EAAE,OAAO,aAAA;QACtB,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,4IAA4I,CAC7I,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEzC,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAK,CAAC,aAAa,EAAE;YAC1C,OAAO,SAAA;YACP,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,uBAAuB;SACjD,CAAC,CAAC;IACL,CAAC;IAED,6BAAI,GAAJ,UAAK,MAAc,EAAE,SAAiB;QACpC,IAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEvD,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,iCAAQ,GAAR,UAAS,QAAa;QACpB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,6BAAI,GAAJ;QACE,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,8BAAK,GAAL,UAAM,SAAiB,EAAE,SAAc;QACrC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IACH,qBAAC;AAAD,CAAC,AA7hBD,IA6hBC;AA7hBY,wCAAc"}
@@ -0,0 +1,8 @@
1
+ export declare enum Event {
2
+ IDENTIFY = "identify",
3
+ PAGE = "page_hit",
4
+ CONNECT = "connect",
5
+ DISCONNECT = "disconnect",
6
+ CHAIN_CHANGED = "chain_changed"
7
+ }
8
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/constants/events.ts"],"names":[],"mappings":"AAAA,oBAAY,KAAK;IACf,QAAQ,aAAa;IACrB,IAAI,aAAa;IACjB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,aAAa,kBAAkB;CAChC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Event = void 0;
4
+ var Event;
5
+ (function (Event) {
6
+ Event["IDENTIFY"] = "identify";
7
+ Event["PAGE"] = "page_hit";
8
+ Event["CONNECT"] = "connect";
9
+ Event["DISCONNECT"] = "disconnect";
10
+ Event["CHAIN_CHANGED"] = "chain_changed";
11
+ })(Event || (exports.Event = Event = {}));
12
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/constants/events.ts"],"names":[],"mappings":";;;AAAA,IAAY,KAMX;AAND,WAAY,KAAK;IACf,8BAAqB,CAAA;IACrB,0BAAiB,CAAA;IACjB,4BAAmB,CAAA;IACnB,kCAAyB,CAAA;IACzB,wCAA+B,CAAA;AACjC,CAAC,EANW,KAAK,qBAAL,KAAK,QAMhB"}
@@ -1,2 +1,3 @@
1
1
  export * from './config';
2
+ export * from './events';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./config"), exports);
18
+ __exportStar(require("./events"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,2CAAyB"}
@@ -1,3 +1,4 @@
1
+ export type ChainID = string | number;
1
2
  export interface FormoAnalyticsProviderProps {
2
3
  apiKey: string;
3
4
  projectId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/types/base.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/types/base.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAErC,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B"}
@@ -1,2 +1,3 @@
1
1
  export * from './base';
2
+ export * from './wallet';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAA"}
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./base"), exports);
18
+ __exportStar(require("./wallet"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,2CAAwB"}
@@ -0,0 +1,11 @@
1
+ import EventEmitter from 'events';
2
+ export interface RequestArguments {
3
+ method: string;
4
+ params?: unknown[] | Record<string, unknown>;
5
+ }
6
+ export interface EIP1193Provider extends EventEmitter {
7
+ request<T>(args: RequestArguments): Promise<T | null | undefined>;
8
+ on(eventName: string | symbol, listener: (...args: unknown[]) => void): this;
9
+ removeListener(eventName: string | symbol, listener: (...args: unknown[]) => void): this;
10
+ }
11
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/types/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IACjE,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAA;IAC5E,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAA;CACzF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../../src/types/wallet.ts"],"names":[],"mappings":""}