@reown/appkit-core-react-native 0.0.0-feat-multichain-20251003200131 → 0.0.0-feat-multichain-20251006182725

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.
@@ -15,6 +15,7 @@ const api = new _FetchUtil.FetchUtil({
15
15
  baseUrl
16
16
  });
17
17
  const excluded = ['MODAL_CREATED'];
18
+ const IMPRESSION_TIMEOUT = 3000;
18
19
 
19
20
  // -- Types --------------------------------------------- //
20
21
 
@@ -24,7 +25,9 @@ const state = (0, _valtio.proxy)({
24
25
  data: {
25
26
  type: 'track',
26
27
  event: 'MODAL_CREATED' // just for init purposes
27
- }
28
+ },
29
+ pendingWalletImpressions: [],
30
+ pendingImpressionTimeout: undefined
28
31
  });
29
32
 
30
33
  // -- Controller ---------------------------------------- //
@@ -40,6 +43,40 @@ const EventsController = exports.EventsController = {
40
43
  }
41
44
  });
42
45
  },
46
+ trackWalletImpression(props) {
47
+ state.pendingWalletImpressions.push({
48
+ name: props.wallet.name ?? 'Unknown',
49
+ walletRank: props.wallet.order,
50
+ explorerId: props.wallet.id,
51
+ certified: props.wallet.badge_type === 'certified',
52
+ displayIndex: props.displayIndex,
53
+ view: props.view,
54
+ query: props.query,
55
+ installed: props.installed
56
+ });
57
+ if (state.pendingImpressionTimeout) {
58
+ clearTimeout(state.pendingImpressionTimeout);
59
+ }
60
+ state.pendingImpressionTimeout = setTimeout(() => {
61
+ EventsController.sendWalletImpressions();
62
+ }, IMPRESSION_TIMEOUT);
63
+ },
64
+ sendWalletImpressions() {
65
+ if (state.pendingImpressionTimeout) {
66
+ clearTimeout(state.pendingImpressionTimeout);
67
+ state.pendingImpressionTimeout = undefined;
68
+ }
69
+ const impressions = state.pendingWalletImpressions;
70
+ if (impressions.length === 0) {
71
+ return;
72
+ }
73
+ state.pendingWalletImpressions = [];
74
+ EventsController.sendEvent({
75
+ type: 'track',
76
+ event: 'WALLET_IMPRESSION',
77
+ items: impressions
78
+ });
79
+ },
43
80
  async _sendAnalyticsEvent(data, timestamp) {
44
81
  if (excluded.includes(data.event)) {
45
82
  return;
@@ -68,6 +105,18 @@ const EventsController = exports.EventsController = {
68
105
  if (_OptionsController.OptionsController.state.enableAnalytics) {
69
106
  EventsController._sendAnalyticsEvent(data, timestamp);
70
107
  }
108
+ },
109
+ resetState() {
110
+ if (state.pendingImpressionTimeout) {
111
+ clearTimeout(state.pendingImpressionTimeout);
112
+ state.pendingImpressionTimeout = undefined;
113
+ }
114
+ state.pendingWalletImpressions = [];
115
+ state.data = {
116
+ type: 'track',
117
+ event: 'MODAL_CREATED'
118
+ };
119
+ state.timestamp = Date.now();
71
120
  }
72
121
  };
73
122
  //# sourceMappingURL=EventsController.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_valtio","require","_ApiController","_OptionsController","_CoreHelperUtil","_FetchUtil","baseUrl","CoreHelperUtil","getAnalyticsUrl","api","FetchUtil","excluded","state","proxy","timestamp","Date","now","data","type","event","EventsController","exports","subscribe","callback","sub","subscribeEvent","_sendAnalyticsEvent","includes","post","path","headers","ApiController","_getApiHeaders","params","_getApiParams","body","eventId","getUUID","bundleId","getBundleId","props","sendEvent","prefetchPromise","OptionsController","enableAnalytics"],"sourceRoot":"../../../src","sources":["controllers/EventsController.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAGA;AACA,MAAMK,OAAO,GAAGC,8BAAc,CAACC,eAAe,CAAC,CAAC;AAChD,MAAMC,GAAG,GAAG,IAAIC,oBAAS,CAAC;EAAEJ;AAAQ,CAAC,CAAC;AACtC,MAAMK,QAAQ,GAAG,CAAC,eAAe,CAAC;;AAElC;;AAMA;AACA,MAAMC,KAAK,GAAG,IAAAC,aAAK,EAAwB;EACzCC,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC;EACrBC,IAAI,EAAE;IACJC,IAAI,EAAE,OAAO;IACbC,KAAK,EAAE,eAAe,CAAC;EACzB;AACF,CAAC,CAAC;;AAEF;AACO,MAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC9BR,KAAK;EAELU,SAASA,CAACC,QAAmD,EAAE;IAC7D,OAAO,IAAAC,iBAAG,EAACZ,KAAK,EAAE,MAAMW,QAAQ,CAACX,KAAK,CAAC,CAAC;EAC1C,CAAC;EAEDa,cAAcA,CAACN,KAAgB,EAAEI,QAAmD,EAAE;IACpF,OAAO,IAAAC,iBAAG,EAACZ,KAAK,EAAE,MAAM;MACtB,IAAIA,KAAK,CAACK,IAAI,CAACE,KAAK,KAAKA,KAAK,EAAE;QAC9BI,QAAQ,CAACX,KAAK,CAAC;MACjB;IACF,CAAC,CAAC;EACJ,CAAC;EAED,MAAMc,mBAAmBA,CAACT,IAAmC,EAAEH,SAAiB,EAAE;IAChF,IAAIH,QAAQ,CAACgB,QAAQ,CAACV,IAAI,CAACE,KAAK,CAAC,EAAE;MACjC;IACF;IAEA,IAAI;MACF,MAAMV,GAAG,CAACmB,IAAI,CAAC;QACbC,IAAI,EAAE,IAAI;QACVC,OAAO,EAAEC,4BAAa,CAACC,cAAc,CAAC,CAAC;QACvCC,MAAM,EAAEF,4BAAa,CAACG,aAAa,CAAC,CAAC;QACrCC,IAAI,EAAE;UACJC,OAAO,EAAE7B,8BAAc,CAAC8B,OAAO,CAAC,CAAC;UACjCC,QAAQ,EAAE/B,8BAAc,CAACgC,WAAW,CAAC,CAAC;UACtCzB,SAAS;UACT0B,KAAK,EAAEvB;QACT;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ,CAAC;EAED,MAAMwB,SAASA,CAACxB,IAAmC,EAAE;IACnD,MAAMH,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC5BJ,KAAK,CAACE,SAAS,GAAGA,SAAS;IAC3BF,KAAK,CAACK,IAAI,GAAGA,IAAI;IACjB,MAAMc,4BAAa,CAACnB,KAAK,CAAC8B,eAAe;IAEzC,IAAIC,oCAAiB,CAAC/B,KAAK,CAACgC,eAAe,EAAE;MAC3CxB,gBAAgB,CAACM,mBAAmB,CAACT,IAAI,EAAEH,SAAS,CAAC;IACvD;EACF;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_valtio","require","_ApiController","_OptionsController","_CoreHelperUtil","_FetchUtil","baseUrl","CoreHelperUtil","getAnalyticsUrl","api","FetchUtil","excluded","IMPRESSION_TIMEOUT","state","proxy","timestamp","Date","now","data","type","event","pendingWalletImpressions","pendingImpressionTimeout","undefined","EventsController","exports","subscribe","callback","sub","subscribeEvent","trackWalletImpression","props","push","name","wallet","walletRank","order","explorerId","id","certified","badge_type","displayIndex","view","query","installed","clearTimeout","setTimeout","sendWalletImpressions","impressions","length","sendEvent","items","_sendAnalyticsEvent","includes","post","path","headers","ApiController","_getApiHeaders","params","_getApiParams","body","eventId","getUUID","bundleId","getBundleId","prefetchPromise","OptionsController","enableAnalytics","resetState"],"sourceRoot":"../../../src","sources":["controllers/EventsController.ts"],"mappings":"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","ignoreList":[]}
@@ -11,6 +11,7 @@ const api = new FetchUtil({
11
11
  baseUrl
12
12
  });
13
13
  const excluded = ['MODAL_CREATED'];
14
+ const IMPRESSION_TIMEOUT = 3000;
14
15
 
15
16
  // -- Types --------------------------------------------- //
16
17
 
@@ -20,7 +21,9 @@ const state = proxy({
20
21
  data: {
21
22
  type: 'track',
22
23
  event: 'MODAL_CREATED' // just for init purposes
23
- }
24
+ },
25
+ pendingWalletImpressions: [],
26
+ pendingImpressionTimeout: undefined
24
27
  });
