@metamask/profile-sync-controller 9.0.0 → 10.1.0

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 (154) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/dist/controllers/authentication/AuthenticationController.cjs +53 -90
  3. package/dist/controllers/authentication/AuthenticationController.cjs.map +1 -1
  4. package/dist/controllers/authentication/AuthenticationController.d.cts +11 -23
  5. package/dist/controllers/authentication/AuthenticationController.d.cts.map +1 -1
  6. package/dist/controllers/authentication/AuthenticationController.d.mts +11 -23
  7. package/dist/controllers/authentication/AuthenticationController.d.mts.map +1 -1
  8. package/dist/controllers/authentication/AuthenticationController.mjs +53 -90
  9. package/dist/controllers/authentication/AuthenticationController.mjs.map +1 -1
  10. package/dist/controllers/authentication/mocks/mockResponses.cjs +10 -23
  11. package/dist/controllers/authentication/mocks/mockResponses.cjs.map +1 -1
  12. package/dist/controllers/authentication/mocks/mockResponses.d.cts +42 -10
  13. package/dist/controllers/authentication/mocks/mockResponses.d.cts.map +1 -1
  14. package/dist/controllers/authentication/mocks/mockResponses.d.mts +42 -10
  15. package/dist/controllers/authentication/mocks/mockResponses.d.mts.map +1 -1
  16. package/dist/controllers/authentication/mocks/mockResponses.mjs +9 -22
  17. package/dist/controllers/authentication/mocks/mockResponses.mjs.map +1 -1
  18. package/dist/controllers/user-storage/UserStorageController.cjs +76 -127
  19. package/dist/controllers/user-storage/UserStorageController.cjs.map +1 -1
  20. package/dist/controllers/user-storage/UserStorageController.d.cts +10 -4
  21. package/dist/controllers/user-storage/UserStorageController.d.cts.map +1 -1
  22. package/dist/controllers/user-storage/UserStorageController.d.mts +10 -4
  23. package/dist/controllers/user-storage/UserStorageController.d.mts.map +1 -1
  24. package/dist/controllers/user-storage/UserStorageController.mjs +76 -127
  25. package/dist/controllers/user-storage/UserStorageController.mjs.map +1 -1
  26. package/dist/controllers/user-storage/account-syncing/controller-integration.cjs +1 -1
  27. package/dist/controllers/user-storage/account-syncing/controller-integration.cjs.map +1 -1
  28. package/dist/controllers/user-storage/account-syncing/controller-integration.mjs +1 -1
  29. package/dist/controllers/user-storage/account-syncing/controller-integration.mjs.map +1 -1
  30. package/dist/controllers/user-storage/account-syncing/sync-utils.cjs +1 -0
  31. package/dist/controllers/user-storage/account-syncing/sync-utils.cjs.map +1 -1
  32. package/dist/controllers/user-storage/account-syncing/sync-utils.d.cts.map +1 -1
  33. package/dist/controllers/user-storage/account-syncing/sync-utils.d.mts.map +1 -1
  34. package/dist/controllers/user-storage/account-syncing/sync-utils.mjs +1 -0
  35. package/dist/controllers/user-storage/account-syncing/sync-utils.mjs.map +1 -1
  36. package/dist/controllers/user-storage/mocks/mockResponses.cjs +3 -3
  37. package/dist/controllers/user-storage/mocks/mockResponses.cjs.map +1 -1
  38. package/dist/controllers/user-storage/mocks/mockResponses.d.cts +1 -1
  39. package/dist/controllers/user-storage/mocks/mockResponses.d.cts.map +1 -1
  40. package/dist/controllers/user-storage/mocks/mockResponses.d.mts +1 -1
  41. package/dist/controllers/user-storage/mocks/mockResponses.d.mts.map +1 -1
  42. package/dist/controllers/user-storage/mocks/mockResponses.mjs +3 -3
  43. package/dist/controllers/user-storage/mocks/mockResponses.mjs.map +1 -1
  44. package/dist/controllers/user-storage/network-syncing/controller-integration.cjs +14 -14
  45. package/dist/controllers/user-storage/network-syncing/controller-integration.cjs.map +1 -1
  46. package/dist/controllers/user-storage/network-syncing/controller-integration.d.cts +3 -3
  47. package/dist/controllers/user-storage/network-syncing/controller-integration.d.cts.map +1 -1
  48. package/dist/controllers/user-storage/network-syncing/controller-integration.d.mts +3 -3
  49. package/dist/controllers/user-storage/network-syncing/controller-integration.d.mts.map +1 -1
  50. package/dist/controllers/user-storage/network-syncing/controller-integration.mjs +14 -14
  51. package/dist/controllers/user-storage/network-syncing/controller-integration.mjs.map +1 -1
  52. package/dist/controllers/user-storage/network-syncing/services.cjs +27 -23
  53. package/dist/controllers/user-storage/network-syncing/services.cjs.map +1 -1
  54. package/dist/controllers/user-storage/network-syncing/services.d.cts +16 -7
  55. package/dist/controllers/user-storage/network-syncing/services.d.cts.map +1 -1
  56. package/dist/controllers/user-storage/network-syncing/services.d.mts +16 -7
  57. package/dist/controllers/user-storage/network-syncing/services.d.mts.map +1 -1
  58. package/dist/controllers/user-storage/network-syncing/services.mjs +27 -23
  59. package/dist/controllers/user-storage/network-syncing/services.mjs.map +1 -1
  60. package/dist/controllers/user-storage/network-syncing/sync-mutations.cjs.map +1 -1
  61. package/dist/controllers/user-storage/network-syncing/sync-mutations.d.cts +13 -5
  62. package/dist/controllers/user-storage/network-syncing/sync-mutations.d.cts.map +1 -1
  63. package/dist/controllers/user-storage/network-syncing/sync-mutations.d.mts +13 -5
  64. package/dist/controllers/user-storage/network-syncing/sync-mutations.d.mts.map +1 -1
  65. package/dist/controllers/user-storage/network-syncing/sync-mutations.mjs.map +1 -1
  66. package/dist/controllers/user-storage/types.cjs +3 -0
  67. package/dist/controllers/user-storage/types.cjs.map +1 -0
  68. package/dist/controllers/user-storage/types.d.cts +23 -0
  69. package/dist/controllers/user-storage/types.d.cts.map +1 -0
  70. package/dist/controllers/user-storage/types.d.mts +23 -0
  71. package/dist/controllers/user-storage/types.d.mts.map +1 -0
  72. package/dist/controllers/user-storage/types.mjs +2 -0
  73. package/dist/controllers/user-storage/types.mjs.map +1 -0
  74. package/dist/sdk/authentication-jwt-bearer/flow-srp.cjs +7 -8
  75. package/dist/sdk/authentication-jwt-bearer/flow-srp.cjs.map +1 -1
  76. package/dist/sdk/authentication-jwt-bearer/flow-srp.d.cts +2 -0
  77. package/dist/sdk/authentication-jwt-bearer/flow-srp.d.cts.map +1 -1
  78. package/dist/sdk/authentication-jwt-bearer/flow-srp.d.mts +2 -0
  79. package/dist/sdk/authentication-jwt-bearer/flow-srp.d.mts.map +1 -1
  80. package/dist/sdk/authentication-jwt-bearer/flow-srp.mjs +8 -9
  81. package/dist/sdk/authentication-jwt-bearer/flow-srp.mjs.map +1 -1
  82. package/dist/sdk/authentication-jwt-bearer/services.cjs +10 -2
  83. package/dist/sdk/authentication-jwt-bearer/services.cjs.map +1 -1
  84. package/dist/sdk/authentication-jwt-bearer/services.d.cts +3 -1
  85. package/dist/sdk/authentication-jwt-bearer/services.d.cts.map +1 -1
  86. package/dist/sdk/authentication-jwt-bearer/services.d.mts +3 -1
  87. package/dist/sdk/authentication-jwt-bearer/services.d.mts.map +1 -1
  88. package/dist/sdk/authentication-jwt-bearer/services.mjs +10 -2
  89. package/dist/sdk/authentication-jwt-bearer/services.mjs.map +1 -1
  90. package/dist/sdk/authentication-jwt-bearer/types.cjs.map +1 -1
  91. package/dist/sdk/authentication-jwt-bearer/types.mjs.map +1 -1
  92. package/dist/sdk/authentication.cjs.map +1 -1
  93. package/dist/sdk/authentication.d.cts +1 -1
  94. package/dist/sdk/authentication.d.cts.map +1 -1
  95. package/dist/sdk/authentication.d.mts +1 -1
  96. package/dist/sdk/authentication.d.mts.map +1 -1
  97. package/dist/sdk/authentication.mjs.map +1 -1
  98. package/dist/sdk/mocks/auth.cjs +44 -0
  99. package/dist/sdk/mocks/auth.cjs.map +1 -0
  100. package/dist/sdk/mocks/auth.d.cts +39 -0
  101. package/dist/sdk/mocks/auth.d.cts.map +1 -0
  102. package/dist/sdk/mocks/auth.d.mts +39 -0
  103. package/dist/sdk/mocks/auth.d.mts.map +1 -0
  104. package/dist/sdk/mocks/auth.mjs +41 -0
  105. package/dist/sdk/mocks/auth.mjs.map +1 -0
  106. package/dist/sdk/mocks/userstorage.cjs +43 -0
  107. package/dist/sdk/mocks/userstorage.cjs.map +1 -0
  108. package/dist/sdk/mocks/userstorage.d.cts +10 -0
  109. package/dist/sdk/mocks/userstorage.d.cts.map +1 -0
  110. package/dist/sdk/mocks/userstorage.d.mts +10 -0
  111. package/dist/sdk/mocks/userstorage.d.mts.map +1 -0
  112. package/dist/sdk/mocks/userstorage.mjs +15 -0
  113. package/dist/sdk/mocks/userstorage.mjs.map +1 -0
  114. package/dist/sdk/user-storage.cjs +39 -43
  115. package/dist/sdk/user-storage.cjs.map +1 -1
  116. package/dist/sdk/user-storage.d.cts +13 -8
  117. package/dist/sdk/user-storage.d.cts.map +1 -1
  118. package/dist/sdk/user-storage.d.mts +13 -8
  119. package/dist/sdk/user-storage.d.mts.map +1 -1
  120. package/dist/sdk/user-storage.mjs +39 -43
  121. package/dist/sdk/user-storage.mjs.map +1 -1
  122. package/dist/sdk/utils/messaging-signing-snap-requests.cjs +12 -1
  123. package/dist/sdk/utils/messaging-signing-snap-requests.cjs.map +1 -1
  124. package/dist/sdk/utils/messaging-signing-snap-requests.d.cts +6 -0
  125. package/dist/sdk/utils/messaging-signing-snap-requests.d.cts.map +1 -1
  126. package/dist/sdk/utils/messaging-signing-snap-requests.d.mts +6 -0
  127. package/dist/sdk/utils/messaging-signing-snap-requests.d.mts.map +1 -1
  128. package/dist/sdk/utils/messaging-signing-snap-requests.mjs +10 -0
  129. package/dist/sdk/utils/messaging-signing-snap-requests.mjs.map +1 -1
  130. package/dist/shared/types/services.cjs +3 -0
  131. package/dist/shared/types/services.cjs.map +1 -0
  132. package/dist/shared/types/services.d.cts +10 -0
  133. package/dist/shared/types/services.d.cts.map +1 -0
  134. package/dist/shared/types/services.d.mts +10 -0
  135. package/dist/shared/types/services.d.mts.map +1 -0
  136. package/dist/shared/types/services.mjs +2 -0
  137. package/dist/shared/types/services.mjs.map +1 -0
  138. package/package.json +6 -6
  139. package/dist/controllers/authentication/services.cjs +0 -132
  140. package/dist/controllers/authentication/services.cjs.map +0 -1
  141. package/dist/controllers/authentication/services.d.cts +0 -72
  142. package/dist/controllers/authentication/services.d.cts.map +0 -1
  143. package/dist/controllers/authentication/services.d.mts +0 -72
  144. package/dist/controllers/authentication/services.d.mts.map +0 -1
  145. package/dist/controllers/authentication/services.mjs +0 -129
  146. package/dist/controllers/authentication/services.mjs.map +0 -1
  147. package/dist/controllers/user-storage/services.cjs +0 -306
  148. package/dist/controllers/user-storage/services.cjs.map +0 -1
  149. package/dist/controllers/user-storage/services.d.cts +0 -85
  150. package/dist/controllers/user-storage/services.d.cts.map +0 -1
  151. package/dist/controllers/user-storage/services.d.mts +0 -85
  152. package/dist/controllers/user-storage/services.d.mts.map +0 -1
  153. package/dist/controllers/user-storage/services.mjs +0 -276
  154. package/dist/controllers/user-storage/services.mjs.map +0 -1
