Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
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
25 changes: 14 additions & 11 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
/packages/composable-controller @MetaMask/core-platform
/packages/controller-utils @MetaMask/core-platform
/packages/error-reporting-service @MetaMask/core-platform
/packages/eth-json-rpc-middleware @MetaMask/core-platform
/packages/messenger @MetaMask/core-platform
/packages/sample-controllers @MetaMask/core-platform
/packages/polling-controller @MetaMask/core-platform
Expand All @@ -82,18 +83,20 @@
/packages/subscription-controller @MetaMask/web3auth

## Joint team ownership
/packages/core-backend @MetaMask/core-platform @MetaMask/metamask-assets
/packages/eth-block-tracker @MetaMask/wallet-integrations @MetaMask/core-platform
/packages/eth-json-rpc-provider @MetaMask/wallet-integrations @MetaMask/core-platform
/packages/json-rpc-engine @MetaMask/wallet-integrations @MetaMask/core-platform
/packages/json-rpc-middleware-stream @MetaMask/wallet-integrations @MetaMask/core-platform
/packages/keyring-controller @MetaMask/accounts-engineers @MetaMask/core-platform
/packages/multichain-network-controller @MetaMask/core-platform @MetaMask/accounts-engineers @MetaMask/metamask-assets
/packages/network-controller @MetaMask/core-platform @MetaMask/metamask-assets
/packages/permission-controller @MetaMask/wallet-integrations @MetaMask/core-platform
/packages/permission-log-controller @MetaMask/wallet-integrations @MetaMask/core-platform
/packages/remote-feature-flag-controller @MetaMask/extension-platform @MetaMask/mobile-platform
/packages/foundryup @MetaMask/mobile-platform @MetaMask/extension-platform
/packages/core-backend @MetaMask/core-platform @MetaMask/metamask-assets
/packages/eth-json-rpc-middleware/src/methods @MetaMask/confirmations @MetaMask/wallet-api-platform-engineers
/packages/eth-json-rpc-middleware/src/wallet.* @MetaMask/confirmations @MetaMask/wallet-api-platform-engineers
/packages/eth-json-rpc-provider @MetaMask/wallet-integrations @MetaMask/core-platform
/packages/foundryup @MetaMask/mobile-platform @MetaMask/extension-platform
/packages/json-rpc-engine @MetaMask/wallet-integrations @MetaMask/core-platform
/packages/json-rpc-middleware-stream @MetaMask/wallet-integrations @MetaMask/core-platform
/packages/keyring-controller @MetaMask/accounts-engineers @MetaMask/core-platform
/packages/multichain-network-controller @MetaMask/core-platform @MetaMask/accounts-engineers @MetaMask/metamask-assets
/packages/network-controller @MetaMask/core-platform @MetaMask/metamask-assets
/packages/permission-controller @MetaMask/wallet-integrations @MetaMask/core-platform
/packages/permission-log-controller @MetaMask/wallet-integrations @MetaMask/core-platform
/packages/remote-feature-flag-controller @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform

