Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
6fa9296
refactor: Support JsonRpcEngineV2
rekmarks Oct 28, 2025
7c06c59
test: Add missing test case
rekmarks Oct 29, 2025
047f815
docs: Update changelog
rekmarks Oct 29, 2025
5893198
fix: Ensure json-rpc-engine/v2 can be resolved without builds
rekmarks Oct 31, 2025
560f6b2
refactor(provider): prefer v2 JsonRpcServer; wrap legacy engines; tig…
rekmarks Nov 1, 2025
84d3ae2
docs: Update changelogs
rekmarks Nov 1, 2025
e41057a
fix: Handle errors properly in asV2Middleware
rekmarks Nov 3, 2025
38b66a0
test: Remove `undefined` from NetworkController "empty values" test c…
rekmarks Nov 4, 2025
3c58ca3
chore: Restore eslint directive
rekmarks Nov 4, 2025
fa7e3e8
refactor: Touch up internal types, docs
rekmarks Nov 4, 2025
3156a14
refactor!: Remove providerFromEngine
rekmarks Nov 4, 2025
ea28c55
refactor: Remove undefined from empty values array
rekmarks Nov 4, 2025
4c0a2f4
docs: Update changelogs
rekmarks Nov 4, 2025
4685f4a
refactor: Use JsonRpcEngineV2 instead of JsonRpcServer
rekmarks Nov 4, 2025
7aff105
test: Remove red herring from test matcher
rekmarks Nov 4, 2025
35ecbdf
docs: Update changelogs per review feedback
rekmarks Nov 4, 2025
4ebd3d4
refactor: Replace uuid with nanoid for internal provider ids
rekmarks Nov 5, 2025
5280dc1
chore: Lint
rekmarks Nov 5, 2025
a7118f6
refactor: Rewrite block-cache middleware
rekmarks Oct 27, 2025
1f9d625
refactor: Rewrite block-ref-rewrite
rekmarks Oct 27, 2025
23a79b8
refactor: Rewrite block-ref
rekmarks Oct 27, 2025
1ff5b11
refactor: Rewrite block-tracker-inspector
rekmarks Oct 27, 2025
96ec526
refactor: Rewrite fetch
rekmarks Oct 27, 2025
76fe339
refactor: Rewrite inflight-cache
rekmarks Oct 28, 2025
6487f5f
feat: Add providerAsMiddlewareV2
rekmarks Oct 28, 2025
2942928
refactor: Rewrite retryOnEmpty
rekmarks Oct 28, 2025
eecc2a5
refactor: Rewrite wallet
rekmarks Oct 28, 2025
f504d46
docs: Update changelog
rekmarks Oct 28, 2025
546952f
refactor: Migrate create-network-client
rekmarks Oct 28, 2025
cf32da1
docs: Update network-controller/CHANGELOG.md
rekmarks Nov 4, 2025
a291324
refactor: Post-rebase fixup
rekmarks Nov 5, 2025
996a2c1
chore: Lint
rekmarks Nov 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 5 additions & 9 deletions eslint-warning-thresholds.json
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,6 @@
"@typescript-eslint/no-explicit-any": 1
},
"packages/eth-json-rpc-middleware/src/block-cache.ts": {
"@typescript-eslint/no-explicit-any": 1,
"jsdoc/require-jsdoc": 1,
"no-restricted-syntax": 1
},
Expand All @@ -165,11 +164,10 @@
"jest/expect-expect": 2
},
"packages/eth-json-rpc-middleware/src/block-ref.ts": {
"jsdoc/require-jsdoc": 1
"jsdoc/match-description": 1
},
"packages/eth-json-rpc-middleware/src/block-tracker-inspector.ts": {
"jsdoc/match-description": 1,
"jsdoc/require-jsdoc": 1
"jsdoc/match-description": 2
},
"packages/eth-json-rpc-middleware/src/fetch.test.ts": {
"jsdoc/match-description": 1
Expand All @@ -178,8 +176,7 @@
"jsdoc/match-description": 1
},
"packages/eth-json-rpc-middleware/src/inflight-cache.ts": {
"@typescript-eslint/no-explicit-any": 1,
"jsdoc/require-jsdoc": 4
"jsdoc/match-description": 4
},
"packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.ts": {
"jsdoc/require-jsdoc": 1
Expand All @@ -188,7 +185,7 @@
"jsdoc/require-jsdoc": 1
},
"packages/eth-json-rpc-middleware/src/providerAsMiddleware.ts": {
"jsdoc/require-jsdoc": 1
"jsdoc/require-jsdoc": 2
},
"packages/eth-json-rpc-middleware/src/retryOnEmpty.test.ts": {
"jsdoc/match-description": 3
Expand All @@ -215,7 +212,6 @@
"jsdoc/require-jsdoc": 4
},
"packages/eth-json-rpc-middleware/src/wallet.ts": {
"@typescript-eslint/no-explicit-any": 2,
"@typescript-eslint/prefer-nullish-coalescing": 5,
"jsdoc/match-description": 3,
"jsdoc/require-jsdoc": 12
Expand All @@ -226,7 +222,7 @@
},
"packages/eth-json-rpc-middleware/test/util/helpers.ts": {
"@typescript-eslint/no-explicit-any": 5,
"jsdoc/match-description": 11
"jsdoc/match-description": 10
},
"packages/gas-fee-controller/src/GasFeeController.test.ts": {
"import-x/namespace": 2,
Expand Down
3 changes: 3 additions & 0 deletions jest.config.packages.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ module.exports = {
// Here we ensure that Jest resolves `@metamask/*` imports to the uncompiled source code for packages that live in this repo.
// NOTE: This must be synchronized with the `paths` option in `tsconfig.packages.json`.
moduleNameMapper: {
'^@metamask/json-rpc-engine/v2$': [
'<rootDir>/../json-rpc-engine/src/v2/index.ts',
],
'^@metamask/(.+)$': [
'<rootDir>/../$1/src',
// Some @metamask/* packages we are referencing aren't in this monorepo,
Expand Down
8 changes: 2 additions & 6 deletions packages/eth-block-tracker/tests/withBlockTracker.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
import { providerFromEngine } from '@metamask/eth-json-rpc-provider';
import type {
// Eip1193Request,
InternalProvider,
} from '@metamask/eth-json-rpc-provider';
import { InternalProvider } from '@metamask/eth-json-rpc-provider';
import { JsonRpcEngine } from '@metamask/json-rpc-engine';
import type { Json } from '@metamask/utils';
import util from 'util';
Expand Down Expand Up @@ -98,7 +94,7 @@ function getFakeProvider({
});
}

const provider = providerFromEngine(new JsonRpcEngine());
const provider = new InternalProvider({ engine: new JsonRpcEngine() });
jest
.spyOn(provider, 'request')
.mockImplementation(async (eip1193Request): Promise<Json> => {
Expand Down
7 changes: 7 additions & 0 deletions packages/eth-json-rpc-middleware/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- **BREAKING:** Migrate to `JsonRpcEngineV2` ([#6976](https://github.com/MetaMask/core/pull/6976))
- Migrates all middleware from `JsonRpcEngine` to `JsonRpcEngineV2`.
- To continue using this package with the legacy `JsonRpcEngine`, use the `asLegacyMiddleware` backwards compatibility function.
- **BREAKING:** Use `InternalProvider` instead of `SafeEventEmitterProvider` ([#6796](https://github.com/MetaMask/core/pull/6796))
- Wherever a `SafeEventEmitterProvider` was expected, an `InternalProvider` is now expected instead.
- **BREAKING:** Stop retrying `undefined` results for methods that include a block tag parameter ([#7001](https://github.com/MetaMask/core/pull/7001))
- The `retryOnEmpty` middleware will now throw an error if it encounters an `undefined` result when dispatching
a request with a later block number than the originally requested block number.
- In practice, this should happen rarely if ever.
- Migrate all uses of `interface` to `type` ([#6885](https://github.com/MetaMask/core/pull/6885))

## [21.0.0]
Expand Down
Loading
Loading