25
28
 
26
29
  // -- Controller ---------------------------------------- //
@@ -36,6 +39,40 @@ export const EventsController = {
36
39
  }
37
40
  });
38
41
  },
42
+ trackWalletImpression(props) {
43
+ state.pendingWalletImpressions.push({
44
+ name: props.wallet.name ?? 'Unknown',
45
+ walletRank: props.wallet.order,
46
+ explorerId: props.wallet.id,
47
+ certified: props.wallet.badge_type === 'certified',
48
+ displayIndex: props.displayIndex,
49
+ view: props.view,
50
+ query: props.query,
51
+ installed: props.installed
52
+ });
53
+ if (state.pendingImpressionTimeout) {
54
+ clearTimeout(state.pendingImpressionTimeout);
55
+ }
56
+ state.pendingImpressionTimeout = setTimeout(() => {
57
+ EventsController.sendWalletImpressions();
58
+ }, IMPRESSION_TIMEOUT);
59
+ },
60
+ sendWalletImpressions() {
61
+ if (state.pendingImpressionTimeout) {
62
+ clearTimeout(state.pendingImpressionTimeout);
63
+ state.pendingImpressionTimeout = undefined;
64
+ }
65
+ const impressions = state.pendingWalletImpressions;
66
+ if (impressions.length === 0) {
67
+ return;
68
+ }
69
+ state.pendingWalletImpressions = [];
70
+ EventsController.sendEvent({
71
+ type: 'track',
72
+ event: 'WALLET_IMPRESSION',
73
+ items: impressions
74
+ });
75
+ },
39
76
  async _sendAnalyticsEvent(data, timestamp) {
40
77
  if (excluded.includes(data.event)) {
41
78
  return;
@@ -64,6 +101,18 @@ export const EventsController = {
64
101
  if (OptionsController.state.enableAnalytics) {
65
102
  EventsController._sendAnalyticsEvent(data, timestamp);
66
103
  }
104
+ },
105
+ resetState() {
106
+ if (state.pendingImpressionTimeout) {
107
+ clearTimeout(state.pendingImpressionTimeout);
108
+ state.pendingImpressionTimeout = undefined;
109
+ }
110
+ state.pendingWalletImpressions = [];
111
+ state.data = {
112
+ type: 'track',
113
+ event: 'MODAL_CREATED'
114
+ };
115
+ state.timestamp = Date.now();
67
116
  }
68
117
  };
69
118
  //# sourceMappingURL=EventsController.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["proxy","subscribe","sub","ApiController","OptionsController","CoreHelperUtil","FetchUtil","baseUrl","getAnalyticsUrl","api","excluded","state","timestamp","Date","now","data","type","event","EventsController","callback","subscribeEvent","_sendAnalyticsEvent","includes","post","path","headers","_getApiHeaders","params","_getApiParams","body","eventId","getUUID","bundleId","getBundleId","props","sendEvent","prefetchPromise","enableAnalytics"],"sourceRoot":"../../../src","sources":["controllers/EventsController.ts"],"mappings":";;AAAA,SAASA,KAAK,EAAEC,SAAS,IAAIC,GAAG,QAAQ,QAAQ;AAChD,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,SAAS,QAAQ,oBAAoB;AAG9C;AACA,MAAMC,OAAO,GAAGF,cAAc,CAACG,eAAe,CAAC,CAAC;AAChD,MAAMC,GAAG,GAAG,IAAIH,SAAS,CAAC;EAAEC;AAAQ,CAAC,CAAC;AACtC,MAAMG,QAAQ,GAAG,CAAC,eAAe,CAAC;;AAElC;;AAMA;AACA,MAAMC,KAAK,GAAGX,KAAK,CAAwB;EACzCY,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC;EACrBC,IAAI,EAAE;IACJC,IAAI,EAAE,OAAO;IACbC,KAAK,EAAE,eAAe,CAAC;EACzB;AACF,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,gBAAgB,GAAG;EAC9BP,KAAK;EAELV,SAASA,CAACkB,QAAmD,EAAE;IAC7D,OAAOjB,GAAG,CAACS,KAAK,EAAE,MAAMQ,QAAQ,CAACR,KAAK,CAAC,CAAC;EAC1C,CAAC;EAEDS,cAAcA,CAACH,KAAgB,EAAEE,QAAmD,EAAE;IACpF,OAAOjB,GAAG,CAACS,KAAK,EAAE,MAAM;MACtB,IAAIA,KAAK,CAACI,IAAI,CAACE,KAAK,KAAKA,KAAK,EAAE;QAC9BE,QAAQ,CAACR,KAAK,CAAC;MACjB;IACF,CAAC,CAAC;EACJ,CAAC;EAED,MAAMU,mBAAmBA,CAACN,IAAmC,EAAEH,SAAiB,EAAE;IAChF,IAAIF,QAAQ,CAACY,QAAQ,CAACP,IAAI,CAACE,KAAK,CAAC,EAAE;MACjC;IACF;IAEA,IAAI;MACF,MAAMR,GAAG,CAACc,IAAI,CAAC;QACbC,IAAI,EAAE,IAAI;QACVC,OAAO,EAAEtB,aAAa,CAACuB,cAAc,CAAC,CAAC;QACvCC,MAAM,EAAExB,aAAa,CAACyB,aAAa,CAAC,CAAC;QACrCC,IAAI,EAAE;UACJC,OAAO,EAAEzB,cAAc,CAAC0B,OAAO,CAAC,CAAC;UACjCC,QAAQ,EAAE3B,cAAc,CAAC4B,WAAW,CAAC,CAAC;UACtCrB,SAAS;UACTsB,KAAK,EAAEnB;QACT;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ,CAAC;EAED,MAAMoB,SAASA,CAACpB,IAAmC,EAAE;IACnD,MAAMH,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC5BH,KAAK,CAACC,SAAS,GAAGA,SAAS;IAC3BD,KAAK,CAACI,IAAI,GAAGA,IAAI;IACjB,MAAMZ,aAAa,CAACQ,KAAK,CAACyB,eAAe;IAEzC,IAAIhC,iBAAiB,CAACO,KAAK,CAAC0B,eAAe,EAAE;MAC3CnB,gBAAgB,CAACG,mBAAmB,CAACN,IAAI,EAAEH,SAAS,CAAC;IACvD;EACF;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["proxy","subscribe","sub","ApiController","OptionsController","CoreHelperUtil","FetchUtil","baseUrl","getAnalyticsUrl","api","excluded","IMPRESSION_TIMEOUT","state","timestamp","Date","now","data","type","event","pendingWalletImpressions","pendingImpressionTimeout","undefined","EventsController","callback","subscribeEvent","trackWalletImpression","props","push","name","wallet","walletRank","order","explorerId","id","certified","badge_type","displayIndex","view","query","installed","clearTimeout","setTimeout","sendWalletImpressions","impressions","length","sendEvent","items","_sendAnalyticsEvent","includes","post","path","headers","_getApiHeaders","params","_getApiParams","body","eventId","getUUID","bundleId","getBundleId","prefetchPromise","enableAnalytics","resetState"],"sourceRoot":"../../../src","sources":["controllers/EventsController.ts"],"mappings":"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","ignoreList":[]}
@@ -1,13 +1,25 @@
1
- import type { Event, EventName } from '@reown/appkit-common-react-native';
1
+ /// <reference types="node" />
2
+ import type { Event, EventName, WalletImpressionItem, WcWallet } from '@reown/appkit-common-react-native';
2
3
  export interface EventsControllerState {
3
4
  timestamp: number;
4
5
  data: Event;
6
+ pendingWalletImpressions: WalletImpressionItem[];
7
+ pendingImpressionTimeout?: NodeJS.Timeout;
5
8
  }
6
9
  export declare const EventsController: {
7
10
  state: EventsControllerState;
8
11
  subscribe(callback: (newState: EventsControllerState) => void): () => void;
9
12
  subscribeEvent(event: EventName, callback: (newEvent: EventsControllerState) => void): () => void;
13
+ trackWalletImpression(props: {
14
+ wallet: WcWallet;
15
+ view: 'Connect' | 'AllWallets';
16
+ displayIndex: number;
17
+ query?: string;
18
+ installed?: boolean;
19
+ }): void;
20
+ sendWalletImpressions(): void;
10
21
  _sendAnalyticsEvent(data: EventsControllerState['data'], timestamp: number): Promise<void>;
11
22
  sendEvent(data: EventsControllerState['data']): Promise<void>;
23
+ resetState(): void;
12
24
  };
13
25
  //# sourceMappingURL=EventsController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventsController.d.ts","sourceRoot":"","sources":["../../../src/controllers/EventsController.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAQ1E,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;CACb;AAYD,eAAO,MAAM,gBAAgB;;mCAGI,qBAAqB,KAAK,IAAI;0BAIvC,SAAS,uBAAuB,qBAAqB,KAAK,IAAI;8BAQpD,qBAAqB,CAAC,MAAM,CAAC,aAAa,MAAM;oBAsB1D,qBAAqB,CAAC,MAAM,CAAC;CAUpD,CAAC"}
1
+ {"version":3,"file":"EventsController.d.ts","sourceRoot":"","sources":["../../../src/controllers/EventsController.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EACV,KAAK,EACL,SAAS,EACT,oBAAoB,EACpB,QAAQ,EACT,MAAM,mCAAmC,CAAC;AAS3C,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,wBAAwB,EAAE,oBAAoB,EAAE,CAAC;IACjD,wBAAwB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;CAC3C;AAcD,eAAO,MAAM,gBAAgB;;mCAGI,qBAAqB,KAAK,IAAI;0BAIvC,SAAS,uBAAuB,qBAAqB,KAAK,IAAI;iCAQvD;QAC3B,MAAM,EAAE,QAAQ,CAAC;QACjB,IAAI,EAAE,SAAS,GAAG,YAAY,CAAC;QAC/B,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;;8BAyC+B,qBAAqB,CAAC,MAAM,CAAC,aAAa,MAAM;oBAsB1D,qBAAqB,CAAC,MAAM,CAAC;;CAuBpD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-core-react-native",
3
- "version": "0.0.0-feat-multichain-20251003200131",
3
+ "version": "0.0.0-feat-multichain-20251006182725",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "types": "lib/typescript/index.d.ts",
6
6
  "module": "lib/module/index.js",
@@ -40,7 +40,7 @@
40
40
  "provenance": true
41
41
  },
42
42
  "dependencies": {
43
- "@reown/appkit-common-react-native": "0.0.0-feat-multichain-20251003200131",
43
+ "@reown/appkit-common-react-native": "0.0.0-feat-multichain-20251006182725",
44
44
  "countries-and-timezones": "3.7.2",
45
45
  "derive-valtio": "0.2.0",
46
46
  "valtio": "2.1.8"
@@ -3,17 +3,25 @@ import { ApiController } from './ApiController';
3
3
  import { OptionsController } from './OptionsController';
4
4
  import { CoreHelperUtil } from '../utils/CoreHelperUtil';
5
5
  import { FetchUtil } from '../utils/FetchUtil';
6
- import type { Event, EventName } from '@reown/appkit-common-react-native';
6
+ import type {
7
+ Event,
8
+ EventName,
9
+ WalletImpressionItem,
10
+ WcWallet
11
+ } from '@reown/appkit-common-react-native';
7
12
 
8
13
  // -- Helpers ------------------------------------------- //
9
14
  const baseUrl = CoreHelperUtil.getAnalyticsUrl();
10
15
  const api = new FetchUtil({ baseUrl });
11
16
  const excluded = ['MODAL_CREATED'];
17
+ const IMPRESSION_TIMEOUT = 3000;
12
18
 
13
19
  // -- Types --------------------------------------------- //
14
20
  export interface EventsControllerState {
15
21
  timestamp: number;
16
22
  data: Event;
23
+ pendingWalletImpressions: WalletImpressionItem[];
24
+ pendingImpressionTimeout?: NodeJS.Timeout;
17
25
  }
18
26
 
19
27
  // -- State --------------------------------------------- //
@@ -22,7 +30,9 @@ const state = proxy<EventsControllerState>({
22
30
  data: {
23
31
  type: 'track',
24
32
  event: 'MODAL_CREATED' // just for init purposes
25
- }
33
+ },
34
+ pendingWalletImpressions: [],
35
+ pendingImpressionTimeout: undefined
26
36
  });
27
37
 
28
38
  // -- Controller ---------------------------------------- //
@@ -41,6 +51,53 @@ export const EventsController = {
41
51
  });
42
52
  },
