Skip to content

Commit

Permalink
fix: migrate from legacy ethjs to @metamask/ethjs (#11969)
Browse files Browse the repository at this point in the history
## **Description**

- fix: migrate from legacy `ethjs-` packages to maintained and already
used `@metamask/ethjs-` forks
  - Removes dependency on deprecated `babel-runtime` v6
  - Bundle size reduction

## **Related issues**

- #11952
- #11932

#### Blocking
- #11968

## **Manual testing steps**


## **Screenshots/Recordings**

### **Before**

### **After**

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
  • Loading branch information
legobeat authored Oct 23, 2024
1 parent 54525f1 commit 8229dbc
Show file tree
Hide file tree
Showing 12 changed files with 38 additions and 100 deletions.
2 changes: 1 addition & 1 deletion app/components/UI/Swaps/QuotesView.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import PropTypes from 'prop-types';
import Eth from 'ethjs-query';
import Eth from '@metamask/ethjs-query';
import {
View,
StyleSheet,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
import { connect } from 'react-redux';
import { getSendFlowTitle } from '../../../../UI/Navbar';
import PropTypes from 'prop-types';
import Eth from 'ethjs-query';
import Eth from '@metamask/ethjs-query';
import {
renderFromWei,
renderFromTokenMinimalUnit,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
Linking,
ScrollView,
} from 'react-native';
import Eth from 'ethjs-query';
import Eth from '@metamask/ethjs-query';
import ActionView, { ConfirmButtonState } from '../../../../UI/ActionView';
import PropTypes from 'prop-types';
import { getApproveNavbar } from '../../../../UI/Navbar';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Eth from '@metamask/ethjs-query';
import { withNavigation } from '@react-navigation/compat';
import Eth from 'ethjs-query';
import PropTypes from 'prop-types';
import React, { PureComponent } from 'react';
import { Animated, ScrollView, StyleSheet, View } from 'react-native';
Expand Down
4 changes: 2 additions & 2 deletions app/lib/ens-ipfs/resolver.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import namehash from 'eth-ens-namehash';
import Eth from 'ethjs-query';
import EthContract from 'ethjs-contract';
import Eth from '@metamask/ethjs-query';
import EthContract from '@metamask/ethjs-contract';
import registryAbi from './contracts/registry';
import resolverAbi from './contracts/resolver';
import contentHash from 'content-hash';
Expand Down
2 changes: 1 addition & 1 deletion app/util/number/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*/
import { BN, stripHexPrefix } from 'ethereumjs-util';
import { utils as ethersUtils } from 'ethers';
import convert from 'ethjs-unit';
import convert from '@metamask/ethjs-unit';
import {
BNToHex,
hexToBN as controllerHexToBN,
Expand Down
7 changes: 3 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,9 @@
"@metamask/eth-sig-util": "^7.0.2",
"@metamask/eth-snap-keyring": "^4.3.3",
"@metamask/etherscan-link": "^2.0.0",
"@metamask/ethjs-contract": "^0.4.1",
"@metamask/ethjs-query": "^0.7.1",
"@metamask/ethjs-unit": "^0.3.0",
"@metamask/gas-fee-controller": "^18.0.0",
"@metamask/key-tree": "^9.0.0",
"@metamask/keyring-api": "^8.1.0",
Expand Down Expand Up @@ -242,10 +245,7 @@
"ethereumjs-abi": "0.6.6",
"ethereumjs-util": "6.1.0",
"ethers": "^5.0.14",
"ethjs-contract": "0.2.3",
"ethjs-ens": "2.0.1",
"ethjs-query": "0.3.8",
"ethjs-unit": "0.1.6",
"eventemitter2": "^6.4.9",
"events": "3.0.0",
"fuse.js": "3.4.4",
Expand Down Expand Up @@ -558,7 +558,6 @@
"eciesjs>secp256k1": true,
"ethereumjs-util>keccak": true,
"ethereumjs-util>secp256k1": true,
"ethjs-query>babel-runtime>core-js": false,
"ganache>@trufflesuite/bigint-buffer": false,
"ganache>bufferutil": false,
"ganache>keccak": true,
Expand Down
13 changes: 13 additions & 0 deletions patches/@metamask+ethjs-contract+0.4.1.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/node_modules/@metamask/ethjs-contract/package.json b/node_modules/@metamask/ethjs-contract/package.json
index 4991d59..8343099 100644
--- a/node_modules/@metamask/ethjs-contract/package.json
+++ b/node_modules/@metamask/ethjs-contract/package.json
@@ -194,7 +194,7 @@
"rpc"
],
"license": "MIT",
- "main": "lib/index.js",
+ "main": "src/index.js",
"name": "@metamask/ethjs-contract",
"peerDependencies": {
"@babel/runtime": "^7.0.0"
13 changes: 13 additions & 0 deletions patches/@metamask+ethjs-query+0.7.1.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/node_modules/@metamask/ethjs-query/package.json b/node_modules/@metamask/ethjs-query/package.json
index 14e1062..6860d86 100644
--- a/node_modules/@metamask/ethjs-query/package.json
+++ b/node_modules/@metamask/ethjs-query/package.json
@@ -2,7 +2,7 @@
"name": "@metamask/ethjs-query",
"version": "0.7.1",
"description": "A simple query layer for the Ethereum RPC.",
- "main": "lib/index.js",
+ "main": "src/index.js",
"files": [
"dist",
"internals",
13 changes: 0 additions & 13 deletions patches/ethjs-contract+0.2.3.patch

This file was deleted.

13 changes: 0 additions & 13 deletions patches/ethjs-query+0.3.8.patch

This file was deleted.

65 changes: 2 additions & 63 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -13179,14 +13179,6 @@ babel-preset-jest@^29.6.3:
babel-plugin-jest-hoist "^29.6.3"
babel-preset-current-node-syntax "^1.0.0"

babel-runtime@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==
dependencies:
core-js "^2.4.0"
regenerator-runtime "^0.11.0"

backo2@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
Expand Down Expand Up @@ -14773,7 +14765,7 @@ core-js-compat@^3.31.0, core-js-compat@^3.36.1:
dependencies:
browserslist "^4.23.0"

core-js@^2.4.0, core-js@^2.5.7, core-js@^2.6.5:
core-js@^2.5.7, core-js@^2.6.5:
version "2.6.12"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
Expand Down Expand Up @@ -17358,17 +17350,6 @@ ethjs-abi@^0.2.0:
js-sha3 "0.5.5"
number-to-bn "1.7.0"

ethjs-contract@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/ethjs-contract/-/ethjs-contract-0.2.3.tgz#f113ced8ed1c9c635b0b7ec71901340b64e8cded"
integrity sha512-fKsHm57wxwHrZhVlD8AHU2lC2G3c1fmvoEz15BpqIkuGWiTbjuvrQo2Avc+3EQpSsTFWNdyxC0h1WKRcn5kkyQ==
dependencies:
babel-runtime "^6.26.0"
ethjs-abi "0.2.0"
ethjs-filter "0.1.8"
ethjs-util "0.1.3"
js-sha3 "0.5.5"

ethjs-contract@^0.1.7:
version "0.1.9"
resolved "https://registry.yarnpkg.com/ethjs-contract/-/ethjs-contract-0.1.9.tgz#1c2766896a56d47ec1d6d661829c49cc38a5520a"
Expand All @@ -17394,11 +17375,6 @@ ethjs-filter@0.1.5:
resolved "https://registry.yarnpkg.com/ethjs-filter/-/ethjs-filter-0.1.5.tgz#0112af6017c24677e32b8fdeb20e6196019b7598"
integrity sha512-ii+Av0Kv0mOzQSP2aBSWTeamTntWDXgHN0Sj1UnTpzYH+gQdJCvirsc0BO07MWcsk0kuLogITDOPVFFd7qcUMQ==

ethjs-filter@0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/ethjs-filter/-/ethjs-filter-0.1.8.tgz#2b02726b820ed4dd3860614d185c0c0f7ed1747f"
integrity sha512-qTDPskDL2UadHwjvM8A+WG9HwM4/FoSY3p3rMJORkHltYcAuiQZd2otzOYKcL5w2Q3sbAkW/E3yt/FPFL/AVXA==

ethjs-format@0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/ethjs-format/-/ethjs-format-0.2.2.tgz#d73b3a605c2e1257079f7077fd5448e998ce0fcd"
Expand All @@ -17411,28 +17387,6 @@ ethjs-format@0.2.2:
number-to-bn "1.7.0"
strip-hex-prefix "1.0.0"

ethjs-format@0.2.7:
version "0.2.7"
resolved "https://registry.yarnpkg.com/ethjs-format/-/ethjs-format-0.2.7.tgz#20c92f31c259a381588d069830d838b489774b86"
integrity sha512-uNYAi+r3/mvR3xYu2AfSXx5teP4ovy9z2FrRsblU+h2logsaIKZPi9V3bn3V7wuRcnG0HZ3QydgZuVaRo06C4Q==
dependencies:
bn.js "4.11.6"
ethjs-schema "0.2.1"
ethjs-util "0.1.3"
is-hex-prefixed "1.0.0"
number-to-bn "1.7.0"
strip-hex-prefix "1.0.0"

ethjs-query@0.3.8:
version "0.3.8"
resolved "https://registry.yarnpkg.com/ethjs-query/-/ethjs-query-0.3.8.tgz#aa5af02887bdd5f3c78b3256d0f22ffd5d357490"
integrity sha512-/J5JydqrOzU8O7VBOwZKUWXxHDGr46VqNjBCJgBVNNda+tv7Xc8Y2uJc6aMHHVbeN3YOQ7YRElgIc0q1CI02lQ==
dependencies:
babel-runtime "^6.26.0"
ethjs-format "0.2.7"
ethjs-rpc "0.2.0"
promise-to-callback "^1.0.0"

ethjs-query@^0.2.4:
version "0.2.9"
resolved "https://registry.yarnpkg.com/ethjs-query/-/ethjs-query-0.2.9.tgz#a26e6b4f38699e92f34b2184e75c7894329c42f1"
Expand All @@ -17446,13 +17400,6 @@ ethjs-rpc@0.1.5:
resolved "https://registry.yarnpkg.com/ethjs-rpc/-/ethjs-rpc-0.1.5.tgz#099e22f27dc4c18b6978a485fc36b1b0f7969080"
integrity sha512-RSqGrUjkA1UHl0d/FteGHFCv3spO/sA+lQHiIYIczYKE1nkM1Q2fKjiqssq+6LnYc+g3NWOBr4AIKQzXc8RQ1g==

ethjs-rpc@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/ethjs-rpc/-/ethjs-rpc-0.2.0.tgz#3d0011e32cfff156ed6147818c6fb8f801701b4c"
integrity sha512-RINulkNZTKnj4R/cjYYtYMnFFaBcVALzbtEJEONrrka8IeoarNB9Jbzn+2rT00Cv8y/CxAI+GgY1d0/i2iQeOg==
dependencies:
promise-to-callback "^1.0.0"

ethjs-schema@0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/ethjs-schema/-/ethjs-schema-0.1.5.tgz#59740e3b3977bcdbb9b11bc3068201e8aceabb0d"
Expand All @@ -17463,14 +17410,6 @@ ethjs-schema@0.2.1:
resolved "https://registry.yarnpkg.com/ethjs-schema/-/ethjs-schema-0.2.1.tgz#47e138920421453617069034684642e26bb310f4"
integrity sha512-DXd8lwNrhT9sjsh/Vd2Z+4pfyGxhc0POVnLBUfwk5udtdoBzADyq+sK39dcb48+ZU+2VgtwHxtGWnLnCfmfW5g==

ethjs-unit@0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699"
integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=
dependencies:
bn.js "4.11.6"
number-to-bn "1.7.0"

ethjs-util@0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.3.tgz#dfd5ea4a400dc5e421a889caf47e081ada78bb55"
Expand Down Expand Up @@ -26442,7 +26381,7 @@ regenerator-runtime@0.13.9:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==

regenerator-runtime@^0.11.0, regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7, regenerator-runtime@^0.13.8:
regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7, regenerator-runtime@^0.13.8:
version "0.13.11"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
Expand Down

0 comments on commit 8229dbc

Please sign in to comment.