@@ -1,14 +1,14 @@
1
1
  import type { NetworkConfiguration } from "@metamask/network-controller";
2
- import type { UserStorageBaseOptions } from "../services.cjs";
2
+ import type UserStorageController from "../UserStorageController.cjs";
3
3
  import type { UserStorageControllerMessenger } from "../UserStorageController.cjs";
4
4
  type StartNetworkSyncingProps = {
5
5
  messenger: UserStorageControllerMessenger;
6
- getStorageConfig: () => Promise<UserStorageBaseOptions | null>;
6
+ getUserStorageControllerInstance: () => UserStorageController;
7
7
  isMutationSyncBlocked: () => boolean;
8
8
  };
9
9
  type PerformMainNetworkSyncProps = {
10
10
  messenger: UserStorageControllerMessenger;
11
- getStorageConfig: () => Promise<UserStorageBaseOptions | null>;
11
+ getUserStorageControllerInstance: () => UserStorageController;
12
12
  maxNetworksToAdd?: number;
13
13
  onNetworkAdded?: (chainId: string) => void;
14
14
  onNetworkUpdated?: (chainId: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"controller-integration.d.cts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/controller-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qCAAqC;AAQzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAoB;AAC1D,OAAO,KAAK,EAAE,8BAA8B,EAAE,qCAAiC;AAE/E,KAAK,wBAAwB,GAAG;IAC9B,SAAS,EAAE,8BAA8B,CAAC;IAC1C,gBAAgB,EAAE,MAAM,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAC/D,qBAAqB,EAAE,MAAM,OAAO,CAAC;CACtC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,SAAS,EAAE,8BAA8B,CAAC;IAC1C,gBAAgB,EAAE,MAAM,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AAGH,eAAO,IAAI,2BAA2B,SAAQ,CAAC;AAE/C;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,QAgClE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,UAAiB;IACjD,SAAS,EAAE,8BAA8B,CAAC;IAC1C,4BAA4B,EAAE,oBAAoB,CAAC;IACnD,uBAAuB,EAAE,oBAAoB,CAAC;IAC9C,uBAAuB,EAAE,MAAM,CAAC;CACjC,kBAqBA,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,iBAgJnC"}
1
+ {"version":3,"file":"controller-integration.d.cts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/controller-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qCAAqC;AAQzE,OAAO,KAAK,qBAAqB,qCAAiC;AAClE,OAAO,KAAK,EAAE,8BAA8B,EAAE,qCAAiC;AAE/E,KAAK,wBAAwB,GAAG;IAC9B,SAAS,EAAE,8BAA8B,CAAC;IAC1C,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;IAC9D,qBAAqB,EAAE,MAAM,OAAO,CAAC;CACtC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,SAAS,EAAE,8BAA8B,CAAC;IAC1C,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AAGH,eAAO,IAAI,2BAA2B,SAAQ,CAAC;AAE/C;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,QAgClE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,UAAiB;IACjD,SAAS,EAAE,8BAA8B,CAAC;IAC1C,4BAA4B,EAAE,oBAAoB,CAAC;IACnD,uBAAuB,EAAE,oBAAoB,CAAC;IAC9C,uBAAuB,EAAE,MAAM,CAAC;CACjC,kBAqBA,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,iBA+InC"}
@@ -1,14 +1,14 @@
1
1
  import type { NetworkConfiguration } from "@metamask/network-controller";
2
- import type { UserStorageBaseOptions } from "../services.mjs";
2
+ import type UserStorageController from "../UserStorageController.mjs";
3
3
  import type { UserStorageControllerMessenger } from "../UserStorageController.mjs";
4
4
  type StartNetworkSyncingProps = {
5
5
  messenger: UserStorageControllerMessenger;
6
- getStorageConfig: () => Promise<UserStorageBaseOptions | null>;
6
+ getUserStorageControllerInstance: () => UserStorageController;
7
7
  isMutationSyncBlocked: () => boolean;
8
8
  };
9
9
  type PerformMainNetworkSyncProps = {
10
10
  messenger: UserStorageControllerMessenger;
11
- getStorageConfig: () => Promise<UserStorageBaseOptions | null>;
11
+ getUserStorageControllerInstance: () => UserStorageController;
12
12
  maxNetworksToAdd?: number;
13
13
  onNetworkAdded?: (chainId: string) => void;
14
14
  onNetworkUpdated?: (chainId: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"controller-integration.d.mts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/controller-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qCAAqC;AAQzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAoB;AAC1D,OAAO,KAAK,EAAE,8BAA8B,EAAE,qCAAiC;AAE/E,KAAK,wBAAwB,GAAG;IAC9B,SAAS,EAAE,8BAA8B,CAAC;IAC1C,gBAAgB,EAAE,MAAM,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAC/D,qBAAqB,EAAE,MAAM,OAAO,CAAC;CACtC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,SAAS,EAAE,8BAA8B,CAAC;IAC1C,gBAAgB,EAAE,MAAM,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AAGH,eAAO,IAAI,2BAA2B,SAAQ,CAAC;AAE/C;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,QAgClE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,UAAiB;IACjD,SAAS,EAAE,8BAA8B,CAAC;IAC1C,4BAA4B,EAAE,oBAAoB,CAAC;IACnD,uBAAuB,EAAE,oBAAoB,CAAC;IAC9C,uBAAuB,EAAE,MAAM,CAAC;CACjC,kBAqBA,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,iBAgJnC"}
1
+ {"version":3,"file":"controller-integration.d.mts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/controller-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qCAAqC;AAQzE,OAAO,KAAK,qBAAqB,qCAAiC;AAClE,OAAO,KAAK,EAAE,8BAA8B,EAAE,qCAAiC;AAE/E,KAAK,wBAAwB,GAAG;IAC9B,SAAS,EAAE,8BAA8B,CAAC;IAC1C,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;IAC9D,qBAAqB,EAAE,MAAM,OAAO,CAAC;CACtC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,SAAS,EAAE,8BAA8B,CAAC;IAC1C,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AAGH,eAAO,IAAI,2BAA2B,SAAQ,CAAC;AAE/C;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,QAgClE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,UAAiB;IACjD,SAAS,EAAE,8BAA8B,CAAC;IAC1C,4BAA4B,EAAE,oBAAoB,CAAC;IACnD,uBAAuB,EAAE,oBAAoB,CAAC;IAC9C,uBAAuB,EAAE,MAAM,CAAC;CACjC,kBAqBA,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,iBA+InC"}
@@ -29,9 +29,11 @@ export let isMainNetworkSyncInProgress = false;
29
29
  * @param props - parameters used for initializing and enabling network syncing
30
30
  */
31
31
  export function startNetworkSyncing(props) {
32
- const { messenger, getStorageConfig, isMutationSyncBlocked } = props;
32
+ const { messenger, isMutationSyncBlocked, getUserStorageControllerInstance } = props;
33
33
  try {
34
- messenger.subscribe('NetworkController:networkRemoved', async (networkConfiguration) => {
34
+ messenger.subscribe('NetworkController:networkRemoved',
35
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
36
+ async (networkConfiguration) => {
35
37
  try {
36
38
  // If blocked (e.g. we have not yet performed a main-sync), then we should not perform any mutations
37
39
  if (isMutationSyncBlocked()) {
@@ -42,11 +44,9 @@ export function startNetworkSyncing(props) {
42
44
  if (isMainNetworkSyncInProgress) {
43
45
  return;
44
46
  }
45
- const opts = await getStorageConfig();
46
- if (!opts) {
47
- return;
48
- }
49
- await deleteNetwork(networkConfiguration, opts);
47
+ await deleteNetwork(networkConfiguration, {
48
+ getUserStorageControllerInstance,
49
+ });
50
50
  }
51
51
  catch {
52
52
  // Silently fail sync
@@ -83,7 +83,7 @@ export const dispatchUpdateNetwork = async (props) => {
83
83
  * @param props - parameters used for this main sync
84
84
  */
85
85
  export async function performMainNetworkSync(props) {
86
- const { messenger, getStorageConfig, maxNetworksToAdd, onNetworkAdded, onNetworkRemoved, onNetworkUpdated, } = props;
86
+ const { messenger, maxNetworksToAdd, onNetworkAdded, onNetworkRemoved, onNetworkUpdated, getUserStorageControllerInstance, } = props;
87
87
  // Edge-Case, we do not want to re-run the main-sync if it already is in progress
88
88
  /* istanbul ignore if - this is not testable */
89
89
  if (isMainNetworkSyncInProgress) {
@@ -91,13 +91,11 @@ export async function performMainNetworkSync(props) {
91
91
  }
92
92
  isMainNetworkSyncInProgress = true;
93
93
  try {
94
- const opts = await getStorageConfig();
95
- if (!opts) {
96
- return;
97
- }
98
94
  const networkControllerState = messenger.call('NetworkController:getState');
99
95
  const localNetworks = Object.values(networkControllerState.networkConfigurationsByChainId ?? {});
100
- const remoteNetworks = await getAllRemoteNetworks(opts);
96
+ const remoteNetworks = await getAllRemoteNetworks({
97
+ getUserStorageControllerInstance,
98
+ });
101
99
  const networkChanges = findNetworksToUpdate({
102
100
  localNetworks,
103
101
  remoteNetworks,
@@ -110,7 +108,9 @@ export async function performMainNetworkSync(props) {
110
108
  // Update Remote
111
109
  if (networkChanges?.remoteNetworksToUpdate &&
112
110
  networkChanges.remoteNetworksToUpdate.length > 0) {
113
- await batchUpdateNetworks(networkChanges?.remoteNetworksToUpdate, opts);
111
+ await batchUpdateNetworks(networkChanges?.remoteNetworksToUpdate, {
112
+ getUserStorageControllerInstance,
113
+ });
114
114
  }
115
115
  // Add missing local networks
116
116
  const boundedNetworkedToAdd = networkChanges?.missingLocalNetworks &&
@@ -1 +1 @@
1
- {"version":3,"file":"controller-integration.mjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/controller-integration.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NetworkConfiguration } from '@metamask/network-controller';\nimport log from 'loglevel';\n\nimport { getBoundedNetworksToAdd } from './add-network-utils';\nimport { getAllRemoteNetworks } from './services';\nimport { findNetworksToUpdate } from './sync-all';\nimport { batchUpdateNetworks, deleteNetwork } from './sync-mutations';\nimport { createUpdateNetworkProps } from './update-network-utils';\nimport type { UserStorageBaseOptions } from '../services';\nimport type { UserStorageControllerMessenger } from '../UserStorageController';\n\ntype StartNetworkSyncingProps = {\n messenger: UserStorageControllerMessenger;\n getStorageConfig: () => Promise<UserStorageBaseOptions | null>;\n isMutationSyncBlocked: () => boolean;\n};\n\ntype PerformMainNetworkSyncProps = {\n messenger: UserStorageControllerMessenger;\n getStorageConfig: () => Promise<UserStorageBaseOptions | null>;\n maxNetworksToAdd?: number;\n onNetworkAdded?: (chainId: string) => void;\n onNetworkUpdated?: (chainId: string) => void;\n onNetworkRemoved?: (chainId: string) => void;\n};\n\n/**\n * Global in-mem cache to signify that the network syncing is in progress\n * Ensures that listeners do not fire during main sync (prevent double requests)\n */\n// Exported to help testing\n// eslint-disable-next-line import-x/no-mutable-exports\nexport let isMainNetworkSyncInProgress = false;\n\n/**\n * Initialize and setup events to listen to for network syncing\n * We will be listening to:\n * - Remove Event, to indicate that we need to remote network from remote\n *\n * We will not be listening to:\n * - Add/Update events are not required, as we can sync these during the main sync\n *\n * @param props - parameters used for initializing and enabling network syncing\n */\nexport function startNetworkSyncing(props: StartNetworkSyncingProps) {\n const { messenger, getStorageConfig, isMutationSyncBlocked } = props;\n try {\n messenger.subscribe(\n 'NetworkController:networkRemoved',\n\n async (networkConfiguration) => {\n try {\n // If blocked (e.g. we have not yet performed a main-sync), then we should not perform any mutations\n if (isMutationSyncBlocked()) {\n return;\n }\n\n // As main sync is in progress, it will already local and remote networks\n // So no need to re-process again.\n if (isMainNetworkSyncInProgress) {\n return;\n }\n\n const opts = await getStorageConfig();\n if (!opts) {\n return;\n }\n await deleteNetwork(networkConfiguration, opts);\n } catch {\n // Silently fail sync\n }\n },\n );\n } catch (e) {\n log.warn('NetworkSyncing, event subscription failed', e);\n }\n}\n\n/**\n * method that will dispatch the `NetworkController:updateNetwork` action.\n * transforms and corrects the network configuration (and RPCs) we pass through.\n *\n * @param props - properties\n * @param props.messenger - messenger to call the action\n * @param props.originalNetworkConfiguration - original network config (from network controller state)\n * @param props.newNetworkConfiguration - new network config (from remote)\n * @param props.selectedNetworkClientId - currently selected network client id\n */\nexport const dispatchUpdateNetwork = async (props: {\n messenger: UserStorageControllerMessenger;\n originalNetworkConfiguration: NetworkConfiguration;\n newNetworkConfiguration: NetworkConfiguration;\n selectedNetworkClientId: string;\n}) => {\n const {\n messenger,\n originalNetworkConfiguration,\n newNetworkConfiguration,\n selectedNetworkClientId,\n } = props;\n\n const { updateNetworkFields, newSelectedRpcEndpointIndex } =\n createUpdateNetworkProps({\n originalNetworkConfiguration,\n newNetworkConfiguration,\n selectedNetworkClientId,\n });\n\n await messenger.call(\n 'NetworkController:updateNetwork',\n updateNetworkFields.chainId,\n updateNetworkFields,\n { replacementSelectedRpcEndpointIndex: newSelectedRpcEndpointIndex },\n );\n};\n\n/**\n * Action to perform the main network sync.\n * It will fetch local networks and remote networks, then determines which networks (local and remote) to add/update\n *\n * @param props - parameters used for this main sync\n */\nexport async function performMainNetworkSync(\n props: PerformMainNetworkSyncProps,\n) {\n const {\n messenger,\n getStorageConfig,\n maxNetworksToAdd,\n onNetworkAdded,\n onNetworkRemoved,\n onNetworkUpdated,\n } = props;\n\n // Edge-Case, we do not want to re-run the main-sync if it already is in progress\n /* istanbul ignore if - this is not testable */\n if (isMainNetworkSyncInProgress) {\n return;\n }\n\n isMainNetworkSyncInProgress = true;\n try {\n const opts = await getStorageConfig();\n if (!opts) {\n return;\n }\n\n const networkControllerState = messenger.call('NetworkController:getState');\n const localNetworks = Object.values(\n networkControllerState.networkConfigurationsByChainId ?? {},\n );\n\n const remoteNetworks = await getAllRemoteNetworks(opts);\n const networkChanges = findNetworksToUpdate({\n localNetworks,\n remoteNetworks,\n });\n\n log.debug('performMainNetworkSync() - Network Syncing Started', {\n localNetworks,\n remoteNetworks,\n networkChanges,\n });\n\n // Update Remote\n if (\n networkChanges?.remoteNetworksToUpdate &&\n networkChanges.remoteNetworksToUpdate.length > 0\n ) {\n await batchUpdateNetworks(networkChanges?.remoteNetworksToUpdate, opts);\n }\n\n // Add missing local networks\n const boundedNetworkedToAdd =\n networkChanges?.missingLocalNetworks &&\n getBoundedNetworksToAdd(\n localNetworks,\n networkChanges.missingLocalNetworks,\n maxNetworksToAdd,\n );\n if (boundedNetworkedToAdd && boundedNetworkedToAdd.length > 0) {\n const errors: unknown[] = [];\n boundedNetworkedToAdd.forEach((n) => {\n try {\n messenger.call('NetworkController:addNetwork', n);\n onNetworkAdded?.(n.chainId);\n } catch (e) {\n /* istanbul ignore next - allocates logs, do not need to test */\n errors.push(e);\n // Silently fail, we can try this again on next main sync\n }\n });\n\n /* istanbul ignore if - only logs errors, not useful to test */\n if (errors.length > 0) {\n log.error(\n 'performMainNetworkSync() - NetworkController:addNetwork failures',\n errors,\n );\n }\n }\n\n // Update local networks\n if (\n networkChanges?.localNetworksToUpdate &&\n networkChanges.localNetworksToUpdate.length > 0\n ) {\n const errors: unknown[] = [];\n for (const n of networkChanges.localNetworksToUpdate) {\n try {\n await dispatchUpdateNetwork({\n messenger,\n originalNetworkConfiguration:\n networkControllerState.networkConfigurationsByChainId[n.chainId],\n newNetworkConfiguration: n,\n selectedNetworkClientId:\n networkControllerState.selectedNetworkClientId,\n });\n onNetworkUpdated?.(n.chainId);\n } catch (e) {\n /* istanbul ignore next - allocates logs, do not need to test */\n errors.push(e);\n // Silently fail, we can try this again on next main sync\n }\n }\n\n /* istanbul ignore if - only logs errors, not useful to test */\n if (errors.length > 0) {\n log.error(\n 'performMainNetworkSync() - NetworkController:updateNetwork failed',\n errors,\n );\n }\n }\n\n // Remove local networks\n if (\n networkChanges?.localNetworksToRemove &&\n networkChanges.localNetworksToRemove.length > 0\n ) {\n const errors: unknown[] = [];\n networkChanges.localNetworksToRemove.forEach((n) => {\n try {\n messenger.call('NetworkController:removeNetwork', n.chainId);\n onNetworkRemoved?.(n.chainId);\n } catch (e) {\n /* istanbul ignore next - allocates logs, do not need to test */\n errors.push(e);\n // Silently fail, we can try this again on next main sync\n }\n });\n\n /* istanbul ignore if - only logs errors, not useful to test */\n if (errors.length > 0) {\n log.error(\n 'performMainNetworkSync() - NetworkController:removeNetwork failed',\n errors,\n );\n }\n }\n } catch (e) {\n /* istanbul ignore next - only logs errors, not useful to test */\n log.error('performMainNetworkSync() failed', e);\n // Silently fail sync\n } finally {\n isMainNetworkSyncInProgress = false;\n }\n}\n"]}
1
+ {"version":3,"file":"controller-integration.mjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/controller-integration.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,IAAG,iBAAiB;;AAE3B,OAAO,EAAE,uBAAuB,EAAE,gCAA4B;AAC9D,OAAO,EAAE,oBAAoB,EAAE,uBAAmB;AAClD,OAAO,EAAE,oBAAoB,EAAE,uBAAmB;AAClD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,6BAAyB;AACtE,OAAO,EAAE,wBAAwB,EAAE,mCAA+B;AAmBlE;;;GAGG;AACH,2BAA2B;AAC3B,uDAAuD;AACvD,MAAM,CAAC,IAAI,2BAA2B,GAAG,KAAK,CAAC;AAE/C;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IACjE,MAAM,EAAE,SAAS,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,GAC1E,KAAK,CAAC;IACR,IAAI;QACF,SAAS,CAAC,SAAS,CACjB,kCAAkC;QAElC,kEAAkE;QAClE,KAAK,EAAE,oBAAoB,EAAE,EAAE;YAC7B,IAAI;gBACF,oGAAoG;gBACpG,IAAI,qBAAqB,EAAE,EAAE;oBAC3B,OAAO;iBACR;gBAED,yEAAyE;gBACzE,kCAAkC;gBAClC,IAAI,2BAA2B,EAAE;oBAC/B,OAAO;iBACR;gBAED,MAAM,aAAa,CAAC,oBAAoB,EAAE;oBACxC,gCAAgC;iBACjC,CAAC,CAAC;aACJ;YAAC,MAAM;gBACN,qBAAqB;aACtB;QACH,CAAC,CACF,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,GAAG,CAAC,IAAI,CAAC,2CAA2C,EAAE,CAAC,CAAC,CAAC;KAC1D;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,KAK3C,EAAE,EAAE;IACH,MAAM,EACJ,SAAS,EACT,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,GACxB,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,GACxD,wBAAwB,CAAC;QACvB,4BAA4B;QAC5B,uBAAuB;QACvB,uBAAuB;KACxB,CAAC,CAAC;IAEL,MAAM,SAAS,CAAC,IAAI,CAClB,iCAAiC,EACjC,mBAAmB,CAAC,OAAO,EAC3B,mBAAmB,EACnB,EAAE,mCAAmC,EAAE,2BAA2B,EAAE,CACrE,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAkC;IAElC,MAAM,EACJ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gCAAgC,GACjC,GAAG,KAAK,CAAC;IAEV,iFAAiF;IACjF,+CAA+C;IAC/C,IAAI,2BAA2B,EAAE;QAC/B,OAAO;KACR;IAED,2BAA2B,GAAG,IAAI,CAAC;IACnC,IAAI;QACF,MAAM,sBAAsB,GAAG,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC5E,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CACjC,sBAAsB,CAAC,8BAA8B,IAAI,EAAE,CAC5D,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC;YAChD,gCAAgC;SACjC,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,oBAAoB,CAAC;YAC1C,aAAa;YACb,cAAc;SACf,CAAC,CAAC;QAEH,GAAG,CAAC,KAAK,CAAC,oDAAoD,EAAE;YAC9D,aAAa;YACb,cAAc;YACd,cAAc;SACf,CAAC,CAAC;QAEH,gBAAgB;QAChB,IACE,cAAc,EAAE,sBAAsB;YACtC,cAAc,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAChD;YACA,MAAM,mBAAmB,CAAC,cAAc,EAAE,sBAAsB,EAAE;gBAChE,gCAAgC;aACjC,CAAC,CAAC;SACJ;QAED,6BAA6B;QAC7B,MAAM,qBAAqB,GACzB,cAAc,EAAE,oBAAoB;YACpC,uBAAuB,CACrB,aAAa,EACb,cAAc,CAAC,oBAAoB,EACnC,gBAAgB,CACjB,CAAC;QACJ,IAAI,qBAAqB,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7D,MAAM,MAAM,GAAc,EAAE,CAAC;YAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClC,IAAI;oBACF,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;oBAClD,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBAC7B;gBAAC,OAAO,CAAC,EAAE;oBACV,gEAAgE;oBAChE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACf,yDAAyD;iBAC1D;YACH,CAAC,CAAC,CAAC;YAEH,+DAA+D;YAC/D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,GAAG,CAAC,KAAK,CACP,kEAAkE,EAClE,MAAM,CACP,CAAC;aACH;SACF;QAED,wBAAwB;QACxB,IACE,cAAc,EAAE,qBAAqB;YACrC,cAAc,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAC/C;YACA,MAAM,MAAM,GAAc,EAAE,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,qBAAqB,EAAE;gBACpD,IAAI;oBACF,MAAM,qBAAqB,CAAC;wBAC1B,SAAS;wBACT,4BAA4B,EAC1B,sBAAsB,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CAAC;wBAClE,uBAAuB,EAAE,CAAC;wBAC1B,uBAAuB,EACrB,sBAAsB,CAAC,uBAAuB;qBACjD,CAAC,CAAC;oBACH,gBAAgB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBAC/B;gBAAC,OAAO,CAAC,EAAE;oBACV,gEAAgE;oBAChE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACf,yDAAyD;iBAC1D;aACF;YAED,+DAA+D;YAC/D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,GAAG,CAAC,KAAK,CACP,mEAAmE,EACnE,MAAM,CACP,CAAC;aACH;SACF;QAED,wBAAwB;QACxB,IACE,cAAc,EAAE,qBAAqB;YACrC,cAAc,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAC/C;YACA,MAAM,MAAM,GAAc,EAAE,CAAC;YAC7B,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjD,IAAI;oBACF,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;oBAC7D,gBAAgB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBAC/B;gBAAC,OAAO,CAAC,EAAE;oBACV,gEAAgE;oBAChE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACf,yDAAyD;iBAC1D;YACH,CAAC,CAAC,CAAC;YAEH,+DAA+D;YAC/D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,GAAG,CAAC,KAAK,CACP,mEAAmE,EACnE,MAAM,CACP,CAAC;aACH;SACF;KACF;IAAC,OAAO,CAAC,EAAE;QACV,iEAAiE;QACjE,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;QAChD,qBAAqB;KACtB;YAAS;QACR,2BAA2B,GAAG,KAAK,CAAC;KACrC;AACH,CAAC","sourcesContent":["import type { NetworkConfiguration } from '@metamask/network-controller';\nimport log from 'loglevel';\n\nimport { getBoundedNetworksToAdd } from './add-network-utils';\nimport { getAllRemoteNetworks } from './services';\nimport { findNetworksToUpdate } from './sync-all';\nimport { batchUpdateNetworks, deleteNetwork } from './sync-mutations';\nimport { createUpdateNetworkProps } from './update-network-utils';\nimport type UserStorageController from '../UserStorageController';\nimport type { UserStorageControllerMessenger } from '../UserStorageController';\n\ntype StartNetworkSyncingProps = {\n messenger: UserStorageControllerMessenger;\n getUserStorageControllerInstance: () => UserStorageController;\n isMutationSyncBlocked: () => boolean;\n};\n\ntype PerformMainNetworkSyncProps = {\n messenger: UserStorageControllerMessenger;\n getUserStorageControllerInstance: () => UserStorageController;\n maxNetworksToAdd?: number;\n onNetworkAdded?: (chainId: string) => void;\n onNetworkUpdated?: (chainId: string) => void;\n onNetworkRemoved?: (chainId: string) => void;\n};\n\n/**\n * Global in-mem cache to signify that the network syncing is in progress\n * Ensures that listeners do not fire during main sync (prevent double requests)\n */\n// Exported to help testing\n// eslint-disable-next-line import-x/no-mutable-exports\nexport let isMainNetworkSyncInProgress = false;\n\n/**\n * Initialize and setup events to listen to for network syncing\n * We will be listening to:\n * - Remove Event, to indicate that we need to remote network from remote\n *\n * We will not be listening to:\n * - Add/Update events are not required, as we can sync these during the main sync\n *\n * @param props - parameters used for initializing and enabling network syncing\n */\nexport function startNetworkSyncing(props: StartNetworkSyncingProps) {\n const { messenger, isMutationSyncBlocked, getUserStorageControllerInstance } =\n props;\n try {\n messenger.subscribe(\n 'NetworkController:networkRemoved',\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n async (networkConfiguration) => {\n try {\n // If blocked (e.g. we have not yet performed a main-sync), then we should not perform any mutations\n if (isMutationSyncBlocked()) {\n return;\n }\n\n // As main sync is in progress, it will already local and remote networks\n // So no need to re-process again.\n if (isMainNetworkSyncInProgress) {\n return;\n }\n\n await deleteNetwork(networkConfiguration, {\n getUserStorageControllerInstance,\n });\n } catch {\n // Silently fail sync\n }\n },\n );\n } catch (e) {\n log.warn('NetworkSyncing, event subscription failed', e);\n }\n}\n\n/**\n * method that will dispatch the `NetworkController:updateNetwork` action.\n * transforms and corrects the network configuration (and RPCs) we pass through.\n *\n * @param props - properties\n * @param props.messenger - messenger to call the action\n * @param props.originalNetworkConfiguration - original network config (from network controller state)\n * @param props.newNetworkConfiguration - new network config (from remote)\n * @param props.selectedNetworkClientId - currently selected network client id\n */\nexport const dispatchUpdateNetwork = async (props: {\n messenger: UserStorageControllerMessenger;\n originalNetworkConfiguration: NetworkConfiguration;\n newNetworkConfiguration: NetworkConfiguration;\n selectedNetworkClientId: string;\n}) => {\n const {\n messenger,\n originalNetworkConfiguration,\n newNetworkConfiguration,\n selectedNetworkClientId,\n } = props;\n\n const { updateNetworkFields, newSelectedRpcEndpointIndex } =\n createUpdateNetworkProps({\n originalNetworkConfiguration,\n newNetworkConfiguration,\n selectedNetworkClientId,\n });\n\n await messenger.call(\n 'NetworkController:updateNetwork',\n updateNetworkFields.chainId,\n updateNetworkFields,\n { replacementSelectedRpcEndpointIndex: newSelectedRpcEndpointIndex },\n );\n};\n\n/**\n * Action to perform the main network sync.\n * It will fetch local networks and remote networks, then determines which networks (local and remote) to add/update\n *\n * @param props - parameters used for this main sync\n */\nexport async function performMainNetworkSync(\n props: PerformMainNetworkSyncProps,\n) {\n const {\n messenger,\n maxNetworksToAdd,\n onNetworkAdded,\n onNetworkRemoved,\n onNetworkUpdated,\n getUserStorageControllerInstance,\n } = props;\n\n // Edge-Case, we do not want to re-run the main-sync if it already is in progress\n /* istanbul ignore if - this is not testable */\n if (isMainNetworkSyncInProgress) {\n return;\n }\n\n isMainNetworkSyncInProgress = true;\n try {\n const networkControllerState = messenger.call('NetworkController:getState');\n const localNetworks = Object.values(\n networkControllerState.networkConfigurationsByChainId ?? {},\n );\n\n const remoteNetworks = await getAllRemoteNetworks({\n getUserStorageControllerInstance,\n });\n const networkChanges = findNetworksToUpdate({\n localNetworks,\n remoteNetworks,\n });\n\n log.debug('performMainNetworkSync() - Network Syncing Started', {\n localNetworks,\n remoteNetworks,\n networkChanges,\n });\n\n // Update Remote\n if (\n networkChanges?.remoteNetworksToUpdate &&\n networkChanges.remoteNetworksToUpdate.length > 0\n ) {\n await batchUpdateNetworks(networkChanges?.remoteNetworksToUpdate, {\n getUserStorageControllerInstance,\n });\n }\n\n // Add missing local networks\n const boundedNetworkedToAdd =\n networkChanges?.missingLocalNetworks &&\n getBoundedNetworksToAdd(\n localNetworks,\n networkChanges.missingLocalNetworks,\n maxNetworksToAdd,\n );\n if (boundedNetworkedToAdd && boundedNetworkedToAdd.length > 0) {\n const errors: unknown[] = [];\n boundedNetworkedToAdd.forEach((n) => {\n try {\n messenger.call('NetworkController:addNetwork', n);\n onNetworkAdded?.(n.chainId);\n } catch (e) {\n /* istanbul ignore next - allocates logs, do not need to test */\n errors.push(e);\n // Silently fail, we can try this again on next main sync\n }\n });\n\n /* istanbul ignore if - only logs errors, not useful to test */\n if (errors.length > 0) {\n log.error(\n 'performMainNetworkSync() - NetworkController:addNetwork failures',\n errors,\n );\n }\n }\n\n // Update local networks\n if (\n networkChanges?.localNetworksToUpdate &&\n networkChanges.localNetworksToUpdate.length > 0\n ) {\n const errors: unknown[] = [];\n for (const n of networkChanges.localNetworksToUpdate) {\n try {\n await dispatchUpdateNetwork({\n messenger,\n originalNetworkConfiguration:\n networkControllerState.networkConfigurationsByChainId[n.chainId],\n newNetworkConfiguration: n,\n selectedNetworkClientId:\n networkControllerState.selectedNetworkClientId,\n });\n onNetworkUpdated?.(n.chainId);\n } catch (e) {\n /* istanbul ignore next - allocates logs, do not need to test */\n errors.push(e);\n // Silently fail, we can try this again on next main sync\n }\n }\n\n /* istanbul ignore if - only logs errors, not useful to test */\n if (errors.length > 0) {\n log.error(\n 'performMainNetworkSync() - NetworkController:updateNetwork failed',\n errors,\n );\n }\n }\n\n // Remove local networks\n if (\n networkChanges?.localNetworksToRemove &&\n networkChanges.localNetworksToRemove.length > 0\n ) {\n const errors: unknown[] = [];\n networkChanges.localNetworksToRemove.forEach((n) => {\n try {\n messenger.call('NetworkController:removeNetwork', n.chainId);\n onNetworkRemoved?.(n.chainId);\n } catch (e) {\n /* istanbul ignore next - allocates logs, do not need to test */\n errors.push(e);\n // Silently fail, we can try this again on next main sync\n }\n });\n\n /* istanbul ignore if - only logs errors, not useful to test */\n if (errors.length > 0) {\n log.error(\n 'performMainNetworkSync() - NetworkController:removeNetwork failed',\n errors,\n );\n }\n }\n } catch (e) {\n /* istanbul ignore next - only logs errors, not useful to test */\n log.error('performMainNetworkSync() failed', e);\n // Silently fail sync\n } finally {\n isMainNetworkSyncInProgress = false;\n }\n}\n"]}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.batchUpsertRemoteNetworks = exports.upsertRemoteNetwork = exports.getAllRemoteNetworks = void 0;
4
4
  const storage_schema_1 = require("../../../shared/storage-schema.cjs");
5
- const services_1 = require("../services.cjs");
6
5
  // TODO - parse type, and handle version changes
7
6
  /**
8
7
  * parses the raw remote data to the NetworkConfiguration shape
@@ -24,52 +23,57 @@ const isDefined = (value) => value !== undefined && value !== null;
24
23
  /**
25
24
  * gets all remote networks from user storage
26
25
  *
27
- * @param opts - user storage options/configuration
26
+ * @param serviceOptions - service options
27
+ * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance
28
28
  * @returns array of all remote networks
29
29
  */
30
- async function getAllRemoteNetworks(opts) {
31
- const rawResults = (await (0, services_1.getUserStorageAllFeatureEntries)({
32
- ...opts,
33
- path: storage_schema_1.USER_STORAGE_FEATURE_NAMES.networks,
34
- })) ?? [];
35
- const results = rawResults
36
- .map((rawData) => parseNetworkConfiguration(rawData))
37
- .filter(isDefined);
38
- return results;
30
+ async function getAllRemoteNetworks(serviceOptions) {
31
+ try {
32
+ const rawResults = (await serviceOptions
33
+ .getUserStorageControllerInstance()
34
+ .performGetStorageAllFeatureEntries(storage_schema_1.USER_STORAGE_FEATURE_NAMES.networks)) ?? [];
35
+ const results = rawResults
36
+ .map((rawData) => parseNetworkConfiguration(rawData))
37
+ .filter(isDefined);
38
+ return results;
39
+ }
40
+ catch {
41
+ return [];
42
+ }
39
43
  }
40
44
  exports.getAllRemoteNetworks = getAllRemoteNetworks;
41
45
  /**
42
46
  * Upserts a remote network to user storage
43
47
  *
44
48
  * @param network - network we are updating or inserting
45
- * @param opts - user storage options/configuration
49
+ * @param serviceOptions - service options
50
+ * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance
46
51
  * @returns void
47
52
  */
48
- async function upsertRemoteNetwork(network, opts) {
53
+ async function upsertRemoteNetwork(network, serviceOptions) {
49
54
  const chainId = network.chainId.toString();
50
55
  const data = JSON.stringify(network);
51
- return await (0, services_1.upsertUserStorage)(data, {
52
- ...opts,
53
- path: `networks.${chainId}`,
54
- });
56
+ return await serviceOptions
57
+ .getUserStorageControllerInstance()
58
+ .performSetStorage(`networks.${chainId}`, data);
55
59
  }
56
60
  exports.upsertRemoteNetwork = upsertRemoteNetwork;
57
61
  /**
58
62
  * Batch upsert a list of remote networks into user storage
59
63
  *
60
64
  * @param networks - a list of networks to update or insert
61
- * @param opts - user storage options/configuration
65
+ * @param serviceOptions - service options
66
+ * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance
62
67
  */
63
- async function batchUpsertRemoteNetworks(networks, opts) {
68
+ async function batchUpsertRemoteNetworks(networks, serviceOptions) {
64
69
  const networkPathAndValues = networks.map((n) => {
65
70
  const path = n.chainId;
66
71
  const data = JSON.stringify(n);
67
72
  return [path, data];
68
73
  });
69
- await (0, services_1.batchUpsertUserStorage)(networkPathAndValues, {
70
- path: 'networks',
71
- ...opts,
72
- });
74
+ await serviceOptions
75
+ .getUserStorageControllerInstance()
76
+ .performBatchSetStorage('networks', networkPathAndValues);
73
77
  }
74
78
  exports.batchUpsertRemoteNetworks = batchUpsertRemoteNetworks;
75
79
  //# sourceMappingURL=services.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"services.cjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/services.ts"],"names":[],"mappings":";;;AACA,uEAA4E;AAE5E,8CAIqB;AAErB,gDAAgD;AAChD;;;;;;;GAOG;AACH,SAAS,yBAAyB,CAAC,OAAe;IAChD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA+B,CAAC;KAC1D;IAAC,MAAM;QACN,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,MAAM,SAAS,GAAG,CAAQ,KAA+B,EAAkB,EAAE,CAC3E,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AAExC;;;;;GAKG;AACI,KAAK,UAAU,oBAAoB,CACxC,IAA4B;IAE5B,MAAM,UAAU,GACd,CAAC,MAAM,IAAA,0CAA+B,EAAC;QACrC,GAAG,IAAI;QACP,IAAI,EAAE,2CAA0B,CAAC,QAAQ;KAC1C,CAAC,CAAC,IAAI,EAAE,CAAC;IAEZ,MAAM,OAAO,GAAG,UAAU;SACvB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;SACpD,MAAM,CAAC,SAAS,CAAC,CAAC;IAErB,OAAO,OAAO,CAAC;AACjB,CAAC;AAdD,oDAcC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,mBAAmB,CACvC,OAAmC,EACnC,IAA4B;IAE5B,MAAM,OAAO,GAAW,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,MAAM,IAAA,4BAAiB,EAAC,IAAI,EAAE;QACnC,GAAG,IAAI;QACP,IAAI,EAAE,YAAY,OAAO,EAAE;KAC5B,CAAC,CAAC;AACL,CAAC;AAVD,kDAUC;AAED;;;;;GAKG;AACI,KAAK,UAAU,yBAAyB,CAC7C,QAAsC,EACtC,IAA4B;IAE5B,MAAM,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAqB,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,IAAA,iCAAsB,EAAC,oBAAoB,EAAE;QACjD,IAAI,EAAE,UAAU;QAChB,GAAG,IAAI;KACR,CAAC,CAAC;AACL,CAAC;AAdD,8DAcC","sourcesContent":["import type { RemoteNetworkConfiguration } from './types';\nimport { USER_STORAGE_FEATURE_NAMES } from '../../../shared/storage-schema';\nimport type { UserStorageBaseOptions } from '../services';\nimport {\n batchUpsertUserStorage,\n getUserStorageAllFeatureEntries,\n upsertUserStorage,\n} from '../services';\n\n// TODO - parse type, and handle version changes\n/**\n * parses the raw remote data to the NetworkConfiguration shape\n *\n * @todo - improve parsing instead of asserting\n * @todo - improve version handling\n * @param rawData - raw remote user storage data\n * @returns NetworkConfiguration or undefined if failed to parse\n */\nfunction parseNetworkConfiguration(rawData: string) {\n try {\n return JSON.parse(rawData) as RemoteNetworkConfiguration;\n } catch {\n return undefined;\n }\n}\n\nconst isDefined = <Value>(value: Value | null | undefined): value is Value =>\n value !== undefined && value !== null;\n\n/**\n * gets all remote networks from user storage\n *\n * @param opts - user storage options/configuration\n * @returns array of all remote networks\n */\nexport async function getAllRemoteNetworks(\n opts: UserStorageBaseOptions,\n): Promise<RemoteNetworkConfiguration[]> {\n const rawResults =\n (await getUserStorageAllFeatureEntries({\n ...opts,\n path: USER_STORAGE_FEATURE_NAMES.networks,\n })) ?? [];\n\n const results = rawResults\n .map((rawData) => parseNetworkConfiguration(rawData))\n .filter(isDefined);\n\n return results;\n}\n\n/**\n * Upserts a remote network to user storage\n *\n * @param network - network we are updating or inserting\n * @param opts - user storage options/configuration\n * @returns void\n */\nexport async function upsertRemoteNetwork(\n network: RemoteNetworkConfiguration,\n opts: UserStorageBaseOptions,\n) {\n const chainId: string = network.chainId.toString();\n const data = JSON.stringify(network);\n return await upsertUserStorage(data, {\n ...opts,\n path: `networks.${chainId}`,\n });\n}\n\n/**\n * Batch upsert a list of remote networks into user storage\n *\n * @param networks - a list of networks to update or insert\n * @param opts - user storage options/configuration\n */\nexport async function batchUpsertRemoteNetworks(\n networks: RemoteNetworkConfiguration[],\n opts: UserStorageBaseOptions,\n): Promise<void> {\n const networkPathAndValues = networks.map((n) => {\n const path = n.chainId;\n const data = JSON.stringify(n);\n return [path, data] as [string, string];\n });\n\n await batchUpsertUserStorage(networkPathAndValues, {\n path: 'networks',\n ...opts,\n });\n}\n"]}
1
+ {"version":3,"file":"services.cjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/services.ts"],"names":[],"mappings":";;;AACA,uEAA4E;AAG5E,gDAAgD;AAChD;;;;;;;GAOG;AACH,SAAS,yBAAyB,CAAC,OAAe;IAChD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA+B,CAAC;KAC1D;IAAC,MAAM;QACN,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,MAAM,SAAS,GAAG,CAAQ,KAA+B,EAAkB,EAAE,CAC3E,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AAExC;;;;;;GAMG;AACI,KAAK,UAAU,oBAAoB,CAAC,cAE1C;IACC,IAAI;QACF,MAAM,UAAU,GACd,CAAC,MAAM,cAAc;aAClB,gCAAgC,EAAE;aAClC,kCAAkC,CACjC,2CAA0B,CAAC,QAAQ,CACpC,CAAC,IAAI,EAAE,CAAC;QAEb,MAAM,OAAO,GAAG,UAAU;aACvB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;aACpD,MAAM,CAAC,SAAS,CAAC,CAAC;QAErB,OAAO,OAAO,CAAC;KAChB;IAAC,MAAM;QACN,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAnBD,oDAmBC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,mBAAmB,CACvC,OAAmC,EACnC,cAEC;IAED,MAAM,OAAO,GAAW,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,MAAM,cAAc;SACxB,gCAAgC,EAAE;SAClC,iBAAiB,CAAC,YAAY,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC;AAXD,kDAWC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,yBAAyB,CAC7C,QAAsC,EACtC,cAEC;IAED,MAAM,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAqB,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc;SACjB,gCAAgC,EAAE;SAClC,sBAAsB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;AAC9D,CAAC;AAfD,8DAeC","sourcesContent":["import type { RemoteNetworkConfiguration } from './types';\nimport { USER_STORAGE_FEATURE_NAMES } from '../../../shared/storage-schema';\nimport type UserStorageController from '../UserStorageController';\n\n// TODO - parse type, and handle version changes\n/**\n * parses the raw remote data to the NetworkConfiguration shape\n *\n * @todo - improve parsing instead of asserting\n * @todo - improve version handling\n * @param rawData - raw remote user storage data\n * @returns NetworkConfiguration or undefined if failed to parse\n */\nfunction parseNetworkConfiguration(rawData: string) {\n try {\n return JSON.parse(rawData) as RemoteNetworkConfiguration;\n } catch {\n return undefined;\n }\n}\n\nconst isDefined = <Value>(value: Value | null | undefined): value is Value =>\n value !== undefined && value !== null;\n\n/**\n * gets all remote networks from user storage\n *\n * @param serviceOptions - service options\n * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance\n * @returns array of all remote networks\n */\nexport async function getAllRemoteNetworks(serviceOptions: {\n getUserStorageControllerInstance: () => UserStorageController;\n}): Promise<RemoteNetworkConfiguration[]> {\n try {\n const rawResults =\n (await serviceOptions\n .getUserStorageControllerInstance()\n .performGetStorageAllFeatureEntries(\n USER_STORAGE_FEATURE_NAMES.networks,\n )) ?? [];\n\n const results = rawResults\n .map((rawData) => parseNetworkConfiguration(rawData))\n .filter(isDefined);\n\n return results;\n } catch {\n return [];\n }\n}\n\n/**\n * Upserts a remote network to user storage\n *\n * @param network - network we are updating or inserting\n * @param serviceOptions - service options\n * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance\n * @returns void\n */\nexport async function upsertRemoteNetwork(\n network: RemoteNetworkConfiguration,\n serviceOptions: {\n getUserStorageControllerInstance: () => UserStorageController;\n },\n) {\n const chainId: string = network.chainId.toString();\n const data = JSON.stringify(network);\n return await serviceOptions\n .getUserStorageControllerInstance()\n .performSetStorage(`networks.${chainId}`, data);\n}\n\n/**\n * Batch upsert a list of remote networks into user storage\n *\n * @param networks - a list of networks to update or insert\n * @param serviceOptions - service options\n * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance\n */\nexport async function batchUpsertRemoteNetworks(\n networks: RemoteNetworkConfiguration[],\n serviceOptions: {\n getUserStorageControllerInstance: () => UserStorageController;\n },\n): Promise<void> {\n const networkPathAndValues = networks.map((n) => {\n const path = n.chainId;\n const data = JSON.stringify(n);\n return [path, data] as [string, string];\n });\n\n await serviceOptions\n .getUserStorageControllerInstance()\n .performBatchSetStorage('networks', networkPathAndValues);\n}\n"]}
@@ -1,25 +1,34 @@
1
1
  import type { RemoteNetworkConfiguration } from "./types.cjs";
2
- import type { UserStorageBaseOptions } from "../services.cjs";
2
+ import type UserStorageController from "../UserStorageController.cjs";
3
3
  /**
4
4
  * gets all remote networks from user storage
5
5
  *
6
- * @param opts - user storage options/configuration
6
+ * @param serviceOptions - service options
7
+ * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance
7
8
  * @returns array of all remote networks
8
9
  */
9
- export declare function getAllRemoteNetworks(opts: UserStorageBaseOptions): Promise<RemoteNetworkConfiguration[]>;
10
+ export declare function getAllRemoteNetworks(serviceOptions: {
11
+ getUserStorageControllerInstance: () => UserStorageController;
12
+ }): Promise<RemoteNetworkConfiguration[]>;
10
13
  /**
11
14
  * Upserts a remote network to user storage
12
15
  *
13
16
  * @param network - network we are updating or inserting
14
- * @param opts - user storage options/configuration
17
+ * @param serviceOptions - service options
18
+ * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance
15
19
  * @returns void
16
20
  */
17
- export declare function upsertRemoteNetwork(network: RemoteNetworkConfiguration, opts: UserStorageBaseOptions): Promise<void>;
21
+ export declare function upsertRemoteNetwork(network: RemoteNetworkConfiguration, serviceOptions: {
22
+ getUserStorageControllerInstance: () => UserStorageController;
23
+ }): Promise<void>;
18
24
  /**
19
25
  * Batch upsert a list of remote networks into user storage
20
26
  *
21
27
  * @param networks - a list of networks to update or insert
22
- * @param opts - user storage options/configuration
28
+ * @param serviceOptions - service options
29
+ * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance
23
30
  */
24
- export declare function batchUpsertRemoteNetworks(networks: RemoteNetworkConfiguration[], opts: UserStorageBaseOptions): Promise<void>;
31
+ export declare function batchUpsertRemoteNetworks(networks: RemoteNetworkConfiguration[], serviceOptions: {
32
+ getUserStorageControllerInstance: () => UserStorageController;
33
+ }): Promise<void>;
25
34
  //# sourceMappingURL=services.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.cts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,oBAAgB;AAE1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAoB;AA2B1D;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAYvC;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,EACnC,IAAI,EAAE,sBAAsB,iBAQ7B;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAWf"}
1
+ {"version":3,"file":"services.d.cts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,oBAAgB;AAE1D,OAAO,KAAK,qBAAqB,qCAAiC;AAsBlE;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,cAAc,EAAE;IACzD,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAiBxC;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,EACnC,cAAc,EAAE;IACd,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,iBAOF;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,cAAc,EAAE;IACd,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,GACA,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -1,25 +1,34 @@
1
1
  import type { RemoteNetworkConfiguration } from "./types.mjs";
2
- import type { UserStorageBaseOptions } from "../services.mjs";
2
+ import type UserStorageController from "../UserStorageController.mjs";
3
3
  /**
4
4
  * gets all remote networks from user storage
5
5
  *
6
- * @param opts - user storage options/configuration
6
+ * @param serviceOptions - service options
7
+ * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance
7
8
  * @returns array of all remote networks
8
9
  */
9
- export declare function getAllRemoteNetworks(opts: UserStorageBaseOptions): Promise<RemoteNetworkConfiguration[]>;
10
+ export declare function getAllRemoteNetworks(serviceOptions: {
11
+ getUserStorageControllerInstance: () => UserStorageController;
12
+ }): Promise<RemoteNetworkConfiguration[]>;
10
13
  /**
11
14
  * Upserts a remote network to user storage
12
15
  *
13
16
  * @param network - network we are updating or inserting
14
- * @param opts - user storage options/configuration
17
+ * @param serviceOptions - service options
18
+ * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance
15
19
  * @returns void
16
20
  */
17
- export declare function upsertRemoteNetwork(network: RemoteNetworkConfiguration, opts: UserStorageBaseOptions): Promise<void>;
21
+ export declare function upsertRemoteNetwork(network: RemoteNetworkConfiguration, serviceOptions: {
22
+ getUserStorageControllerInstance: () => UserStorageController;
23
+ }): Promise<void>;
18
24
  /**
19
25
  * Batch upsert a list of remote networks into user storage
20
26
  *
21
27
  * @param networks - a list of networks to update or insert
22
- * @param opts - user storage options/configuration
28
+ * @param serviceOptions - service options
29
+ * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance
23
30
  */
24
- export declare function batchUpsertRemoteNetworks(networks: RemoteNetworkConfiguration[], opts: UserStorageBaseOptions): Promise<void>;
31
+ export declare function batchUpsertRemoteNetworks(networks: RemoteNetworkConfiguration[], serviceOptions: {
32
+ getUserStorageControllerInstance: () => UserStorageController;
33
+ }): Promise<void>;
25
34
  //# sourceMappingURL=services.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.mts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,oBAAgB;AAE1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAoB;AA2B1D;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAYvC;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,EACnC,IAAI,EAAE,sBAAsB,iBAQ7B;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAWf"}
1
+ {"version":3,"file":"services.d.mts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,oBAAgB;AAE1D,OAAO,KAAK,qBAAqB,qCAAiC;AAsBlE;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,cAAc,EAAE;IACzD,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAiBxC;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,EACnC,cAAc,EAAE;IACd,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,iBAOF;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,cAAc,EAAE;IACd,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,GACA,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -1,5 +1,4 @@
1
1
  import { USER_STORAGE_FEATURE_NAMES } from "../../../shared/storage-schema.mjs";
2
- import { batchUpsertUserStorage, getUserStorageAllFeatureEntries, upsertUserStorage } from "../services.mjs";
3
2
  // TODO - parse type, and handle version changes
4
3
  /**
5
4
  * parses the raw remote data to the NetworkConfiguration shape
@@ -21,49 +20,54 @@ const isDefined = (value) => value !== undefined && value !== null;
21
20
  /**
22
21
  * gets all remote networks from user storage
23
22
  *
24
- * @param opts - user storage options/configuration
23
+ * @param serviceOptions - service options
24
+ * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance
25
25
  * @returns array of all remote networks
26
26
  */
27
- export async function getAllRemoteNetworks(opts) {
28
- const rawResults = (await getUserStorageAllFeatureEntries({
29
- ...opts,
30
- path: USER_STORAGE_FEATURE_NAMES.networks,
31
- })) ?? [];
32
- const results = rawResults
33
- .map((rawData) => parseNetworkConfiguration(rawData))
34
- .filter(isDefined);
35
- return results;
27
+ export async function getAllRemoteNetworks(serviceOptions) {
28
+ try {
29
+ const rawResults = (await serviceOptions
30
+ .getUserStorageControllerInstance()
31
+ .performGetStorageAllFeatureEntries(USER_STORAGE_FEATURE_NAMES.networks)) ?? [];
32
+ const results = rawResults
33
+ .map((rawData) => parseNetworkConfiguration(rawData))
34
+ .filter(isDefined);
35
+ return results;
36
+ }
37
+ catch {
38
+ return [];
39
+ }
36
40
  }
37
41
  /**
38
42
  * Upserts a remote network to user storage
39
43
  *
40
44
  * @param network - network we are updating or inserting
41
- * @param opts - user storage options/configuration
45
+ * @param serviceOptions - service options
46
+ * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance
42
47
  * @returns void
43
48
  */
44
- export async function upsertRemoteNetwork(network, opts) {
49
+ export async function upsertRemoteNetwork(network, serviceOptions) {
45
50
  const chainId = network.chainId.toString();
46
51
  const data = JSON.stringify(network);
47
- return await upsertUserStorage(data, {
48
- ...opts,
49
- path: `networks.${chainId}`,
50
- });
52
+ return await serviceOptions
53
+ .getUserStorageControllerInstance()
54
+ .performSetStorage(`networks.${chainId}`, data);
51
55
  }
52
56
  /**
53
57
  * Batch upsert a list of remote networks into user storage
54
58
  *
55
59
  * @param networks - a list of networks to update or insert
56
- * @param opts - user storage options/configuration
60
+ * @param serviceOptions - service options
61
+ * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance
57
62
  */
58
- export async function batchUpsertRemoteNetworks(networks, opts) {
63
+ export async function batchUpsertRemoteNetworks(networks, serviceOptions) {
59
64
  const networkPathAndValues = networks.map((n) => {
60
65
  const path = n.chainId;
61
66
  const data = JSON.stringify(n);
62
67
  return [path, data];
63
68
  });
64
- await batchUpsertUserStorage(networkPathAndValues, {
65
- path: 'networks',
66
- ...opts,
67
- });
69
+ await serviceOptions
70
+ .getUserStorageControllerInstance()
71
+ .performBatchSetStorage('networks', networkPathAndValues);
68
72
  }
69
73
  //# sourceMappingURL=services.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"services.mjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/services.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,2CAAuC;AAE5E,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,iBAAiB,EAClB,wBAAoB;AAErB,gDAAgD;AAChD;;;;;;;GAOG;AACH,SAAS,yBAAyB,CAAC,OAAe;IAChD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA+B,CAAC;KAC1D;IAAC,MAAM;QACN,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,MAAM,SAAS,GAAG,CAAQ,KAA+B,EAAkB,EAAE,CAC3E,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AAExC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAA4B;IAE5B,MAAM,UAAU,GACd,CAAC,MAAM,+BAA+B,CAAC;QACrC,GAAG,IAAI;QACP,IAAI,EAAE,0BAA0B,CAAC,QAAQ;KAC1C,CAAC,CAAC,IAAI,EAAE,CAAC;IAEZ,MAAM,OAAO,GAAG,UAAU;SACvB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;SACpD,MAAM,CAAC,SAAS,CAAC,CAAC;IAErB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAmC,EACnC,IAA4B;IAE5B,MAAM,OAAO,GAAW,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,MAAM,iBAAiB,CAAC,IAAI,EAAE;QACnC,GAAG,IAAI;QACP,IAAI,EAAE,YAAY,OAAO,EAAE;KAC5B,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,QAAsC,EACtC,IAA4B;IAE5B,MAAM,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAqB,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,CAAC,oBAAoB,EAAE;QACjD,IAAI,EAAE,UAAU;QAChB,GAAG,IAAI;KACR,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { RemoteNetworkConfiguration } from './types';\nimport { USER_STORAGE_FEATURE_NAMES } from '../../../shared/storage-schema';\nimport type { UserStorageBaseOptions } from '../services';\nimport {\n batchUpsertUserStorage,\n getUserStorageAllFeatureEntries,\n upsertUserStorage,\n} from '../services';\n\n// TODO - parse type, and handle version changes\n/**\n * parses the raw remote data to the NetworkConfiguration shape\n *\n * @todo - improve parsing instead of asserting\n * @todo - improve version handling\n * @param rawData - raw remote user storage data\n * @returns NetworkConfiguration or undefined if failed to parse\n */\nfunction parseNetworkConfiguration(rawData: string) {\n try {\n return JSON.parse(rawData) as RemoteNetworkConfiguration;\n } catch {\n return undefined;\n }\n}\n\nconst isDefined = <Value>(value: Value | null | undefined): value is Value =>\n value !== undefined && value !== null;\n\n/**\n * gets all remote networks from user storage\n *\n * @param opts - user storage options/configuration\n * @returns array of all remote networks\n */\nexport async function getAllRemoteNetworks(\n opts: UserStorageBaseOptions,\n): Promise<RemoteNetworkConfiguration[]> {\n const rawResults =\n (await getUserStorageAllFeatureEntries({\n ...opts,\n path: USER_STORAGE_FEATURE_NAMES.networks,\n })) ?? [];\n\n const results = rawResults\n .map((rawData) => parseNetworkConfiguration(rawData))\n .filter(isDefined);\n\n return results;\n}\n\n/**\n * Upserts a remote network to user storage\n *\n * @param network - network we are updating or inserting\n * @param opts - user storage options/configuration\n * @returns void\n */\nexport async function upsertRemoteNetwork(\n network: RemoteNetworkConfiguration,\n opts: UserStorageBaseOptions,\n) {\n const chainId: string = network.chainId.toString();\n const data = JSON.stringify(network);\n return await upsertUserStorage(data, {\n ...opts,\n path: `networks.${chainId}`,\n });\n}\n\n/**\n * Batch upsert a list of remote networks into user storage\n *\n * @param networks - a list of networks to update or insert\n * @param opts - user storage options/configuration\n */\nexport async function batchUpsertRemoteNetworks(\n networks: RemoteNetworkConfiguration[],\n opts: UserStorageBaseOptions,\n): Promise<void> {\n const networkPathAndValues = networks.map((n) => {\n const path = n.chainId;\n const data = JSON.stringify(n);\n return [path, data] as [string, string];\n });\n\n await batchUpsertUserStorage(networkPathAndValues, {\n path: 'networks',\n ...opts,\n });\n}\n"]}
1
+ {"version":3,"file":"services.mjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/services.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,2CAAuC;AAG5E,gDAAgD;AAChD;;;;;;;GAOG;AACH,SAAS,yBAAyB,CAAC,OAAe;IAChD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA+B,CAAC;KAC1D;IAAC,MAAM;QACN,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,MAAM,SAAS,GAAG,CAAQ,KAA+B,EAAkB,EAAE,CAC3E,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,cAE1C;IACC,IAAI;QACF,MAAM,UAAU,GACd,CAAC,MAAM,cAAc;aAClB,gCAAgC,EAAE;aAClC,kCAAkC,CACjC,0BAA0B,CAAC,QAAQ,CACpC,CAAC,IAAI,EAAE,CAAC;QAEb,MAAM,OAAO,GAAG,UAAU;aACvB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;aACpD,MAAM,CAAC,SAAS,CAAC,CAAC;QAErB,OAAO,OAAO,CAAC;KAChB;IAAC,MAAM;QACN,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAmC,EACnC,cAEC;IAED,MAAM,OAAO,GAAW,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,MAAM,cAAc;SACxB,gCAAgC,EAAE;SAClC,iBAAiB,CAAC,YAAY,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,QAAsC,EACtC,cAEC;IAED,MAAM,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAqB,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc;SACjB,gCAAgC,EAAE;SAClC,sBAAsB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;AAC9D,CAAC","sourcesContent":["import type { RemoteNetworkConfiguration } from './types';\nimport { USER_STORAGE_FEATURE_NAMES } from '../../../shared/storage-schema';\nimport type UserStorageController from '../UserStorageController';\n\n// TODO - parse type, and handle version changes\n/**\n * parses the raw remote data to the NetworkConfiguration shape\n *\n * @todo - improve parsing instead of asserting\n * @todo - improve version handling\n * @param rawData - raw remote user storage data\n * @returns NetworkConfiguration or undefined if failed to parse\n */\nfunction parseNetworkConfiguration(rawData: string) {\n try {\n return JSON.parse(rawData) as RemoteNetworkConfiguration;\n } catch {\n return undefined;\n }\n}\n\nconst isDefined = <Value>(value: Value | null | undefined): value is Value =>\n value !== undefined && value !== null;\n\n/**\n * gets all remote networks from user storage\n *\n * @param serviceOptions - service options\n * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance\n * @returns array of all remote networks\n */\nexport async function getAllRemoteNetworks(serviceOptions: {\n getUserStorageControllerInstance: () => UserStorageController;\n}): Promise<RemoteNetworkConfiguration[]> {\n try {\n const rawResults =\n (await serviceOptions\n .getUserStorageControllerInstance()\n .performGetStorageAllFeatureEntries(\n USER_STORAGE_FEATURE_NAMES.networks,\n )) ?? [];\n\n const results = rawResults\n .map((rawData) => parseNetworkConfiguration(rawData))\n .filter(isDefined);\n\n return results;\n } catch {\n return [];\n }\n}\n\n/**\n * Upserts a remote network to user storage\n *\n * @param network - network we are updating or inserting\n * @param serviceOptions - service options\n * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance\n * @returns void\n */\nexport async function upsertRemoteNetwork(\n network: RemoteNetworkConfiguration,\n serviceOptions: {\n getUserStorageControllerInstance: () => UserStorageController;\n },\n) {\n const chainId: string = network.chainId.toString();\n const data = JSON.stringify(network);\n return await serviceOptions\n .getUserStorageControllerInstance()\n .performSetStorage(`networks.${chainId}`, data);\n}\n\n/**\n * Batch upsert a list of remote networks into user storage\n *\n * @param networks - a list of networks to update or insert\n * @param serviceOptions - service options\n * @param serviceOptions.getUserStorageControllerInstance - function to get the user storage controller instance\n */\nexport async function batchUpsertRemoteNetworks(\n networks: RemoteNetworkConfiguration[],\n serviceOptions: {\n getUserStorageControllerInstance: () => UserStorageController;\n },\n): Promise<void> {\n const networkPathAndValues = networks.map((n) => {\n const path = n.chainId;\n const data = JSON.stringify(n);\n return [path, data] as [string, string];\n });\n\n await serviceOptions\n .getUserStorageControllerInstance()\n .performBatchSetStorage('networks', networkPathAndValues);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sync-mutations.cjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-mutations.ts"],"names":[],"mappings":";;;AAEA,6CAA4E;AAIrE,MAAM,aAAa,GAAG,KAAK,EAChC,OAA6B,EAC7B,IAA4B,EAC5B,EAAE;IACF,OAAO,MAAM,IAAA,8BAAmB,EAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;AAC3E,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB;AAEW,QAAA,UAAU,GAAG,qBAAa,CAAC;AAEjC,MAAM,aAAa,GAAG,KAAK,EAChC,OAA6B,EAC7B,IAA4B,EAC5B,EAAE;IACF,gFAAgF;IAChF,OAAO,MAAM,IAAA,8BAAmB,EAC9B;QACE,CAAC,EAAE,GAAG;QACN,GAAG,OAAO;QACV,CAAC,EAAE,IAAI;QACP,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,gDAAgD;KAC5E,EACD,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,aAAa,iBAcxB;AAEK,MAAM,mBAAmB,GAAG,KAAK,EACtC,QAA0D,EAC1D,IAA4B,EAC5B,EAAE;IACF,MAAM,cAAc,GAAiC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC,EAAE,GAAG;QACN,GAAG,CAAC;KACL,CAAC,CAAC,CAAC;IACJ,OAAO,MAAM,IAAA,oCAAyB,EAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC,CAAC;AATW,QAAA,mBAAmB,uBAS9B","sourcesContent":["import type { NetworkConfiguration } from '@metamask/network-controller';\n\nimport { batchUpsertRemoteNetworks, upsertRemoteNetwork } from './services';\nimport type { RemoteNetworkConfiguration } from './types';\nimport type { UserStorageBaseOptions } from '../services';\n\nexport const updateNetwork = async (\n network: NetworkConfiguration,\n opts: UserStorageBaseOptions,\n) => {\n return await upsertRemoteNetwork({ v: '1', ...network, d: false }, opts);\n};\n\nexport const addNetwork = updateNetwork;\n\nexport const deleteNetwork = async (\n network: NetworkConfiguration,\n opts: UserStorageBaseOptions,\n) => {\n // we are soft deleting, as we need to consider devices that have not yet synced\n return await upsertRemoteNetwork(\n {\n v: '1',\n ...network,\n d: true,\n lastUpdatedAt: Date.now(), // Ensures that a deleted entry has a date field\n },\n opts,\n );\n};\n\nexport const batchUpdateNetworks = async (\n networks: (NetworkConfiguration & { deleted?: boolean })[],\n opts: UserStorageBaseOptions,\n) => {\n const remoteNetworks: RemoteNetworkConfiguration[] = networks.map((n) => ({\n v: '1',\n ...n,\n }));\n return await batchUpsertRemoteNetworks(remoteNetworks, opts);\n};\n"]}
1
+ {"version":3,"file":"sync-mutations.cjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-mutations.ts"],"names":[],"mappings":";;;AAEA,6CAA4E;AAIrE,MAAM,aAAa,GAAG,KAAK,EAChC,OAA6B,EAC7B,IAEC,EACD,EAAE;IACF,OAAO,MAAM,IAAA,8BAAmB,EAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;AAC3E,CAAC,CAAC;AAPW,QAAA,aAAa,iBAOxB;AAEW,QAAA,UAAU,GAAG,qBAAa,CAAC;AAEjC,MAAM,aAAa,GAAG,KAAK,EAChC,OAA6B,EAC7B,IAEC,EACD,EAAE;IACF,gFAAgF;IAChF,OAAO,MAAM,IAAA,8BAAmB,EAC9B;QACE,CAAC,EAAE,GAAG;QACN,GAAG,OAAO;QACV,CAAC,EAAE,IAAI;QACP,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,gDAAgD;KAC5E,EACD,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB;AAEK,MAAM,mBAAmB,GAAG,KAAK,EACtC,QAA0D,EAC1D,IAEC,EACD,EAAE;IACF,MAAM,cAAc,GAAiC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC,EAAE,GAAG;QACN,GAAG,CAAC;KACL,CAAC,CAAC,CAAC;IACJ,OAAO,MAAM,IAAA,oCAAyB,EAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC,CAAC;AAXW,QAAA,mBAAmB,uBAW9B","sourcesContent":["import type { NetworkConfiguration } from '@metamask/network-controller';\n\nimport { batchUpsertRemoteNetworks, upsertRemoteNetwork } from './services';\nimport type { RemoteNetworkConfiguration } from './types';\nimport type UserStorageController from '../UserStorageController';\n\nexport const updateNetwork = async (\n network: NetworkConfiguration,\n opts: {\n getUserStorageControllerInstance: () => UserStorageController;\n },\n) => {\n return await upsertRemoteNetwork({ v: '1', ...network, d: false }, opts);\n};\n\nexport const addNetwork = updateNetwork;\n\nexport const deleteNetwork = async (\n network: NetworkConfiguration,\n opts: {\n getUserStorageControllerInstance: () => UserStorageController;\n },\n) => {\n // we are soft deleting, as we need to consider devices that have not yet synced\n return await upsertRemoteNetwork(\n {\n v: '1',\n ...network,\n d: true,\n lastUpdatedAt: Date.now(), // Ensures that a deleted entry has a date field\n },\n opts,\n );\n};\n\nexport const batchUpdateNetworks = async (\n networks: (NetworkConfiguration & { deleted?: boolean })[],\n opts: {\n getUserStorageControllerInstance: () => UserStorageController;\n },\n) => {\n const remoteNetworks: RemoteNetworkConfiguration[] = networks.map((n) => ({\n v: '1',\n ...n,\n }));\n return await batchUpsertRemoteNetworks(remoteNetworks, opts);\n};\n"]}
@@ -1,9 +1,17 @@
1
1
  import type { NetworkConfiguration } from "@metamask/network-controller";
2
- import type { UserStorageBaseOptions } from "../services.cjs";
3
- export declare const updateNetwork: (network: NetworkConfiguration, opts: UserStorageBaseOptions) => Promise<void>;
4
- export declare const addNetwork: (network: NetworkConfiguration, opts: UserStorageBaseOptions) => Promise<void>;
5
- export declare const deleteNetwork: (network: NetworkConfiguration, opts: UserStorageBaseOptions) => Promise<void>;
2
+ import type UserStorageController from "../UserStorageController.cjs";
3
+ export declare const updateNetwork: (network: NetworkConfiguration, opts: {
4
+ getUserStorageControllerInstance: () => UserStorageController;
5
+ }) => Promise<void>;
6
+ export declare const addNetwork: (network: NetworkConfiguration, opts: {
7
+ getUserStorageControllerInstance: () => UserStorageController;
8
+ }) => Promise<void>;
9
+ export declare const deleteNetwork: (network: NetworkConfiguration, opts: {
10
+ getUserStorageControllerInstance: () => UserStorageController;
11
+ }) => Promise<void>;
6
12
  export declare const batchUpdateNetworks: (networks: (NetworkConfiguration & {
7
13
  deleted?: boolean;
8
- })[], opts: UserStorageBaseOptions) => Promise<void>;
14
+ })[], opts: {
15
+ getUserStorageControllerInstance: () => UserStorageController;
16
+ }) => Promise<void>;
9
17
  //# sourceMappingURL=sync-mutations.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-mutations.d.cts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-mutations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qCAAqC;AAIzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAoB;AAE1D,eAAO,MAAM,aAAa,YACf,oBAAoB,QACvB,sBAAsB,kBAG7B,CAAC;AAEF,eAAO,MAAM,UAAU,YANZ,oBAAoB,QACvB,sBAAsB,kBAKS,CAAC;AAExC,eAAO,MAAM,aAAa,YACf,oBAAoB,QACvB,sBAAsB,kBAY7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,CAAC,oBAAoB,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EAAE,QACpD,sBAAsB,kBAO7B,CAAC"}
1
+ {"version":3,"file":"sync-mutations.d.cts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-mutations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qCAAqC;AAIzE,OAAO,KAAK,qBAAqB,qCAAiC;AAElE,eAAO,MAAM,aAAa,YACf,oBAAoB,QACvB;IACJ,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,kBAGF,CAAC;AAEF,eAAO,MAAM,UAAU,YARZ,oBAAoB,QACvB;IACJ,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,kBAKoC,CAAC;AAExC,eAAO,MAAM,aAAa,YACf,oBAAoB,QACvB;IACJ,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,kBAYF,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,CAAC,oBAAoB,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EAAE,QACpD;IACJ,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,kBAOF,CAAC"}
@@ -1,9 +1,17 @@
1
1
  import type { NetworkConfiguration } from "@metamask/network-controller";
2
- import type { UserStorageBaseOptions } from "../services.mjs";
3
- export declare const updateNetwork: (network: NetworkConfiguration, opts: UserStorageBaseOptions) => Promise<void>;
4
- export declare const addNetwork: (network: NetworkConfiguration, opts: UserStorageBaseOptions) => Promise<void>;
5
- export declare const deleteNetwork: (network: NetworkConfiguration, opts: UserStorageBaseOptions) => Promise<void>;
2
+ import type UserStorageController from "../UserStorageController.mjs";
3
+ export declare const updateNetwork: (network: NetworkConfiguration, opts: {
4
+ getUserStorageControllerInstance: () => UserStorageController;
5
+ }) => Promise<void>;
6
+ export declare const addNetwork: (network: NetworkConfiguration, opts: {
7
+ getUserStorageControllerInstance: () => UserStorageController;
8
+ }) => Promise<void>;
9
+ export declare const deleteNetwork: (network: NetworkConfiguration, opts: {
10
+ getUserStorageControllerInstance: () => UserStorageController;
11
+ }) => Promise<void>;
6
12
  export declare const batchUpdateNetworks: (networks: (NetworkConfiguration & {
7
13
  deleted?: boolean;
8
- })[], opts: UserStorageBaseOptions) => Promise<void>;
14
+ })[], opts: {
15
+ getUserStorageControllerInstance: () => UserStorageController;
16
+ }) => Promise<void>;
9
17
  //# sourceMappingURL=sync-mutations.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-mutations.d.mts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-mutations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qCAAqC;AAIzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAoB;AAE1D,eAAO,MAAM,aAAa,YACf,oBAAoB,QACvB,sBAAsB,kBAG7B,CAAC;AAEF,eAAO,MAAM,UAAU,YANZ,oBAAoB,QACvB,sBAAsB,kBAKS,CAAC;AAExC,eAAO,MAAM,aAAa,YACf,oBAAoB,QACvB,sBAAsB,kBAY7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,CAAC,oBAAoB,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EAAE,QACpD,sBAAsB,kBAO7B,CAAC"}
1
+ {"version":3,"file":"sync-mutations.d.mts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-mutations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qCAAqC;AAIzE,OAAO,KAAK,qBAAqB,qCAAiC;AAElE,eAAO,MAAM,aAAa,YACf,oBAAoB,QACvB;IACJ,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,kBAGF,CAAC;AAEF,eAAO,MAAM,UAAU,YARZ,oBAAoB,QACvB;IACJ,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,kBAKoC,CAAC;AAExC,eAAO,MAAM,aAAa,YACf,oBAAoB,QACvB;IACJ,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,kBAYF,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,CAAC,oBAAoB,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EAAE,QACpD;IACJ,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;CAC/D,kBAOF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync-mutations.mjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-mutations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,uBAAmB;AAI5E,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,OAA6B,EAC7B,IAA4B,EAC5B,EAAE;IACF,OAAO,MAAM,mBAAmB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,OAA6B,EAC7B,IAA4B,EAC5B,EAAE;IACF,gFAAgF;IAChF,OAAO,MAAM,mBAAmB,CAC9B;QACE,CAAC,EAAE,GAAG;QACN,GAAG,OAAO;QACV,CAAC,EAAE,IAAI;QACP,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,gDAAgD;KAC5E,EACD,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,QAA0D,EAC1D,IAA4B,EAC5B,EAAE;IACF,MAAM,cAAc,GAAiC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC,EAAE,GAAG;QACN,GAAG,CAAC;KACL,CAAC,CAAC,CAAC;IACJ,OAAO,MAAM,yBAAyB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC,CAAC","sourcesContent":["import type { NetworkConfiguration } from '@metamask/network-controller';\n\nimport { batchUpsertRemoteNetworks, upsertRemoteNetwork } from './services';\nimport type { RemoteNetworkConfiguration } from './types';\nimport type { UserStorageBaseOptions } from '../services';\n\nexport const updateNetwork = async (\n network: NetworkConfiguration,\n opts: UserStorageBaseOptions,\n) => {\n return await upsertRemoteNetwork({ v: '1', ...network, d: false }, opts);\n};\n\nexport const addNetwork = updateNetwork;\n\nexport const deleteNetwork = async (\n network: NetworkConfiguration,\n opts: UserStorageBaseOptions,\n) => {\n // we are soft deleting, as we need to consider devices that have not yet synced\n return await upsertRemoteNetwork(\n {\n v: '1',\n ...network,\n d: true,\n lastUpdatedAt: Date.now(), // Ensures that a deleted entry has a date field\n },\n opts,\n );\n};\n\nexport const batchUpdateNetworks = async (\n networks: (NetworkConfiguration & { deleted?: boolean })[],\n opts: UserStorageBaseOptions,\n) => {\n const remoteNetworks: RemoteNetworkConfiguration[] = networks.map((n) => ({\n v: '1',\n ...n,\n }));\n return await batchUpsertRemoteNetworks(remoteNetworks, opts);\n};\n"]}
1
+ {"version":3,"file":"sync-mutations.mjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-mutations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,uBAAmB;AAI5E,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,OAA6B,EAC7B,IAEC,EACD,EAAE;IACF,OAAO,MAAM,mBAAmB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,OAA6B,EAC7B,IAEC,EACD,EAAE;IACF,gFAAgF;IAChF,OAAO,MAAM,mBAAmB,CAC9B;QACE,CAAC,EAAE,GAAG;QACN,GAAG,OAAO;QACV,CAAC,EAAE,IAAI;QACP,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,gDAAgD;KAC5E,EACD,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,QAA0D,EAC1D,IAEC,EACD,EAAE;IACF,MAAM,cAAc,GAAiC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC,EAAE,GAAG;QACN,GAAG,CAAC;KACL,CAAC,CAAC,CAAC;IACJ,OAAO,MAAM,yBAAyB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC,CAAC","sourcesContent":["import type { NetworkConfiguration } from '@metamask/network-controller';\n\nimport { batchUpsertRemoteNetworks, upsertRemoteNetwork } from './services';\nimport type { RemoteNetworkConfiguration } from './types';\nimport type UserStorageController from '../UserStorageController';\n\nexport const updateNetwork = async (\n network: NetworkConfiguration,\n opts: {\n getUserStorageControllerInstance: () => UserStorageController;\n },\n) => {\n return await upsertRemoteNetwork({ v: '1', ...network, d: false }, opts);\n};\n\nexport const addNetwork = updateNetwork;\n\nexport const deleteNetwork = async (\n network: NetworkConfiguration,\n opts: {\n getUserStorageControllerInstance: () => UserStorageController;\n },\n) => {\n // we are soft deleting, as we need to consider devices that have not yet synced\n return await upsertRemoteNetwork(\n {\n v: '1',\n ...network,\n d: true,\n lastUpdatedAt: Date.now(), // Ensures that a deleted entry has a date field\n },\n opts,\n );\n};\n\nexport const batchUpdateNetworks = async (\n networks: (NetworkConfiguration & { deleted?: boolean })[],\n opts: {\n getUserStorageControllerInstance: () => UserStorageController;\n },\n) => {\n const remoteNetworks: RemoteNetworkConfiguration[] = networks.map((n) => ({\n v: '1',\n ...n,\n }));\n return await batchUpsertRemoteNetworks(remoteNetworks, opts);\n};\n"]}