@metamask-previews/phishing-controller 17.4.0-preview-eb263b0ee → 17.4.0-preview-5b293ee50
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 +22 -0
- package/dist/PhishingController.cjs +134 -337
- package/dist/PhishingController.cjs.map +1 -1
- package/dist/PhishingController.d.cts +7 -196
- package/dist/PhishingController.d.cts.map +1 -1
- package/dist/PhishingController.d.mts +7 -196
- package/dist/PhishingController.d.mts.map +1 -1
- package/dist/PhishingController.mjs +114 -335
- package/dist/PhishingController.mjs.map +1 -1
- package/dist/PhishingDataService-method-action-types.cjs +7 -0
- package/dist/PhishingDataService-method-action-types.cjs.map +1 -0
- package/dist/PhishingDataService-method-action-types.d.cts +121 -0
- package/dist/PhishingDataService-method-action-types.d.cts.map +1 -0
- package/dist/PhishingDataService-method-action-types.d.mts +121 -0
- package/dist/PhishingDataService-method-action-types.d.mts.map +1 -0
- package/dist/PhishingDataService-method-action-types.mjs +6 -0
- package/dist/PhishingDataService-method-action-types.mjs.map +1 -0
- package/dist/PhishingDataService.cjs +498 -0
- package/dist/PhishingDataService.cjs.map +1 -0
- package/dist/PhishingDataService.d.cts +211 -0
- package/dist/PhishingDataService.d.cts.map +1 -0
- package/dist/PhishingDataService.d.mts +211 -0
- package/dist/PhishingDataService.d.mts.map +1 -0
- package/dist/PhishingDataService.mjs +494 -0
- package/dist/PhishingDataService.mjs.map +1 -0
- package/dist/index.cjs +6 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +5 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs +30 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +155 -0
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +155 -0
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +29 -0
- package/dist/types.mjs.map +1 -1
- package/dist/utils.cjs +3 -52
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +2 -32
- package/dist/utils.d.cts.map +1 -1
- package/dist/utils.d.mts +2 -32
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +1 -48
- package/dist/utils.mjs.map +1 -1
- package/package.json +6 -1
- package/dist/CacheManager.cjs +0 -177
- package/dist/CacheManager.cjs.map +0 -1
- package/dist/CacheManager.d.cts +0 -104
- package/dist/CacheManager.d.cts.map +0 -1
- package/dist/CacheManager.d.mts +0 -104
- package/dist/CacheManager.d.mts.map +0 -1
- package/dist/CacheManager.mjs +0 -173
- package/dist/CacheManager.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,10 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add `PhishingDataService`, a `BaseDataService` subclass that now performs all network requests for `PhishingController` (stalelist, hotlist diffs, C2 domain blocklist, URL/token/address scans, and approvals)
|
|
13
|
+
- Exposes the messenger actions `PhishingDataService:getStalelist`, `PhishingDataService:getHotlistDiffs`, `PhishingDataService:getC2DomainBlocklist`, `PhishingDataService:scanUrl`, `PhishingDataService:bulkScanUrls`, `PhishingDataService:scanToken`, `PhishingDataService:bulkScanTokens`, `PhishingDataService:scanAddress`, and `PhishingDataService:getApprovals`, making query results available to the UI via `@metamask/react-data-query`
|
|
14
|
+
- Requests are wrapped in a shared retry policy, configurable via the `policyOptions` constructor option; circuit breaking is disabled by default because the service spans four independent API hosts and a broken circuit caused by one host would pause phishing-list updates from the others
|
|
15
|
+
- Scan results are cached per URL hostname, token, and address for `SCAN_RESULT_STALE_TIME` (1 minute, matching the previous cache TTLs); bulk scans only request items without a fresh cached result and coalesce them into batched API calls (up to 50 URLs / 100 tokens per request), and single and bulk URL scans share cache entries; approvals are never cached
|
|
16
|
+
- The query cache is persisted between sessions by default (`persistenceConfig`, max age 5 minutes), which requires the `StorageService:setItem`, `StorageService:getItem`, and `StorageService:removeItem` messenger actions and an `init` call during client initialization (automatic with `@metamask/wallet`); pass `persistenceConfig: null` to disable
|
|
17
|
+
- Export the `resolveChainName` utility, which maps chain IDs to the chain names used in scan query keys, enabling UI consumers to construct `PhishingDataService` query keys
|
|
18
|
+
|
|
10
19
|
### Changed
|
|
11
20
|
|
|
21
|
+
- **BREAKING:** `PhishingController` no longer performs network requests directly; a `PhishingDataService` must be registered and its method actions delegated to the controller's messenger
|
|
22
|
+
- `PhishingControllerMessenger` now requires the `PhishingDataService` method actions listed above as allowed actions
|
|
23
|
+
- **BREAKING:** Remove the `urlScanCache`, `tokenScanCache`, and `addressScanCache` properties from `PhishingControllerState`; scan results are now cached (and persisted) by `PhishingDataService`'s query cache
|
|
24
|
+
- Client state migrations should remove these properties from persisted `PhishingController` state
|
|
25
|
+
- **BREAKING:** Remove the `urlScanCacheTTL`, `urlScanCacheMaxSize`, `tokenScanCacheTTL`, `tokenScanCacheMaxSize`, `addressScanCacheTTL`, and `addressScanCacheMaxSize` options from `PhishingControllerOptions`; scan result freshness is now controlled by `SCAN_RESULT_STALE_TIME` in `PhishingDataService`
|
|
26
|
+
- Tokens for which the bulk scanning API returns no result are now negatively cached for `SCAN_RESULT_STALE_TIME` instead of being re-requested on every call
|
|
27
|
+
- `scanUrl` now reports the underlying error message in `fetchError` for network errors instead of `'timeout of 8000ms exceeded'`
|
|
28
|
+
- Malformed API responses (e.g. a stalelist without a numeric `lastUpdated`, or scan results without a `recommendedAction`/`result_type`) are now rejected and treated as request failures instead of being passed through
|
|
12
29
|
- Bump `@metamask/transaction-controller` from `^69.5.2` to `^69.6.1` ([#9960](https://github.com/MetaMask/core/pull/9960), [#9969](https://github.com/MetaMask/core/pull/9969))
|
|
13
30
|
|
|
31
|
+
### Removed
|
|
32
|
+
|
|
33
|
+
- **BREAKING:** Remove the `CacheEntry` type; the custom cache manager has been replaced by `PhishingDataService`'s query cache
|
|
34
|
+
- **BREAKING:** Remove the `DEFAULT_URL_SCAN_CACHE_TTL`, `DEFAULT_URL_SCAN_CACHE_MAX_SIZE`, `DEFAULT_TOKEN_SCAN_CACHE_TTL`, `DEFAULT_TOKEN_SCAN_CACHE_MAX_SIZE`, `DEFAULT_ADDRESS_SCAN_CACHE_TTL`, and `DEFAULT_ADDRESS_SCAN_CACHE_MAX_SIZE` constants
|
|
35
|
+
|
|
14
36
|
## [17.4.0]
|
|
15
37
|
|
|
16
38
|
### Added
|