43
53
 
54
+ trackWalletImpression(props: {
55
+ wallet: WcWallet;
56
+ view: 'Connect' | 'AllWallets';
57
+ displayIndex: number;
58
+ query?: string;
59
+ installed?: boolean;
60
+ }) {
61
+ state.pendingWalletImpressions.push({
62
+ name: props.wallet.name ?? 'Unknown',
63
+ walletRank: props.wallet.order,
64
+ explorerId: props.wallet.id,
65
+ certified: props.wallet.badge_type === 'certified',
66
+ displayIndex: props.displayIndex,
67
+ view: props.view,
68
+ query: props.query,
69
+ installed: props.installed
70
+ });
71
+
72
+ if (state.pendingImpressionTimeout) {
73
+ clearTimeout(state.pendingImpressionTimeout);
74
+ }
75
+
76
+ state.pendingImpressionTimeout = setTimeout(() => {
77
+ EventsController.sendWalletImpressions();
78
+ }, IMPRESSION_TIMEOUT);
79
+ },
80
+
81
+ sendWalletImpressions() {
82
+ if (state.pendingImpressionTimeout) {
83
+ clearTimeout(state.pendingImpressionTimeout);
84
+ state.pendingImpressionTimeout = undefined;
85
+ }
86
+
87
+ const impressions = state.pendingWalletImpressions;
88
+
89
+ if (impressions.length === 0) {
90
+ return;
91
+ }
92
+
93
+ state.pendingWalletImpressions = [];
94
+ EventsController.sendEvent({
95
+ type: 'track',
96
+ event: 'WALLET_IMPRESSION',
97
+ items: impressions
98
+ });
99
+ },
100
+
44
101
  async _sendAnalyticsEvent(data: EventsControllerState['data'], timestamp: number) {
45
102
  if (excluded.includes(data.event)) {
46
103
  return;
@@ -72,5 +129,18 @@ export const EventsController = {
72
129
  if (OptionsController.state.enableAnalytics) {
73
130
  EventsController._sendAnalyticsEvent(data, timestamp);
74
131
  }
132
+ },
133
+
134
+ resetState() {
135
+ if (state.pendingImpressionTimeout) {
136
+ clearTimeout(state.pendingImpressionTimeout);
137
+ state.pendingImpressionTimeout = undefined;
138
+ }
139
+ state.pendingWalletImpressions = [];
140
+ state.data = {
141
+ type: 'track',
142
+ event: 'MODAL_CREATED'
143
+ };
144
+ state.timestamp = Date.now();
75
145
  }
76
146
  };