Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deps: Bump @metamask/{eth-json-rpc-provider,rpc-errors} #1653

Merged
merged 17 commits into from
Oct 11, 2023

Conversation

@socket-security
Copy link

socket-security bot commented Sep 1, 2023

New dependencies detected. Learn more about Socket for GitHub ↗︎

Packages Version New capabilities Transitives Size Publisher
@metamask/eth-json-rpc-middleware 12.0.0 None +8 401 kB metamaskbot
@metamask/eth-json-rpc-provider 2.2.0 None +0 24.2 kB metamaskbot
@metamask/eth-json-rpc-infura 9.0.0 None +2 92.9 kB gudahtt
eth-block-tracker 8.0.0 None +4 130 kB gudahtt

@legobeat legobeat marked this pull request as ready for review September 1, 2023 23:47
@legobeat legobeat requested review from a team as code owners September 1, 2023 23:47
@legobeat legobeat changed the title bump metamask dependencies deps: Bump @metamask/{eth-json-rpc-provider,rpc-errors,utils} Sep 1, 2023
@legobeat legobeat added the dependencies Pull requests that update a dependency file label Sep 1, 2023
@legobeat legobeat requested review from vinistevam and a team September 6, 2023 09:02
@legobeat legobeat force-pushed the deps-metamask-bumps-202309 branch 2 times, most recently from 3bc848a to f530b96 Compare September 8, 2023 09:59
@socket-security
Copy link

socket-security bot commented Sep 8, 2023

👍 Dependency issues cleared. Learn more about Socket for GitHub ↗︎

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

@legobeat
Copy link
Contributor Author

legobeat commented Sep 8, 2023

@SocketSecurity ignore util@0.10.4

new author ok (known version)

@legobeat
Copy link
Contributor Author

@SocketSecurity ignore assert@1.5.1

unstable ownership ok

Copy link
Contributor

@mcmire mcmire left a comment

Choose a reason for hiding this comment

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

Looks great! Merge away 💪🏻

@@ -13,10 +13,9 @@ export class FakeBlockTracker extends PollingBlockTracker {
super({
provider: new SafeEventEmitterProvider({ engine: new JsonRpcEngine() }),
});
}

