Skip to content

Release 161.0.0 - #4413

Merged
ccharly merged 33 commits into
mainfrom
release/161.0.0
Jun 12, 2024
Merged

Release 161.0.0#4413
ccharly merged 33 commits into
mainfrom
release/161.0.0

Conversation

@ccharly

@ccharlyccharly commented Jun 12, 2024

Copy link
Copy Markdown
Contributor

Explanation

This release contains the following packages:

  • @metamask/accounts-controller (major)
  • @metamask/assets-controllers (major)
  • @metamask/chain-controller (minor)
  • @metamask/keyring-controller (minor)
  • @metamask/selected-network-controller (patch)
  • @metamask/transaction-controller (major)

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've highlighted breaking changes using the "BREAKING" category above as appropriate

Comment threadpackages/selected-network-controller/CHANGELOG.md Outdated
Comment threadpackages/selected-network-controller/CHANGELOG.md Outdated
Comment threadpackages/selected-network-controller/CHANGELOG.md Outdated
Comment threadpackages/selected-network-controller/package.json Outdated
@danroc

Copy link
Copy Markdown
Contributor

selected-network-controller should be a patch (original PR, cc @jiexi)

@ccharlyccharly changed the title Release/161.0.0Release 161.0.0Jun 12, 2024
@ccharly
ccharly marked this pull request as ready for review June 12, 2024 12:38
@ccharly
ccharly requested a review from a teamJune 12, 2024 12:38
@desi
desi requested a review from a teamJune 12, 2024 14:00
Comment threadpackages/assets-controllers/CHANGELOG.md Outdated
Comment threadpackages/assets-controllers/CHANGELOG.md Outdated
Co-authored-by: Jongsun Suh <jongsun.suh@icloud.com>
Comment threadpackages/assets-controllers/CHANGELOG.md Outdated

@adonesky1adonesky1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Entry for @metamask/seelected-network-controller LGTM

