@metamask-previews/notification-services-controller 0.2.1-preview-04657153 → 0.2.1-preview-473880a1

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 (67) hide show
  1. package/dist/NotificationServicesController/NotificationServicesController.js +3 -3
  2. package/dist/NotificationServicesController/NotificationServicesController.mjs +2 -2
  3. package/dist/NotificationServicesController/index.js +44 -9
  4. package/dist/NotificationServicesController/index.mjs +44 -9
  5. package/dist/NotificationServicesController/services/feature-announcements.js +2 -2
  6. package/dist/NotificationServicesController/services/feature-announcements.mjs +1 -1
  7. package/dist/NotificationServicesPushController/NotificationServicesPushController.js +3 -3
  8. package/dist/NotificationServicesPushController/NotificationServicesPushController.mjs +3 -3
  9. package/dist/NotificationServicesPushController/index.js +23 -7
  10. package/dist/NotificationServicesPushController/index.mjs +23 -7
  11. package/dist/NotificationServicesPushController/services/push/push-web.js +3 -3
  12. package/dist/NotificationServicesPushController/services/push/push-web.mjs +3 -3
  13. package/dist/NotificationServicesPushController/services/services.js +3 -3
  14. package/dist/NotificationServicesPushController/services/services.mjs +3 -3
  15. package/dist/NotificationServicesPushController/utils/get-notification-message.js +3 -3
  16. package/dist/NotificationServicesPushController/utils/get-notification-message.mjs +3 -3
  17. package/dist/NotificationServicesPushController/utils/index.js +3 -3
  18. package/dist/NotificationServicesPushController/utils/index.mjs +3 -3
  19. package/dist/{chunk-RVDEVD2D.js → chunk-2O32EME6.js} +3 -3
  20. package/dist/{chunk-SLSTQQJR.js → chunk-ABWWUGTE.js} +44 -7
  21. package/dist/chunk-ABWWUGTE.js.map +1 -0
  22. package/dist/{chunk-QFJZBLYQ.mjs → chunk-C62SK2KY.mjs} +22 -1
  23. package/dist/chunk-C62SK2KY.mjs.map +1 -0
  24. package/dist/{chunk-AYAVYLQD.mjs → chunk-DFDFJ4DX.mjs} +2 -2
  25. package/dist/{chunk-56OOTY2L.mjs → chunk-GNN2XQW4.mjs} +41 -4
  26. package/dist/chunk-GNN2XQW4.mjs.map +1 -0
  27. package/dist/{chunk-HZEB53A6.js → chunk-LGXHJ24K.js} +22 -1
  28. package/dist/chunk-LGXHJ24K.js.map +1 -0
  29. package/dist/{chunk-UMB6F2XF.mjs → chunk-RZXUP2M6.mjs} +20 -2
  30. package/dist/chunk-RZXUP2M6.mjs.map +1 -0
  31. package/dist/{chunk-WBI6LXZV.js → chunk-XGHB2EF3.js} +20 -2
  32. package/dist/chunk-XGHB2EF3.js.map +1 -0
  33. package/dist/index.js +5 -5
  34. package/dist/index.mjs +4 -4
  35. package/dist/tsconfig.build.tsbuildinfo +1 -1
  36. package/dist/types/NotificationServicesController/__fixtures__/mockResponses.d.ts +2 -2
  37. package/dist/types/NotificationServicesController/__fixtures__/mockResponses.d.ts.map +1 -1
  38. package/dist/types/NotificationServicesController/index.d.ts +4 -1
  39. package/dist/types/NotificationServicesController/index.d.ts.map +1 -1
  40. package/dist/types/NotificationServicesController/services/feature-announcements.d.ts.map +1 -1
  41. package/dist/types/NotificationServicesController/types/feature-announcement/feature-announcement.d.ts +11 -9
  42. package/dist/types/NotificationServicesController/types/feature-announcement/feature-announcement.d.ts.map +1 -1
  43. package/dist/types/NotificationServicesController/types/feature-announcement/type-feature-announcement.d.ts +4 -3
  44. package/dist/types/NotificationServicesController/types/feature-announcement/type-feature-announcement.d.ts.map +1 -1
  45. package/dist/types/NotificationServicesController/types/feature-announcement/type-links.d.ts +15 -10
  46. package/dist/types/NotificationServicesController/types/feature-announcement/type-links.d.ts.map +1 -1
  47. package/dist/types/NotificationServicesPushController/index.d.ts +2 -0
  48. package/dist/types/NotificationServicesPushController/index.d.ts.map +1 -1
  49. package/notification-services/mocks/package.json +1 -1
  50. package/notification-services/package.json +1 -1
  51. package/notification-services/ui/package.json +1 -1
  52. package/package.json +4 -29
  53. package/push-services/mocks/package.json +1 -1
  54. package/push-services/package.json +1 -1
  55. package/dist/chunk-56OOTY2L.mjs.map +0 -1
  56. package/dist/chunk-HZEB53A6.js.map +0 -1
  57. package/dist/chunk-QFJZBLYQ.mjs.map +0 -1
  58. package/dist/chunk-SLSTQQJR.js.map +0 -1
  59. package/dist/chunk-UMB6F2XF.mjs.map +0 -1
  60. package/dist/chunk-WBI6LXZV.js.map +0 -1
  61. package/notification-services/constants/package.json +0 -9
  62. package/notification-services/processors/package.json +0 -9
  63. package/notification-services/types/package.json +0 -9
  64. package/push-services/types/package.json +0 -9
  65. package/push-services/utils/package.json +0 -9
  66. /package/dist/{chunk-RVDEVD2D.js.map → chunk-2O32EME6.js.map} +0 -0
  67. /package/dist/{chunk-AYAVYLQD.mjs.map → chunk-DFDFJ4DX.mjs.map} +0 -0
@@ -13,10 +13,21 @@ var _chunkKWTSMLNDjs = require('./chunk-KWTSMLND.js');
13
13
 
14
14
 
15
15
 
16
- var _chunkRVDEVD2Djs = require('./chunk-RVDEVD2D.js');
16
+ var _chunk2O32EME6js = require('./chunk-2O32EME6.js');
17
17
 
18
18
 
19
- var _chunkHZEB53A6js = require('./chunk-HZEB53A6.js');
19
+
20
+ var _chunk5FUMSWDDjs = require('./chunk-5FUMSWDD.js');
21
+
22
+
23
+ var _chunkLYEXYTOIjs = require('./chunk-LYEXYTOI.js');
24
+
25
+
26
+ var _chunkLGXHJ24Kjs = require('./chunk-LGXHJ24K.js');
27
+
28
+
29
+
30
+ var _chunk52CALMRAjs = require('./chunk-52CALMRA.js');
20
31
 
21
32
 
22
33
 
@@ -27,6 +38,17 @@ var _chunkH73GATCUjs = require('./chunk-H73GATCU.js');
27
38
  var _chunkNOYP2T77js = require('./chunk-NOYP2T77.js');
28
39
 
29
40
 
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+ var _chunkV6P5JEPTjs = require('./chunk-V6P5JEPT.js');
49
+
50
+
51
+
30
52
  var _chunkTLX5QQK5js = require('./chunk-TLX5QQK5.js');
31
53
 
32
54
 
@@ -35,14 +57,29 @@ var _chunkIGY2S5BCjs = require('./chunk-IGY2S5BC.js');
35
57
  // src/NotificationServicesController/index.ts
36
58
  var NotificationServicesController_exports = {};
37
59
  _chunkIGY2S5BCjs.__export.call(void 0, NotificationServicesController_exports, {
60
+ CHAIN_SYMBOLS: () => _chunkV6P5JEPTjs.CHAIN_SYMBOLS,
38
61
  Constants: () => _chunkQY4UST5Vjs.constants_exports,
39
- Controller: () => _chunkRVDEVD2Djs.NotificationServicesController,
62
+ Controller: () => _chunk2O32EME6js.NotificationServicesController,
40
63
  Mocks: () => fixtures_exports,
64
+ NOTIFICATION_CHAINS: () => _chunkV6P5JEPTjs.NOTIFICATION_CHAINS,
65
+ NOTIFICATION_CHAINS_ID: () => _chunkV6P5JEPTjs.NOTIFICATION_CHAINS_ID,
41
66
  Processors: () => _chunkKWTSMLNDjs.processors_exports,
67
+ SUPPORTED_CHAINS: () => _chunkV6P5JEPTjs.SUPPORTED_CHAINS,
68
+ TRIGGERS: () => _chunkV6P5JEPTjs.TRIGGERS,
69
+ TRIGGER_TYPES: () => _chunkV6P5JEPTjs.TRIGGER_TYPES,
70
+ TRIGGER_TYPES_GROUPS: () => _chunkV6P5JEPTjs.TRIGGER_TYPES_GROUPS,
71
+ TRIGGER_TYPES_WALLET_SET: () => _chunkV6P5JEPTjs.TRIGGER_TYPES_WALLET_SET,
42
72
  Types: () => _chunk232HZSEVjs.types_exports,
43
73
  UI: () => _chunkIG3KWCQUjs.ui_exports,
74
+ USER_STORAGE_VERSION: () => _chunkTLX5QQK5js.USER_STORAGE_VERSION,
75
+ USER_STORAGE_VERSION_KEY: () => _chunkTLX5QQK5js.USER_STORAGE_VERSION_KEY,
44
76
  default: () => NotificationServicesController_default,
45
- defaultState: () => _chunkRVDEVD2Djs.defaultState
77
+ defaultState: () => _chunk2O32EME6js.defaultState,
78
+ isFeatureAnnouncementRead: () => _chunk52CALMRAjs.isFeatureAnnouncementRead,
79
+ processFeatureAnnouncement: () => _chunk52CALMRAjs.processFeatureAnnouncement,
80
+ processNotification: () => _chunk5FUMSWDDjs.processNotification,
81
+ processOnChainNotification: () => _chunkLYEXYTOIjs.processOnChainNotification,
82
+ safeProcessNotification: () => _chunk5FUMSWDDjs.safeProcessNotification
46
83
  });
47
84
 
48
85
  // src/NotificationServicesController/__fixtures__/index.ts