## Package Release related
/packages/account-tree-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform
Expand Down
98 changes: 87 additions & 11 deletions eslint-warning-thresholds.json
Original file line number Diff line number Diff line change
Expand Up @@ -133,14 +133,99 @@
"@typescript-eslint/prefer-promise-reject-errors": 1,
"promise/param-names": 3
},
"packages/eip-5792-middleware/src/hooks/processSendCalls.ts": {
"@typescript-eslint/no-misused-promises": 1
},
"packages/ens-controller/src/EnsController.test.ts": {
"import-x/order": 2
},
"packages/ens-controller/src/EnsController.ts": {
"jsdoc/check-tag-names": 6
},
"packages/eip-5792-middleware/src/hooks/processSendCalls.ts": {
"@typescript-eslint/no-misused-promises": 1
"packages/eth-json-rpc-middleware/src/block-cache.test.ts": {
"@typescript-eslint/explicit-function-return-type": 1
},
"packages/eth-json-rpc-middleware/src/block-cache.ts": {
"@typescript-eslint/no-explicit-any": 1,
"no-restricted-syntax": 1
},
"packages/eth-json-rpc-middleware/src/block-ref.test.ts": {
"@typescript-eslint/explicit-function-return-type": 1,
"@typescript-eslint/no-explicit-any": 4,
"jest/expect-expect": 2,
"jsdoc/match-description": 1
},
"packages/eth-json-rpc-middleware/src/block-tracker-inspector.ts": {
"@typescript-eslint/no-explicit-any": 1,
"jsdoc/match-description": 1
},
"packages/eth-json-rpc-middleware/src/fetch.test.ts": {
"@typescript-eslint/explicit-function-return-type": 1,
"jsdoc/match-description": 1
},
"packages/eth-json-rpc-middleware/src/fetch.ts": {
"jsdoc/match-description": 1
},
"packages/eth-json-rpc-middleware/src/inflight-cache.test.ts": {
"@typescript-eslint/explicit-function-return-type": 1
},
"packages/eth-json-rpc-middleware/src/inflight-cache.ts": {
"@typescript-eslint/explicit-function-return-type": 1,
"@typescript-eslint/no-explicit-any": 1
},
"packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.test.ts": {
"@typescript-eslint/explicit-function-return-type": 1
},
"packages/eth-json-rpc-middleware/src/methods/wallet-revoke-execution-permission.test.ts": {
"@typescript-eslint/explicit-function-return-type": 1
},
"packages/eth-json-rpc-middleware/src/retryOnEmpty.test.ts": {
"@typescript-eslint/explicit-function-return-type": 4,
"@typescript-eslint/no-explicit-any": 4,
"jest/expect-expect": 5,
"jsdoc/match-description": 4
},
"packages/eth-json-rpc-middleware/src/utils/cache.ts": {
"jsdoc/match-description": 6
},
"packages/eth-json-rpc-middleware/src/utils/common.ts": {
"@typescript-eslint/explicit-function-return-type": 1,
"jsdoc/match-description": 1
},
"packages/eth-json-rpc-middleware/src/utils/normalize.test.ts": {
"@typescript-eslint/explicit-function-return-type": 1
},
"packages/eth-json-rpc-middleware/src/utils/normalize.ts": {
"@typescript-eslint/explicit-function-return-type": 2,
"jsdoc/match-description": 3
},
"packages/eth-json-rpc-middleware/src/utils/timeout.test.ts": {
"@typescript-eslint/explicit-function-return-type": 4
},
"packages/eth-json-rpc-middleware/src/utils/timeout.ts": {
"jsdoc/match-description": 1
},
"packages/eth-json-rpc-middleware/src/wallet.test.ts": {
"@typescript-eslint/explicit-function-return-type": 53
},
"packages/eth-json-rpc-middleware/src/wallet.ts": {
"@typescript-eslint/explicit-function-return-type": 2,
"@typescript-eslint/no-explicit-any": 2,
"@typescript-eslint/prefer-nullish-coalescing": 5,
"jsdoc/match-description": 3
},
"packages/eth-json-rpc-middleware/test/setupAfterEnv.ts": {
"@typescript-eslint/explicit-function-return-type": 2,
"@typescript-eslint/no-explicit-any": 3,
"jsdoc/match-description": 2
},
"packages/eth-json-rpc-middleware/test/util/createHitTrackerMiddleware.ts": {
"@typescript-eslint/explicit-function-return-type": 2
},
"packages/eth-json-rpc-middleware/test/util/helpers.ts": {
"@typescript-eslint/explicit-function-return-type": 4,
"@typescript-eslint/no-explicit-any": 1,
"jsdoc/match-description": 9
},
"packages/eth-json-rpc-provider/src/safe-event-emitter-provider.test.ts": {
"import-x/namespace": 1
Expand Down Expand Up @@ -256,15 +341,6 @@
"@typescript-eslint/no-unused-vars": 1,
"@typescript-eslint/prefer-promise-reject-errors": 1
},
"packages/network-controller/tests/create-network-client.test.ts": {
"import-x/order": 1
},
"packages/network-controller/tests/provider-api-tests/helpers.ts": {
"@typescript-eslint/prefer-promise-reject-errors": 1,
"import-x/namespace": 1,
"import-x/no-named-as-default-member": 1,
"promise/catch-or-return": 1
},
"packages/permission-controller/src/Permission.ts": {
"prettier/prettier": 11
},
Expand Down
23 changes: 23 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ const config = createConfig([
files: [
'**/*.{js,cjs,mjs}',
'**/*.test.{js,ts}',
'**/test/**/*.{js,ts}',
'**/tests/**/*.{js,ts}',
'scripts/*.ts',
'scripts/create-package/**/*.ts',
Expand Down Expand Up @@ -218,6 +219,28 @@ const config = createConfig([
sourceType: 'module',
},
},
{
files: ['packages/eth-json-rpc-middleware/**/*.ts'],
rules: {
// TODO: Review and re-enable these rules
'@typescript-eslint/consistent-type-definitions': 'off',
'@typescript-eslint/explicit-function-return-type': 'warn',
'@typescript-eslint/naming-convention': 'off',
'@typescript-eslint/no-explicit-any': 'warn',
'@typescript-eslint/prefer-nullish-coalescing': 'warn',
'@typescript-eslint/prefer-optional-chain': 'warn',
'@typescript-eslint/restrict-template-expressions': 'off',
'id-denylist': 'off',
'id-length': 'off',
'jsdoc/match-description': 'warn',
'jsdoc/no-types': 'warn',
'jsdoc/require-hyphen-before-param-description': 'warn',
'jsdoc/require-jsdoc': 'off',
'jsdoc/require-param-description': 'warn',
'no-restricted-globals': 'off',
'no-restricted-syntax': 'warn',
},
},
{
files: ['packages/foundryup/**/*.{js,ts}'],
rules: {
Expand Down
26 changes: 0 additions & 26 deletions merged-packages/eth-json-rpc-middleware/tsconfig.build.json

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Changed

- **BREAKING:** Increase minimum Node.js version from `^18.16` to `^18.18` ([#6866](https://github.com/MetaMask/core/pull/6866))
- Bump `@metamask/eth-block-tracker` from `^12.2.1` to `^13.0.0` ([#6866](https://github.com/MetaMask/core/pull/6866))
- This package was migrated from `MetaMask/eth-json-rpc-middleware` to the
`MetaMask/core` monorepo.
- See [`MetaMask/eth-json-rpc-middleware`](https://github.com/MetaMask/eth-json-rpc-middleware/blob/main/CHANGELOG.md)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ module.exports = merge(baseConfig, {
// An object that configures minimum threshold enforcement for coverage results
coverageThreshold: {
global: {
branches: 77.19,
functions: 82.45,
lines: 83.89,
statements: 83.89,
branches: 67.25,
functions: 81.57,
lines: 79.71,
statements: 79.83,
Comment on lines +23 to +26
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage changed due to different Jest version / config and/or Node.js version and/or other environment differences.

},
},
});
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@
"name": "@metamask/eth-json-rpc-middleware",
"version": "20.0.0",
"description": "Ethereum-related json-rpc-engine middleware",
"homepage": "https://github.com/MetaMask/eth-json-rpc-middleware#readme",
"keywords": [
"MetaMask",
"Ethereum"
],
"homepage": "https://github.com/MetaMask/core/tree/main/packages/eth-json-rpc-middleware#readme",
"bugs": {
"url": "https://github.com/MetaMask/eth-json-rpc-middleware/issues"
"url": "https://github.com/MetaMask/core/issues"
},
"repository": {
"type": "git",
Expand All @@ -29,24 +33,25 @@
"module": "./dist/index.mjs",
"types": "./dist/index.d.cts",
"files": [
"dist"
"dist/"
],
"scripts": {
"build": "ts-bridge --project tsconfig.build.json --clean",
"build:clean": "rimraf dist && yarn build",
"build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references",
"build:docs": "typedoc",
"lint": "yarn lint:eslint && yarn lint:constraints && yarn lint:misc --check && yarn lint:dependencies --check && yarn lint:changelog",
"lint:changelog": "auto-changelog validate --prettier",
"lint:constraints": "yarn constraints",
"lint:dependencies": "depcheck && yarn dedupe --check",
"lint:dependencies:fix": "depcheck && yarn dedupe",
"lint:eslint": "eslint . --cache",
"lint:fix": "yarn lint:eslint --fix && yarn lint:constraints --fix && yarn lint:misc --write && yarn lint:dependencies:fix && yarn lint:changelog",
"lint:misc": "prettier '**/*.json' '**/*.md' '**/*.yml' '!.yarnrc.yml' --ignore-path .gitignore --no-error-on-unmatched-pattern",
"prepack": "./scripts/prepack.sh",
"test": "jest && yarn build:clean && yarn test:types",
"test:types": "tsd --files 'src/**/*.test-d.ts' && attw --pack",
"test:watch": "jest --watch"
"changelog:update": "../../scripts/update-changelog.sh @metamask/eth-json-rpc-middleware --tag-prefix-before-package-rename eth-json-rpc-middleware@ --version-before-package-rename 6.1.0",
"changelog:validate": "../../scripts/validate-changelog.sh @metamask/eth-json-rpc-middleware --tag-prefix-before-package-rename eth-json-rpc-middleware@ --version-before-package-rename 6.1.0",
"lint": "yarn lint:eslint && yarn lint:misc --check && yarn lint:dependencies && yarn lint:changelog",
"lint:changelog": "auto-changelog validate",
"lint:dependencies": "depcheck",
"lint:eslint": "eslint . --cache --ext js,ts",
"lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write && yarn lint:dependencies && yarn lint:changelog",
"lint:misc": "prettier '**/*.json' '**/*.md' '!CHANGELOG.md' '**/*.yml' '!.yarnrc.yml' --ignore-path .gitignore --no-error-on-unmatched-pattern",
"publish:preview": "yarn npm publish --tag preview",
"since-latest-release": "../../scripts/since-latest-release.sh",
"test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter",
"test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache",
"test:verbose": "NODE_OPTIONS=--experimental-vm-modules jest --verbose",
"test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch"
},
"dependencies": {
"@metamask/eth-block-tracker": "^13.0.0",
Expand All @@ -72,9 +77,8 @@
"typedoc": "^0.24.8",
"typescript": "~5.2.2"
},
"packageManager": "yarn@4.1.1",
"engines": {
"node": "^18.16 || ^20 || >=22"
"node": "^18.18 || >=20"
},
"publishConfig": {
"access": "public",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ describe('inflight cache', () => {
res.result = true;
// eslint-disable-next-line jest/no-conditional-in-test
if (hitCount === 1) {
setTimeout(end, 100);
setTimeout(() => end(), 100);
}
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -717,10 +717,11 @@ function stubGenericRequest<T extends JsonRpcParams, U extends Json>(
* will error for the first N instances and then succeed on the last instance.
* Intended to be used in conjunction with `stubProviderRequests`.
*
* @param request - The request matcher for the stub.
* @param numberOfTimesToFail - The number of times the request is expected to
* @param args - The arguments.
* @param args.request - The request matcher for the stub.
* @param args.numberOfTimesToFail - The number of times the request is expected to
* be called until it returns a successful result.
* @param successfulResult - The result that `provider.request` will
* @param args.successfulResult - The result that `provider.request` will
* return when called past `numberOfTimesToFail`.
* @returns The request/result pair, properly typed.
*/
Expand Down Expand Up @@ -763,10 +764,10 @@ function stubRequestThatFailsThenFinallySucceeds<
* `provider.request` has been called the given number of times.
*
* @param args - The arguments.
* @param requestSpy - The Jest spy object that represents
* @param args.requestSpy - The Jest spy object that represents
* `provider.request`.
* @param request - The request object.
* @param numberOfTimes - The number of times that we expect
* @param args.request - The request object.
* @param args.numberOfTimes - The number of times that we expect
* `provider.request` to be called with `request`.
*/
async function waitForRequestToBeRetried({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ describe('timeout', () => {

jest.advanceTimersByTime(50);

expect(promise).toNeverResolve();
await expect(promise).toNeverResolve();
});

it('resolves after the given duration', async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,6 @@ WalletMiddlewareOptions): JsonRpcMiddleware<any, Block> {
signatureMethod: 'personal_sign',
};

// eslint-disable-next-line require-atomic-updates
res.result = await processPersonalMessage(msgParams, req);
}

Expand Down
24 changes: 24 additions & 0 deletions packages/eth-json-rpc-middleware/tsconfig.build.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"extends": "../../tsconfig.packages.build.json",
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist",
"rootDir": "./src"
},
"references": [
{
"path": "../error-reporting-service/tsconfig.build.json"
},
{
"path": "../eth-block-tracker/tsconfig.build.json"
},
{
"path": "../eth-json-rpc-provider/tsconfig.build.json"
},
{
"path": "../json-rpc-engine/tsconfig.build.json"
}
],
"include": ["../../types", "./src"],
"exclude": ["**/*.test.ts", "**/*.test-d.ts"]
}
Loading
Loading