Comment threadpackages/assets-controllers/CHANGELOG.md Outdated
- **BREAKING:** Newly added account is no longer set as the last selected account ([#4363](https://github.com/MetaMask/core/pull/4363))
- Bump `@metamask/eth-snap-keyring` to `^4.3.1` ([#4405](https://github.com/MetaMask/core/pull/4405))
- Bump `@metamask/keyring-api` to `^8.0.0` ([#4405](https://github.com/MetaMask/core/pull/4405))
- Bump `@metamask/keyring-controller` to `^17.1.0` (`devDependencies`) ([#4413](https://github.com/MetaMask/core/pull/4413))

@MajorLiftMajorLiftJun 12, 2024

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hmm we generally don't include devDeps bumps in the changelog, but I'm not sure why keyring-controller isn't a dependency.

That might be a holdover from a past state when keyring-controller only supplied types to accounts-controller?

@mcmire Should we recategorize keyring-controller as a dependency for accounts-controller at some point?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I'm good with doing that in another PR as well.

This isn't the only case I've seen where a package needed to be moved to a different level. So we (Wallet Framework team) should probably go through all packages and audit them to ensure that any controller package that should be in dependencies and/or peerDependencies should be there. In addition I think knowing how to express dependencies on packages that are only for types — and knowing how to express dependencies that are used in conjunction with the messenger — has been a constant source of confusion, we should add documentation somewhere that explains our position.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

You're right, this should be moved to dependency now. To not block this release, i'll update this in another PR

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Sounds good!

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Oh weird my comment got added in the wrong place. Well you got the idea :)


- **BREAKING:** Add `messenger` as a constructor option for `AccountTrackerController` ([#4225](https://github.com/MetaMask/core/pull/4225))
- Add `AccountTrackerControllerMessenger` type
- `NftController` now allows `AccountsController:getAccount`, `AccountsController:getSelectedAccount` as messenger actions and subscribes to the `AccountsController:selectedEvmAccountChange` messenger event ([#4221](https://github.com/MetaMask/core/pull/4221))

@mcmiremcmireJun 12, 2024

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Saying that the controller allows the actions/events is a bit inaccurate; it would be better to say that the messenger that the controller takes must allow these actions/events. If the consumer isn't doing that currently and upgrades this package, then they will see a type and runtime error when the NftController constructor is run, so that makes this a breaking change:

Suggested change
-`NftController` now allows`AccountsController:getAccount`, `AccountsController:getSelectedAccount` as messenger actions and subscribes to the `AccountsController:selectedEvmAccountChange` messenger event ([#4221](https://github.com/MetaMask/core/pull/4221))
-**BREAKING:** The `NftController`messenger must now allow`AccountsController:getAccount` and `AccountsController:getSelectedAccount` as messenger actions and `AccountsController:selectedEvmAccountChange` as a messenger event ([#4221](https://github.com/MetaMask/core/pull/4221))

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Initially we had that BREAKING prefix yes, but after discussing with @MajorLift, I understood this was not considered a "real" breaking changes. Anyway, I do agree with your suggestion, so let's re-add it. :)

@MajorLiftMajorLiftJun 12, 2024

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I agree with Elliot's description of the desired behavior, but it doesn't appear that we have type or runtime error guardrails in controller constructor for subtype messengers. Passing in messengers with incomplete or never allowlists into controller constructors seems to work fine.

Runtime errors are thrown, but only when call and subscribe/unsubscribe (or more accurately #isAllowedAction, #isAllowedEvent) is being invoked for the omitted actions/events.

I'll experiment with this a bit more in the test files since I might just be doing something wrong.

Edit: Created a base-controller ticket for this #4414

Comment threadpackages/assets-controllers/CHANGELOG.md Outdated
- **BREAKING:** Newly added account is no longer set as the last selected account ([#4363](https://github.com/MetaMask/core/pull/4363))
- Bump `@metamask/eth-snap-keyring` to `^4.3.1` ([#4405](https://github.com/MetaMask/core/pull/4405))
- Bump `@metamask/keyring-api` to `^8.0.0` ([#4405](https://github.com/MetaMask/core/pull/4405))
- Bump `@metamask/keyring-controller` to `^17.1.0` (`devDependencies`) ([#4413](https://github.com/MetaMask/core/pull/4413))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I'm good with doing that in another PR as well.

This isn't the only case I've seen where a package needed to be moved to a different level. So we (Wallet Framework team) should probably go through all packages and audit them to ensure that any controller package that should be in dependencies and/or peerDependencies should be there. In addition I think knowing how to express dependencies on packages that are only for types — and knowing how to express dependencies that are used in conjunction with the messenger — has been a constant source of confusion, we should add documentation somewhere that explains our position.

Comment threadpackages/chain-controller/CHANGELOG.md Outdated
Comment threadpackages/assets-controllers/CHANGELOG.md Outdated
Comment threadpackages/assets-controllers/CHANGELOG.md Outdated
Comment threadpackages/transaction-controller/CHANGELOG.md Outdated
Co-authored-by: Elliot Winkler <elliot.winkler@gmail.com>
Comment threadpackages/assets-controllers/CHANGELOG.md Outdated
Comment threadpackages/assets-controllers/CHANGELOG.md Outdated
ccharlyand others added 4 commits June 12, 2024 18:21
Co-authored-by: Elliot Winkler <elliot.winkler@gmail.com>
Co-authored-by: Elliot Winkler <elliot.winkler@gmail.com>
Co-authored-by: Elliot Winkler <elliot.winkler@gmail.com>
Comment threadpackages/assets-controllers/CHANGELOG.md Outdated
Comment threadpackages/keyring-controller/CHANGELOG.md
Comment threadpackages/transaction-controller/CHANGELOG.md Outdated

@mcmiremcmire left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Looks good to me!

@MajorLift do you have any more thoughts?

@ccharly
ccharly merged commit 190f08c into mainJun 12, 2024
@ccharly
ccharly deleted the release/161.0.0 branch June 12, 2024 17:38
@gantunesr

Copy link
Copy Markdown
Member

Sorry @mcmire and @MajorLift! We missed that last comment (@MajorLift do you have any more thoughts?) before merging

@MajorLift

Copy link
Copy Markdown
Contributor

@gantunesr No worries, everything looks good to me! :)

- Add `enable` and `disable` methods to `TokenRatesController` ([#4314](https://github.com/MetaMask/core/pull/4314))
- These are used to stop and restart polling.
- Export `ContractExchangeRates` type ([#4314](https://github.com/MetaMask/core/pull/4314))
- Add `AccountTrackerControllerMessenger` type

@MajorLiftMajorLiftJun 12, 2024

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ah looks like this belongs under line 14.

Leaving this comment as reference to be fixed by a future PR covering AccountTrackerController.

@MajorLiftMajorLift mentioned this pull request Jul 3, 2024
3 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@ccharly@danroc@gantunesr@MajorLift@mcmire@sahar-fehri@salimtb@adonesky1@montelaidev