@metamask/profile-sync-controller 0.4.0 → 0.6.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.
- package/CHANGELOG.md +54 -1
- package/dist/controllers/authentication/AuthenticationController.cjs +211 -0
- package/dist/controllers/authentication/AuthenticationController.cjs.map +1 -0
- package/dist/{types/controllers/authentication/AuthenticationController.d.ts → controllers/authentication/AuthenticationController.d.cts} +5 -5
- package/dist/controllers/authentication/AuthenticationController.d.cts.map +1 -0
- package/dist/controllers/authentication/AuthenticationController.d.mts +78 -0
- package/dist/controllers/authentication/AuthenticationController.d.mts.map +1 -0
- package/dist/controllers/authentication/AuthenticationController.mjs +206 -11
- package/dist/controllers/authentication/AuthenticationController.mjs.map +1 -1
- package/dist/controllers/authentication/__fixtures__/index.cjs +18 -0
- package/dist/controllers/authentication/__fixtures__/index.cjs.map +1 -0
- package/dist/controllers/authentication/__fixtures__/index.d.cts +2 -0
- package/dist/controllers/authentication/__fixtures__/index.d.cts.map +1 -0
- package/dist/controllers/authentication/__fixtures__/index.d.mts +2 -0
- package/dist/controllers/authentication/__fixtures__/index.d.mts.map +1 -0
- package/dist/controllers/authentication/__fixtures__/index.mjs +2 -0
- package/dist/controllers/authentication/__fixtures__/index.mjs.map +1 -0
- package/dist/controllers/authentication/__fixtures__/mockResponses.cjs +52 -0
- package/dist/controllers/authentication/__fixtures__/mockResponses.cjs.map +1 -0
- package/dist/{types/controllers/authentication/__fixtures__/mockResponses.d.ts → controllers/authentication/__fixtures__/mockResponses.d.cts} +2 -2
- package/dist/controllers/authentication/__fixtures__/mockResponses.d.cts.map +1 -0
- package/dist/controllers/authentication/__fixtures__/mockResponses.d.mts +23 -0
- package/dist/controllers/authentication/__fixtures__/mockResponses.d.mts.map +1 -0
- package/dist/controllers/authentication/__fixtures__/mockResponses.mjs +46 -0
- package/dist/controllers/authentication/__fixtures__/mockResponses.mjs.map +1 -0
- package/dist/controllers/authentication/__fixtures__/mockServices.cjs +37 -0
- package/dist/controllers/authentication/__fixtures__/mockServices.cjs.map +1 -0
- package/dist/{types/controllers/authentication/__fixtures__/mockServices.d.ts → controllers/authentication/__fixtures__/mockServices.d.cts} +2 -2
- package/dist/controllers/authentication/__fixtures__/mockServices.d.cts.map +1 -0
- package/dist/controllers/authentication/__fixtures__/mockServices.d.mts +10 -0
- package/dist/controllers/authentication/__fixtures__/mockServices.d.mts.map +1 -0
- package/dist/controllers/authentication/__fixtures__/mockServices.mjs +35 -0
- package/dist/controllers/authentication/__fixtures__/mockServices.mjs.map +1 -0
- package/dist/controllers/authentication/auth-snap-requests.cjs +39 -0
- package/dist/controllers/authentication/auth-snap-requests.cjs.map +1 -0
- package/dist/{types/controllers/authentication/auth-snap-requests.d.ts → controllers/authentication/auth-snap-requests.d.cts} +2 -2
- package/dist/controllers/authentication/auth-snap-requests.d.cts.map +1 -0
- package/dist/controllers/authentication/auth-snap-requests.d.mts +17 -0
- package/dist/controllers/authentication/auth-snap-requests.d.mts.map +1 -0
- package/dist/controllers/authentication/auth-snap-requests.mjs +33 -9
- package/dist/controllers/authentication/auth-snap-requests.mjs.map +1 -1
- package/dist/controllers/authentication/index.cjs +39 -0
- package/dist/controllers/authentication/index.cjs.map +1 -0
- package/dist/controllers/authentication/index.d.cts +7 -0
- package/dist/controllers/authentication/index.d.cts.map +1 -0
- package/dist/controllers/authentication/index.d.mts +7 -0
- package/dist/controllers/authentication/index.d.mts.map +1 -0
- package/dist/controllers/authentication/index.mjs +6 -18
- package/dist/controllers/authentication/index.mjs.map +1 -1
- package/dist/controllers/authentication/services.cjs +127 -0
- package/dist/controllers/authentication/services.cjs.map +1 -0
- package/dist/{types/controllers/authentication/services.d.ts → controllers/authentication/services.d.cts} +1 -1
- package/dist/controllers/authentication/services.d.cts.map +1 -0
- package/dist/controllers/authentication/services.d.mts +70 -0
- package/dist/controllers/authentication/services.d.mts.map +1 -0
- package/dist/controllers/authentication/services.mjs +118 -19
- package/dist/controllers/authentication/services.mjs.map +1 -1
- package/dist/controllers/index.cjs +29 -0
- package/dist/controllers/index.cjs.map +1 -0
- package/dist/controllers/index.d.cts +3 -0
- package/dist/controllers/index.d.cts.map +1 -0
- package/dist/controllers/index.d.mts +3 -0
- package/dist/controllers/index.d.mts.map +1 -0
- package/dist/controllers/index.mjs +2 -24
- package/dist/controllers/index.mjs.map +1 -1
- package/dist/controllers/user-storage/UserStorageController.cjs +462 -0
- package/dist/controllers/user-storage/UserStorageController.cjs.map +1 -0
- package/dist/{types/controllers/user-storage/UserStorageController.d.ts → controllers/user-storage/UserStorageController.d.cts} +44 -16
- package/dist/controllers/user-storage/UserStorageController.d.cts.map +1 -0
- package/dist/controllers/user-storage/UserStorageController.d.mts +156 -0
- package/dist/controllers/user-storage/UserStorageController.d.mts.map +1 -0
- package/dist/controllers/user-storage/UserStorageController.mjs +457 -18
- package/dist/controllers/user-storage/UserStorageController.mjs.map +1 -1
- package/dist/controllers/user-storage/__fixtures__/index.cjs +19 -0
- package/dist/controllers/user-storage/__fixtures__/index.cjs.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/index.d.cts +3 -0
- package/dist/controllers/user-storage/__fixtures__/index.d.cts.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/index.d.mts +3 -0
- package/dist/controllers/user-storage/__fixtures__/index.d.mts.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/index.mjs +3 -0
- package/dist/controllers/user-storage/__fixtures__/index.mjs.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/mockAccounts.cjs +127 -0
- package/dist/controllers/user-storage/__fixtures__/mockAccounts.cjs.map +1 -0
- package/dist/{types/controllers/user-storage/__fixtures__/mockAccounts.d.ts → controllers/user-storage/__fixtures__/mockAccounts.d.cts} +6 -6
- package/dist/controllers/user-storage/__fixtures__/mockAccounts.d.cts.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/mockAccounts.d.mts +63 -0
- package/dist/controllers/user-storage/__fixtures__/mockAccounts.d.mts.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/mockAccounts.mjs +123 -0
- package/dist/controllers/user-storage/__fixtures__/mockAccounts.mjs.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/mockResponses.cjs +48 -0
- package/dist/controllers/user-storage/__fixtures__/mockResponses.cjs.map +1 -0
- package/dist/{types/controllers/user-storage/__fixtures__/mockResponses.d.ts → controllers/user-storage/__fixtures__/mockResponses.d.cts} +6 -4
- package/dist/controllers/user-storage/__fixtures__/mockResponses.d.cts.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/mockResponses.d.mts +21 -0
- package/dist/controllers/user-storage/__fixtures__/mockResponses.d.mts.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/mockResponses.mjs +39 -0
- package/dist/controllers/user-storage/__fixtures__/mockResponses.mjs.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/mockServices.cjs +41 -0
- package/dist/controllers/user-storage/__fixtures__/mockServices.cjs.map +1 -0
- package/dist/{types/controllers/user-storage/__fixtures__/mockServices.d.ts → controllers/user-storage/__fixtures__/mockServices.d.cts} +3 -3
- package/dist/controllers/user-storage/__fixtures__/mockServices.d.cts.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/mockServices.d.mts +11 -0
- package/dist/controllers/user-storage/__fixtures__/mockServices.d.mts.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/mockServices.mjs +39 -0
- package/dist/controllers/user-storage/__fixtures__/mockServices.mjs.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/mockStorage.cjs +36 -0
- package/dist/controllers/user-storage/__fixtures__/mockStorage.cjs.map +1 -0
- package/dist/{types/controllers/user-storage/__fixtures__/mockStorage.d.ts → controllers/user-storage/__fixtures__/mockStorage.d.cts} +2 -2
- package/dist/controllers/user-storage/__fixtures__/mockStorage.d.cts.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/mockStorage.d.mts +5 -0
- package/dist/controllers/user-storage/__fixtures__/mockStorage.d.mts.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/mockStorage.mjs +9 -0
- package/dist/controllers/user-storage/__fixtures__/mockStorage.mjs.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/test-utils.cjs +31 -0
- package/dist/controllers/user-storage/__fixtures__/test-utils.cjs.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/test-utils.d.cts +14 -0
- package/dist/controllers/user-storage/__fixtures__/test-utils.d.cts.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/test-utils.d.mts +14 -0
- package/dist/controllers/user-storage/__fixtures__/test-utils.d.mts.map +1 -0
- package/dist/controllers/user-storage/__fixtures__/test-utils.mjs +27 -0
- package/dist/controllers/user-storage/__fixtures__/test-utils.mjs.map +1 -0
- package/dist/controllers/user-storage/accounts/constants.cjs +51 -0
- package/dist/controllers/user-storage/accounts/constants.cjs.map +1 -0
- package/dist/{types/controllers/user-storage/accounts/constants.d.ts → controllers/user-storage/accounts/constants.d.cts} +1 -1
- package/dist/controllers/user-storage/accounts/constants.d.cts.map +1 -0
- package/dist/controllers/user-storage/accounts/constants.d.mts +4 -0
- package/dist/controllers/user-storage/accounts/constants.d.mts.map +1 -0
- package/dist/controllers/user-storage/accounts/constants.mjs +47 -11
- package/dist/controllers/user-storage/accounts/constants.mjs.map +1 -1
- package/dist/controllers/user-storage/accounts/user-storage.cjs +34 -0
- package/dist/controllers/user-storage/accounts/user-storage.cjs.map +1 -0
- package/dist/{types/controllers/user-storage/accounts/user-storage.d.ts → controllers/user-storage/accounts/user-storage.d.cts} +3 -3
- package/dist/controllers/user-storage/accounts/user-storage.d.cts.map +1 -0
- package/dist/controllers/user-storage/accounts/user-storage.d.mts +32 -0
- package/dist/controllers/user-storage/accounts/user-storage.d.mts.map +1 -0
- package/dist/controllers/user-storage/accounts/user-storage.mjs +27 -9
- package/dist/controllers/user-storage/accounts/user-storage.mjs.map +1 -1
- package/dist/controllers/user-storage/encryption/cache.cjs +79 -0
- package/dist/controllers/user-storage/encryption/cache.cjs.map +1 -0
- package/dist/{types/controllers/user-storage/encryption/cache.d.ts → controllers/user-storage/encryption/cache.d.cts} +1 -1
- package/dist/controllers/user-storage/encryption/cache.d.cts.map +1 -0
- package/dist/controllers/user-storage/encryption/cache.d.mts +31 -0
- package/dist/controllers/user-storage/encryption/cache.d.mts.map +1 -0
- package/dist/controllers/user-storage/encryption/cache.mjs +71 -11
- package/dist/controllers/user-storage/encryption/cache.mjs.map +1 -1
- package/dist/controllers/user-storage/encryption/encryption.cjs +151 -0
- package/dist/controllers/user-storage/encryption/encryption.cjs.map +1 -0
- package/dist/{types/controllers/user-storage/encryption/encryption.d.ts → controllers/user-storage/encryption/encryption.d.cts} +2 -2
- package/dist/controllers/user-storage/encryption/encryption.d.cts.map +1 -0
- package/dist/controllers/user-storage/encryption/encryption.d.mts +27 -0
- package/dist/controllers/user-storage/encryption/encryption.d.mts.map +1 -0
- package/dist/controllers/user-storage/encryption/encryption.mjs +145 -10
- package/dist/controllers/user-storage/encryption/encryption.mjs.map +1 -1
- package/dist/controllers/user-storage/encryption/index.cjs +25 -0
- package/dist/controllers/user-storage/encryption/index.cjs.map +1 -0
- package/dist/controllers/user-storage/encryption/index.d.cts +5 -0
- package/dist/controllers/user-storage/encryption/index.d.cts.map +1 -0
- package/dist/controllers/user-storage/encryption/index.d.mts +5 -0
- package/dist/controllers/user-storage/encryption/index.d.mts.map +1 -0
- package/dist/controllers/user-storage/encryption/index.mjs +4 -15
- package/dist/controllers/user-storage/encryption/index.mjs.map +1 -1
- package/dist/controllers/user-storage/encryption/utils.cjs +17 -0
- package/dist/controllers/user-storage/encryption/utils.cjs.map +1 -0
- package/dist/{types/controllers/user-storage/encryption/utils.d.ts → controllers/user-storage/encryption/utils.d.cts} +1 -1
- package/dist/controllers/user-storage/encryption/utils.d.cts.map +1 -0
- package/dist/controllers/user-storage/encryption/utils.d.mts +4 -0
- package/dist/controllers/user-storage/encryption/utils.d.mts.map +1 -0
- package/dist/controllers/user-storage/encryption/utils.mjs +9 -10
- package/dist/controllers/user-storage/encryption/utils.mjs.map +1 -1
- package/dist/controllers/user-storage/index.cjs +40 -0
- package/dist/controllers/user-storage/index.cjs.map +1 -0
- package/dist/controllers/user-storage/index.d.cts +8 -0
- package/dist/controllers/user-storage/index.d.cts.map +1 -0
- package/dist/controllers/user-storage/index.d.mts +8 -0
- package/dist/controllers/user-storage/index.d.mts.map +1 -0
- package/dist/controllers/user-storage/index.mjs +7 -30
- package/dist/controllers/user-storage/index.mjs.map +1 -1
- package/dist/controllers/user-storage/network-syncing/__fixtures__/mockNetwork.cjs +25 -0
- package/dist/controllers/user-storage/network-syncing/__fixtures__/mockNetwork.cjs.map +1 -0
- package/dist/controllers/user-storage/network-syncing/__fixtures__/mockNetwork.d.cts +4 -0
- package/dist/controllers/user-storage/network-syncing/__fixtures__/mockNetwork.d.cts.map +1 -0
- package/dist/controllers/user-storage/network-syncing/__fixtures__/mockNetwork.d.mts +4 -0
- package/dist/controllers/user-storage/network-syncing/__fixtures__/mockNetwork.d.mts.map +1 -0
- package/dist/controllers/user-storage/network-syncing/__fixtures__/mockNetwork.mjs +20 -0
- package/dist/controllers/user-storage/network-syncing/__fixtures__/mockNetwork.mjs.map +1 -0
- package/dist/controllers/user-storage/network-syncing/controller-integration.cjs +65 -0
- package/dist/controllers/user-storage/network-syncing/controller-integration.cjs.map +1 -0
- package/dist/controllers/user-storage/network-syncing/controller-integration.d.cts +13 -0
- package/dist/controllers/user-storage/network-syncing/controller-integration.d.cts.map +1 -0
- package/dist/controllers/user-storage/network-syncing/controller-integration.d.mts +13 -0
- package/dist/controllers/user-storage/network-syncing/controller-integration.d.mts.map +1 -0
- package/dist/controllers/user-storage/network-syncing/controller-integration.mjs +65 -0
- package/dist/controllers/user-storage/network-syncing/controller-integration.mjs.map +1 -0
- package/dist/controllers/user-storage/network-syncing/services.cjs +64 -0
- package/dist/controllers/user-storage/network-syncing/services.cjs.map +1 -0
- package/dist/controllers/user-storage/network-syncing/services.d.cts +21 -0
- package/dist/controllers/user-storage/network-syncing/services.d.cts.map +1 -0
- package/dist/controllers/user-storage/network-syncing/services.d.mts +21 -0
- package/dist/controllers/user-storage/network-syncing/services.d.mts.map +1 -0
- package/dist/controllers/user-storage/network-syncing/services.mjs +58 -0
- package/dist/controllers/user-storage/network-syncing/services.mjs.map +1 -0
- package/dist/controllers/user-storage/network-syncing/sync-all.cjs +171 -0
- package/dist/controllers/user-storage/network-syncing/sync-all.cjs.map +1 -0
- package/dist/controllers/user-storage/network-syncing/sync-all.d.cts +35 -0
- package/dist/controllers/user-storage/network-syncing/sync-all.d.cts.map +1 -0
- package/dist/controllers/user-storage/network-syncing/sync-all.d.mts +35 -0
- package/dist/controllers/user-storage/network-syncing/sync-all.d.mts.map +1 -0
- package/dist/controllers/user-storage/network-syncing/sync-all.mjs +162 -0
- package/dist/controllers/user-storage/network-syncing/sync-all.mjs.map +1 -0
- package/dist/controllers/user-storage/network-syncing/sync-mutations.cjs +28 -0
- package/dist/controllers/user-storage/network-syncing/sync-mutations.cjs.map +1 -0
- package/dist/controllers/user-storage/network-syncing/sync-mutations.d.cts +9 -0
- package/dist/controllers/user-storage/network-syncing/sync-mutations.d.cts.map +1 -0
- package/dist/controllers/user-storage/network-syncing/sync-mutations.d.mts +9 -0
- package/dist/controllers/user-storage/network-syncing/sync-mutations.d.mts.map +1 -0
- package/dist/controllers/user-storage/network-syncing/sync-mutations.mjs +22 -0
- package/dist/controllers/user-storage/network-syncing/sync-mutations.mjs.map +1 -0
- package/dist/controllers/user-storage/network-syncing/types.cjs +16 -0
- package/dist/controllers/user-storage/network-syncing/types.cjs.map +1 -0
- package/dist/controllers/user-storage/network-syncing/types.d.cts +18 -0
- package/dist/controllers/user-storage/network-syncing/types.d.cts.map +1 -0
- package/dist/controllers/user-storage/network-syncing/types.d.mts +18 -0
- package/dist/controllers/user-storage/network-syncing/types.d.mts.map +1 -0
- package/dist/controllers/user-storage/network-syncing/types.mjs +11 -0
- package/dist/controllers/user-storage/network-syncing/types.mjs.map +1 -0
- package/dist/controllers/user-storage/schema.cjs +56 -0
- package/dist/controllers/user-storage/schema.cjs.map +1 -0
- package/dist/{types/controllers/user-storage/schema.d.ts → controllers/user-storage/schema.d.cts} +2 -1
- package/dist/controllers/user-storage/schema.d.cts.map +1 -0
- package/dist/controllers/user-storage/schema.d.mts +38 -0
- package/dist/controllers/user-storage/schema.d.mts.map +1 -0
- package/dist/controllers/user-storage/schema.mjs +48 -16
- package/dist/controllers/user-storage/schema.mjs.map +1 -1
- package/dist/controllers/user-storage/services.cjs +119 -0
- package/dist/controllers/user-storage/services.cjs.map +1 -0
- package/dist/{types/controllers/user-storage/services.d.ts → controllers/user-storage/services.d.cts} +4 -5
- package/dist/controllers/user-storage/services.d.cts.map +1 -0
- package/dist/controllers/user-storage/services.d.mts +48 -0
- package/dist/controllers/user-storage/services.d.mts.map +1 -0
- package/dist/controllers/user-storage/services.mjs +116 -21
- package/dist/controllers/user-storage/services.mjs.map +1 -1
- package/dist/controllers/user-storage/utils.cjs +30 -0
- package/dist/controllers/user-storage/utils.cjs.map +1 -0
- package/dist/controllers/user-storage/utils.d.cts +17 -0
- package/dist/controllers/user-storage/utils.d.cts.map +1 -0
- package/dist/controllers/user-storage/utils.d.mts +17 -0
- package/dist/controllers/user-storage/utils.d.mts.map +1 -0
- package/dist/controllers/user-storage/utils.mjs +25 -0
- package/dist/controllers/user-storage/utils.mjs.map +1 -0
- package/dist/index.cjs +30 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +4 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +4 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +3 -39
- package/dist/index.mjs.map +1 -1
- package/dist/sdk/__fixtures__/mock-auth.cjs +139 -0
- package/dist/sdk/__fixtures__/mock-auth.cjs.map +1 -0
- package/dist/{types/sdk/__fixtures__/mock-auth.d.ts → sdk/__fixtures__/mock-auth.d.cts} +2 -2
- package/dist/sdk/__fixtures__/mock-auth.d.cts.map +1 -0
- package/dist/sdk/__fixtures__/mock-auth.d.mts +42 -0
- package/dist/sdk/__fixtures__/mock-auth.d.mts.map +1 -0
- package/dist/sdk/__fixtures__/mock-auth.mjs +134 -0
- package/dist/sdk/__fixtures__/mock-auth.mjs.map +1 -0
- package/dist/sdk/__fixtures__/mock-userstorage.cjs +58 -0
- package/dist/sdk/__fixtures__/mock-userstorage.cjs.map +1 -0
- package/dist/{types/sdk/__fixtures__/mock-userstorage.d.ts → sdk/__fixtures__/mock-userstorage.d.cts} +2 -2
- package/dist/sdk/__fixtures__/mock-userstorage.d.cts.map +1 -0
- package/dist/sdk/__fixtures__/mock-userstorage.d.mts +19 -0
- package/dist/sdk/__fixtures__/mock-userstorage.d.mts.map +1 -0
- package/dist/sdk/__fixtures__/mock-userstorage.mjs +54 -0
- package/dist/sdk/__fixtures__/mock-userstorage.mjs.map +1 -0
- package/dist/sdk/__fixtures__/test-utils.cjs +74 -0
- package/dist/sdk/__fixtures__/test-utils.cjs.map +1 -0
- package/dist/{types/sdk/__fixtures__/test-utils.d.ts → sdk/__fixtures__/test-utils.d.cts} +6 -6
- package/dist/sdk/__fixtures__/test-utils.d.cts.map +1 -0
- package/dist/sdk/__fixtures__/test-utils.d.mts +25 -0
- package/dist/sdk/__fixtures__/test-utils.d.mts.map +1 -0
- package/dist/sdk/__fixtures__/test-utils.mjs +69 -0
- package/dist/sdk/__fixtures__/test-utils.mjs.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.cjs +106 -0
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.cjs.map +1 -0
- package/dist/{types/sdk/authentication-jwt-bearer/flow-siwe.d.ts → sdk/authentication-jwt-bearer/flow-siwe.d.cts} +2 -2
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.d.cts.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.d.mts +23 -0
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.d.mts.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.mjs +101 -11
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.mjs.map +1 -1
- package/dist/sdk/authentication-jwt-bearer/flow-srp.cjs +111 -0
- package/dist/sdk/authentication-jwt-bearer/flow-srp.cjs.map +1 -0
- package/dist/{types/sdk/authentication-jwt-bearer/flow-srp.d.ts → sdk/authentication-jwt-bearer/flow-srp.d.cts} +2 -2
- package/dist/sdk/authentication-jwt-bearer/flow-srp.d.cts.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/flow-srp.d.mts +17 -0
- package/dist/sdk/authentication-jwt-bearer/flow-srp.d.mts.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/flow-srp.mjs +105 -13
- package/dist/sdk/authentication-jwt-bearer/flow-srp.mjs.map +1 -1
- package/dist/sdk/authentication-jwt-bearer/services.cjs +180 -0
- package/dist/sdk/authentication-jwt-bearer/services.cjs.map +1 -0
- package/dist/{types/sdk/authentication-jwt-bearer/services.d.ts → sdk/authentication-jwt-bearer/services.d.cts} +4 -4
- package/dist/sdk/authentication-jwt-bearer/services.d.cts.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/services.d.mts +63 -0
- package/dist/sdk/authentication-jwt-bearer/services.d.mts.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/services.mjs +166 -25
- package/dist/sdk/authentication-jwt-bearer/services.mjs.map +1 -1
- package/dist/sdk/authentication-jwt-bearer/types.cjs +12 -0
- package/dist/sdk/authentication-jwt-bearer/types.cjs.map +1 -0
- package/dist/{types/sdk/authentication-jwt-bearer/types.d.ts → sdk/authentication-jwt-bearer/types.d.cts} +2 -2
- package/dist/sdk/authentication-jwt-bearer/types.d.cts.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/types.d.mts +67 -0
- package/dist/sdk/authentication-jwt-bearer/types.d.mts.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/types.mjs +8 -7
- package/dist/sdk/authentication-jwt-bearer/types.mjs.map +1 -1
- package/dist/sdk/authentication.cjs +129 -0
- package/dist/sdk/authentication.cjs.map +1 -0
- package/dist/{types/sdk/authentication.d.ts → sdk/authentication.d.cts} +8 -7
- package/dist/sdk/authentication.d.cts.map +1 -0
- package/dist/sdk/authentication.d.mts +32 -0
- package/dist/sdk/authentication.d.mts.map +1 -0
- package/dist/sdk/authentication.mjs +107 -24
- package/dist/sdk/authentication.mjs.map +1 -1
- package/dist/sdk/encryption.cjs +23 -0
- package/dist/sdk/encryption.cjs.map +1 -0
- package/dist/sdk/encryption.d.cts +4 -0
- package/dist/sdk/encryption.d.cts.map +1 -0
- package/dist/sdk/encryption.d.mts +4 -0
- package/dist/sdk/encryption.d.mts.map +1 -0
- package/dist/sdk/encryption.mjs +3 -13
- package/dist/sdk/encryption.mjs.map +1 -1
- package/dist/sdk/env.cjs +85 -0
- package/dist/sdk/env.cjs.map +1 -0
- package/dist/{types/sdk/env.d.ts → sdk/env.d.cts} +1 -1
- package/dist/sdk/env.d.cts.map +1 -0
- package/dist/sdk/env.d.mts +34 -0
- package/dist/sdk/env.d.mts.map +1 -0
- package/dist/sdk/env.mjs +78 -12
- package/dist/sdk/env.mjs.map +1 -1
- package/dist/sdk/errors.cjs +53 -0
- package/dist/sdk/errors.cjs.map +1 -0
- package/dist/{types/sdk/errors.d.ts → sdk/errors.d.cts} +1 -1
- package/dist/sdk/errors.d.cts.map +1 -0
- package/dist/sdk/errors.d.mts +22 -0
- package/dist/sdk/errors.d.mts.map +1 -0
- package/dist/sdk/errors.mjs +42 -19
- package/dist/sdk/errors.mjs.map +1 -1
- package/dist/sdk/index.cjs +23 -0
- package/dist/sdk/index.cjs.map +1 -0
- package/dist/sdk/index.d.cts +7 -0
- package/dist/sdk/index.d.cts.map +1 -0
- package/dist/sdk/index.d.mts +7 -0
- package/dist/sdk/index.d.mts.map +1 -0
- package/dist/sdk/index.mjs +6 -76
- package/dist/sdk/index.mjs.map +1 -1
- package/dist/sdk/user-storage.cjs +176 -0
- package/dist/sdk/user-storage.cjs.map +1 -0
- package/dist/{types/sdk/user-storage.d.ts → sdk/user-storage.d.cts} +4 -4
- package/dist/sdk/user-storage.d.cts.map +1 -0
- package/dist/sdk/user-storage.d.mts +27 -0
- package/dist/sdk/user-storage.d.mts.map +1 -0
- package/dist/sdk/user-storage.mjs +146 -16
- package/dist/sdk/user-storage.mjs.map +1 -1
- package/dist/sdk/utils/eip-6963-metamask-provider.cjs +70 -0
- package/dist/sdk/utils/eip-6963-metamask-provider.cjs.map +1 -0
- package/dist/{types/sdk/utils/eip-6963-metamask-provider.d.ts → sdk/utils/eip-6963-metamask-provider.d.cts} +2 -2
- package/dist/sdk/utils/eip-6963-metamask-provider.d.cts.map +1 -0
- package/dist/sdk/utils/eip-6963-metamask-provider.d.mts +25 -0
- package/dist/sdk/utils/eip-6963-metamask-provider.d.mts.map +1 -0
- package/dist/sdk/utils/eip-6963-metamask-provider.mjs +64 -8
- package/dist/sdk/utils/eip-6963-metamask-provider.mjs.map +1 -1
- package/dist/sdk/utils/messaging-signing-snap-requests.cjs +89 -0
- package/dist/sdk/utils/messaging-signing-snap-requests.cjs.map +1 -0
- package/dist/{types/sdk/utils/messaging-signing-snap-requests.d.ts → sdk/utils/messaging-signing-snap-requests.d.cts} +9 -2
- package/dist/sdk/utils/messaging-signing-snap-requests.d.cts.map +1 -0
- package/dist/sdk/utils/messaging-signing-snap-requests.d.mts +40 -0
- package/dist/sdk/utils/messaging-signing-snap-requests.d.mts.map +1 -0
- package/dist/sdk/utils/messaging-signing-snap-requests.mjs +80 -14
- package/dist/sdk/utils/messaging-signing-snap-requests.mjs.map +1 -1
- package/dist/sdk/utils/validate-login-response.cjs +22 -0
- package/dist/sdk/utils/validate-login-response.cjs.map +1 -0
- package/dist/{types/sdk/utils/validate-login-response.d.ts → sdk/utils/validate-login-response.d.cts} +2 -2
- package/dist/sdk/utils/validate-login-response.d.cts.map +1 -0
- package/dist/sdk/utils/validate-login-response.d.mts +10 -0
- package/dist/sdk/utils/validate-login-response.d.mts.map +1 -0
- package/dist/sdk/utils/validate-login-response.mjs +17 -7
- package/dist/sdk/utils/validate-login-response.mjs.map +1 -1
- package/package.json +20 -14
- package/dist/chunk-246Z6L5V.js +0 -534
- package/dist/chunk-246Z6L5V.js.map +0 -1
- package/dist/chunk-2677XY6G.mjs +0 -107
- package/dist/chunk-2677XY6G.mjs.map +0 -1
- package/dist/chunk-2CWF7ZTL.mjs +0 -129
- package/dist/chunk-2CWF7ZTL.mjs.map +0 -1
- package/dist/chunk-2VEMA6OE.mjs +0 -47
- package/dist/chunk-2VEMA6OE.mjs.map +0 -1
- package/dist/chunk-4LMFZDL4.js +0 -114
- package/dist/chunk-4LMFZDL4.js.map +0 -1
- package/dist/chunk-4ZGRRVMI.js +0 -133
- package/dist/chunk-4ZGRRVMI.js.map +0 -1
- package/dist/chunk-5EBUFNAN.mjs +0 -55
- package/dist/chunk-5EBUFNAN.mjs.map +0 -1
- package/dist/chunk-5MQUI24U.js +0 -47
- package/dist/chunk-5MQUI24U.js.map +0 -1
- package/dist/chunk-5XSXZTED.mjs +0 -57
- package/dist/chunk-5XSXZTED.mjs.map +0 -1
- package/dist/chunk-6DAK2U35.mjs +0 -11
- package/dist/chunk-6DAK2U35.mjs.map +0 -1
- package/dist/chunk-76NMME23.mjs +0 -114
- package/dist/chunk-76NMME23.mjs.map +0 -1
- package/dist/chunk-76VRE4BI.mjs +0 -18
- package/dist/chunk-76VRE4BI.mjs.map +0 -1
- package/dist/chunk-7MSQV43P.mjs +0 -77
- package/dist/chunk-7MSQV43P.mjs.map +0 -1
- package/dist/chunk-BKQE7DB5.js +0 -170
- package/dist/chunk-BKQE7DB5.js.map +0 -1
- package/dist/chunk-CAIIVJAO.mjs +0 -11
- package/dist/chunk-CAIIVJAO.mjs.map +0 -1
- package/dist/chunk-CHUZGCDV.js +0 -107
- package/dist/chunk-CHUZGCDV.js.map +0 -1
- package/dist/chunk-COBJUBZE.mjs +0 -170
- package/dist/chunk-COBJUBZE.mjs.map +0 -1
- package/dist/chunk-D4SNJOID.mjs +0 -269
- package/dist/chunk-D4SNJOID.mjs.map +0 -1
- package/dist/chunk-DF24ZX4H.js +0 -76
- package/dist/chunk-DF24ZX4H.js.map +0 -1
- package/dist/chunk-DRB2MN4T.js +0 -16
- package/dist/chunk-DRB2MN4T.js.map +0 -1
- package/dist/chunk-EHZFPUJH.mjs +0 -53
- package/dist/chunk-EHZFPUJH.mjs.map +0 -1
- package/dist/chunk-F6BAOSH2.js +0 -269
- package/dist/chunk-F6BAOSH2.js.map +0 -1
- package/dist/chunk-GQXYWBFK.js +0 -28
- package/dist/chunk-GQXYWBFK.js.map +0 -1
- package/dist/chunk-H25EBXG5.mjs +0 -58
- package/dist/chunk-H25EBXG5.mjs.map +0 -1
- package/dist/chunk-IGY2S5BC.js +0 -36
- package/dist/chunk-IGY2S5BC.js.map +0 -1
- package/dist/chunk-J7NSK6BO.mjs +0 -133
- package/dist/chunk-J7NSK6BO.mjs.map +0 -1
- package/dist/chunk-JAQ5TPSZ.js +0 -53
- package/dist/chunk-JAQ5TPSZ.js.map +0 -1
- package/dist/chunk-KHASG4H3.mjs +0 -11
- package/dist/chunk-KHASG4H3.mjs.map +0 -1
- package/dist/chunk-KIVBL6OM.js +0 -129
- package/dist/chunk-KIVBL6OM.js.map +0 -1
- package/dist/chunk-KTCSRECK.mjs +0 -76
- package/dist/chunk-KTCSRECK.mjs.map +0 -1
- package/dist/chunk-LGXQBALM.mjs +0 -106
- package/dist/chunk-LGXQBALM.mjs.map +0 -1
- package/dist/chunk-LLG4D2SC.js +0 -157
- package/dist/chunk-LLG4D2SC.js.map +0 -1
- package/dist/chunk-MBTBE4P5.js +0 -54
- package/dist/chunk-MBTBE4P5.js.map +0 -1
- package/dist/chunk-MK7ABX2V.mjs +0 -186
- package/dist/chunk-MK7ABX2V.mjs.map +0 -1
- package/dist/chunk-NIUQ34PY.js +0 -11
- package/dist/chunk-NIUQ34PY.js.map +0 -1
- package/dist/chunk-NMIF3LSX.mjs +0 -29
- package/dist/chunk-NMIF3LSX.mjs.map +0 -1
- package/dist/chunk-PBRUOBEQ.js +0 -11
- package/dist/chunk-PBRUOBEQ.js.map +0 -1
- package/dist/chunk-PCOIRDTO.js +0 -18
- package/dist/chunk-PCOIRDTO.js.map +0 -1
- package/dist/chunk-PQ5T4GHY.js +0 -55
- package/dist/chunk-PQ5T4GHY.js.map +0 -1
- package/dist/chunk-PRYLTXW4.js +0 -92
- package/dist/chunk-PRYLTXW4.js.map +0 -1
- package/dist/chunk-Q5KTSMRE.js +0 -120
- package/dist/chunk-Q5KTSMRE.js.map +0 -1
- package/dist/chunk-QDGLIUUS.mjs +0 -16
- package/dist/chunk-QDGLIUUS.mjs.map +0 -1
- package/dist/chunk-RG4II6WH.js +0 -57
- package/dist/chunk-RG4II6WH.js.map +0 -1
- package/dist/chunk-SZ6WMC6C.mjs +0 -534
- package/dist/chunk-SZ6WMC6C.mjs.map +0 -1
- package/dist/chunk-T2YURW25.js +0 -77
- package/dist/chunk-T2YURW25.js.map +0 -1
- package/dist/chunk-TFFQFIJV.mjs +0 -54
- package/dist/chunk-TFFQFIJV.mjs.map +0 -1
- package/dist/chunk-U5UIDVOO.mjs +0 -36
- package/dist/chunk-U5UIDVOO.mjs.map +0 -1
- package/dist/chunk-UAXWZN5J.js +0 -58
- package/dist/chunk-UAXWZN5J.js.map +0 -1
- package/dist/chunk-UHP2Y32K.mjs +0 -92
- package/dist/chunk-UHP2Y32K.mjs.map +0 -1
- package/dist/chunk-UHX7HJAI.js +0 -11
- package/dist/chunk-UHX7HJAI.js.map +0 -1
- package/dist/chunk-UIRAMHNM.js +0 -186
- package/dist/chunk-UIRAMHNM.js.map +0 -1
- package/dist/chunk-YHGWG3EQ.js +0 -29
- package/dist/chunk-YHGWG3EQ.js.map +0 -1
- package/dist/chunk-YKOMKXG4.mjs +0 -120
- package/dist/chunk-YKOMKXG4.mjs.map +0 -1
- package/dist/chunk-YLURF2PF.mjs +0 -157
- package/dist/chunk-YLURF2PF.mjs.map +0 -1
- package/dist/chunk-ZUPTMFEA.mjs +0 -28
- package/dist/chunk-ZUPTMFEA.mjs.map +0 -1
- package/dist/chunk-ZX2KHPXG.js +0 -106
- package/dist/chunk-ZX2KHPXG.js.map +0 -1
- package/dist/controllers/authentication/AuthenticationController.js +0 -13
- package/dist/controllers/authentication/AuthenticationController.js.map +0 -1
- package/dist/controllers/authentication/auth-snap-requests.js +0 -10
- package/dist/controllers/authentication/auth-snap-requests.js.map +0 -1
- package/dist/controllers/authentication/index.js +0 -19
- package/dist/controllers/authentication/index.js.map +0 -1
- package/dist/controllers/authentication/services.js +0 -21
- package/dist/controllers/authentication/services.js.map +0 -1
- package/dist/controllers/index.js +0 -25
- package/dist/controllers/index.js.map +0 -1
- package/dist/controllers/user-storage/UserStorageController.js +0 -20
- package/dist/controllers/user-storage/UserStorageController.js.map +0 -1
- package/dist/controllers/user-storage/accounts/constants.js +0 -12
- package/dist/controllers/user-storage/accounts/constants.js.map +0 -1
- package/dist/controllers/user-storage/accounts/user-storage.js +0 -11
- package/dist/controllers/user-storage/accounts/user-storage.js.map +0 -1
- package/dist/controllers/user-storage/encryption/cache.js +0 -13
- package/dist/controllers/user-storage/encryption/cache.js.map +0 -1
- package/dist/controllers/user-storage/encryption/encryption.js +0 -12
- package/dist/controllers/user-storage/encryption/encryption.js.map +0 -1
- package/dist/controllers/user-storage/encryption/index.js +0 -16
- package/dist/controllers/user-storage/encryption/index.js.map +0 -1
- package/dist/controllers/user-storage/encryption/utils.js +0 -12
- package/dist/controllers/user-storage/encryption/utils.js.map +0 -1
- package/dist/controllers/user-storage/index.js +0 -31
- package/dist/controllers/user-storage/index.js.map +0 -1
- package/dist/controllers/user-storage/schema.js +0 -18
- package/dist/controllers/user-storage/schema.js.map +0 -1
- package/dist/controllers/user-storage/services.js +0 -22
- package/dist/controllers/user-storage/services.js.map +0 -1
- package/dist/index.js +0 -40
- package/dist/index.js.map +0 -1
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.js +0 -13
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.js.map +0 -1
- package/dist/sdk/authentication-jwt-bearer/flow-srp.js +0 -15
- package/dist/sdk/authentication-jwt-bearer/flow-srp.js.map +0 -1
- package/dist/sdk/authentication-jwt-bearer/services.js +0 -27
- package/dist/sdk/authentication-jwt-bearer/services.js.map +0 -1
- package/dist/sdk/authentication-jwt-bearer/types.js +0 -8
- package/dist/sdk/authentication-jwt-bearer/types.js.map +0 -1
- package/dist/sdk/authentication.js +0 -26
- package/dist/sdk/authentication.js.map +0 -1
- package/dist/sdk/encryption.js +0 -14
- package/dist/sdk/encryption.js.map +0 -1
- package/dist/sdk/env.js +0 -14
- package/dist/sdk/env.js.map +0 -1
- package/dist/sdk/errors.js +0 -20
- package/dist/sdk/errors.js.map +0 -1
- package/dist/sdk/index.js +0 -77
- package/dist/sdk/index.js.map +0 -1
- package/dist/sdk/user-storage.js +0 -18
- package/dist/sdk/user-storage.js.map +0 -1
- package/dist/sdk/utils/eip-6963-metamask-provider.js +0 -10
- package/dist/sdk/utils/eip-6963-metamask-provider.js.map +0 -1
- package/dist/sdk/utils/messaging-signing-snap-requests.js +0 -16
- package/dist/sdk/utils/messaging-signing-snap-requests.js.map +0 -1
- package/dist/sdk/utils/validate-login-response.js +0 -8
- package/dist/sdk/utils/validate-login-response.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/dist/types/controllers/authentication/AuthenticationController.d.ts.map +0 -1
- package/dist/types/controllers/authentication/__fixtures__/index.d.ts +0 -2
- package/dist/types/controllers/authentication/__fixtures__/index.d.ts.map +0 -1
- package/dist/types/controllers/authentication/__fixtures__/mockResponses.d.ts.map +0 -1
- package/dist/types/controllers/authentication/__fixtures__/mockServices.d.ts.map +0 -1
- package/dist/types/controllers/authentication/auth-snap-requests.d.ts.map +0 -1
- package/dist/types/controllers/authentication/index.d.ts +0 -7
- package/dist/types/controllers/authentication/index.d.ts.map +0 -1
- package/dist/types/controllers/authentication/services.d.ts.map +0 -1
- package/dist/types/controllers/index.d.ts +0 -3
- package/dist/types/controllers/index.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/UserStorageController.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/__fixtures__/index.d.ts +0 -3
- package/dist/types/controllers/user-storage/__fixtures__/index.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/__fixtures__/mockAccounts.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/__fixtures__/mockResponses.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/__fixtures__/mockServices.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/__fixtures__/mockStorage.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/accounts/constants.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/accounts/user-storage.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/encryption/cache.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/encryption/encryption.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/encryption/index.d.ts +0 -5
- package/dist/types/controllers/user-storage/encryption/index.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/encryption/utils.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/index.d.ts +0 -8
- package/dist/types/controllers/user-storage/index.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/schema.d.ts.map +0 -1
- package/dist/types/controllers/user-storage/services.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -4
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/sdk/__fixtures__/mock-auth.d.ts.map +0 -1
- package/dist/types/sdk/__fixtures__/mock-userstorage.d.ts.map +0 -1
- package/dist/types/sdk/__fixtures__/test-utils.d.ts.map +0 -1
- package/dist/types/sdk/authentication-jwt-bearer/flow-siwe.d.ts.map +0 -1
- package/dist/types/sdk/authentication-jwt-bearer/flow-srp.d.ts.map +0 -1
- package/dist/types/sdk/authentication-jwt-bearer/services.d.ts.map +0 -1
- package/dist/types/sdk/authentication-jwt-bearer/types.d.ts.map +0 -1
- package/dist/types/sdk/authentication.d.ts.map +0 -1
- package/dist/types/sdk/encryption.d.ts +0 -4
- package/dist/types/sdk/encryption.d.ts.map +0 -1
- package/dist/types/sdk/env.d.ts.map +0 -1
- package/dist/types/sdk/errors.d.ts.map +0 -1
- package/dist/types/sdk/index.d.ts +0 -7
- package/dist/types/sdk/index.d.ts.map +0 -1
- package/dist/types/sdk/user-storage.d.ts.map +0 -1
- package/dist/types/sdk/utils/eip-6963-metamask-provider.d.ts.map +0 -1
- package/dist/types/sdk/utils/messaging-signing-snap-requests.d.ts.map +0 -1
- package/dist/types/sdk/utils/validate-login-response.d.ts.map +0 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { getUserStorageAllFeatureEntries, upsertUserStorage } from "../services.mjs";
|
|
2
|
+
// TODO - parse type, and handle version changes
|
|
3
|
+
/**
|
|
4
|
+
* parses the raw remote data to the NetworkConfiguration shape
|
|
5
|
+
* @todo - improve parsing instead of asserting
|
|
6
|
+
* @todo - improve version handling
|
|
7
|
+
* @param rawData - raw remote user storage data
|
|
8
|
+
* @returns NetworkConfiguration or undefined if failed to parse
|
|
9
|
+
*/
|
|
10
|
+
function parseNetworkConfiguration(rawData) {
|
|
11
|
+
try {
|
|
12
|
+
return JSON.parse(rawData);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const isDefined = (value) => value !== undefined && value !== null;
|
|
19
|
+
/**
|
|
20
|
+
* gets all remote networks from user storage
|
|
21
|
+
* @param opts - user storage options/configuration
|
|
22
|
+
* @returns array of all remote networks
|
|
23
|
+
*/
|
|
24
|
+
export async function getAllRemoteNetworks(opts) {
|
|
25
|
+
const rawResults = (await getUserStorageAllFeatureEntries({
|
|
26
|
+
...opts,
|
|
27
|
+
path: 'networks',
|
|
28
|
+
})) ?? [];
|
|
29
|
+
const results = rawResults
|
|
30
|
+
.map((rawData) => parseNetworkConfiguration(rawData))
|
|
31
|
+
.filter(isDefined);
|
|
32
|
+
return results;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Upserts a remote network to user storage
|
|
36
|
+
* @param network - network we are updating or inserting
|
|
37
|
+
* @param opts - user storage options/configuration
|
|
38
|
+
*/
|
|
39
|
+
export async function upsertRemoteNetwork(network, opts) {
|
|
40
|
+
const chainId = network.chainId.toString();
|
|
41
|
+
const data = JSON.stringify(network);
|
|
42
|
+
return await upsertUserStorage(data, {
|
|
43
|
+
...opts,
|
|
44
|
+
path: `networks.${chainId}`,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Batch upsert a list of remote networks into user storage
|
|
49
|
+
* @param networks - a list of networks to update or insert
|
|
50
|
+
* @param opts - user storage options/configuration
|
|
51
|
+
*/
|
|
52
|
+
export async function batchUpsertRemoteNetworks(networks, opts) {
|
|
53
|
+
// TODO - this has not yet been provided by the backend team
|
|
54
|
+
// we will replace this with a batch endpoint in near future
|
|
55
|
+
const promises = networks.map((n) => upsertRemoteNetwork(n, opts));
|
|
56
|
+
await Promise.allSettled(promises);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=services.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.mjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/services.ts"],"names":[],"mappings":"AACA,OAAO,EACL,+BAA+B,EAC/B,iBAAiB,EAClB,wBAAoB;AAGrB,gDAAgD;AAChD;;;;;;GAMG;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;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAA4B;IAE5B,MAAM,UAAU,GACd,CAAC,MAAM,+BAA+B,CAAC;QACrC,GAAG,IAAI;QACP,IAAI,EAAE,UAAU;KACjB,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;;;;GAIG;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;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,QAAsC,EACtC,IAA4B;IAE5B,4DAA4D;IAC5D,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC","sourcesContent":["import type { UserStorageBaseOptions } from '../services';\nimport {\n getUserStorageAllFeatureEntries,\n upsertUserStorage,\n} from '../services';\nimport type { RemoteNetworkConfiguration } from './types';\n\n// TODO - parse type, and handle version changes\n/**\n * parses the raw remote data to the NetworkConfiguration shape\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 * @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: '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 * @param network - network we are updating or inserting\n * @param opts - user storage options/configuration\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 * @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 // TODO - this has not yet been provided by the backend team\n // we will replace this with a batch endpoint in near future\n const promises = networks.map((n) => upsertRemoteNetwork(n, opts));\n await Promise.allSettled(promises);\n}\n"]}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findNetworksToUpdate = exports.getNewLocalNetworks = exports.getUpdatedNetworkLists = exports.getMissingNetworkLists = exports.checkWhichNetworkIsLatest = exports.getDataStructures = void 0;
|
|
4
|
+
const utils_1 = require("../utils.cjs");
|
|
5
|
+
const types_1 = require("./types.cjs");
|
|
6
|
+
const createMap = (networks) => {
|
|
7
|
+
return new Map(networks.map((n) => [n.chainId, n]));
|
|
8
|
+
};
|
|
9
|
+
const createKeySet = (networks, predicate) => {
|
|
10
|
+
const filteredNetworks = predicate
|
|
11
|
+
? networks.filter((n) => predicate(n))
|
|
12
|
+
: networks;
|
|
13
|
+
return new Set(filteredNetworks.map((n) => n.chainId));
|
|
14
|
+
};
|
|
15
|
+
const getDataStructures = (localNetworks, remoteNetworks) => {
|
|
16
|
+
const localMap = createMap(localNetworks);
|
|
17
|
+
const remoteMap = createMap(remoteNetworks);
|
|
18
|
+
const localKeySet = createKeySet(localNetworks);
|
|
19
|
+
const remoteKeySet = createKeySet(remoteNetworks);
|
|
20
|
+
const existingRemoteKeySet = createKeySet(remoteNetworks, (n) => !n.d);
|
|
21
|
+
return {
|
|
22
|
+
localMap,
|
|
23
|
+
remoteMap,
|
|
24
|
+
localKeySet,
|
|
25
|
+
remoteKeySet,
|
|
26
|
+
existingRemoteKeySet,
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
exports.getDataStructures = getDataStructures;
|
|
30
|
+
const checkWhichNetworkIsLatest = (localNetwork, remoteNetwork) => {
|
|
31
|
+
// Neither network has updatedAt field (indicating no changes were made)
|
|
32
|
+
if (!localNetwork.lastUpdatedAt && !remoteNetwork.lastUpdatedAt) {
|
|
33
|
+
return 'Do Nothing';
|
|
34
|
+
}
|
|
35
|
+
// Local only has updatedAt field
|
|
36
|
+
if (localNetwork.lastUpdatedAt && !remoteNetwork.lastUpdatedAt) {
|
|
37
|
+
return 'Local Wins';
|
|
38
|
+
}
|
|
39
|
+
// Remote only has updatedAt field
|
|
40
|
+
if (!localNetwork.lastUpdatedAt && remoteNetwork.lastUpdatedAt) {
|
|
41
|
+
return 'Remote Wins';
|
|
42
|
+
}
|
|
43
|
+
// Both have updatedAt field, perform comparison
|
|
44
|
+
if (localNetwork.lastUpdatedAt && remoteNetwork.lastUpdatedAt) {
|
|
45
|
+
if (localNetwork.lastUpdatedAt === remoteNetwork.lastUpdatedAt) {
|
|
46
|
+
return 'Do Nothing';
|
|
47
|
+
}
|
|
48
|
+
return localNetwork.lastUpdatedAt > remoteNetwork.lastUpdatedAt
|
|
49
|
+
? 'Local Wins'
|
|
50
|
+
: 'Remote Wins';
|
|
51
|
+
}
|
|
52
|
+
return 'Do Nothing';
|
|
53
|
+
};
|
|
54
|
+
exports.checkWhichNetworkIsLatest = checkWhichNetworkIsLatest;
|
|
55
|
+
const getMissingNetworkLists = (ds) => {
|
|
56
|
+
const { localKeySet, localMap, remoteKeySet, remoteMap, existingRemoteKeySet, } = ds;
|
|
57
|
+
const missingLocalNetworks = [];
|
|
58
|
+
const missingRemoteNetworks = [];
|
|
59
|
+
// Networks that are in local, but not in remote
|
|
60
|
+
const missingRemoteNetworkKeys = (0, utils_1.setDifference)(localKeySet, remoteKeySet);
|
|
61
|
+
missingRemoteNetworkKeys.forEach((chain) => {
|
|
62
|
+
const n = localMap.get(chain);
|
|
63
|
+
if (n) {
|
|
64
|
+
missingRemoteNetworks.push((0, types_1.toRemoteNetworkConfiguration)(n));
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
// Networks that are in remote (not deleted), but not in local
|
|
68
|
+
const missingLocalNetworkKeys = (0, utils_1.setDifference)(existingRemoteKeySet, localKeySet);
|
|
69
|
+
missingLocalNetworkKeys.forEach((chain) => {
|
|
70
|
+
const n = remoteMap.get(chain);
|
|
71
|
+
if (n) {
|
|
72
|
+
missingLocalNetworks.push((0, types_1.toNetworkConfiguration)(n));
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
return {
|
|
76
|
+
missingLocalNetworks,
|
|
77
|
+
missingRemoteNetworks,
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
exports.getMissingNetworkLists = getMissingNetworkLists;
|
|
81
|
+
const getUpdatedNetworkLists = (ds) => {
|
|
82
|
+
const { localKeySet, localMap, remoteKeySet, remoteMap } = ds;
|
|
83
|
+
const remoteNetworksToUpdate = [];
|
|
84
|
+
const localNetworksToUpdate = [];
|
|
85
|
+
const localNetworksToRemove = [];
|
|
86
|
+
// Get networks in both, these need to be compared against
|
|
87
|
+
// each other to see which network to update.
|
|
88
|
+
const networksInBoth = (0, utils_1.setIntersection)(localKeySet, remoteKeySet);
|
|
89
|
+
networksInBoth.forEach((chain) => {
|
|
90
|
+
const localNetwork = localMap.get(chain);
|
|
91
|
+
const remoteNetwork = remoteMap.get(chain);
|
|
92
|
+
if (!localNetwork || !remoteNetwork) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const whichIsLatest = (0, exports.checkWhichNetworkIsLatest)(localNetwork, remoteNetwork);
|
|
96
|
+
// Local Wins -> Need to update remote
|
|
97
|
+
if (whichIsLatest === 'Local Wins') {
|
|
98
|
+
remoteNetworksToUpdate.push((0, types_1.toRemoteNetworkConfiguration)(localNetwork));
|
|
99
|
+
}
|
|
100
|
+
// Remote Wins...
|
|
101
|
+
if (whichIsLatest === 'Remote Wins') {
|
|
102
|
+
if (remoteNetwork.d) {
|
|
103
|
+
// ...and is deleted -> Need to remove from local list
|
|
104
|
+
localNetworksToRemove.push((0, types_1.toNetworkConfiguration)(remoteNetwork));
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// ...and isn't deleted -> Need to update local list
|
|
108
|
+
localNetworksToUpdate.push((0, types_1.toNetworkConfiguration)(remoteNetwork));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
return {
|
|
113
|
+
remoteNetworksToUpdate,
|
|
114
|
+
localNetworksToUpdate,
|
|
115
|
+
localNetworksToRemove,
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
exports.getUpdatedNetworkLists = getUpdatedNetworkLists;
|
|
119
|
+
const getNewLocalNetworks = (props) => {
|
|
120
|
+
let newList = [...props.originalList];
|
|
121
|
+
newList.push(...props.missingLocalNetworks);
|
|
122
|
+
const updateMap = createMap(props.localNetworksToUpdate);
|
|
123
|
+
const remoteMap = createMap(props.localNetworksToRemove);
|
|
124
|
+
newList = newList
|
|
125
|
+
.map((n) => {
|
|
126
|
+
if (remoteMap.has(n.chainId)) {
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
const updatedNetwork = updateMap.get(n.chainId);
|
|
130
|
+
if (updatedNetwork) {
|
|
131
|
+
return updatedNetwork;
|
|
132
|
+
}
|
|
133
|
+
return n;
|
|
134
|
+
})
|
|
135
|
+
.filter((n) => n !== undefined);
|
|
136
|
+
return newList;
|
|
137
|
+
};
|
|
138
|
+
exports.getNewLocalNetworks = getNewLocalNetworks;
|
|
139
|
+
const findNetworksToUpdate = (props) => {
|
|
140
|
+
try {
|
|
141
|
+
const { localNetworks, remoteNetworks } = props;
|
|
142
|
+
// Get Maps & Key Sets
|
|
143
|
+
const ds = (0, exports.getDataStructures)(localNetworks, remoteNetworks);
|
|
144
|
+
// Calc Missing Networks
|
|
145
|
+
const missingNetworks = (0, exports.getMissingNetworkLists)(ds);
|
|
146
|
+
// Calc Updated Networks
|
|
147
|
+
const updatedNetworks = (0, exports.getUpdatedNetworkLists)(ds);
|
|
148
|
+
// List of networks we need to update
|
|
149
|
+
const remoteNetworksToUpdate = [
|
|
150
|
+
...missingNetworks.missingRemoteNetworks,
|
|
151
|
+
...updatedNetworks.remoteNetworksToUpdate,
|
|
152
|
+
];
|
|
153
|
+
// List of new local networks
|
|
154
|
+
const newLocalNetworks = (0, exports.getNewLocalNetworks)({
|
|
155
|
+
originalList: localNetworks,
|
|
156
|
+
missingLocalNetworks: missingNetworks.missingLocalNetworks,
|
|
157
|
+
localNetworksToRemove: updatedNetworks.localNetworksToRemove,
|
|
158
|
+
localNetworksToUpdate: updatedNetworks.localNetworksToUpdate,
|
|
159
|
+
});
|
|
160
|
+
return {
|
|
161
|
+
remoteNetworksToUpdate,
|
|
162
|
+
newLocalNetworks,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
// Unable to perform sync, silently fail
|
|
167
|
+
}
|
|
168
|
+
return undefined;
|
|
169
|
+
};
|
|
170
|
+
exports.findNetworksToUpdate = findNetworksToUpdate;
|
|
171
|
+
//# sourceMappingURL=sync-all.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-all.cjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-all.ts"],"names":[],"mappings":"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","sourcesContent":["import { setDifference, setIntersection } from '../utils';\nimport {\n toRemoteNetworkConfiguration,\n type NetworkConfiguration,\n type RemoteNetworkConfiguration,\n toNetworkConfiguration,\n} from './types';\n\ntype FindNetworksToUpdateProps = {\n localNetworks: NetworkConfiguration[];\n remoteNetworks: RemoteNetworkConfiguration[];\n};\n\nconst createMap = <\n Network extends NetworkConfiguration | RemoteNetworkConfiguration,\n>(\n networks: Network[],\n): Map<string, Network> => {\n return new Map(networks.map((n) => [n.chainId, n]));\n};\n\nconst createKeySet = <\n Network extends NetworkConfiguration | RemoteNetworkConfiguration,\n>(\n networks: Network[],\n predicate?: (n: Network) => boolean,\n): Set<string> => {\n const filteredNetworks = predicate\n ? networks.filter((n) => predicate(n))\n : networks;\n return new Set(filteredNetworks.map((n) => n.chainId));\n};\n\nexport const getDataStructures = (\n localNetworks: NetworkConfiguration[],\n remoteNetworks: RemoteNetworkConfiguration[],\n) => {\n const localMap = createMap(localNetworks);\n const remoteMap = createMap(remoteNetworks);\n const localKeySet = createKeySet(localNetworks);\n const remoteKeySet = createKeySet(remoteNetworks);\n const existingRemoteKeySet = createKeySet(remoteNetworks, (n) => !n.d);\n\n return {\n localMap,\n remoteMap,\n localKeySet,\n remoteKeySet,\n existingRemoteKeySet,\n };\n};\n\ntype MatrixResult = 'Do Nothing' | 'Local Wins' | 'Remote Wins';\nexport const checkWhichNetworkIsLatest = (\n localNetwork: NetworkConfiguration,\n remoteNetwork: RemoteNetworkConfiguration,\n): MatrixResult => {\n // Neither network has updatedAt field (indicating no changes were made)\n if (!localNetwork.lastUpdatedAt && !remoteNetwork.lastUpdatedAt) {\n return 'Do Nothing';\n }\n\n // Local only has updatedAt field\n if (localNetwork.lastUpdatedAt && !remoteNetwork.lastUpdatedAt) {\n return 'Local Wins';\n }\n\n // Remote only has updatedAt field\n if (!localNetwork.lastUpdatedAt && remoteNetwork.lastUpdatedAt) {\n return 'Remote Wins';\n }\n\n // Both have updatedAt field, perform comparison\n if (localNetwork.lastUpdatedAt && remoteNetwork.lastUpdatedAt) {\n if (localNetwork.lastUpdatedAt === remoteNetwork.lastUpdatedAt) {\n return 'Do Nothing';\n }\n\n return localNetwork.lastUpdatedAt > remoteNetwork.lastUpdatedAt\n ? 'Local Wins'\n : 'Remote Wins';\n }\n\n return 'Do Nothing';\n};\n\nexport const getMissingNetworkLists = (\n ds: ReturnType<typeof getDataStructures>,\n) => {\n const {\n localKeySet,\n localMap,\n remoteKeySet,\n remoteMap,\n existingRemoteKeySet,\n } = ds;\n\n const missingLocalNetworks: NetworkConfiguration[] = [];\n const missingRemoteNetworks: RemoteNetworkConfiguration[] = [];\n\n // Networks that are in local, but not in remote\n const missingRemoteNetworkKeys = setDifference(localKeySet, remoteKeySet);\n missingRemoteNetworkKeys.forEach((chain) => {\n const n = localMap.get(chain);\n if (n) {\n missingRemoteNetworks.push(toRemoteNetworkConfiguration(n));\n }\n });\n\n // Networks that are in remote (not deleted), but not in local\n const missingLocalNetworkKeys = setDifference(\n existingRemoteKeySet,\n localKeySet,\n );\n missingLocalNetworkKeys.forEach((chain) => {\n const n = remoteMap.get(chain);\n if (n) {\n missingLocalNetworks.push(toNetworkConfiguration(n));\n }\n });\n\n return {\n missingLocalNetworks,\n missingRemoteNetworks,\n };\n};\n\nexport const getUpdatedNetworkLists = (\n ds: ReturnType<typeof getDataStructures>,\n) => {\n const { localKeySet, localMap, remoteKeySet, remoteMap } = ds;\n\n const remoteNetworksToUpdate: RemoteNetworkConfiguration[] = [];\n const localNetworksToUpdate: NetworkConfiguration[] = [];\n const localNetworksToRemove: NetworkConfiguration[] = [];\n\n // Get networks in both, these need to be compared against\n // each other to see which network to update.\n const networksInBoth = setIntersection(localKeySet, remoteKeySet);\n networksInBoth.forEach((chain) => {\n const localNetwork = localMap.get(chain);\n const remoteNetwork = remoteMap.get(chain);\n if (!localNetwork || !remoteNetwork) {\n return;\n }\n\n const whichIsLatest = checkWhichNetworkIsLatest(\n localNetwork,\n remoteNetwork,\n );\n\n // Local Wins -> Need to update remote\n if (whichIsLatest === 'Local Wins') {\n remoteNetworksToUpdate.push(toRemoteNetworkConfiguration(localNetwork));\n }\n\n // Remote Wins...\n if (whichIsLatest === 'Remote Wins') {\n if (remoteNetwork.d) {\n // ...and is deleted -> Need to remove from local list\n localNetworksToRemove.push(toNetworkConfiguration(remoteNetwork));\n } else {\n // ...and isn't deleted -> Need to update local list\n localNetworksToUpdate.push(toNetworkConfiguration(remoteNetwork));\n }\n }\n });\n\n return {\n remoteNetworksToUpdate,\n localNetworksToUpdate,\n localNetworksToRemove,\n };\n};\n\nexport const getNewLocalNetworks = (props: {\n originalList: NetworkConfiguration[];\n missingLocalNetworks: NetworkConfiguration[];\n localNetworksToUpdate: NetworkConfiguration[];\n localNetworksToRemove: NetworkConfiguration[];\n}) => {\n let newList = [...props.originalList];\n newList.push(...props.missingLocalNetworks);\n const updateMap = createMap(props.localNetworksToUpdate);\n const remoteMap = createMap(props.localNetworksToRemove);\n\n newList = newList\n .map((n) => {\n if (remoteMap.has(n.chainId)) {\n return undefined;\n }\n\n const updatedNetwork = updateMap.get(n.chainId);\n if (updatedNetwork) {\n return updatedNetwork;\n }\n\n return n;\n })\n .filter((n): n is NetworkConfiguration => n !== undefined);\n\n return newList;\n};\n\nexport const findNetworksToUpdate = (props: FindNetworksToUpdateProps) => {\n try {\n const { localNetworks, remoteNetworks } = props;\n\n // Get Maps & Key Sets\n const ds = getDataStructures(localNetworks, remoteNetworks);\n\n // Calc Missing Networks\n const missingNetworks = getMissingNetworkLists(ds);\n\n // Calc Updated Networks\n const updatedNetworks = getUpdatedNetworkLists(ds);\n\n // List of networks we need to update\n const remoteNetworksToUpdate = [\n ...missingNetworks.missingRemoteNetworks,\n ...updatedNetworks.remoteNetworksToUpdate,\n ];\n\n // List of new local networks\n const newLocalNetworks = getNewLocalNetworks({\n originalList: localNetworks,\n missingLocalNetworks: missingNetworks.missingLocalNetworks,\n localNetworksToRemove: updatedNetworks.localNetworksToRemove,\n localNetworksToUpdate: updatedNetworks.localNetworksToUpdate,\n });\n\n return {\n remoteNetworksToUpdate,\n newLocalNetworks,\n };\n } catch {\n // Unable to perform sync, silently fail\n }\n\n return undefined;\n};\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type NetworkConfiguration, type RemoteNetworkConfiguration } from "./types.cjs";
|
|
2
|
+
type FindNetworksToUpdateProps = {
|
|
3
|
+
localNetworks: NetworkConfiguration[];
|
|
4
|
+
remoteNetworks: RemoteNetworkConfiguration[];
|
|
5
|
+
};
|
|
6
|
+
export declare const getDataStructures: (localNetworks: NetworkConfiguration[], remoteNetworks: RemoteNetworkConfiguration[]) => {
|
|
7
|
+
localMap: Map<string, NetworkConfiguration>;
|
|
8
|
+
remoteMap: Map<string, RemoteNetworkConfiguration>;
|
|
9
|
+
localKeySet: Set<string>;
|
|
10
|
+
remoteKeySet: Set<string>;
|
|
11
|
+
existingRemoteKeySet: Set<string>;
|
|
12
|
+
};
|
|
13
|
+
type MatrixResult = 'Do Nothing' | 'Local Wins' | 'Remote Wins';
|
|
14
|
+
export declare const checkWhichNetworkIsLatest: (localNetwork: NetworkConfiguration, remoteNetwork: RemoteNetworkConfiguration) => MatrixResult;
|
|
15
|
+
export declare const getMissingNetworkLists: (ds: ReturnType<typeof getDataStructures>) => {
|
|
16
|
+
missingLocalNetworks: NetworkConfiguration[];
|
|
17
|
+
missingRemoteNetworks: RemoteNetworkConfiguration[];
|
|
18
|
+
};
|
|
19
|
+
export declare const getUpdatedNetworkLists: (ds: ReturnType<typeof getDataStructures>) => {
|
|
20
|
+
remoteNetworksToUpdate: RemoteNetworkConfiguration[];
|
|
21
|
+
localNetworksToUpdate: NetworkConfiguration[];
|
|
22
|
+
localNetworksToRemove: NetworkConfiguration[];
|
|
23
|
+
};
|
|
24
|
+
export declare const getNewLocalNetworks: (props: {
|
|
25
|
+
originalList: NetworkConfiguration[];
|
|
26
|
+
missingLocalNetworks: NetworkConfiguration[];
|
|
27
|
+
localNetworksToUpdate: NetworkConfiguration[];
|
|
28
|
+
localNetworksToRemove: NetworkConfiguration[];
|
|
29
|
+
}) => NetworkConfiguration[];
|
|
30
|
+
export declare const findNetworksToUpdate: (props: FindNetworksToUpdateProps) => {
|
|
31
|
+
remoteNetworksToUpdate: RemoteNetworkConfiguration[];
|
|
32
|
+
newLocalNetworks: NetworkConfiguration[];
|
|
33
|
+
} | undefined;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=sync-all.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-all.d.cts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-all.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAEhC,oBAAgB;AAEjB,KAAK,yBAAyB,GAAG;IAC/B,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,cAAc,EAAE,0BAA0B,EAAE,CAAC;CAC9C,CAAC;AAsBF,eAAO,MAAM,iBAAiB,kBACb,oBAAoB,EAAE,kBACrB,0BAA0B,EAAE;;;;;;CAe7C,CAAC;AAEF,KAAK,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;AAChE,eAAO,MAAM,yBAAyB,iBACtB,oBAAoB,iBACnB,0BAA0B,KACxC,YA4BF,CAAC;AAEF,eAAO,MAAM,sBAAsB,OAC7B,WAAW,wBAAwB,CAAC;;;CAsCzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,OAC7B,WAAW,wBAAwB,CAAC;;;;CA6CzC,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAAW;IACzC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,oBAAoB,EAAE,oBAAoB,EAAE,CAAC;IAC7C,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;CAC/C,2BAsBA,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAAW,yBAAyB;;;aAoCpE,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type NetworkConfiguration, type RemoteNetworkConfiguration } from "./types.mjs";
|
|
2
|
+
type FindNetworksToUpdateProps = {
|
|
3
|
+
localNetworks: NetworkConfiguration[];
|
|
4
|
+
remoteNetworks: RemoteNetworkConfiguration[];
|
|
5
|
+
};
|
|
6
|
+
export declare const getDataStructures: (localNetworks: NetworkConfiguration[], remoteNetworks: RemoteNetworkConfiguration[]) => {
|
|
7
|
+
localMap: Map<string, NetworkConfiguration>;
|
|
8
|
+
remoteMap: Map<string, RemoteNetworkConfiguration>;
|
|
9
|
+
localKeySet: Set<string>;
|
|
10
|
+
remoteKeySet: Set<string>;
|
|
11
|
+
existingRemoteKeySet: Set<string>;
|
|
12
|
+
};
|
|
13
|
+
type MatrixResult = 'Do Nothing' | 'Local Wins' | 'Remote Wins';
|
|
14
|
+
export declare const checkWhichNetworkIsLatest: (localNetwork: NetworkConfiguration, remoteNetwork: RemoteNetworkConfiguration) => MatrixResult;
|
|
15
|
+
export declare const getMissingNetworkLists: (ds: ReturnType<typeof getDataStructures>) => {
|
|
16
|
+
missingLocalNetworks: NetworkConfiguration[];
|
|
17
|
+
missingRemoteNetworks: RemoteNetworkConfiguration[];
|
|
18
|
+
};
|
|
19
|
+
export declare const getUpdatedNetworkLists: (ds: ReturnType<typeof getDataStructures>) => {
|
|
20
|
+
remoteNetworksToUpdate: RemoteNetworkConfiguration[];
|
|
21
|
+
localNetworksToUpdate: NetworkConfiguration[];
|
|
22
|
+
localNetworksToRemove: NetworkConfiguration[];
|
|
23
|
+
};
|
|
24
|
+
export declare const getNewLocalNetworks: (props: {
|
|
25
|
+
originalList: NetworkConfiguration[];
|
|
26
|
+
missingLocalNetworks: NetworkConfiguration[];
|
|
27
|
+
localNetworksToUpdate: NetworkConfiguration[];
|
|
28
|
+
localNetworksToRemove: NetworkConfiguration[];
|
|
29
|
+
}) => NetworkConfiguration[];
|
|
30
|
+
export declare const findNetworksToUpdate: (props: FindNetworksToUpdateProps) => {
|
|
31
|
+
remoteNetworksToUpdate: RemoteNetworkConfiguration[];
|
|
32
|
+
newLocalNetworks: NetworkConfiguration[];
|
|
33
|
+
} | undefined;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=sync-all.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-all.d.mts","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-all.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAEhC,oBAAgB;AAEjB,KAAK,yBAAyB,GAAG;IAC/B,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,cAAc,EAAE,0BAA0B,EAAE,CAAC;CAC9C,CAAC;AAsBF,eAAO,MAAM,iBAAiB,kBACb,oBAAoB,EAAE,kBACrB,0BAA0B,EAAE;;;;;;CAe7C,CAAC;AAEF,KAAK,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;AAChE,eAAO,MAAM,yBAAyB,iBACtB,oBAAoB,iBACnB,0BAA0B,KACxC,YA4BF,CAAC;AAEF,eAAO,MAAM,sBAAsB,OAC7B,WAAW,wBAAwB,CAAC;;;CAsCzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,OAC7B,WAAW,wBAAwB,CAAC;;;;CA6CzC,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAAW;IACzC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,oBAAoB,EAAE,oBAAoB,EAAE,CAAC;IAC7C,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;CAC/C,2BAsBA,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAAW,yBAAyB;;;aAoCpE,CAAC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { setDifference, setIntersection } from "../utils.mjs";
|
|
2
|
+
import { toRemoteNetworkConfiguration, toNetworkConfiguration } from "./types.mjs";
|
|
3
|
+
const createMap = (networks) => {
|
|
4
|
+
return new Map(networks.map((n) => [n.chainId, n]));
|
|
5
|
+
};
|
|
6
|
+
const createKeySet = (networks, predicate) => {
|
|
7
|
+
const filteredNetworks = predicate
|
|
8
|
+
? networks.filter((n) => predicate(n))
|
|
9
|
+
: networks;
|
|
10
|
+
return new Set(filteredNetworks.map((n) => n.chainId));
|
|
11
|
+
};
|
|
12
|
+
export const getDataStructures = (localNetworks, remoteNetworks) => {
|
|
13
|
+
const localMap = createMap(localNetworks);
|
|
14
|
+
const remoteMap = createMap(remoteNetworks);
|
|
15
|
+
const localKeySet = createKeySet(localNetworks);
|
|
16
|
+
const remoteKeySet = createKeySet(remoteNetworks);
|
|
17
|
+
const existingRemoteKeySet = createKeySet(remoteNetworks, (n) => !n.d);
|
|
18
|
+
return {
|
|
19
|
+
localMap,
|
|
20
|
+
remoteMap,
|
|
21
|
+
localKeySet,
|
|
22
|
+
remoteKeySet,
|
|
23
|
+
existingRemoteKeySet,
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export const checkWhichNetworkIsLatest = (localNetwork, remoteNetwork) => {
|
|
27
|
+
// Neither network has updatedAt field (indicating no changes were made)
|
|
28
|
+
if (!localNetwork.lastUpdatedAt && !remoteNetwork.lastUpdatedAt) {
|
|
29
|
+
return 'Do Nothing';
|
|
30
|
+
}
|
|
31
|
+
// Local only has updatedAt field
|
|
32
|
+
if (localNetwork.lastUpdatedAt && !remoteNetwork.lastUpdatedAt) {
|
|
33
|
+
return 'Local Wins';
|
|
34
|
+
}
|
|
35
|
+
// Remote only has updatedAt field
|
|
36
|
+
if (!localNetwork.lastUpdatedAt && remoteNetwork.lastUpdatedAt) {
|
|
37
|
+
return 'Remote Wins';
|
|
38
|
+
}
|
|
39
|
+
// Both have updatedAt field, perform comparison
|
|
40
|
+
if (localNetwork.lastUpdatedAt && remoteNetwork.lastUpdatedAt) {
|
|
41
|
+
if (localNetwork.lastUpdatedAt === remoteNetwork.lastUpdatedAt) {
|
|
42
|
+
return 'Do Nothing';
|
|
43
|
+
}
|
|
44
|
+
return localNetwork.lastUpdatedAt > remoteNetwork.lastUpdatedAt
|
|
45
|
+
? 'Local Wins'
|
|
46
|
+
: 'Remote Wins';
|
|
47
|
+
}
|
|
48
|
+
return 'Do Nothing';
|
|
49
|
+
};
|
|
50
|
+
export const getMissingNetworkLists = (ds) => {
|
|
51
|
+
const { localKeySet, localMap, remoteKeySet, remoteMap, existingRemoteKeySet, } = ds;
|
|
52
|
+
const missingLocalNetworks = [];
|
|
53
|
+
const missingRemoteNetworks = [];
|
|
54
|
+
// Networks that are in local, but not in remote
|
|
55
|
+
const missingRemoteNetworkKeys = setDifference(localKeySet, remoteKeySet);
|
|
56
|
+
missingRemoteNetworkKeys.forEach((chain) => {
|
|
57
|
+
const n = localMap.get(chain);
|
|
58
|
+
if (n) {
|
|
59
|
+
missingRemoteNetworks.push(toRemoteNetworkConfiguration(n));
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
// Networks that are in remote (not deleted), but not in local
|
|
63
|
+
const missingLocalNetworkKeys = setDifference(existingRemoteKeySet, localKeySet);
|
|
64
|
+
missingLocalNetworkKeys.forEach((chain) => {
|
|
65
|
+
const n = remoteMap.get(chain);
|
|
66
|
+
if (n) {
|
|
67
|
+
missingLocalNetworks.push(toNetworkConfiguration(n));
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
return {
|
|
71
|
+
missingLocalNetworks,
|
|
72
|
+
missingRemoteNetworks,
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
export const getUpdatedNetworkLists = (ds) => {
|
|
76
|
+
const { localKeySet, localMap, remoteKeySet, remoteMap } = ds;
|
|
77
|
+
const remoteNetworksToUpdate = [];
|
|
78
|
+
const localNetworksToUpdate = [];
|
|
79
|
+
const localNetworksToRemove = [];
|
|
80
|
+
// Get networks in both, these need to be compared against
|
|
81
|
+
// each other to see which network to update.
|
|
82
|
+
const networksInBoth = setIntersection(localKeySet, remoteKeySet);
|
|
83
|
+
networksInBoth.forEach((chain) => {
|
|
84
|
+
const localNetwork = localMap.get(chain);
|
|
85
|
+
const remoteNetwork = remoteMap.get(chain);
|
|
86
|
+
if (!localNetwork || !remoteNetwork) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const whichIsLatest = checkWhichNetworkIsLatest(localNetwork, remoteNetwork);
|
|
90
|
+
// Local Wins -> Need to update remote
|
|
91
|
+
if (whichIsLatest === 'Local Wins') {
|
|
92
|
+
remoteNetworksToUpdate.push(toRemoteNetworkConfiguration(localNetwork));
|
|
93
|
+
}
|
|
94
|
+
// Remote Wins...
|
|
95
|
+
if (whichIsLatest === 'Remote Wins') {
|
|
96
|
+
if (remoteNetwork.d) {
|
|
97
|
+
// ...and is deleted -> Need to remove from local list
|
|
98
|
+
localNetworksToRemove.push(toNetworkConfiguration(remoteNetwork));
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
// ...and isn't deleted -> Need to update local list
|
|
102
|
+
localNetworksToUpdate.push(toNetworkConfiguration(remoteNetwork));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
return {
|
|
107
|
+
remoteNetworksToUpdate,
|
|
108
|
+
localNetworksToUpdate,
|
|
109
|
+
localNetworksToRemove,
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
export const getNewLocalNetworks = (props) => {
|
|
113
|
+
let newList = [...props.originalList];
|
|
114
|
+
newList.push(...props.missingLocalNetworks);
|
|
115
|
+
const updateMap = createMap(props.localNetworksToUpdate);
|
|
116
|
+
const remoteMap = createMap(props.localNetworksToRemove);
|
|
117
|
+
newList = newList
|
|
118
|
+
.map((n) => {
|
|
119
|
+
if (remoteMap.has(n.chainId)) {
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
const updatedNetwork = updateMap.get(n.chainId);
|
|
123
|
+
if (updatedNetwork) {
|
|
124
|
+
return updatedNetwork;
|
|
125
|
+
}
|
|
126
|
+
return n;
|
|
127
|
+
})
|
|
128
|
+
.filter((n) => n !== undefined);
|
|
129
|
+
return newList;
|
|
130
|
+
};
|
|
131
|
+
export const findNetworksToUpdate = (props) => {
|
|
132
|
+
try {
|
|
133
|
+
const { localNetworks, remoteNetworks } = props;
|
|
134
|
+
// Get Maps & Key Sets
|
|
135
|
+
const ds = getDataStructures(localNetworks, remoteNetworks);
|
|
136
|
+
// Calc Missing Networks
|
|
137
|
+
const missingNetworks = getMissingNetworkLists(ds);
|
|
138
|
+
// Calc Updated Networks
|
|
139
|
+
const updatedNetworks = getUpdatedNetworkLists(ds);
|
|
140
|
+
// List of networks we need to update
|
|
141
|
+
const remoteNetworksToUpdate = [
|
|
142
|
+
...missingNetworks.missingRemoteNetworks,
|
|
143
|
+
...updatedNetworks.remoteNetworksToUpdate,
|
|
144
|
+
];
|
|
145
|
+
// List of new local networks
|
|
146
|
+
const newLocalNetworks = getNewLocalNetworks({
|
|
147
|
+
originalList: localNetworks,
|
|
148
|
+
missingLocalNetworks: missingNetworks.missingLocalNetworks,
|
|
149
|
+
localNetworksToRemove: updatedNetworks.localNetworksToRemove,
|
|
150
|
+
localNetworksToUpdate: updatedNetworks.localNetworksToUpdate,
|
|
151
|
+
});
|
|
152
|
+
return {
|
|
153
|
+
remoteNetworksToUpdate,
|
|
154
|
+
newLocalNetworks,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
// Unable to perform sync, silently fail
|
|
159
|
+
}
|
|
160
|
+
return undefined;
|
|
161
|
+
};
|
|
162
|
+
//# sourceMappingURL=sync-all.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-all.mjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-all.ts"],"names":[],"mappings":"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","sourcesContent":["import { setDifference, setIntersection } from '../utils';\nimport {\n toRemoteNetworkConfiguration,\n type NetworkConfiguration,\n type RemoteNetworkConfiguration,\n toNetworkConfiguration,\n} from './types';\n\ntype FindNetworksToUpdateProps = {\n localNetworks: NetworkConfiguration[];\n remoteNetworks: RemoteNetworkConfiguration[];\n};\n\nconst createMap = <\n Network extends NetworkConfiguration | RemoteNetworkConfiguration,\n>(\n networks: Network[],\n): Map<string, Network> => {\n return new Map(networks.map((n) => [n.chainId, n]));\n};\n\nconst createKeySet = <\n Network extends NetworkConfiguration | RemoteNetworkConfiguration,\n>(\n networks: Network[],\n predicate?: (n: Network) => boolean,\n): Set<string> => {\n const filteredNetworks = predicate\n ? networks.filter((n) => predicate(n))\n : networks;\n return new Set(filteredNetworks.map((n) => n.chainId));\n};\n\nexport const getDataStructures = (\n localNetworks: NetworkConfiguration[],\n remoteNetworks: RemoteNetworkConfiguration[],\n) => {\n const localMap = createMap(localNetworks);\n const remoteMap = createMap(remoteNetworks);\n const localKeySet = createKeySet(localNetworks);\n const remoteKeySet = createKeySet(remoteNetworks);\n const existingRemoteKeySet = createKeySet(remoteNetworks, (n) => !n.d);\n\n return {\n localMap,\n remoteMap,\n localKeySet,\n remoteKeySet,\n existingRemoteKeySet,\n };\n};\n\ntype MatrixResult = 'Do Nothing' | 'Local Wins' | 'Remote Wins';\nexport const checkWhichNetworkIsLatest = (\n localNetwork: NetworkConfiguration,\n remoteNetwork: RemoteNetworkConfiguration,\n): MatrixResult => {\n // Neither network has updatedAt field (indicating no changes were made)\n if (!localNetwork.lastUpdatedAt && !remoteNetwork.lastUpdatedAt) {\n return 'Do Nothing';\n }\n\n // Local only has updatedAt field\n if (localNetwork.lastUpdatedAt && !remoteNetwork.lastUpdatedAt) {\n return 'Local Wins';\n }\n\n // Remote only has updatedAt field\n if (!localNetwork.lastUpdatedAt && remoteNetwork.lastUpdatedAt) {\n return 'Remote Wins';\n }\n\n // Both have updatedAt field, perform comparison\n if (localNetwork.lastUpdatedAt && remoteNetwork.lastUpdatedAt) {\n if (localNetwork.lastUpdatedAt === remoteNetwork.lastUpdatedAt) {\n return 'Do Nothing';\n }\n\n return localNetwork.lastUpdatedAt > remoteNetwork.lastUpdatedAt\n ? 'Local Wins'\n : 'Remote Wins';\n }\n\n return 'Do Nothing';\n};\n\nexport const getMissingNetworkLists = (\n ds: ReturnType<typeof getDataStructures>,\n) => {\n const {\n localKeySet,\n localMap,\n remoteKeySet,\n remoteMap,\n existingRemoteKeySet,\n } = ds;\n\n const missingLocalNetworks: NetworkConfiguration[] = [];\n const missingRemoteNetworks: RemoteNetworkConfiguration[] = [];\n\n // Networks that are in local, but not in remote\n const missingRemoteNetworkKeys = setDifference(localKeySet, remoteKeySet);\n missingRemoteNetworkKeys.forEach((chain) => {\n const n = localMap.get(chain);\n if (n) {\n missingRemoteNetworks.push(toRemoteNetworkConfiguration(n));\n }\n });\n\n // Networks that are in remote (not deleted), but not in local\n const missingLocalNetworkKeys = setDifference(\n existingRemoteKeySet,\n localKeySet,\n );\n missingLocalNetworkKeys.forEach((chain) => {\n const n = remoteMap.get(chain);\n if (n) {\n missingLocalNetworks.push(toNetworkConfiguration(n));\n }\n });\n\n return {\n missingLocalNetworks,\n missingRemoteNetworks,\n };\n};\n\nexport const getUpdatedNetworkLists = (\n ds: ReturnType<typeof getDataStructures>,\n) => {\n const { localKeySet, localMap, remoteKeySet, remoteMap } = ds;\n\n const remoteNetworksToUpdate: RemoteNetworkConfiguration[] = [];\n const localNetworksToUpdate: NetworkConfiguration[] = [];\n const localNetworksToRemove: NetworkConfiguration[] = [];\n\n // Get networks in both, these need to be compared against\n // each other to see which network to update.\n const networksInBoth = setIntersection(localKeySet, remoteKeySet);\n networksInBoth.forEach((chain) => {\n const localNetwork = localMap.get(chain);\n const remoteNetwork = remoteMap.get(chain);\n if (!localNetwork || !remoteNetwork) {\n return;\n }\n\n const whichIsLatest = checkWhichNetworkIsLatest(\n localNetwork,\n remoteNetwork,\n );\n\n // Local Wins -> Need to update remote\n if (whichIsLatest === 'Local Wins') {\n remoteNetworksToUpdate.push(toRemoteNetworkConfiguration(localNetwork));\n }\n\n // Remote Wins...\n if (whichIsLatest === 'Remote Wins') {\n if (remoteNetwork.d) {\n // ...and is deleted -> Need to remove from local list\n localNetworksToRemove.push(toNetworkConfiguration(remoteNetwork));\n } else {\n // ...and isn't deleted -> Need to update local list\n localNetworksToUpdate.push(toNetworkConfiguration(remoteNetwork));\n }\n }\n });\n\n return {\n remoteNetworksToUpdate,\n localNetworksToUpdate,\n localNetworksToRemove,\n };\n};\n\nexport const getNewLocalNetworks = (props: {\n originalList: NetworkConfiguration[];\n missingLocalNetworks: NetworkConfiguration[];\n localNetworksToUpdate: NetworkConfiguration[];\n localNetworksToRemove: NetworkConfiguration[];\n}) => {\n let newList = [...props.originalList];\n newList.push(...props.missingLocalNetworks);\n const updateMap = createMap(props.localNetworksToUpdate);\n const remoteMap = createMap(props.localNetworksToRemove);\n\n newList = newList\n .map((n) => {\n if (remoteMap.has(n.chainId)) {\n return undefined;\n }\n\n const updatedNetwork = updateMap.get(n.chainId);\n if (updatedNetwork) {\n return updatedNetwork;\n }\n\n return n;\n })\n .filter((n): n is NetworkConfiguration => n !== undefined);\n\n return newList;\n};\n\nexport const findNetworksToUpdate = (props: FindNetworksToUpdateProps) => {\n try {\n const { localNetworks, remoteNetworks } = props;\n\n // Get Maps & Key Sets\n const ds = getDataStructures(localNetworks, remoteNetworks);\n\n // Calc Missing Networks\n const missingNetworks = getMissingNetworkLists(ds);\n\n // Calc Updated Networks\n const updatedNetworks = getUpdatedNetworkLists(ds);\n\n // List of networks we need to update\n const remoteNetworksToUpdate = [\n ...missingNetworks.missingRemoteNetworks,\n ...updatedNetworks.remoteNetworksToUpdate,\n ];\n\n // List of new local networks\n const newLocalNetworks = getNewLocalNetworks({\n originalList: localNetworks,\n missingLocalNetworks: missingNetworks.missingLocalNetworks,\n localNetworksToRemove: updatedNetworks.localNetworksToRemove,\n localNetworksToUpdate: updatedNetworks.localNetworksToUpdate,\n });\n\n return {\n remoteNetworksToUpdate,\n newLocalNetworks,\n };\n } catch {\n // Unable to perform sync, silently fail\n }\n\n return undefined;\n};\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.batchUpdateNetworks = exports.deleteNetwork = exports.addNetwork = exports.updateNetwork = void 0;
|
|
4
|
+
const services_1 = require("./services.cjs");
|
|
5
|
+
const updateNetwork = async (network, opts) => {
|
|
6
|
+
return await (0, services_1.upsertRemoteNetwork)({ v: '1', ...network, d: false }, opts);
|
|
7
|
+
};
|
|
8
|
+
exports.updateNetwork = updateNetwork;
|
|
9
|
+
exports.addNetwork = exports.updateNetwork;
|
|
10
|
+
const deleteNetwork = async (network, opts) => {
|
|
11
|
+
// we are soft deleting, as we need to consider devices that have not yet synced
|
|
12
|
+
return await (0, services_1.upsertRemoteNetwork)({
|
|
13
|
+
v: '1',
|
|
14
|
+
...network,
|
|
15
|
+
d: true,
|
|
16
|
+
lastUpdatedAt: network.lastUpdatedAt ?? Date.now(), // Ensures that a deleted entry has a date field
|
|
17
|
+
}, opts);
|
|
18
|
+
};
|
|
19
|
+
exports.deleteNetwork = deleteNetwork;
|
|
20
|
+
const batchUpdateNetworks = async (networks, opts) => {
|
|
21
|
+
const remoteNetworks = networks.map((n) => ({
|
|
22
|
+
v: '1',
|
|
23
|
+
...n,
|
|
24
|
+
}));
|
|
25
|
+
return await (0, services_1.batchUpsertRemoteNetworks)(remoteNetworks, opts);
|
|
26
|
+
};
|
|
27
|
+
exports.batchUpdateNetworks = batchUpdateNetworks;
|
|
28
|
+
//# sourceMappingURL=sync-mutations.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-mutations.cjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-mutations.ts"],"names":[],"mappings":";;;AACA,6CAA4E;AAGrE,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,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,gDAAgD;KACrG,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 { UserStorageBaseOptions } from '../services';\nimport { batchUpsertRemoteNetworks, upsertRemoteNetwork } from './services';\nimport type { NetworkConfiguration, RemoteNetworkConfiguration } from './types';\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: network.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"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { UserStorageBaseOptions } from "../services.cjs";
|
|
2
|
+
import type { NetworkConfiguration } from "./types.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>;
|
|
6
|
+
export declare const batchUpdateNetworks: (networks: (NetworkConfiguration & {
|
|
7
|
+
deleted?: boolean;
|
|
8
|
+
})[], opts: UserStorageBaseOptions) => Promise<void>;
|
|
9
|
+
//# sourceMappingURL=sync-mutations.d.cts.map
|
|
@@ -0,0 +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,sBAAsB,EAAE,wBAAoB;AAE1D,OAAO,KAAK,EAAE,oBAAoB,EAA8B,oBAAgB;AAEhF,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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { UserStorageBaseOptions } from "../services.mjs";
|
|
2
|
+
import type { NetworkConfiguration } from "./types.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>;
|
|
6
|
+
export declare const batchUpdateNetworks: (networks: (NetworkConfiguration & {
|
|
7
|
+
deleted?: boolean;
|
|
8
|
+
})[], opts: UserStorageBaseOptions) => Promise<void>;
|
|
9
|
+
//# sourceMappingURL=sync-mutations.d.mts.map
|
|
@@ -0,0 +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,sBAAsB,EAAE,wBAAoB;AAE1D,OAAO,KAAK,EAAE,oBAAoB,EAA8B,oBAAgB;AAEhF,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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { batchUpsertRemoteNetworks, upsertRemoteNetwork } from "./services.mjs";
|
|
2
|
+
export const updateNetwork = async (network, opts) => {
|
|
3
|
+
return await upsertRemoteNetwork({ v: '1', ...network, d: false }, opts);
|
|
4
|
+
};
|
|
5
|
+
export const addNetwork = updateNetwork;
|
|
6
|
+
export const deleteNetwork = async (network, opts) => {
|
|
7
|
+
// we are soft deleting, as we need to consider devices that have not yet synced
|
|
8
|
+
return await upsertRemoteNetwork({
|
|
9
|
+
v: '1',
|
|
10
|
+
...network,
|
|
11
|
+
d: true,
|
|
12
|
+
lastUpdatedAt: network.lastUpdatedAt ?? Date.now(), // Ensures that a deleted entry has a date field
|
|
13
|
+
}, opts);
|
|
14
|
+
};
|
|
15
|
+
export const batchUpdateNetworks = async (networks, opts) => {
|
|
16
|
+
const remoteNetworks = networks.map((n) => ({
|
|
17
|
+
v: '1',
|
|
18
|
+
...n,
|
|
19
|
+
}));
|
|
20
|
+
return await batchUpsertRemoteNetworks(remoteNetworks, opts);
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=sync-mutations.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-mutations.mjs","sourceRoot":"","sources":["../../../../src/controllers/user-storage/network-syncing/sync-mutations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,uBAAmB;AAG5E,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,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,gDAAgD;KACrG,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 { UserStorageBaseOptions } from '../services';\nimport { batchUpsertRemoteNetworks, upsertRemoteNetwork } from './services';\nimport type { NetworkConfiguration, RemoteNetworkConfiguration } from './types';\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: network.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"]}
|