@@ -888,7 +925,7 @@ function createMockRawOnChainNotifications() {
888
925
  var CONTENTFUL_RESPONSE = createMockFeatureAnnouncementAPIResult();
889
926
  var getMockFeatureAnnouncementResponse = () => {
890
927
  return {
891
- url: _chunkHZEB53A6js.FEATURE_ANNOUNCEMENT_API,
928
+ url: _chunkLGXHJ24Kjs.FEATURE_ANNOUNCEMENT_API,
892
929
  requestMethod: "GET",
893
930
  response: CONTENTFUL_RESPONSE
894
931
  };
@@ -924,7 +961,7 @@ var getMockMarkNotificationsAsReadResponse = () => {
924
961
  };
925
962
 
926
963
  // src/NotificationServicesController/index.ts
927
- var NotificationServicesController2 = _chunkRVDEVD2Djs.NotificationServicesController;
964
+ var NotificationServicesController2 = _chunk2O32EME6js.NotificationServicesController;
928
965
  var NotificationServicesController_default = NotificationServicesController2;
929
966
 
930
967
 
@@ -932,4 +969,4 @@ var NotificationServicesController_default = NotificationServicesController2;
932
969
 
933
970
 
934
971
  exports.fixtures_exports = fixtures_exports; exports.NotificationServicesController_default = NotificationServicesController_default; exports.NotificationServicesController_exports = NotificationServicesController_exports;
935
- //# sourceMappingURL=chunk-SLSTQQJR.js.map
972
+ //# sourceMappingURL=chunk-ABWWUGTE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/NotificationServicesController/index.ts","../src/NotificationServicesController/__fixtures__/index.ts","../src/NotificationServicesController/__fixtures__/mock-feature-announcements.ts","../src/NotificationServicesController/__fixtures__/mock-notification-trigger.ts","../src/NotificationServicesController/__fixtures__/mock-notification-user-storage.ts","../src/NotificationServicesController/__fixtures__/mock-raw-notifications.ts","../src/NotificationServicesController/__fixtures__/mockResponses.ts"],"names":["NotificationServicesController"],"mappings":"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","sourcesContent":["import Controller from './NotificationServicesController';\n\nconst NotificationServicesController = Controller;\nexport { Controller };\nexport default NotificationServicesController;\nexport * from './NotificationServicesController';\nexport * as Types from './types';\nexport * from './types';\nexport * as Processors from './processors';\nexport * from './processors';\nexport * as Constants from './constants';\nexport * from './constants';\nexport * as Mocks from './__fixtures__';\nexport * as UI from './ui';\n","export * from './mock-feature-announcements';\nexport * from './mock-notification-trigger';\nexport * from './mock-notification-user-storage';\nexport * from './mock-raw-notifications';\nexport * from './mockResponses';\n","import { TRIGGER_TYPES } from '../constants/notification-schema';\nimport type { ContentfulResult } from '../services/feature-announcements';\nimport type { FeatureAnnouncementRawNotification } from '../types/feature-announcement/feature-announcement';\n\n/**\n * Mocking Utility - create a mock normalized feature announcement\n *\n * @returns Mock Normalized Feature Announcement\n */\nexport function createMockFeatureAnnouncementAPIResult(): ContentfulResult {\n return {\n sys: {\n type: 'Array',\n },\n total: 17,\n skip: 0,\n limit: 1,\n items: [\n {\n metadata: {\n tags: [],\n },\n sys: {\n space: {\n sys: {\n type: 'Link',\n linkType: 'Space',\n id: 'jdkgyfmyd9sw',\n },\n },\n id: '1ABRmHaNCgmxROKXXLXsMu',\n type: 'Entry',\n createdAt: '2024-04-09T13:24:01.872Z',\n updatedAt: '2024-04-09T13:24:01.872Z',\n environment: {\n sys: {\n id: 'master',\n type: 'Link',\n linkType: 'Environment',\n },\n },\n revision: 1,\n contentType: {\n sys: {\n type: 'Link',\n linkType: 'ContentType',\n id: 'productAnnouncement',\n },\n },\n locale: 'en-US',\n },\n fields: {\n title: 'Don’t miss out on airdrops and new NFT mints!',\n id: 'dont-miss-out-on-airdrops-and-new-nft-mints',\n category: 'ANNOUNCEMENT',\n shortDescription:\n 'Check your airdrop eligibility and see trending NFT drops. Head over to the Explore tab to get started. ',\n image: {\n sys: {\n type: 'Link',\n linkType: 'Asset',\n id: '5jqq8sFeLc6XEoeWlpI3aB',\n },\n },\n longDescription: {\n data: {},\n content: [\n {\n data: {},\n content: [\n {\n data: {},\n marks: [],\n value:\n 'You can now verify if any of your connected addresses are eligible for airdrops and other ERC-20 claims in a secure and convenient way. We’ve also added trending NFT mints based on creators you’ve minted from before or other tokens you hold. Head over to the Explore tab to get started. \\n',\n nodeType: 'text',\n },\n ],\n nodeType: 'paragraph',\n },\n ],\n nodeType: 'document',\n },\n link: {\n sys: {\n type: 'Link',\n linkType: 'Entry',\n id: '62xKYM2ydo4F1mS5q97K5q',\n },\n },\n },\n },\n ],\n includes: {\n Entry: [\n {\n metadata: {\n tags: [],\n },\n sys: {\n space: {\n sys: {\n type: 'Link',\n linkType: 'Space',\n id: 'jdkgyfmyd9sw',\n },\n },\n id: '62xKYM2ydo4F1mS5q97K5q',\n type: 'Entry',\n createdAt: '2024-04-09T13:23:03.636Z',\n updatedAt: '2024-04-09T13:23:03.636Z',\n environment: {\n sys: {\n id: 'master',\n type: 'Link',\n linkType: 'Environment',\n },\n },\n revision: 1,\n contentType: {\n sys: {\n type: 'Link',\n linkType: 'ContentType',\n id: 'link',\n },\n },\n locale: 'en-US',\n },\n fields: {\n extensionLinkText: 'Try now',\n extensionLinkRoute: 'home.html',\n },\n },\n ],\n Asset: [\n {\n metadata: {\n tags: [],\n },\n sys: {\n space: {\n sys: {\n type: 'Link',\n linkType: 'Space',\n id: 'jdkgyfmyd9sw',\n },\n },\n id: '5jqq8sFeLc6XEoeWlpI3aB',\n type: 'Asset',\n createdAt: '2024-04-09T13:23:13.327Z',\n updatedAt: '2024-04-09T13:23:13.327Z',\n environment: {\n sys: {\n id: 'master',\n type: 'Link',\n linkType: 'Environment',\n },\n },\n revision: 1,\n locale: 'en-US',\n },\n fields: {\n title: 'PDAPP notification image Airdrops & NFT mints',\n description: '',\n file: {\n url: '//images.ctfassets.net/jdkgyfmyd9sw/5jqq8sFeLc6XEoeWlpI3aB/73ee0f1afa9916c3a7538b0bbee09c26/PDAPP_notification_image_Airdrops___NFT_mints.png',\n details: {\n size: 797731,\n image: {\n width: 2880,\n height: 1921,\n },\n },\n fileName: 'PDAPP notification image_Airdrops & NFT mints.png',\n contentType: 'image/png',\n },\n },\n },\n ],\n },\n } as unknown as ContentfulResult;\n}\n\n/**\n * Mocking Utility - create a mock raw feature announcement\n *\n * @returns Mock Raw Feature Announcement\n */\nexport function createMockFeatureAnnouncementRaw(): FeatureAnnouncementRawNotification {\n return {\n type: TRIGGER_TYPES.FEATURES_ANNOUNCEMENT,\n createdAt: '2999-04-09T13:24:01.872Z',\n data: {\n id: 'dont-miss-out-on-airdrops-and-new-nft-mints',\n category: 'ANNOUNCEMENT',\n title: 'Don’t miss out on airdrops and new NFT mints!',\n longDescription: `<p>You can now verify if any of your connected addresses are eligible for airdrops and other ERC-20 claims in a secure and convenient way. We’ve also added trending NFT mints based on creators you’ve minted from before or other tokens you hold. Head over to the Explore tab to get started.</p>`,\n shortDescription:\n 'Check your airdrop eligibility and see trending NFT drops. Head over to the Explore tab to get started.',\n image: {\n title: 'PDAPP notification image Airdrops & NFT mints',\n description: '',\n url: '//images.ctfassets.net/jdkgyfmyd9sw/5jqq8sFeLc6XEoeWlpI3aB/73ee0f1afa9916c3a7538b0bbee09c26/PDAPP_notification_image_Airdrops___NFT_mints.png',\n },\n extensionLink: {\n extensionLinkText: 'Try now',\n extensionLinkRoute: 'home.html',\n },\n },\n };\n}\n","import { v4 as uuidv4 } from 'uuid';\n\nimport type { NotificationTrigger } from '../utils/utils';\n\n/**\n * Mocking Utility - create a mock Notification Trigger\n *\n * @param override - provide any override configuration for the mock\n * @returns a mock Notification Trigger\n */\nexport function createMockNotificationTrigger(\n override?: Partial<NotificationTrigger>,\n): NotificationTrigger {\n return {\n id: uuidv4(),\n address: '0xFAKE_ADDRESS',\n chainId: '1',\n kind: 'eth_sent',\n enabled: true,\n ...override,\n };\n}\n","import { USER_STORAGE_VERSION_KEY } from '../constants/constants';\nimport { TRIGGER_TYPES } from '../constants/notification-schema';\nimport type { UserStorage } from '../types/user-storage/user-storage';\nimport { initializeUserStorage } from '../utils/utils';\n\nexport const MOCK_USER_STORAGE_ACCOUNT =\n '0x0000000000000000000000000000000000000000';\nexport const MOCK_USER_STORAGE_CHAIN = '1';\n\n/**\n * Mocking Utility - create a mock notification user storage object\n *\n * @param override - provide any override configuration for the mock\n * @returns a mock notification user storage object\n */\nexport function createMockUserStorage(\n override?: Partial<UserStorage>,\n): UserStorage {\n return {\n [USER_STORAGE_VERSION_KEY]: '1',\n [MOCK_USER_STORAGE_ACCOUNT]: {\n [MOCK_USER_STORAGE_CHAIN]: {\n '111-111-111-111': {\n k: TRIGGER_TYPES.ERC20_RECEIVED,\n e: true,\n },\n '222-222-222-222': {\n k: TRIGGER_TYPES.ERC20_SENT,\n e: true,\n },\n },\n },\n ...override,\n };\n}\n\n/**\n * Mocking Utility - create a mock notification user storage object with triggers\n *\n * @param triggers - provide any override configuration for the mock\n * @returns a mock notification user storage object with triggers\n */\nexport function createMockUserStorageWithTriggers(\n triggers: string[] | { id: string; e: boolean; k?: TRIGGER_TYPES }[],\n): UserStorage {\n const userStorage: UserStorage = {\n [USER_STORAGE_VERSION_KEY]: '1',\n [MOCK_USER_STORAGE_ACCOUNT]: {\n [MOCK_USER_STORAGE_CHAIN]: {},\n },\n };\n\n // insert triggerIds\n triggers.forEach((t) => {\n let tId: string;\n let e: boolean;\n let k: TRIGGER_TYPES;\n if (typeof t === 'string') {\n tId = t;\n e = true;\n k = TRIGGER_TYPES.ERC20_RECEIVED;\n } else {\n tId = t.id;\n e = t.e;\n k = t.k ?? TRIGGER_TYPES.ERC20_RECEIVED;\n }\n\n userStorage[MOCK_USER_STORAGE_ACCOUNT][MOCK_USER_STORAGE_CHAIN][tId] = {\n k,\n e,\n };\n });\n\n return userStorage;\n}\n\n/**\n * Mocking Utility - create a mock notification user storage object (full/realistic object)\n *\n * @param props - provide any override configuration for the mock\n * @param props.triggersEnabled - choose if all triggers created are enabled/disabled\n * @param props.address - choose a specific address for triggers to be assigned to\n * @returns a mock full notification user storage object\n */\nexport function createMockFullUserStorage(\n props: { triggersEnabled?: boolean; address?: string } = {},\n): UserStorage {\n return initializeUserStorage(\n [{ address: props.address ?? MOCK_USER_STORAGE_ACCOUNT }],\n props.triggersEnabled ?? true,\n );\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { TRIGGER_TYPES } from '../constants/notification-schema';\nimport type { OnChainRawNotification } from '../types/on-chain-notification/on-chain-notification';\n\n/**\n * Mocking Utility - create a mock Eth sent notification\n * @returns Mock raw Eth sent notification\n */\nexport function createMockNotificationEthSent(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ETH_SENT,\n id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n trigger_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n chain_id: 1,\n block_number: 17485840,\n block_timestamp: '2022-03-01T00:00:00Z',\n tx_hash:\n '0xb2256b183f2fb3872f99294ab55fb03e6a479b0d4aca556a3b27568b712505a6',\n unread: true,\n created_at: '2022-03-01T00:00:00Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'eth_sent',\n network_fee: {\n gas_price: '207806259583',\n native_token_price_in_usd: '0.83',\n },\n from: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n to: '0x881D40237659C251811CEC9c364ef91dC08D300D',\n amount: {\n usd: '670.64',\n eth: '0.005',\n },\n },\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock Eth Received notification\n * @returns Mock raw Eth Received notification\n */\nexport function createMockNotificationEthReceived(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ETH_RECEIVED,\n id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n trigger_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n chain_id: 1,\n block_number: 17485840,\n block_timestamp: '2022-03-01T00:00:00Z',\n tx_hash:\n '0xb2256b183f2fb3872f99294ab55fb03e6a479b0d4aca556a3b27568b712505a6',\n unread: true,\n created_at: '2022-03-01T00:00:00Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'eth_received',\n network_fee: {\n gas_price: '207806259583',\n native_token_price_in_usd: '0.83',\n },\n from: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n to: '0x881D40237659C251811CEC9c364ef91dC08D300D',\n amount: {\n usd: '670.64',\n eth: '808.000000000000000000',\n },\n },\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock ERC20 sent notification\n * @returns Mock raw ERC20 sent notification\n */\nexport function createMockNotificationERC20Sent(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ERC20_SENT,\n id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n trigger_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n chain_id: 1,\n block_number: 17485840,\n block_timestamp: '2022-03-01T00:00:00Z',\n tx_hash:\n '0xb2256b183f2fb3872f99294ab55fb03e6a479b0d4aca556a3b27568b712505a6',\n unread: true,\n created_at: '2022-03-01T00:00:00Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'erc20_sent',\n network_fee: {\n gas_price: '207806259583',\n native_token_price_in_usd: '0.83',\n },\n to: '0xecc19e177d24551aa7ed6bc6fe566eca726cc8a9',\n from: '0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae',\n token: {\n usd: '1.00',\n name: 'USDC',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/usdc.svg',\n amount: '4956250000',\n symbol: 'USDC',\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n decimals: '6',\n },\n },\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock ERC20 received notification\n * @returns Mock raw ERC20 received notification\n */\nexport function createMockNotificationERC20Received(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ERC20_RECEIVED,\n id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n trigger_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n chain_id: 1,\n block_number: 17485840,\n block_timestamp: '2022-03-01T00:00:00Z',\n tx_hash:\n '0xb2256b183f2fb3872f99294ab55fb03e6a479b0d4aca556a3b27568b712505a6',\n unread: true,\n created_at: '2022-03-01T00:00:00Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'erc20_received',\n network_fee: {\n gas_price: '207806259583',\n native_token_price_in_usd: '0.83',\n },\n to: '0xeae7380dd4cef6fbd1144f49e4d1e6964258a4f4',\n from: '0x51c72848c68a965f66fa7a88855f9f7784502a7f',\n token: {\n usd: '0.00',\n name: 'SHIBA INU',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/shib.svg',\n amount: '8382798736999999457296646144',\n symbol: 'SHIB',\n address: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce',\n decimals: '18',\n },\n },\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock ERC721 sent notification\n * @returns Mock raw ERC721 sent notification\n */\nexport function createMockNotificationERC721Sent(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ERC721_SENT,\n block_number: 18576643,\n block_timestamp: '1700043467',\n chain_id: 1,\n created_at: '2023-11-15T11:08:17.895407Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n to: '0xf47f628fe3bd2595e9ab384bfffc3859b448e451',\n nft: {\n name: 'Captainz #8680',\n image:\n 'https://i.seadn.io/s/raw/files/ae0fc06714ff7fb40217340d8a242c0e.gif?w=500&auto=format',\n token_id: '8680',\n collection: {\n name: 'The Captainz',\n image:\n 'https://i.seadn.io/gcs/files/6df4d75778066bce740050615bc84e21.png?w=500&auto=format',\n symbol: 'Captainz',\n address: '0x769272677fab02575e84945f03eca517acc544cc',\n },\n },\n from: '0x24a0bb54b7e7a8e406e9b28058a9fd6c49e6df4f',\n kind: 'erc721_sent',\n network_fee: {\n gas_price: '24550653274',\n native_token_price_in_usd: '1986.61',\n },\n },\n id: 'a4193058-9814-537e-9df4-79dcac727fb6',\n trigger_id: '028485be-b994-422b-a93b-03fcc01ab715',\n tx_hash:\n '0x0833c69fb41cf972a0f031fceca242939bc3fcf82b964b74606649abcad371bd',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock ERC721 received notification\n * @returns Mock raw ERC721 received notification\n */\nexport function createMockNotificationERC721Received(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ERC721_RECEIVED,\n block_number: 18571446,\n block_timestamp: '1699980623',\n chain_id: 1,\n created_at: '2023-11-14T17:40:52.319281Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n to: '0xba7f3daa8adfdad686574406ab9bd5d2f0a49d2e',\n nft: {\n name: 'The Plague #2722',\n image:\n 'https://i.seadn.io/s/raw/files/a96f90ec8ebf55a2300c66a0c46d6a16.png?w=500&auto=format',\n token_id: '2722',\n collection: {\n name: 'The Plague NFT',\n image:\n 'https://i.seadn.io/gcs/files/4577987a5ca45ca5118b2e31559ee4d1.jpg?w=500&auto=format',\n symbol: 'FROG',\n address: '0xc379e535caff250a01caa6c3724ed1359fe5c29b',\n },\n },\n from: '0x24a0bb54b7e7a8e406e9b28058a9fd6c49e6df4f',\n kind: 'erc721_received',\n network_fee: {\n gas_price: '53701898538',\n native_token_price_in_usd: '2047.01',\n },\n },\n id: '00a79d24-befa-57ed-a55a-9eb8696e1654',\n trigger_id: 'd24ac26a-8579-49ec-9947-d04d63592ebd',\n tx_hash:\n '0xe554c9e29e6eeca8ba94da4d047334ba08b8eb9ca3b801dd69cec08dfdd4ae43',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock ERC1155 sent notification\n * @returns Mock raw ERC1155 sent notification\n */\nexport function createMockNotificationERC1155Sent(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ERC1155_SENT,\n block_number: 18615206,\n block_timestamp: '1700510003',\n chain_id: 1,\n created_at: '2023-11-20T20:44:10.110706Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n to: '0x15bd77ccacf2da39b84f0c31fee2e451225bb190',\n nft: {\n name: 'IlluminatiNFT DAO',\n image:\n 'https://i.seadn.io/gcs/files/79a77cb37c7b2f1069f752645d29fea7.jpg?w=500&auto=format',\n token_id: '1',\n collection: {\n name: 'IlluminatiNFT DAO',\n image:\n 'https://i.seadn.io/gae/LTKz3om2eCQfn3M6PkqEmY7KhLtdMCOm0QVch2318KJq7-KyToCH7NBTMo4UuJ0AZI-oaBh1HcgrAEIEWYbXY3uMcYpuGXunaXEh?w=500&auto=format',\n symbol: 'TRUTH',\n address: '0xe25f0fe686477f9df3c2876c4902d3b85f75f33a',\n },\n },\n from: '0x0000000000000000000000000000000000000000',\n kind: 'erc1155_sent',\n network_fee: {\n gas_price: '33571446596',\n native_token_price_in_usd: '2038.88',\n },\n },\n id: 'a09ff9d1-623a-52ab-a3d4-c7c8c9a58362',\n trigger_id: 'e2130f7d-78b8-4c34-999a-3f3d3bb5b03c',\n tx_hash:\n '0x03381aba290facbaf71c123e263c8dc3dd550aac00ef589cce395182eaeff76f',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock ERC1155 received notification\n * @returns Mock raw ERC1155 received notification\n */\nexport function createMockNotificationERC1155Received(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ERC1155_RECEIVED,\n block_number: 18615206,\n block_timestamp: '1700510003',\n chain_id: 1,\n created_at: '2023-11-20T20:44:10.110706Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n to: '0x15bd77ccacf2da39b84f0c31fee2e451225bb190',\n nft: {\n name: 'IlluminatiNFT DAO',\n image:\n 'https://i.seadn.io/gcs/files/79a77cb37c7b2f1069f752645d29fea7.jpg?w=500&auto=format',\n token_id: '1',\n collection: {\n name: 'IlluminatiNFT DAO',\n image:\n 'https://i.seadn.io/gae/LTKz3om2eCQfn3M6PkqEmY7KhLtdMCOm0QVch2318KJq7-KyToCH7NBTMo4UuJ0AZI-oaBh1HcgrAEIEWYbXY3uMcYpuGXunaXEh?w=500&auto=format',\n symbol: 'TRUTH',\n address: '0xe25f0fe686477f9df3c2876c4902d3b85f75f33a',\n },\n },\n from: '0x0000000000000000000000000000000000000000',\n kind: 'erc1155_received',\n network_fee: {\n gas_price: '33571446596',\n native_token_price_in_usd: '2038.88',\n },\n },\n id: 'b6b93c84-e8dc-54ed-9396-7ea50474843a',\n trigger_id: '710c8abb-43a9-42a5-9d86-9dd258726c82',\n tx_hash:\n '0x03381aba290facbaf71c123e263c8dc3dd550aac00ef589cce395182eaeff76f',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock MetaMask Swaps notification\n * @returns Mock raw MetaMask Swaps notification\n */\nexport function createMockNotificationMetaMaskSwapsCompleted(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.METAMASK_SWAP_COMPLETED,\n block_number: 18377666,\n block_timestamp: '1697637275',\n chain_id: 1,\n created_at: '2023-10-18T13:58:49.854596Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'metamask_swap_completed',\n rate: '1558.27',\n token_in: {\n usd: '1576.73',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n amount: '9000000000000000',\n symbol: 'ETH',\n address: '0x0000000000000000000000000000000000000000',\n decimals: '18',\n name: 'Ethereum',\n },\n token_out: {\n usd: '1.00',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/usdt.svg',\n amount: '14024419',\n symbol: 'USDT',\n address: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n decimals: '6',\n name: 'USDT',\n },\n network_fee: {\n gas_price: '15406129273',\n native_token_price_in_usd: '1576.73',\n },\n },\n id: '7ddfe6a1-ac52-5ffe-aa40-f04242db4b8b',\n trigger_id: 'd2eaa2eb-2e6e-4fd5-8763-b70ea571b46c',\n tx_hash:\n '0xf69074290f3aa11bce567aabc9ca0df7a12559dfae1b80ba1a124e9dfe19ecc5',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock RocketPool Stake Completed notification\n * @returns Mock raw RocketPool Stake Completed notification\n */\nexport function createMockNotificationRocketPoolStakeCompleted(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ROCKETPOOL_STAKE_COMPLETED,\n block_number: 18585057,\n block_timestamp: '1700145059',\n chain_id: 1,\n created_at: '2023-11-20T12:02:48.796824Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'rocketpool_stake_completed',\n stake_in: {\n usd: '2031.86',\n name: 'Ethereum',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n amount: '190690478063438272',\n symbol: 'ETH',\n address: '0x0000000000000000000000000000000000000000',\n decimals: '18',\n },\n stake_out: {\n usd: '2226.49',\n name: 'Rocket Pool ETH',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/rETH.svg',\n amount: '175024360778165879',\n symbol: 'RETH',\n address: '0xae78736Cd615f374D3085123A210448E74Fc6393',\n decimals: '18',\n },\n network_fee: {\n gas_price: '36000000000',\n native_token_price_in_usd: '2031.86',\n },\n },\n id: 'c2a2f225-b2fb-5d6c-ba56-e27a5c71ffb9',\n trigger_id: '5110ff97-acff-40c0-83b4-11d487b8c7b0',\n tx_hash:\n '0xcfc0693bf47995907b0f46ef0644cf16dd9a0de797099b2e00fd481e1b2117d3',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock RocketPool Un-staked notification\n * @returns Mock raw RocketPool Un-staked notification\n */\nexport function createMockNotificationRocketPoolUnStakeCompleted(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ROCKETPOOL_UNSTAKE_COMPLETED,\n block_number: 18384336,\n block_timestamp: '1697718011',\n chain_id: 1,\n created_at: '2023-10-19T13:11:10.623042Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'rocketpool_unstake_completed',\n stake_in: {\n usd: '1686.34',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/rETH.svg',\n amount: '66608041413696770',\n symbol: 'RETH',\n address: '0xae78736Cd615f374D3085123A210448E74Fc6393',\n decimals: '18',\n name: 'Rocketpool Eth',\n },\n stake_out: {\n usd: '1553.75',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n amount: '72387843427700824',\n symbol: 'ETH',\n address: '0x0000000000000000000000000000000000000000',\n decimals: '18',\n name: 'Ethereum',\n },\n network_fee: {\n gas_price: '5656322987',\n native_token_price_in_usd: '1553.75',\n },\n },\n id: 'd8c246e7-a0a4-5f1d-b079-2b1707665fbc',\n trigger_id: '291ec897-f569-4837-b6c0-21001b198dff',\n tx_hash:\n '0xc7972a7e409abfc62590ec90e633acd70b9b74e76ad02305be8bf133a0e22d5f',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock Lido Stake Completed notification\n * @returns Mock raw Lido Stake Completed notification\n */\nexport function createMockNotificationLidoStakeCompleted(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.LIDO_STAKE_COMPLETED,\n block_number: 18487118,\n block_timestamp: '1698961091',\n chain_id: 1,\n created_at: '2023-11-02T22:28:49.970865Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'lido_stake_completed',\n stake_in: {\n usd: '1806.33',\n name: 'Ethereum',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n amount: '330303634023928032',\n symbol: 'ETH',\n address: '0x0000000000000000000000000000000000000000',\n decimals: '18',\n },\n stake_out: {\n usd: '1801.30',\n name: 'Liquid staked Ether 2.0',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/stETH.svg',\n amount: '330303634023928032',\n symbol: 'STETH',\n address: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',\n decimals: '18',\n },\n network_fee: {\n gas_price: '26536359866',\n native_token_price_in_usd: '1806.33',\n },\n },\n id: '9d9b1467-b3ee-5492-8ca2-22382657b690',\n trigger_id: 'ec10d66a-f78f-461f-83c9-609aada8cc50',\n tx_hash:\n '0x8cc0fa805f7c3b1743b14f3b91c6b824113b094f26d4ccaf6a71ad8547ce6a0f',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock Lido Withdrawal Requested notification\n * @returns Mock raw Lido Withdrawal Requested notification\n */\nexport function createMockNotificationLidoWithdrawalRequested(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.LIDO_WITHDRAWAL_REQUESTED,\n block_number: 18377760,\n block_timestamp: '1697638415',\n chain_id: 1,\n created_at: '2023-10-18T15:04:02.482526Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'lido_withdrawal_requested',\n stake_in: {\n usd: '1568.54',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/stETH.svg',\n amount: '97180668792218669859',\n symbol: 'STETH',\n address: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',\n decimals: '18',\n name: 'Staked Eth',\n },\n stake_out: {\n usd: '1576.73',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n amount: '97180668792218669859',\n symbol: 'ETH',\n address: '0x0000000000000000000000000000000000000000',\n decimals: '18',\n name: 'Ethereum',\n },\n network_fee: {\n gas_price: '11658906980',\n native_token_price_in_usd: '1576.73',\n },\n },\n id: '29ddc718-78c6-5f91-936f-2bef13a605f0',\n trigger_id: 'ef003925-3379-4ba7-9e2d-8218690cadc8',\n tx_hash:\n '0x58b5f82e084cb750ea174e02b20fbdfd2ba8d78053deac787f34fc38e5d427aa',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock Lido Withdrawal Completed notification\n * @returns Mock raw Lido Withdrawal Completed notification\n */\nexport function createMockNotificationLidoWithdrawalCompleted(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.LIDO_WITHDRAWAL_COMPLETED,\n block_number: 18378208,\n block_timestamp: '1697643851',\n chain_id: 1,\n created_at: '2023-10-18T16:35:03.147606Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'lido_withdrawal_completed',\n stake_in: {\n usd: '1570.23',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/stETH.svg',\n amount: '35081997661451346',\n symbol: 'STETH',\n address: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',\n decimals: '18',\n name: 'Staked Eth',\n },\n stake_out: {\n usd: '1571.74',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n amount: '35081997661451346',\n symbol: 'ETH',\n address: '0x0000000000000000000000000000000000000000',\n decimals: '18',\n name: 'Ethereum',\n },\n network_fee: {\n gas_price: '12699495150',\n native_token_price_in_usd: '1571.74',\n },\n },\n id: 'f4ef0b7f-5612-537f-9144-0b5c63ae5391',\n trigger_id: 'd73df14d-ce73-4f38-bad3-ab028154042c',\n tx_hash:\n '0xe6d210d2e601ef3dd1075c48e71452cf35f2daae3886911e964e3babad8ac657',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock Lido Withdrawal Ready notification\n * @returns Mock raw Lido Withdrawal Ready notification\n */\nexport function createMockNotificationLidoReadyToBeWithdrawn(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.LIDO_STAKE_READY_TO_BE_WITHDRAWN,\n block_number: 18378208,\n block_timestamp: '1697643851',\n chain_id: 1,\n created_at: '2023-10-18T16:35:03.147606Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'lido_stake_ready_to_be_withdrawn',\n request_id: '123456789',\n staked_eth: {\n address: '0x881D40237659C251811CEC9c364ef91dC08D300F',\n symbol: 'ETH',\n name: 'Ethereum',\n amount: '2.5',\n decimals: '18',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n usd: '10000.00',\n },\n },\n id: 'f4ef0b7f-5612-537f-9144-0b5c63ae5391',\n trigger_id: 'd73df14d-ce73-4f38-bad3-ab028154042c',\n tx_hash:\n '0xe6d210d2e601ef3dd1075c48e71452cf35f2daae3886911e964e3babad8ac657',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - creates an array of raw on-chain notifications\n * @returns Array of raw on-chain notifications\n */\nexport function createMockRawOnChainNotifications(): OnChainRawNotification[] {\n return [1, 2, 3].map((id) => {\n const notification = createMockNotificationEthSent();\n notification.id += `-${id}`;\n return notification;\n });\n}\n","import { FEATURE_ANNOUNCEMENT_API } from '../services/feature-announcements';\nimport {\n NOTIFICATION_API_LIST_ENDPOINT,\n NOTIFICATION_API_MARK_ALL_AS_READ_ENDPOINT,\n TRIGGER_API_BATCH_ENDPOINT,\n} from '../services/onchain-notifications';\nimport { createMockFeatureAnnouncementAPIResult } from './mock-feature-announcements';\nimport { createMockRawOnChainNotifications } from './mock-raw-notifications';\n\ntype MockResponse = {\n url: string;\n requestMethod: 'GET' | 'POST' | 'PUT' | 'DELETE';\n response: unknown;\n};\n\nexport const CONTENTFUL_RESPONSE = createMockFeatureAnnouncementAPIResult();\n\nexport const getMockFeatureAnnouncementResponse = () => {\n return {\n url: FEATURE_ANNOUNCEMENT_API,\n requestMethod: 'GET',\n response: CONTENTFUL_RESPONSE,\n } satisfies MockResponse;\n};\n\nexport const getMockBatchCreateTriggersResponse = () => {\n return {\n url: TRIGGER_API_BATCH_ENDPOINT,\n requestMethod: 'POST',\n response: null,\n } satisfies MockResponse;\n};\n\nexport const getMockBatchDeleteTriggersResponse = () => {\n return {\n url: TRIGGER_API_BATCH_ENDPOINT,\n requestMethod: 'DELETE',\n response: null,\n } satisfies MockResponse;\n};\n\nexport const MOCK_RAW_ON_CHAIN_NOTIFICATIONS =\n createMockRawOnChainNotifications();\n\nexport const getMockListNotificationsResponse = () => {\n return {\n url: NOTIFICATION_API_LIST_ENDPOINT,\n requestMethod: 'POST',\n response: MOCK_RAW_ON_CHAIN_NOTIFICATIONS,\n } satisfies MockResponse;\n};\n\nexport const getMockMarkNotificationsAsReadResponse = () => {\n return {\n url: NOTIFICATION_API_MARK_ALL_AS_READ_ENDPOINT,\n requestMethod: 'POST',\n response: null,\n } satisfies MockResponse;\n};\n"]}
@@ -25,9 +25,18 @@ var fetchFeatureAnnouncementNotifications = async (env) => {
25
25
  const rawNotifications = contentfulNotifications.map((n) => {
26
26
  const { fields } = n;
27
27
  const imageFields = fields.image ? findIncludedItem(fields.image.sys.id) : void 0;
28
+ const externalLinkFields = fields.externalLink ? findIncludedItem(
29
+ fields.externalLink.sys.id
30
+ ) : void 0;
31
+ const portfolioLinkFields = fields.portfolioLink ? findIncludedItem(
32
+ fields.portfolioLink.sys.id
33
+ ) : void 0;
28
34
  const extensionLinkFields = fields.extensionLink ? findIncludedItem(
29
35
  fields.extensionLink.sys.id
30
36
  ) : void 0;
37
+ const mobileLinkFields = fields.mobileLink ? findIncludedItem(
38
+ fields.mobileLink.sys.id
39
+ ) : void 0;
31
40
  const notification = {
32
41
  type: "features_announcement" /* FEATURES_ANNOUNCEMENT */,
33
42
  createdAt: new Date(n.sys.createdAt).toString(),
@@ -42,9 +51,21 @@ var fetchFeatureAnnouncementNotifications = async (env) => {
42
51
  description: imageFields?.description,
43
52
  url: imageFields?.file?.url ?? ""
44
53
  },
54
+ externalLink: externalLinkFields && {
55
+ externalLinkText: externalLinkFields?.externalLinkText,
56
+ externalLinkUrl: externalLinkFields?.externalLinkUrl
57
+ },
58
+ portfolioLink: portfolioLinkFields && {
59
+ portfolioLinkText: portfolioLinkFields?.portfolioLinkText,
60
+ portfolioLinkUrl: portfolioLinkFields?.portfolioLinkUrl
61
+ },
45
62
  extensionLink: extensionLinkFields && {
46
63
  extensionLinkText: extensionLinkFields?.extensionLinkText,
47
64
  extensionLinkRoute: extensionLinkFields?.extensionLinkRoute
65
+ },
66
+ mobileLink: mobileLinkFields && {
67
+ mobileLinkText: mobileLinkFields?.mobileLinkText,
68
+ mobileLinkUrl: mobileLinkFields?.mobileLinkUrl
48
69
  }
49
70
  }
50
71
  };
@@ -68,4 +89,4 @@ export {
68
89
  FEATURE_ANNOUNCEMENT_URL,
69
90
  getFeatureAnnouncementNotifications
70
91
  };
71
- //# sourceMappingURL=chunk-QFJZBLYQ.mjs.map
92
+ //# sourceMappingURL=chunk-C62SK2KY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/NotificationServicesController/services/feature-announcements.ts"],"sourcesContent":["import { documentToHtmlString } from '@contentful/rich-text-html-renderer';\nimport type { Entry, Asset, EntryCollection } from 'contentful';\n\nimport { TRIGGER_TYPES } from '../constants/notification-schema';\nimport { processFeatureAnnouncement } from '../processors/process-feature-announcement';\nimport type { FeatureAnnouncementRawNotification } from '../types/feature-announcement/feature-announcement';\nimport type {\n ImageFields,\n TypeFeatureAnnouncement,\n} from '../types/feature-announcement/type-feature-announcement';\nimport type {\n TypeExternalLinkFields,\n TypePortfolioLinkFields,\n TypeExtensionLinkFields,\n TypeMobileLinkFields,\n} from '../types/feature-announcement/type-links';\nimport type { INotification } from '../types/notification/notification';\n\nconst DEFAULT_SPACE_ID = ':space_id';\nconst DEFAULT_ACCESS_TOKEN = ':access_token';\nconst DEFAULT_CLIENT_ID = ':client_id';\nexport const FEATURE_ANNOUNCEMENT_API = `https://cdn.contentful.com/spaces/${DEFAULT_SPACE_ID}/environments/master/entries`;\nexport const FEATURE_ANNOUNCEMENT_URL = `${FEATURE_ANNOUNCEMENT_API}?access_token=${DEFAULT_ACCESS_TOKEN}&content_type=productAnnouncement&include=10&fields.clients=${DEFAULT_CLIENT_ID}`;\n\ntype Env = {\n spaceId: string;\n accessToken: string;\n platform: string;\n};\n\n/**\n * Contentful API Response Shape\n */\nexport type ContentfulResult = {\n includes?: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n Entry?: Entry[];\n // eslint-disable-next-line @typescript-eslint/naming-convention\n Asset?: Asset[];\n };\n items?: TypeFeatureAnnouncement[];\n};\n\nconst getFeatureAnnouncementUrl = (env: Env) =>\n FEATURE_ANNOUNCEMENT_URL.replace(DEFAULT_SPACE_ID, env.spaceId)\n .replace(DEFAULT_ACCESS_TOKEN, env.accessToken)\n .replace(DEFAULT_CLIENT_ID, env.platform);\n\nconst fetchFeatureAnnouncementNotifications = async (\n env: Env,\n): Promise<FeatureAnnouncementRawNotification[]> => {\n const url = getFeatureAnnouncementUrl(env);\n\n const data = await fetch(url)\n .then((r) => r.json())\n .catch(() => null);\n\n if (!data) {\n return [];\n }\n\n const findIncludedItem = (sysId: string) => {\n const typedData: EntryCollection<\n | ImageFields\n | TypeExtensionLinkFields\n | TypePortfolioLinkFields\n | TypeMobileLinkFields\n | TypeExternalLinkFields\n > = data;\n const item =\n typedData?.includes?.Entry?.find((i: Entry) => i?.sys?.id === sysId) ||\n typedData?.includes?.Asset?.find((i: Asset) => i?.sys?.id === sysId);\n return item ? item?.fields : null;\n };\n\n const contentfulNotifications = data?.items ?? [];\n const rawNotifications: FeatureAnnouncementRawNotification[] =\n contentfulNotifications.map((n: TypeFeatureAnnouncement) => {\n const { fields } = n;\n const imageFields = fields.image\n ? (findIncludedItem(fields.image.sys.id) as ImageFields['fields'])\n : undefined;\n\n const externalLinkFields = fields.externalLink\n ? (findIncludedItem(\n fields.externalLink.sys.id,\n ) as TypeExternalLinkFields['fields'])\n : undefined;\n const portfolioLinkFields = fields.portfolioLink\n ? (findIncludedItem(\n fields.portfolioLink.sys.id,\n ) as TypePortfolioLinkFields['fields'])\n : undefined;\n const extensionLinkFields = fields.extensionLink\n ? (findIncludedItem(\n fields.extensionLink.sys.id,\n ) as TypeExtensionLinkFields['fields'])\n : undefined;\n const mobileLinkFields = fields.mobileLink\n ? (findIncludedItem(\n fields.mobileLink.sys.id,\n ) as TypeMobileLinkFields['fields'])\n : undefined;\n\n const notification: FeatureAnnouncementRawNotification = {\n type: TRIGGER_TYPES.FEATURES_ANNOUNCEMENT,\n createdAt: new Date(n.sys.createdAt).toString(),\n data: {\n id: fields.id,\n category: fields.category,\n title: fields.title,\n longDescription: documentToHtmlString(fields.longDescription),\n shortDescription: fields.shortDescription,\n image: {\n title: imageFields?.title,\n description: imageFields?.description,\n url: imageFields?.file?.url ?? '',\n },\n externalLink: externalLinkFields && {\n externalLinkText: externalLinkFields?.externalLinkText,\n externalLinkUrl: externalLinkFields?.externalLinkUrl,\n },\n portfolioLink: portfolioLinkFields && {\n portfolioLinkText: portfolioLinkFields?.portfolioLinkText,\n portfolioLinkUrl: portfolioLinkFields?.portfolioLinkUrl,\n },\n extensionLink: extensionLinkFields && {\n extensionLinkText: extensionLinkFields?.extensionLinkText,\n extensionLinkRoute: extensionLinkFields?.extensionLinkRoute,\n },\n mobileLink: mobileLinkFields && {\n mobileLinkText: mobileLinkFields?.mobileLinkText,\n mobileLinkUrl: mobileLinkFields?.mobileLinkUrl,\n },\n },\n };\n\n return notification;\n });\n\n return rawNotifications;\n};\n\n/**\n * Gets Feature Announcement from our services\n * @param env - environment for feature announcements\n * @returns Raw Feature Announcements\n */\nexport async function getFeatureAnnouncementNotifications(\n env: Env,\n): Promise<INotification[]> {\n if (env?.accessToken && env?.spaceId && env?.platform) {\n const rawNotifications = await fetchFeatureAnnouncementNotifications(env);\n const notifications = rawNotifications.map((notification) =>\n processFeatureAnnouncement(notification),\n );\n\n return notifications;\n }\n\n return [];\n}\n"],"mappings":"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","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-KCWTVLMK.mjs";
4
4
  import {
5
5
  getFeatureAnnouncementNotifications
6
- } from "./chunk-QFJZBLYQ.mjs";
6
+ } from "./chunk-C62SK2KY.mjs";
7
7
  import {
8
8
  createOnChainTriggers,
9
9
  deleteOnChainTriggers,
@@ -876,4 +876,4 @@ export {
876
876
  defaultState,
877
877
  NotificationServicesController
878
878
  };
879
- //# sourceMappingURL=chunk-AYAVYLQD.mjs.map
879
+ //# sourceMappingURL=chunk-DFDFJ4DX.mjs.map
@@ -13,10 +13,21 @@ import {
13
13
  import {
14
14
  NotificationServicesController,
15
15
  defaultState
16
- } from "./chunk-AYAVYLQD.mjs";
16
+ } from "./chunk-DFDFJ4DX.mjs";
17
+ import {
18
+ processNotification,
19
+ safeProcessNotification
20
+ } from "./chunk-KCWTVLMK.mjs";
21
+ import {
22
+ processOnChainNotification
23
+ } from "./chunk-BONB66A2.mjs";
17
24
  import {
18
25
  FEATURE_ANNOUNCEMENT_API
19
- } from "./chunk-QFJZBLYQ.mjs";
26
+ } from "./chunk-C62SK2KY.mjs";
27
+ import {
28
+ isFeatureAnnouncementRead,
29
+ processFeatureAnnouncement
30
+ } from "./chunk-D42BBXBM.mjs";
20
31
  import {
21
32
  NOTIFICATION_API_LIST_ENDPOINT,
22
33
  NOTIFICATION_API_MARK_ALL_AS_READ_ENDPOINT,
@@ -26,6 +37,17 @@ import {
26
37
  initializeUserStorage
27
38
  } from "./chunk-ILPTPB4U.mjs";
28
39
  import {
40
+ CHAIN_SYMBOLS,
41
+ NOTIFICATION_CHAINS,
42
+ NOTIFICATION_CHAINS_ID,
43
+ SUPPORTED_CHAINS,
44
+ TRIGGERS,
45
+ TRIGGER_TYPES,
46
+ TRIGGER_TYPES_GROUPS,
47
+ TRIGGER_TYPES_WALLET_SET
48
+ } from "./chunk-J4D2NH6Y.mjs";
49
+ import {
50
+ USER_STORAGE_VERSION,
29
51
  USER_STORAGE_VERSION_KEY
30
52
  } from "./chunk-6ZDVTRRT.mjs";
31
53
  import {
@@ -35,14 +57,29 @@ import {
35
57
  // src/NotificationServicesController/index.ts
36
58
  var NotificationServicesController_exports = {};
37
59
  __export(NotificationServicesController_exports, {
60
+ CHAIN_SYMBOLS: () => CHAIN_SYMBOLS,
38
61
  Constants: () => constants_exports,
39
62
  Controller: () => NotificationServicesController,
40
63
  Mocks: () => fixtures_exports,
64
+ NOTIFICATION_CHAINS: () => NOTIFICATION_CHAINS,
65
+ NOTIFICATION_CHAINS_ID: () => NOTIFICATION_CHAINS_ID,
41
66
  Processors: () => processors_exports,
67
+ SUPPORTED_CHAINS: () => SUPPORTED_CHAINS,
68
+ TRIGGERS: () => TRIGGERS,
69
+ TRIGGER_TYPES: () => TRIGGER_TYPES,
70
+ TRIGGER_TYPES_GROUPS: () => TRIGGER_TYPES_GROUPS,
71
+ TRIGGER_TYPES_WALLET_SET: () => TRIGGER_TYPES_WALLET_SET,
42
72
  Types: () => types_exports,
43
73
  UI: () => ui_exports,
74
+ USER_STORAGE_VERSION: () => USER_STORAGE_VERSION,
75
+ USER_STORAGE_VERSION_KEY: () => USER_STORAGE_VERSION_KEY,
44
76
  default: () => NotificationServicesController_default,
45
- defaultState: () => defaultState
77
+ defaultState: () => defaultState,
78
+ isFeatureAnnouncementRead: () => isFeatureAnnouncementRead,
79
+ processFeatureAnnouncement: () => processFeatureAnnouncement,
80
+ processNotification: () => processNotification,
81
+ processOnChainNotification: () => processOnChainNotification,
82
+ safeProcessNotification: () => safeProcessNotification
46
83
  });
47
84
 
48
85
  // src/NotificationServicesController/__fixtures__/index.ts
@@ -932,4 +969,4 @@ export {
932
969
  NotificationServicesController_default,
933
970
  NotificationServicesController_exports
934
971
  };
935
- //# sourceMappingURL=chunk-56OOTY2L.mjs.map
972
+ //# sourceMappingURL=chunk-GNN2XQW4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/NotificationServicesController/index.ts","../src/NotificationServicesController/__fixtures__/index.ts","../src/NotificationServicesController/__fixtures__/mock-feature-announcements.ts","../src/NotificationServicesController/__fixtures__/mock-notification-trigger.ts","../src/NotificationServicesController/__fixtures__/mock-notification-user-storage.ts","../src/NotificationServicesController/__fixtures__/mock-raw-notifications.ts","../src/NotificationServicesController/__fixtures__/mockResponses.ts"],"sourcesContent":["import Controller from './NotificationServicesController';\n\nconst NotificationServicesController = Controller;\nexport { Controller };\nexport default NotificationServicesController;\nexport * from './NotificationServicesController';\nexport * as Types from './types';\nexport * from './types';\nexport * as Processors from './processors';\nexport * from './processors';\nexport * as Constants from './constants';\nexport * from './constants';\nexport * as Mocks from './__fixtures__';\nexport * as UI from './ui';\n","export * from './mock-feature-announcements';\nexport * from './mock-notification-trigger';\nexport * from './mock-notification-user-storage';\nexport * from './mock-raw-notifications';\nexport * from './mockResponses';\n","import { TRIGGER_TYPES } from '../constants/notification-schema';\nimport type { ContentfulResult } from '../services/feature-announcements';\nimport type { FeatureAnnouncementRawNotification } from '../types/feature-announcement/feature-announcement';\n\n/**\n * Mocking Utility - create a mock normalized feature announcement\n *\n * @returns Mock Normalized Feature Announcement\n */\nexport function createMockFeatureAnnouncementAPIResult(): ContentfulResult {\n return {\n sys: {\n type: 'Array',\n },\n total: 17,\n skip: 0,\n limit: 1,\n items: [\n {\n metadata: {\n tags: [],\n },\n sys: {\n space: {\n sys: {\n type: 'Link',\n linkType: 'Space',\n id: 'jdkgyfmyd9sw',\n },\n },\n id: '1ABRmHaNCgmxROKXXLXsMu',\n type: 'Entry',\n createdAt: '2024-04-09T13:24:01.872Z',\n updatedAt: '2024-04-09T13:24:01.872Z',\n environment: {\n sys: {\n id: 'master',\n type: 'Link',\n linkType: 'Environment',\n },\n },\n revision: 1,\n contentType: {\n sys: {\n type: 'Link',\n linkType: 'ContentType',\n id: 'productAnnouncement',\n },\n },\n locale: 'en-US',\n },\n fields: {\n title: 'Don’t miss out on airdrops and new NFT mints!',\n id: 'dont-miss-out-on-airdrops-and-new-nft-mints',\n category: 'ANNOUNCEMENT',\n shortDescription:\n 'Check your airdrop eligibility and see trending NFT drops. Head over to the Explore tab to get started. ',\n image: {\n sys: {\n type: 'Link',\n linkType: 'Asset',\n id: '5jqq8sFeLc6XEoeWlpI3aB',\n },\n },\n longDescription: {\n data: {},\n content: [\n {\n data: {},\n content: [\n {\n data: {},\n marks: [],\n value:\n 'You can now verify if any of your connected addresses are eligible for airdrops and other ERC-20 claims in a secure and convenient way. We’ve also added trending NFT mints based on creators you’ve minted from before or other tokens you hold. Head over to the Explore tab to get started. \\n',\n nodeType: 'text',\n },\n ],\n nodeType: 'paragraph',\n },\n ],\n nodeType: 'document',\n },\n link: {\n sys: {\n type: 'Link',\n linkType: 'Entry',\n id: '62xKYM2ydo4F1mS5q97K5q',\n },\n },\n },\n },\n ],\n includes: {\n Entry: [\n {\n metadata: {\n tags: [],\n },\n sys: {\n space: {\n sys: {\n type: 'Link',\n linkType: 'Space',\n id: 'jdkgyfmyd9sw',\n },\n },\n id: '62xKYM2ydo4F1mS5q97K5q',\n type: 'Entry',\n createdAt: '2024-04-09T13:23:03.636Z',\n updatedAt: '2024-04-09T13:23:03.636Z',\n environment: {\n sys: {\n id: 'master',\n type: 'Link',\n linkType: 'Environment',\n },\n },\n revision: 1,\n contentType: {\n sys: {\n type: 'Link',\n linkType: 'ContentType',\n id: 'link',\n },\n },\n locale: 'en-US',\n },\n fields: {\n extensionLinkText: 'Try now',\n extensionLinkRoute: 'home.html',\n },\n },\n ],\n Asset: [\n {\n metadata: {\n tags: [],\n },\n sys: {\n space: {\n sys: {\n type: 'Link',\n linkType: 'Space',\n id: 'jdkgyfmyd9sw',\n },\n },\n id: '5jqq8sFeLc6XEoeWlpI3aB',\n type: 'Asset',\n createdAt: '2024-04-09T13:23:13.327Z',\n updatedAt: '2024-04-09T13:23:13.327Z',\n environment: {\n sys: {\n id: 'master',\n type: 'Link',\n linkType: 'Environment',\n },\n },\n revision: 1,\n locale: 'en-US',\n },\n fields: {\n title: 'PDAPP notification image Airdrops & NFT mints',\n description: '',\n file: {\n url: '//images.ctfassets.net/jdkgyfmyd9sw/5jqq8sFeLc6XEoeWlpI3aB/73ee0f1afa9916c3a7538b0bbee09c26/PDAPP_notification_image_Airdrops___NFT_mints.png',\n details: {\n size: 797731,\n image: {\n width: 2880,\n height: 1921,\n },\n },\n fileName: 'PDAPP notification image_Airdrops & NFT mints.png',\n contentType: 'image/png',\n },\n },\n },\n ],\n },\n } as unknown as ContentfulResult;\n}\n\n/**\n * Mocking Utility - create a mock raw feature announcement\n *\n * @returns Mock Raw Feature Announcement\n */\nexport function createMockFeatureAnnouncementRaw(): FeatureAnnouncementRawNotification {\n return {\n type: TRIGGER_TYPES.FEATURES_ANNOUNCEMENT,\n createdAt: '2999-04-09T13:24:01.872Z',\n data: {\n id: 'dont-miss-out-on-airdrops-and-new-nft-mints',\n category: 'ANNOUNCEMENT',\n title: 'Don’t miss out on airdrops and new NFT mints!',\n longDescription: `<p>You can now verify if any of your connected addresses are eligible for airdrops and other ERC-20 claims in a secure and convenient way. We’ve also added trending NFT mints based on creators you’ve minted from before or other tokens you hold. Head over to the Explore tab to get started.</p>`,\n shortDescription:\n 'Check your airdrop eligibility and see trending NFT drops. Head over to the Explore tab to get started.',\n image: {\n title: 'PDAPP notification image Airdrops & NFT mints',\n description: '',\n url: '//images.ctfassets.net/jdkgyfmyd9sw/5jqq8sFeLc6XEoeWlpI3aB/73ee0f1afa9916c3a7538b0bbee09c26/PDAPP_notification_image_Airdrops___NFT_mints.png',\n },\n extensionLink: {\n extensionLinkText: 'Try now',\n extensionLinkRoute: 'home.html',\n },\n },\n };\n}\n","import { v4 as uuidv4 } from 'uuid';\n\nimport type { NotificationTrigger } from '../utils/utils';\n\n/**\n * Mocking Utility - create a mock Notification Trigger\n *\n * @param override - provide any override configuration for the mock\n * @returns a mock Notification Trigger\n */\nexport function createMockNotificationTrigger(\n override?: Partial<NotificationTrigger>,\n): NotificationTrigger {\n return {\n id: uuidv4(),\n address: '0xFAKE_ADDRESS',\n chainId: '1',\n kind: 'eth_sent',\n enabled: true,\n ...override,\n };\n}\n","import { USER_STORAGE_VERSION_KEY } from '../constants/constants';\nimport { TRIGGER_TYPES } from '../constants/notification-schema';\nimport type { UserStorage } from '../types/user-storage/user-storage';\nimport { initializeUserStorage } from '../utils/utils';\n\nexport const MOCK_USER_STORAGE_ACCOUNT =\n '0x0000000000000000000000000000000000000000';\nexport const MOCK_USER_STORAGE_CHAIN = '1';\n\n/**\n * Mocking Utility - create a mock notification user storage object\n *\n * @param override - provide any override configuration for the mock\n * @returns a mock notification user storage object\n */\nexport function createMockUserStorage(\n override?: Partial<UserStorage>,\n): UserStorage {\n return {\n [USER_STORAGE_VERSION_KEY]: '1',\n [MOCK_USER_STORAGE_ACCOUNT]: {\n [MOCK_USER_STORAGE_CHAIN]: {\n '111-111-111-111': {\n k: TRIGGER_TYPES.ERC20_RECEIVED,\n e: true,\n },\n '222-222-222-222': {\n k: TRIGGER_TYPES.ERC20_SENT,\n e: true,\n },\n },\n },\n ...override,\n };\n}\n\n/**\n * Mocking Utility - create a mock notification user storage object with triggers\n *\n * @param triggers - provide any override configuration for the mock\n * @returns a mock notification user storage object with triggers\n */\nexport function createMockUserStorageWithTriggers(\n triggers: string[] | { id: string; e: boolean; k?: TRIGGER_TYPES }[],\n): UserStorage {\n const userStorage: UserStorage = {\n [USER_STORAGE_VERSION_KEY]: '1',\n [MOCK_USER_STORAGE_ACCOUNT]: {\n [MOCK_USER_STORAGE_CHAIN]: {},\n },\n };\n\n // insert triggerIds\n triggers.forEach((t) => {\n let tId: string;\n let e: boolean;\n let k: TRIGGER_TYPES;\n if (typeof t === 'string') {\n tId = t;\n e = true;\n k = TRIGGER_TYPES.ERC20_RECEIVED;\n } else {\n tId = t.id;\n e = t.e;\n k = t.k ?? TRIGGER_TYPES.ERC20_RECEIVED;\n }\n\n userStorage[MOCK_USER_STORAGE_ACCOUNT][MOCK_USER_STORAGE_CHAIN][tId] = {\n k,\n e,\n };\n });\n\n return userStorage;\n}\n\n/**\n * Mocking Utility - create a mock notification user storage object (full/realistic object)\n *\n * @param props - provide any override configuration for the mock\n * @param props.triggersEnabled - choose if all triggers created are enabled/disabled\n * @param props.address - choose a specific address for triggers to be assigned to\n * @returns a mock full notification user storage object\n */\nexport function createMockFullUserStorage(\n props: { triggersEnabled?: boolean; address?: string } = {},\n): UserStorage {\n return initializeUserStorage(\n [{ address: props.address ?? MOCK_USER_STORAGE_ACCOUNT }],\n props.triggersEnabled ?? true,\n );\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { TRIGGER_TYPES } from '../constants/notification-schema';\nimport type { OnChainRawNotification } from '../types/on-chain-notification/on-chain-notification';\n\n/**\n * Mocking Utility - create a mock Eth sent notification\n * @returns Mock raw Eth sent notification\n */\nexport function createMockNotificationEthSent(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ETH_SENT,\n id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n trigger_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n chain_id: 1,\n block_number: 17485840,\n block_timestamp: '2022-03-01T00:00:00Z',\n tx_hash:\n '0xb2256b183f2fb3872f99294ab55fb03e6a479b0d4aca556a3b27568b712505a6',\n unread: true,\n created_at: '2022-03-01T00:00:00Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'eth_sent',\n network_fee: {\n gas_price: '207806259583',\n native_token_price_in_usd: '0.83',\n },\n from: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n to: '0x881D40237659C251811CEC9c364ef91dC08D300D',\n amount: {\n usd: '670.64',\n eth: '0.005',\n },\n },\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock Eth Received notification\n * @returns Mock raw Eth Received notification\n */\nexport function createMockNotificationEthReceived(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ETH_RECEIVED,\n id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n trigger_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n chain_id: 1,\n block_number: 17485840,\n block_timestamp: '2022-03-01T00:00:00Z',\n tx_hash:\n '0xb2256b183f2fb3872f99294ab55fb03e6a479b0d4aca556a3b27568b712505a6',\n unread: true,\n created_at: '2022-03-01T00:00:00Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'eth_received',\n network_fee: {\n gas_price: '207806259583',\n native_token_price_in_usd: '0.83',\n },\n from: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n to: '0x881D40237659C251811CEC9c364ef91dC08D300D',\n amount: {\n usd: '670.64',\n eth: '808.000000000000000000',\n },\n },\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock ERC20 sent notification\n * @returns Mock raw ERC20 sent notification\n */\nexport function createMockNotificationERC20Sent(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ERC20_SENT,\n id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n trigger_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n chain_id: 1,\n block_number: 17485840,\n block_timestamp: '2022-03-01T00:00:00Z',\n tx_hash:\n '0xb2256b183f2fb3872f99294ab55fb03e6a479b0d4aca556a3b27568b712505a6',\n unread: true,\n created_at: '2022-03-01T00:00:00Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'erc20_sent',\n network_fee: {\n gas_price: '207806259583',\n native_token_price_in_usd: '0.83',\n },\n to: '0xecc19e177d24551aa7ed6bc6fe566eca726cc8a9',\n from: '0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae',\n token: {\n usd: '1.00',\n name: 'USDC',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/usdc.svg',\n amount: '4956250000',\n symbol: 'USDC',\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n decimals: '6',\n },\n },\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock ERC20 received notification\n * @returns Mock raw ERC20 received notification\n */\nexport function createMockNotificationERC20Received(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ERC20_RECEIVED,\n id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n trigger_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',\n chain_id: 1,\n block_number: 17485840,\n block_timestamp: '2022-03-01T00:00:00Z',\n tx_hash:\n '0xb2256b183f2fb3872f99294ab55fb03e6a479b0d4aca556a3b27568b712505a6',\n unread: true,\n created_at: '2022-03-01T00:00:00Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'erc20_received',\n network_fee: {\n gas_price: '207806259583',\n native_token_price_in_usd: '0.83',\n },\n to: '0xeae7380dd4cef6fbd1144f49e4d1e6964258a4f4',\n from: '0x51c72848c68a965f66fa7a88855f9f7784502a7f',\n token: {\n usd: '0.00',\n name: 'SHIBA INU',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/shib.svg',\n amount: '8382798736999999457296646144',\n symbol: 'SHIB',\n address: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce',\n decimals: '18',\n },\n },\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock ERC721 sent notification\n * @returns Mock raw ERC721 sent notification\n */\nexport function createMockNotificationERC721Sent(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ERC721_SENT,\n block_number: 18576643,\n block_timestamp: '1700043467',\n chain_id: 1,\n created_at: '2023-11-15T11:08:17.895407Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n to: '0xf47f628fe3bd2595e9ab384bfffc3859b448e451',\n nft: {\n name: 'Captainz #8680',\n image:\n 'https://i.seadn.io/s/raw/files/ae0fc06714ff7fb40217340d8a242c0e.gif?w=500&auto=format',\n token_id: '8680',\n collection: {\n name: 'The Captainz',\n image:\n 'https://i.seadn.io/gcs/files/6df4d75778066bce740050615bc84e21.png?w=500&auto=format',\n symbol: 'Captainz',\n address: '0x769272677fab02575e84945f03eca517acc544cc',\n },\n },\n from: '0x24a0bb54b7e7a8e406e9b28058a9fd6c49e6df4f',\n kind: 'erc721_sent',\n network_fee: {\n gas_price: '24550653274',\n native_token_price_in_usd: '1986.61',\n },\n },\n id: 'a4193058-9814-537e-9df4-79dcac727fb6',\n trigger_id: '028485be-b994-422b-a93b-03fcc01ab715',\n tx_hash:\n '0x0833c69fb41cf972a0f031fceca242939bc3fcf82b964b74606649abcad371bd',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock ERC721 received notification\n * @returns Mock raw ERC721 received notification\n */\nexport function createMockNotificationERC721Received(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ERC721_RECEIVED,\n block_number: 18571446,\n block_timestamp: '1699980623',\n chain_id: 1,\n created_at: '2023-11-14T17:40:52.319281Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n to: '0xba7f3daa8adfdad686574406ab9bd5d2f0a49d2e',\n nft: {\n name: 'The Plague #2722',\n image:\n 'https://i.seadn.io/s/raw/files/a96f90ec8ebf55a2300c66a0c46d6a16.png?w=500&auto=format',\n token_id: '2722',\n collection: {\n name: 'The Plague NFT',\n image:\n 'https://i.seadn.io/gcs/files/4577987a5ca45ca5118b2e31559ee4d1.jpg?w=500&auto=format',\n symbol: 'FROG',\n address: '0xc379e535caff250a01caa6c3724ed1359fe5c29b',\n },\n },\n from: '0x24a0bb54b7e7a8e406e9b28058a9fd6c49e6df4f',\n kind: 'erc721_received',\n network_fee: {\n gas_price: '53701898538',\n native_token_price_in_usd: '2047.01',\n },\n },\n id: '00a79d24-befa-57ed-a55a-9eb8696e1654',\n trigger_id: 'd24ac26a-8579-49ec-9947-d04d63592ebd',\n tx_hash:\n '0xe554c9e29e6eeca8ba94da4d047334ba08b8eb9ca3b801dd69cec08dfdd4ae43',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock ERC1155 sent notification\n * @returns Mock raw ERC1155 sent notification\n */\nexport function createMockNotificationERC1155Sent(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ERC1155_SENT,\n block_number: 18615206,\n block_timestamp: '1700510003',\n chain_id: 1,\n created_at: '2023-11-20T20:44:10.110706Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n to: '0x15bd77ccacf2da39b84f0c31fee2e451225bb190',\n nft: {\n name: 'IlluminatiNFT DAO',\n image:\n 'https://i.seadn.io/gcs/files/79a77cb37c7b2f1069f752645d29fea7.jpg?w=500&auto=format',\n token_id: '1',\n collection: {\n name: 'IlluminatiNFT DAO',\n image:\n 'https://i.seadn.io/gae/LTKz3om2eCQfn3M6PkqEmY7KhLtdMCOm0QVch2318KJq7-KyToCH7NBTMo4UuJ0AZI-oaBh1HcgrAEIEWYbXY3uMcYpuGXunaXEh?w=500&auto=format',\n symbol: 'TRUTH',\n address: '0xe25f0fe686477f9df3c2876c4902d3b85f75f33a',\n },\n },\n from: '0x0000000000000000000000000000000000000000',\n kind: 'erc1155_sent',\n network_fee: {\n gas_price: '33571446596',\n native_token_price_in_usd: '2038.88',\n },\n },\n id: 'a09ff9d1-623a-52ab-a3d4-c7c8c9a58362',\n trigger_id: 'e2130f7d-78b8-4c34-999a-3f3d3bb5b03c',\n tx_hash:\n '0x03381aba290facbaf71c123e263c8dc3dd550aac00ef589cce395182eaeff76f',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock ERC1155 received notification\n * @returns Mock raw ERC1155 received notification\n */\nexport function createMockNotificationERC1155Received(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ERC1155_RECEIVED,\n block_number: 18615206,\n block_timestamp: '1700510003',\n chain_id: 1,\n created_at: '2023-11-20T20:44:10.110706Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n to: '0x15bd77ccacf2da39b84f0c31fee2e451225bb190',\n nft: {\n name: 'IlluminatiNFT DAO',\n image:\n 'https://i.seadn.io/gcs/files/79a77cb37c7b2f1069f752645d29fea7.jpg?w=500&auto=format',\n token_id: '1',\n collection: {\n name: 'IlluminatiNFT DAO',\n image:\n 'https://i.seadn.io/gae/LTKz3om2eCQfn3M6PkqEmY7KhLtdMCOm0QVch2318KJq7-KyToCH7NBTMo4UuJ0AZI-oaBh1HcgrAEIEWYbXY3uMcYpuGXunaXEh?w=500&auto=format',\n symbol: 'TRUTH',\n address: '0xe25f0fe686477f9df3c2876c4902d3b85f75f33a',\n },\n },\n from: '0x0000000000000000000000000000000000000000',\n kind: 'erc1155_received',\n network_fee: {\n gas_price: '33571446596',\n native_token_price_in_usd: '2038.88',\n },\n },\n id: 'b6b93c84-e8dc-54ed-9396-7ea50474843a',\n trigger_id: '710c8abb-43a9-42a5-9d86-9dd258726c82',\n tx_hash:\n '0x03381aba290facbaf71c123e263c8dc3dd550aac00ef589cce395182eaeff76f',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock MetaMask Swaps notification\n * @returns Mock raw MetaMask Swaps notification\n */\nexport function createMockNotificationMetaMaskSwapsCompleted(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.METAMASK_SWAP_COMPLETED,\n block_number: 18377666,\n block_timestamp: '1697637275',\n chain_id: 1,\n created_at: '2023-10-18T13:58:49.854596Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'metamask_swap_completed',\n rate: '1558.27',\n token_in: {\n usd: '1576.73',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n amount: '9000000000000000',\n symbol: 'ETH',\n address: '0x0000000000000000000000000000000000000000',\n decimals: '18',\n name: 'Ethereum',\n },\n token_out: {\n usd: '1.00',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/usdt.svg',\n amount: '14024419',\n symbol: 'USDT',\n address: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n decimals: '6',\n name: 'USDT',\n },\n network_fee: {\n gas_price: '15406129273',\n native_token_price_in_usd: '1576.73',\n },\n },\n id: '7ddfe6a1-ac52-5ffe-aa40-f04242db4b8b',\n trigger_id: 'd2eaa2eb-2e6e-4fd5-8763-b70ea571b46c',\n tx_hash:\n '0xf69074290f3aa11bce567aabc9ca0df7a12559dfae1b80ba1a124e9dfe19ecc5',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock RocketPool Stake Completed notification\n * @returns Mock raw RocketPool Stake Completed notification\n */\nexport function createMockNotificationRocketPoolStakeCompleted(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ROCKETPOOL_STAKE_COMPLETED,\n block_number: 18585057,\n block_timestamp: '1700145059',\n chain_id: 1,\n created_at: '2023-11-20T12:02:48.796824Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'rocketpool_stake_completed',\n stake_in: {\n usd: '2031.86',\n name: 'Ethereum',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n amount: '190690478063438272',\n symbol: 'ETH',\n address: '0x0000000000000000000000000000000000000000',\n decimals: '18',\n },\n stake_out: {\n usd: '2226.49',\n name: 'Rocket Pool ETH',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/rETH.svg',\n amount: '175024360778165879',\n symbol: 'RETH',\n address: '0xae78736Cd615f374D3085123A210448E74Fc6393',\n decimals: '18',\n },\n network_fee: {\n gas_price: '36000000000',\n native_token_price_in_usd: '2031.86',\n },\n },\n id: 'c2a2f225-b2fb-5d6c-ba56-e27a5c71ffb9',\n trigger_id: '5110ff97-acff-40c0-83b4-11d487b8c7b0',\n tx_hash:\n '0xcfc0693bf47995907b0f46ef0644cf16dd9a0de797099b2e00fd481e1b2117d3',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock RocketPool Un-staked notification\n * @returns Mock raw RocketPool Un-staked notification\n */\nexport function createMockNotificationRocketPoolUnStakeCompleted(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.ROCKETPOOL_UNSTAKE_COMPLETED,\n block_number: 18384336,\n block_timestamp: '1697718011',\n chain_id: 1,\n created_at: '2023-10-19T13:11:10.623042Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'rocketpool_unstake_completed',\n stake_in: {\n usd: '1686.34',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/rETH.svg',\n amount: '66608041413696770',\n symbol: 'RETH',\n address: '0xae78736Cd615f374D3085123A210448E74Fc6393',\n decimals: '18',\n name: 'Rocketpool Eth',\n },\n stake_out: {\n usd: '1553.75',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n amount: '72387843427700824',\n symbol: 'ETH',\n address: '0x0000000000000000000000000000000000000000',\n decimals: '18',\n name: 'Ethereum',\n },\n network_fee: {\n gas_price: '5656322987',\n native_token_price_in_usd: '1553.75',\n },\n },\n id: 'd8c246e7-a0a4-5f1d-b079-2b1707665fbc',\n trigger_id: '291ec897-f569-4837-b6c0-21001b198dff',\n tx_hash:\n '0xc7972a7e409abfc62590ec90e633acd70b9b74e76ad02305be8bf133a0e22d5f',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock Lido Stake Completed notification\n * @returns Mock raw Lido Stake Completed notification\n */\nexport function createMockNotificationLidoStakeCompleted(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.LIDO_STAKE_COMPLETED,\n block_number: 18487118,\n block_timestamp: '1698961091',\n chain_id: 1,\n created_at: '2023-11-02T22:28:49.970865Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'lido_stake_completed',\n stake_in: {\n usd: '1806.33',\n name: 'Ethereum',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n amount: '330303634023928032',\n symbol: 'ETH',\n address: '0x0000000000000000000000000000000000000000',\n decimals: '18',\n },\n stake_out: {\n usd: '1801.30',\n name: 'Liquid staked Ether 2.0',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/stETH.svg',\n amount: '330303634023928032',\n symbol: 'STETH',\n address: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',\n decimals: '18',\n },\n network_fee: {\n gas_price: '26536359866',\n native_token_price_in_usd: '1806.33',\n },\n },\n id: '9d9b1467-b3ee-5492-8ca2-22382657b690',\n trigger_id: 'ec10d66a-f78f-461f-83c9-609aada8cc50',\n tx_hash:\n '0x8cc0fa805f7c3b1743b14f3b91c6b824113b094f26d4ccaf6a71ad8547ce6a0f',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock Lido Withdrawal Requested notification\n * @returns Mock raw Lido Withdrawal Requested notification\n */\nexport function createMockNotificationLidoWithdrawalRequested(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.LIDO_WITHDRAWAL_REQUESTED,\n block_number: 18377760,\n block_timestamp: '1697638415',\n chain_id: 1,\n created_at: '2023-10-18T15:04:02.482526Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'lido_withdrawal_requested',\n stake_in: {\n usd: '1568.54',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/stETH.svg',\n amount: '97180668792218669859',\n symbol: 'STETH',\n address: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',\n decimals: '18',\n name: 'Staked Eth',\n },\n stake_out: {\n usd: '1576.73',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n amount: '97180668792218669859',\n symbol: 'ETH',\n address: '0x0000000000000000000000000000000000000000',\n decimals: '18',\n name: 'Ethereum',\n },\n network_fee: {\n gas_price: '11658906980',\n native_token_price_in_usd: '1576.73',\n },\n },\n id: '29ddc718-78c6-5f91-936f-2bef13a605f0',\n trigger_id: 'ef003925-3379-4ba7-9e2d-8218690cadc8',\n tx_hash:\n '0x58b5f82e084cb750ea174e02b20fbdfd2ba8d78053deac787f34fc38e5d427aa',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock Lido Withdrawal Completed notification\n * @returns Mock raw Lido Withdrawal Completed notification\n */\nexport function createMockNotificationLidoWithdrawalCompleted(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.LIDO_WITHDRAWAL_COMPLETED,\n block_number: 18378208,\n block_timestamp: '1697643851',\n chain_id: 1,\n created_at: '2023-10-18T16:35:03.147606Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'lido_withdrawal_completed',\n stake_in: {\n usd: '1570.23',\n image:\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/images/stETH.svg',\n amount: '35081997661451346',\n symbol: 'STETH',\n address: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',\n decimals: '18',\n name: 'Staked Eth',\n },\n stake_out: {\n usd: '1571.74',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n amount: '35081997661451346',\n symbol: 'ETH',\n address: '0x0000000000000000000000000000000000000000',\n decimals: '18',\n name: 'Ethereum',\n },\n network_fee: {\n gas_price: '12699495150',\n native_token_price_in_usd: '1571.74',\n },\n },\n id: 'f4ef0b7f-5612-537f-9144-0b5c63ae5391',\n trigger_id: 'd73df14d-ce73-4f38-bad3-ab028154042c',\n tx_hash:\n '0xe6d210d2e601ef3dd1075c48e71452cf35f2daae3886911e964e3babad8ac657',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - create a mock Lido Withdrawal Ready notification\n * @returns Mock raw Lido Withdrawal Ready notification\n */\nexport function createMockNotificationLidoReadyToBeWithdrawn(): OnChainRawNotification {\n const mockNotification: OnChainRawNotification = {\n type: TRIGGER_TYPES.LIDO_STAKE_READY_TO_BE_WITHDRAWN,\n block_number: 18378208,\n block_timestamp: '1697643851',\n chain_id: 1,\n created_at: '2023-10-18T16:35:03.147606Z',\n address: '0x881D40237659C251811CEC9c364ef91dC08D300C',\n data: {\n kind: 'lido_stake_ready_to_be_withdrawn',\n request_id: '123456789',\n staked_eth: {\n address: '0x881D40237659C251811CEC9c364ef91dC08D300F',\n symbol: 'ETH',\n name: 'Ethereum',\n amount: '2.5',\n decimals: '18',\n image:\n 'https://token.api.cx.metamask.io/assets/nativeCurrencyLogos/ethereum.svg',\n usd: '10000.00',\n },\n },\n id: 'f4ef0b7f-5612-537f-9144-0b5c63ae5391',\n trigger_id: 'd73df14d-ce73-4f38-bad3-ab028154042c',\n tx_hash:\n '0xe6d210d2e601ef3dd1075c48e71452cf35f2daae3886911e964e3babad8ac657',\n unread: true,\n };\n\n return mockNotification;\n}\n\n/**\n * Mocking Utility - creates an array of raw on-chain notifications\n * @returns Array of raw on-chain notifications\n */\nexport function createMockRawOnChainNotifications(): OnChainRawNotification[] {\n return [1, 2, 3].map((id) => {\n const notification = createMockNotificationEthSent();\n notification.id += `-${id}`;\n return notification;\n });\n}\n","import { FEATURE_ANNOUNCEMENT_API } from '../services/feature-announcements';\nimport {\n NOTIFICATION_API_LIST_ENDPOINT,\n NOTIFICATION_API_MARK_ALL_AS_READ_ENDPOINT,\n TRIGGER_API_BATCH_ENDPOINT,\n} from '../services/onchain-notifications';\nimport { createMockFeatureAnnouncementAPIResult } from './mock-feature-announcements';\nimport { createMockRawOnChainNotifications } from './mock-raw-notifications';\n\ntype MockResponse = {\n url: string;\n requestMethod: 'GET' | 'POST' | 'PUT' | 'DELETE';\n response: unknown;\n};\n\nexport const CONTENTFUL_RESPONSE = createMockFeatureAnnouncementAPIResult();\n\nexport const getMockFeatureAnnouncementResponse = () => {\n return {\n url: FEATURE_ANNOUNCEMENT_API,\n requestMethod: 'GET',\n response: CONTENTFUL_RESPONSE,\n } satisfies MockResponse;\n};\n\nexport const getMockBatchCreateTriggersResponse = () => {\n return {\n url: TRIGGER_API_BATCH_ENDPOINT,\n requestMethod: 'POST',\n response: null,\n } satisfies MockResponse;\n};\n\nexport const getMockBatchDeleteTriggersResponse = () => {\n return {\n url: TRIGGER_API_BATCH_ENDPOINT,\n requestMethod: 'DELETE',\n response: null,\n } satisfies MockResponse;\n};\n\nexport const MOCK_RAW_ON_CHAIN_NOTIFICATIONS =\n createMockRawOnChainNotifications();\n\nexport const getMockListNotificationsResponse = () => {\n return {\n url: NOTIFICATION_API_LIST_ENDPOINT,\n requestMethod: 'POST',\n response: MOCK_RAW_ON_CHAIN_NOTIFICATIONS,\n } satisfies MockResponse;\n};\n\nexport const getMockMarkNotificationsAsReadResponse = () => {\n return {\n url: NOTIFICATION_API_MARK_ALL_AS_READ_ENDPOINT,\n requestMethod: 'POST',\n response: null,\n } satisfies MockResponse;\n};\n"],"mappings":"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","names":["NotificationServicesController","NotificationServicesController"]}
@@ -25,9 +25,18 @@ var fetchFeatureAnnouncementNotifications = async (env) => {
25
25
  const rawNotifications = contentfulNotifications.map((n) => {
26
26
  const { fields } = n;
27
27
  const imageFields = fields.image ? findIncludedItem(fields.image.sys.id) : void 0;
28
+ const externalLinkFields = fields.externalLink ? findIncludedItem(
29
+ fields.externalLink.sys.id
30
+ ) : void 0;
31
+ const portfolioLinkFields = fields.portfolioLink ? findIncludedItem(
32
+ fields.portfolioLink.sys.id
33
+ ) : void 0;
28
34
  const extensionLinkFields = fields.extensionLink ? findIncludedItem(
29
35
  fields.extensionLink.sys.id
30
36
  ) : void 0;
37
+ const mobileLinkFields = fields.mobileLink ? findIncludedItem(
38
+ fields.mobileLink.sys.id
39
+ ) : void 0;
31
40
  const notification = {
32
41
  type: "features_announcement" /* FEATURES_ANNOUNCEMENT */,
33
42
  createdAt: new Date(n.sys.createdAt).toString(),
@@ -42,9 +51,21 @@ var fetchFeatureAnnouncementNotifications = async (env) => {
42
51
  description: imageFields?.description,
43
52
  url: imageFields?.file?.url ?? ""
44
53
  },
54
+ externalLink: externalLinkFields && {
55
+ externalLinkText: externalLinkFields?.externalLinkText,
56
+ externalLinkUrl: externalLinkFields?.externalLinkUrl
57
+ },
58
+ portfolioLink: portfolioLinkFields && {
59
+ portfolioLinkText: portfolioLinkFields?.portfolioLinkText,
60
+ portfolioLinkUrl: portfolioLinkFields?.portfolioLinkUrl
61
+ },
45
62
  extensionLink: extensionLinkFields && {
46
63
  extensionLinkText: extensionLinkFields?.extensionLinkText,
47
64
  extensionLinkRoute: extensionLinkFields?.extensionLinkRoute
65
+ },
66
+ mobileLink: mobileLinkFields && {
67
+ mobileLinkText: mobileLinkFields?.mobileLinkText,
68
+ mobileLinkUrl: mobileLinkFields?.mobileLinkUrl
48
69
  }
49
70
  }
50
71
  };
@@ -68,4 +89,4 @@ async function getFeatureAnnouncementNotifications(env) {
68
89
 
69
90
 
70
91
  exports.FEATURE_ANNOUNCEMENT_API = FEATURE_ANNOUNCEMENT_API; exports.FEATURE_ANNOUNCEMENT_URL = FEATURE_ANNOUNCEMENT_URL; exports.getFeatureAnnouncementNotifications = getFeatureAnnouncementNotifications;
71
- //# sourceMappingURL=chunk-HZEB53A6.js.map
92
+ //# sourceMappingURL=chunk-LGXHJ24K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/NotificationServicesController/services/feature-announcements.ts"],"names":[],"mappings":"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","sourcesContent":["import { documentToHtmlString } from '@contentful/rich-text-html-renderer';\nimport type { Entry, Asset, EntryCollection } from 'contentful';\n\nimport { TRIGGER_TYPES } from '../constants/notification-schema';\nimport { processFeatureAnnouncement } from '../processors/process-feature-announcement';\nimport type { FeatureAnnouncementRawNotification } from '../types/feature-announcement/feature-announcement';\nimport type {\n ImageFields,\n TypeFeatureAnnouncement,\n} from '../types/feature-announcement/type-feature-announcement';\nimport type {\n TypeExternalLinkFields,\n TypePortfolioLinkFields,\n TypeExtensionLinkFields,\n TypeMobileLinkFields,\n} from '../types/feature-announcement/type-links';\nimport type { INotification } from '../types/notification/notification';\n\nconst DEFAULT_SPACE_ID = ':space_id';\nconst DEFAULT_ACCESS_TOKEN = ':access_token';\nconst DEFAULT_CLIENT_ID = ':client_id';\nexport const FEATURE_ANNOUNCEMENT_API = `https://cdn.contentful.com/spaces/${DEFAULT_SPACE_ID}/environments/master/entries`;\nexport const FEATURE_ANNOUNCEMENT_URL = `${FEATURE_ANNOUNCEMENT_API}?access_token=${DEFAULT_ACCESS_TOKEN}&content_type=productAnnouncement&include=10&fields.clients=${DEFAULT_CLIENT_ID}`;\n\ntype Env = {\n spaceId: string;\n accessToken: string;\n platform: string;\n};\n\n/**\n * Contentful API Response Shape\n */\nexport type ContentfulResult = {\n includes?: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n Entry?: Entry[];\n // eslint-disable-next-line @typescript-eslint/naming-convention\n Asset?: Asset[];\n };\n items?: TypeFeatureAnnouncement[];\n};\n\nconst getFeatureAnnouncementUrl = (env: Env) =>\n FEATURE_ANNOUNCEMENT_URL.replace(DEFAULT_SPACE_ID, env.spaceId)\n .replace(DEFAULT_ACCESS_TOKEN, env.accessToken)\n .replace(DEFAULT_CLIENT_ID, env.platform);\n\nconst fetchFeatureAnnouncementNotifications = async (\n env: Env,\n): Promise<FeatureAnnouncementRawNotification[]> => {\n const url = getFeatureAnnouncementUrl(env);\n\n const data = await fetch(url)\n .then((r) => r.json())\n .catch(() => null);\n\n if (!data) {\n return [];\n }\n\n const findIncludedItem = (sysId: string) => {\n const typedData: EntryCollection<\n | ImageFields\n | TypeExtensionLinkFields\n | TypePortfolioLinkFields\n | TypeMobileLinkFields\n | TypeExternalLinkFields\n > = data;\n const item =\n typedData?.includes?.Entry?.find((i: Entry) => i?.sys?.id === sysId) ||\n typedData?.includes?.Asset?.find((i: Asset) => i?.sys?.id === sysId);\n return item ? item?.fields : null;\n };\n\n const contentfulNotifications = data?.items ?? [];\n const rawNotifications: FeatureAnnouncementRawNotification[] =\n contentfulNotifications.map((n: TypeFeatureAnnouncement) => {\n const { fields } = n;\n const imageFields = fields.image\n ? (findIncludedItem(fields.image.sys.id) as ImageFields['fields'])\n : undefined;\n\n const externalLinkFields = fields.externalLink\n ? (findIncludedItem(\n fields.externalLink.sys.id,\n ) as TypeExternalLinkFields['fields'])\n : undefined;\n const portfolioLinkFields = fields.portfolioLink\n ? (findIncludedItem(\n fields.portfolioLink.sys.id,\n ) as TypePortfolioLinkFields['fields'])\n : undefined;\n const extensionLinkFields = fields.extensionLink\n ? (findIncludedItem(\n fields.extensionLink.sys.id,\n ) as TypeExtensionLinkFields['fields'])\n : undefined;\n const mobileLinkFields = fields.mobileLink\n ? (findIncludedItem(\n fields.mobileLink.sys.id,\n ) as TypeMobileLinkFields['fields'])\n : undefined;\n\n const notification: FeatureAnnouncementRawNotification = {\n type: TRIGGER_TYPES.FEATURES_ANNOUNCEMENT,\n createdAt: new Date(n.sys.createdAt).toString(),\n data: {\n id: fields.id,\n category: fields.category,\n title: fields.title,\n longDescription: documentToHtmlString(fields.longDescription),\n shortDescription: fields.shortDescription,\n image: {\n title: imageFields?.title,\n description: imageFields?.description,\n url: imageFields?.file?.url ?? '',\n },\n externalLink: externalLinkFields && {\n externalLinkText: externalLinkFields?.externalLinkText,\n externalLinkUrl: externalLinkFields?.externalLinkUrl,\n },\n portfolioLink: portfolioLinkFields && {\n portfolioLinkText: portfolioLinkFields?.portfolioLinkText,\n portfolioLinkUrl: portfolioLinkFields?.portfolioLinkUrl,\n },\n extensionLink: extensionLinkFields && {\n extensionLinkText: extensionLinkFields?.extensionLinkText,\n extensionLinkRoute: extensionLinkFields?.extensionLinkRoute,\n },\n mobileLink: mobileLinkFields && {\n mobileLinkText: mobileLinkFields?.mobileLinkText,\n mobileLinkUrl: mobileLinkFields?.mobileLinkUrl,\n },\n },\n };\n\n return notification;\n });\n\n return rawNotifications;\n};\n\n/**\n * Gets Feature Announcement from our services\n * @param env - environment for feature announcements\n * @returns Raw Feature Announcements\n */\nexport async function getFeatureAnnouncementNotifications(\n env: Env,\n): Promise<INotification[]> {\n if (env?.accessToken && env?.spaceId && env?.platform) {\n const rawNotifications = await fetchFeatureAnnouncementNotifications(env);\n const notifications = rawNotifications.map((notification) =>\n processFeatureAnnouncement(notification),\n );\n\n return notifications;\n }\n\n return [];\n}\n"]}
@@ -4,6 +4,17 @@ import {
4
4
  import {
5
5
  utils_exports
6
6
  } from "./chunk-DCADU5QI.mjs";
7
+ import {
8
+ createOnChainPushNotificationMessage,
9
+ createOnChainPushNotificationMessages,
10
+ isOnChainNotification
11
+ } from "./chunk-6GUOLD7O.mjs";
12
+ import {
13
+ calcTokenAmount,
14
+ formatAmount,
15
+ getAmount,
16
+ getLeadingZeroCount
17
+ } from "./chunk-ODI2BTKS.mjs";
7
18
  import {
8
19
  NotificationServicesPushController,
9
20
  defaultState
@@ -22,8 +33,15 @@ __export(NotificationServicesPushController_exports, {
22
33
  Mocks: () => fixtures_exports,
23
34
  Types: () => types_exports,
24
35
  Utils: () => utils_exports,
36
+ calcTokenAmount: () => calcTokenAmount,
37
+ createOnChainPushNotificationMessage: () => createOnChainPushNotificationMessage,
38
+ createOnChainPushNotificationMessages: () => createOnChainPushNotificationMessages,
25
39
  default: () => NotificationServicesPushController_default,
26
- defaultState: () => defaultState
40
+ defaultState: () => defaultState,
41
+ formatAmount: () => formatAmount,
42
+ getAmount: () => getAmount,
43
+ getLeadingZeroCount: () => getLeadingZeroCount,
44
+ isOnChainNotification: () => isOnChainNotification
27
45
  });
28
46
 
29
47
  // src/NotificationServicesPushController/__fixtures__/index.ts
@@ -97,4 +115,4 @@ export {
97
115
  NotificationServicesPushController_default,
98
116
  NotificationServicesPushController_exports
99
117
  };
100
- //# sourceMappingURL=chunk-UMB6F2XF.mjs.map
118
+ //# sourceMappingURL=chunk-RZXUP2M6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/NotificationServicesPushController/index.ts","../src/NotificationServicesPushController/__fixtures__/index.ts","../src/NotificationServicesPushController/__fixtures__/mockResponse.ts"],"sourcesContent":["import Controller from './NotificationServicesPushController';\n\nconst NotificationServicesPushController = Controller;\nexport { Controller };\nexport default NotificationServicesPushController;\nexport * from './NotificationServicesPushController';\nexport * as Types from './types';\nexport * from './types';\nexport * as Utils from './utils';\nexport * from './utils';\nexport * as Mocks from './__fixtures__';\n","export * from './mockResponse';\n","import { REGISTRATION_TOKENS_ENDPOINT } from '../services/endpoints';\nimport type { LinksResult } from '../services/services';\n\ntype MockResponse = {\n url: string | RegExp;\n requestMethod: 'GET' | 'POST' | 'PUT';\n response: unknown;\n};\n\nexport const MOCK_REG_TOKEN = 'REG_TOKEN';\nexport const MOCK_LINKS_RESPONSE: LinksResult = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n trigger_ids: ['1', '2', '3'],\n // eslint-disable-next-line @typescript-eslint/naming-convention\n registration_tokens: [\n { token: 'reg_token_1', platform: 'portfolio' },\n { token: 'reg_token_2', platform: 'extension' },\n ],\n};\n\nexport const getMockRetrievePushNotificationLinksResponse = () => {\n return {\n url: REGISTRATION_TOKENS_ENDPOINT,\n requestMethod: 'GET',\n response: MOCK_LINKS_RESPONSE,\n } satisfies MockResponse;\n};\n\nexport const getMockUpdatePushNotificationLinksResponse = () => {\n return {\n url: REGISTRATION_TOKENS_ENDPOINT,\n requestMethod: 'POST',\n response: null,\n } satisfies MockResponse;\n};\n\nexport const MOCK_FCM_RESPONSE = {\n name: '',\n token: 'fcm-token',\n web: {\n endpoint: '',\n p256dh: '',\n auth: '',\n applicationPubKey: '',\n },\n};\n\nexport const getMockCreateFCMRegistrationTokenResponse = () => {\n return {\n url: /^https:\\/\\/fcmregistrations\\.googleapis\\.com\\/v1\\/projects\\/.*$/u,\n requestMethod: 'POST',\n response: MOCK_FCM_RESPONSE,\n } satisfies MockResponse;\n};\n\nexport const getMockDeleteFCMRegistrationTokenResponse = () => {\n return {\n url: /^https:\\/\\/fcmregistrations\\.googleapis\\.com\\/v1\\/projects\\/.*$/u,\n requestMethod: 'POST',\n response: {},\n } satisfies MockResponse;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACSO,IAAM,iBAAiB;AACvB,IAAM,sBAAmC;AAAA;AAAA,EAE9C,aAAa,CAAC,KAAK,KAAK,GAAG;AAAA;AAAA,EAE3B,qBAAqB;AAAA,IACnB,EAAE,OAAO,eAAe,UAAU,YAAY;AAAA,IAC9C,EAAE,OAAO,eAAe,UAAU,YAAY;AAAA,EAChD;AACF;AAEO,IAAM,+CAA+C,MAAM;AAChE,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,6CAA6C,MAAM;AAC9D,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,oBAAoB;AAAA,EAC/B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,IACH,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,mBAAmB;AAAA,EACrB;AACF;AAEO,IAAM,4CAA4C,MAAM;AAC7D,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,4CAA4C,MAAM;AAC7D,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU,CAAC;AAAA,EACb;AACF;;;AF3DA,IAAMA,sCAAqC;AAE3C,IAAO,6CAAQC;","names":["NotificationServicesPushController","NotificationServicesPushController"]}