override async _start() {
Copy link
Contributor

@mcmire mcmire Oct 11, 2023

Choose a reason for hiding this comment

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

I'm wondering if we can solve this the same way that I want to solve the fake provider — that is, instead of extending from a block tracker class, have a class that fulfills the block tracker interface. You're right that that would be a separate change though. This is fine for now — thanks for clarifying.

@legobeat legobeat merged commit 2e95c89 into MetaMask:main Oct 11, 2023
213 checks passed
MajorLift pushed a commit that referenced this pull request Oct 11, 2023
---------

Co-authored-by: Elliot Winkler <elliot.winkler@gmail.com>
MajorLift pushed a commit that referenced this pull request Oct 11, 2023
---------

Co-authored-by: Elliot Winkler <elliot.winkler@gmail.com>
@@ -6957,7 +6957,7 @@ function buildFakeClient(
rpcUrl: 'https://test.network',
},
provider,
blockTracker: new FakeBlockTracker(),
blockTracker: new FakeBlockTracker() as BlockTracker,
Copy link
Contributor

Choose a reason for hiding this comment

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

@MajorLift This is an example of us needing to use a type assertion. I guess the type of FakeBlockTracker isn't quite right here and doesn't match the type of blockTracker that NetworkClient demands.

Copy link
Contributor

Choose a reason for hiding this comment

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

@mcmire This seems like it's either been fixed or wasn't needed in the first place: #1833. These silent false negatives are the worse thing about type assertions IMO.

In general, when encountering "not assignable to" errors, I would like the underlying types to be reconciled/aligned, at least eventually. Are there maybe "usual suspect" entities in our codebase that I can assume it'll be safe to use type assertion on?

@legobeat legobeat deleted the deps-metamask-bumps-202309 branch October 12, 2023 21:48
MajorLift added a commit that referenced this pull request Oct 13, 2023
## Explanation

This PR implements the following incremental steps in the process for
migrating `eth-json-rpc-provider` into the core monorepo:

***

### Phase B: Staging from `merged-packages/`

#### 5. Port tags 
  - See: #1800
  
<details>  
  <summary>Push ported tags to core repo</summary>
  
- [x]
https://github.com/MetaMask/core/releases/tag/@metamask/eth-json-rpc-provider@2.2.0
- [x]
https://github.com/MetaMask/core/releases/tag/@metamask/eth-json-rpc-provider@2.1.0
- [x]
https://github.com/MetaMask/core/releases/tag/@metamask/eth-json-rpc-provider@2.0.0
- [x]
https://github.com/MetaMask/core/releases/tag/@metamask/eth-json-rpc-provider@1.0.1
- [x]
https://github.com/MetaMask/core/releases/tag/@metamask/eth-json-rpc-provider@1.0.0
</details>

<details>
<summary>Verify that the tag diff links in CHANGELOG are
working</summary>
  
- [x] **WONTFIX**:
https://github.com/MetaMask/core/compare/@metamask/eth-json-rpc-provider@2.2.0...HEAD
- [x]
https://github.com/MetaMask/core/compare/@metamask/eth-json-rpc-provider@2.1.0...@metamask/eth-json-rpc-provider@2.2.0
- [x]
https://github.com/MetaMask/core/compare/@metamask/eth-json-rpc-provider@2.0.0...@metamask/eth-json-rpc-provider@2.1.0
- [x]
https://github.com/MetaMask/core/compare/@metamask/eth-json-rpc-provider@1.0.1...@metamask/eth-json-rpc-provider@2.0.0
- [x]
https://github.com/MetaMask/core/compare/@metamask/eth-json-rpc-provider@1.0.0...@metamask/eth-json-rpc-provider@1.0.1
</details>

### Phase C: Integration into `packages/`

#### 1. The big leap
- [x] **Move migration target from `migrated-packages/` to
`packages/`.**
- [x] Run `yarn install` in the root directory.
- [x] Check that all tests are passing in migration target by running
`yarn workspace @metamask/<package-name> test`.

#### 2. Update downstream repos
- [x] Add tsconfig reference paths for migration target in downstream
packages and root.
- [x] Bump migration target version in downstream packages and root.

#### 3. Linter fixes
- [x] Apply yarn constraints fixes to migration target package.json
file: `yarn constraints --fix` (run twice).
- [x] Identify validator fixes for CHANGELOG using `yarn workspace
@metamask/<package-name> changelog:validate` and apply the diffs.

#### 4. Resolve downstream errors
- [x] #1653
  - If introducing the migration target breaks any downstream repos:
    - [x] Resolve simple errors
- [x] Mark and ignore complex errors using `@ts-expect-error TODO:`
annotations.
- [x] Create a separate issue for resolving the marked errors as soon as
the migration is completed.

#### 5. Finalize merge
- [x] Check that all tests are passing in all subpackages of core and
CI.
- [x] Merge `packages/<package-name>` directory into core main branch.

***

See #1551 (comment)
for an outline of the entire process.

## Next Steps

- The next PR(s) will implement the final steps of the migration process
(D-1 in the migration checklist).

## Blocked by
- Dependencies:
  - [x] typescript bump: #1718
- [x] `@metamask/utils` bump: #1639
- Downstream type errors:
  - [x] #1653
- [ ] MetaMask/eth-json-rpc-provider#14
(ignored)
  - [ ] MetaMask/utils#140 (ignored)
- Tag porting:
  - [x] #1802
- [x] "Unreleased" tag diff link shows entire history of core:
https://github.com/MetaMask/core/compare/@metamask/eth-json-rpc-provider@2.2.0...HEAD

## References

- Contributes to #1685
- Contributes to #1551

## Changelog

<!--
If you're making any consumer-facing changes, list those changes here as
if you were updating a changelog, using the template below as a guide.

(CATEGORY is one of BREAKING, ADDED, CHANGED, DEPRECATED, REMOVED, or
FIXED. For security-related issues, follow the Security Advisory
process.)

Please take care to name the exact pieces of the API you've added or
changed (e.g. types, interfaces, functions, or methods).

If there are any breaking changes, make sure to offer a solution for
consumers to follow once they upgrade to the changes.

Finally, if you're only making changes to development scripts or tests,
you may replace the template below with "None".
-->

### `@metamask/eth-json-rpc-provider`

- **ADDED**: Migrated into the core monorepo.

## Checklist

- [x] I've updated the test suite for new or updated code as appropriate
- [x] I've updated documentation (JSDoc, Markdown, etc.) for new or
updated code as appropriate
- [x] I've highlighted breaking changes using the "BREAKING" category
above as appropriate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants