This update includes a bug fix that made v9.0.1 incompatible with valid
entries for the `package.json` "repository" field. Specifically, that
field required that the repository be the GitHub repo URL, but the
field is meant to point at the _git_ repo URL (the difference between
the two on GitHub is the `.git` suffix).
Now that that bug as been fixed, we can update the `repository` field
to point at `https://github.com/MetaMask/metamask-extension.git`, which
is what it should be.
* Add stringified payload to metametrics controller trackEvent error message
* Don't include full payload when throwing error on missing event or category in trackEvent
* origin/develop: (227 commits)
Improve UI + content for price difference notifications (#11145)
Swaps: Create a new swap (#11124)
Bump @metamask/controllers from 9.0.0 to 9.1.0 (#11150)
Capture exception instead of throw error in useTransactionDisplayData (#11153)
Fixing jest component test output errors (#11139)
Avoid showing "Gas price extremely low" warning in advanced tab for testnets (#11111)
@metamask/auto-changelog@2.0.1 (#11140)
Migrate to new CurrencyRateController (#11005)
bump allow scripts (#11134)
Show Sentry CLI output when uploading artifacts (#11100)
use etherscan-link customBlockExplorer methods with customNetwork usage tracking (#11017)
Adding notification for updated seed phrase wording (#11131)
Bumping package.json
Fix a condition for checking if a token should be added (#11127)
Removing support survey notification from What's New (#11118)
Handling custom token decimal fetch failure due to network error (#10956)
Hide basic tab in advanced gas modal for speedup and cancel when on testnets (#11115)
Migrate Sentry settings to environment variables (#11085)
Update eth-ledger-bridge-keyring to v0.5.0 (#11064)
fix metaRPCClientFactory id handling (#11116)
...
The CurrencyRateController has been migrated to the BaseControllerV2
API, which includes various API changes. These changes include:
* The constructor now expects to be passed a
`RestrictedControllerMessenger`.
* State changes are subscribed to via the `ControllerMessenger` now,
rather than via a `subscribe` function.
* The state and configration are passed in as one "options" object,
rather than as two separate parameters
* The polling needs to be started explicitly by calling `start`. It
can be stopped and started on-demand now as well.
* Changing the current currency or native currency will now throw an
error if we fail to update the conversion rate.
The `ComposableObservableStore` has been updated to accomodate these
new types of controllers. The constructor has been updated to use an
options bag pattern as well, to make the addition of the new required
`controllerMessenger` parameter a bit less unweildly.
The function we were using to run shell commands during the
`sentry:publish` script were swallowing the CLI output. We also weren't
correctly detecting the process exit in some cases.
The `run-command` module originally written for `auto-changelog`
(introduced in #10782 and replaced in #10993) has been resurrected for
running commands where we don't care about the output, or where we want
to use the output for something. A second function (`runInShell`) has
been added for running commands with the same STDOUT and STDERR
streams, so that the output is sent directly to the CLI. This ensures
that the console output from the shell script we run gets correctly
output to the CLI.
* Removing support notification from what's new
* Adding migration for support notification removal
* Expanding test cases, using async/await for storage comparison
Sentry is now configured with environment variables, rather than with
hard-coded values. This makes it easier to test Sentry functionality
using a different Sentry account, as we did recently during QA of
v9.5.1.
The only change for the normal build process is the introduction of the
`SENTRY_DSN_DEV` variable, which can be set via `.metamaskrc` or via an
environment variable. This determines where error reports are sent. It
still defaults to our team Sentry account's `metamask-testing` project.
The `sentry:publish` script now requires SENTRY_ORG and SENTRY_PROJECT
to be set in order to publish release artifacts. The CircleCI
configuration has been updated with these values, so it should act the
same as it did before. Previously we had used a CLI flag to specify the
organization and project, but Sentry already natively supports these
environment variables [1].
[1]: https://docs.sentry.io/product/cli/configuration/#configuration-values
* Improve type checking and handle incorrect category in transaction-icon component
* Capture exception for sentry when transaction icon is passed an unrequired category
* Rename ui/components/app/transaction-icon/index.scss -> ui/components/app/transaction-icon/transaction-icon.scss