diff --git a/.iyarc b/.iyarc index abbf0e189d2..e69de29bb2d 100644 --- a/.iyarc +++ b/.iyarc @@ -1,3 +0,0 @@ -# ReDoS vulnerability, no impact to this application, and fix not backported yet to the versions we use - -GHSA-c2qf-rxjj-qqgw diff --git a/.nvmrc b/.nvmrc index 87834047a6f..2a393af592b 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20.12.2 +20.18.0 diff --git a/app/components/UI/Stake/Views/StakeInputView/StakeInputView.test.tsx b/app/components/UI/Stake/Views/StakeInputView/StakeInputView.test.tsx index 9648fba601e..086cdcd2849 100644 --- a/app/components/UI/Stake/Views/StakeInputView/StakeInputView.test.tsx +++ b/app/components/UI/Stake/Views/StakeInputView/StakeInputView.test.tsx @@ -58,10 +58,10 @@ jest.mock('../../hooks/useStakeContext.ts', () => ({ const stakeContext: Stake = { setSdkType: jest.fn(), sdkService: undefined - } - return stakeContext + }; + return stakeContext; }) -})) +})); jest.mock('../../hooks/useBalance', () => ({ __esModule: true, diff --git a/app/components/UI/Stake/Views/StakeInputView/StakeInputView.tsx b/app/components/UI/Stake/Views/StakeInputView/StakeInputView.tsx index 782e4d5ab3c..323aa31ae18 100644 --- a/app/components/UI/Stake/Views/StakeInputView/StakeInputView.tsx +++ b/app/components/UI/Stake/Views/StakeInputView/StakeInputView.tsx @@ -46,7 +46,7 @@ const StakeInputView = () => { const { sdkService } = useStakeContext(); - + const navigateToLearnMoreModal = () => { navigation.navigate('StakeModals', { screen: Routes.STAKING.MODALS.LEARN_MORE, diff --git a/app/components/UI/Stake/sdk/stakeSdkProvider.tsx b/app/components/UI/Stake/sdk/stakeSdkProvider.tsx index 19a6769949b..e40ea105654 100644 --- a/app/components/UI/Stake/sdk/stakeSdkProvider.tsx +++ b/app/components/UI/Stake/sdk/stakeSdkProvider.tsx @@ -68,4 +68,4 @@ export const StakeSDKProvider: React.FC> = {children} ); -}; \ No newline at end of file +}; diff --git a/app/core/BackgroundBridge/BackgroundBridge.js b/app/core/BackgroundBridge/BackgroundBridge.js index 5051d77cbd5..e48cdfc13d1 100644 --- a/app/core/BackgroundBridge/BackgroundBridge.js +++ b/app/core/BackgroundBridge/BackgroundBridge.js @@ -1,11 +1,11 @@ /* eslint-disable import/no-commonjs */ import URL from 'url-parse'; -import { JsonRpcEngine } from 'json-rpc-engine'; import { createSelectedNetworkMiddleware, METAMASK_DOMAIN, } from '@metamask/selected-network-controller'; import EthQuery from '@metamask/eth-query'; +import { JsonRpcEngine } from '@metamask/json-rpc-engine'; import MobilePortStream from '../MobilePortStream'; import { setupMultiplex } from '../../util/streams'; import { @@ -26,9 +26,9 @@ import snapMethodMiddlewareBuilder from '../Snaps/SnapsMethodMiddleware'; import { SubjectType } from '@metamask/permission-controller'; ///: END:ONLY_INCLUDE_IF -const createFilterMiddleware = require('eth-json-rpc-filters'); -const createSubscriptionManager = require('eth-json-rpc-filters/subscriptionManager'); -const providerAsMiddleware = require('eth-json-rpc-middleware/providerAsMiddleware'); +const createFilterMiddleware = require('@metamask/eth-json-rpc-filters'); +const createSubscriptionManager = require('@metamask/eth-json-rpc-filters/subscriptionManager'); +import { providerAsMiddleware } from '@metamask/eth-json-rpc-middleware'; const pump = require('pump'); // eslint-disable-next-line import/no-nodejs-modules const EventEmitter = require('events').EventEmitter; @@ -388,11 +388,7 @@ export class BackgroundBridge extends EventEmitter { pump(outStream, providerStream, outStream, (err) => { // handle any middleware cleanup - this.engine._middleware.forEach((mid) => { - if (mid.destroy && typeof mid.destroy === 'function') { - mid.destroy(); - } - }); + this.engine.destroy(); if (err) Logger.log('Error with provider stream conn', err); }); } diff --git a/app/core/RPCMethods/RPCMethodMiddleware.test.ts b/app/core/RPCMethods/RPCMethodMiddleware.test.ts index 04deabc6eb9..84f8e2c46c2 100644 --- a/app/core/RPCMethods/RPCMethodMiddleware.test.ts +++ b/app/core/RPCMethods/RPCMethodMiddleware.test.ts @@ -1,13 +1,14 @@ -import { - JsonRpcEngine, +import { JsonRpcEngine, JsonRpcMiddleware } from '@metamask/json-rpc-engine'; +import type { + Json, JsonRpcFailure, - JsonRpcMiddleware, + JsonRpcParams, JsonRpcRequest, JsonRpcResponse, JsonRpcSuccess, -} from 'json-rpc-engine'; +} from '@metamask/utils'; +import { type JsonRpcError, providerErrors, rpcErrors } from '@metamask/rpc-errors'; import type { TransactionParams } from '@metamask/transaction-controller'; -import { providerErrors, rpcErrors } from '@metamask/rpc-errors'; import Engine from '../Engine'; import { store } from '../../store'; import { getPermittedAccounts } from '../Permissions'; @@ -106,8 +107,8 @@ const jsonrpc = '2.0' as const; * @throws If the given value is not a valid {@link JsonRpcSuccess} object. */ function assertIsJsonRpcSuccess( - response: JsonRpcResponse, -): asserts response is JsonRpcSuccess { + response: JsonRpcResponse, +): asserts response is JsonRpcSuccess { if ('error' in response) { throw new Error(`Response failed with error '${JSON.stringify('error')}'`); } else if (!('result' in response)) { @@ -208,8 +209,8 @@ async function callMiddleware({ middleware, request, }: { - middleware: JsonRpcMiddleware; - request: JsonRpcRequest; + middleware: JsonRpcMiddleware; + request: JsonRpcRequest; }) { const engine = new JsonRpcEngine(); engine.push(middleware); @@ -416,7 +417,6 @@ describe('getRpcMethodMiddleware', () => { permissionController.createPermissionMiddleware({ origin: hostMock, }); - // @ts-expect-error JsonRpcId (number | string | void) doesn't match PS middleware's id, which is (string | number | null) engine.push(permissionMiddleware); const middleware = getRpcMethodMiddleware(getMinimalOptions()); engine.push(middleware); @@ -1097,7 +1097,8 @@ describe('getRpcMethodMiddleware', () => { it('returns a JSON-RPC error if an error is thrown when adding this transaction', async () => { // Omit `from` and `chainId` here to skip validation for simplicity // Downcast needed here because `from` is required by this type - const mockTransactionParameters = {} as TransactionParams; + const mockTransactionParameters = {} as (TransactionParams & + JsonRpcParams)[]; // Transaction fails before returning a result mockAddTransaction.mockImplementation(async () => { throw new Error('Failed to add transaction'); @@ -1120,12 +1121,17 @@ describe('getRpcMethodMiddleware', () => { expect((response as JsonRpcFailure).error.message).toBe( expectedError.message, ); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + expect(((response as JsonRpcFailure).error as JsonRpcError).data.cause.message).toBe( + expectedError.message, + ); }); it('returns a JSON-RPC error if an error is thrown after approval', async () => { // Omit `from` and `chainId` here to skip validation for simplicity // Downcast needed here because `from` is required by this type - const mockTransactionParameters = {} as TransactionParams; + const mockTransactionParameters = {} as (TransactionParams & + JsonRpcParams)[]; setupGlobalState({ addTransactionResult: Promise.reject( new Error('Failed to process transaction'), @@ -1234,7 +1240,7 @@ describe('getRpcMethodMiddleware', () => { jsonrpc, id: 1, method: 'personal_ecRecover', - params: [undefined, helloWorldSignature], + params: [undefined, helloWorldSignature] as JsonRpcParams, }; const expectedError = rpcErrors.internal('Missing data parameter'); diff --git a/app/core/RPCMethods/RPCMethodMiddleware.ts b/app/core/RPCMethods/RPCMethodMiddleware.ts index 0928bb73267..303958f586d 100644 --- a/app/core/RPCMethods/RPCMethodMiddleware.ts +++ b/app/core/RPCMethods/RPCMethodMiddleware.ts @@ -1,6 +1,6 @@ import { Alert } from 'react-native'; import { getVersion } from 'react-native-device-info'; -import { createAsyncMiddleware } from 'json-rpc-engine'; +import { createAsyncMiddleware } from '@metamask/json-rpc-engine'; import { providerErrors, rpcErrors } from '@metamask/rpc-errors'; import { EndFlowOptions, @@ -16,6 +16,7 @@ import { permissionRpcMethods, } from '@metamask/permission-controller'; import { blockTagParamIndex, getAllNetworks } from '../../util/networks'; +import type { Hex } from '@metamask/utils'; import { polyfillGasPrice } from './utils'; import { processOriginThrottlingRejection, @@ -112,7 +113,7 @@ export const checkActiveAccountAndChainId = async ({ isWalletConnect, }: { address?: string; - chainId?: number; + chainId?: Hex; channelId?: string; hostname: string; isWalletConnect: boolean; @@ -224,7 +225,7 @@ const generateRawSignature = async ({ title: { current: string }; icon: { current: string | undefined }; analytics: { [key: string]: string | boolean }; - chainId: number; + chainId: Hex; isMMSDK: boolean; channelId?: string; getSource: () => string; @@ -521,7 +522,7 @@ export const getRpcMethodMiddleware = ({ chainId, }: { from?: string; - chainId?: number; + chainId?: Hex; }) => { // TODO this needs to be modified for per dapp selected network await checkActiveAccountAndChainId({ diff --git a/app/core/RPCMethods/createLegacyMethodMiddleware/index.test.ts b/app/core/RPCMethods/createLegacyMethodMiddleware/index.test.ts index c37ce9bff14..8ce5f6c8975 100644 --- a/app/core/RPCMethods/createLegacyMethodMiddleware/index.test.ts +++ b/app/core/RPCMethods/createLegacyMethodMiddleware/index.test.ts @@ -2,7 +2,7 @@ import { JsonRpcEngine, JsonRpcEngineEndCallback, JsonRpcEngineNextCallback, -} from 'json-rpc-engine'; +} from '@metamask/json-rpc-engine'; import { Json, JsonRpcParams, @@ -150,6 +150,10 @@ describe('createLegacyMethodMiddleware', () => { }); assertIsJsonRpcFailure(response); + // Type assertion for the error not having cause object + const errorData = response.error.data as { cause?: Error }; + + expect(errorData.cause?.message).toBe('test error'); expect(response.error.message).toBe('test error'); }); @@ -166,6 +170,10 @@ describe('createLegacyMethodMiddleware', () => { }); assertIsJsonRpcFailure(response); + // Type assertion for the error not having cause object + const errorData = response.error.data as { cause?: Error }; + + expect(errorData.cause?.message).toBe('test error'); expect(response.error.message).toBe('test error'); }); diff --git a/app/core/RPCMethods/createUnsupportedMethodMiddleware/index.ts b/app/core/RPCMethods/createUnsupportedMethodMiddleware/index.ts index 738f6f4c344..832ef3c74b0 100644 --- a/app/core/RPCMethods/createUnsupportedMethodMiddleware/index.ts +++ b/app/core/RPCMethods/createUnsupportedMethodMiddleware/index.ts @@ -1,14 +1,16 @@ import { rpcErrors } from '@metamask/rpc-errors'; -import type { JsonRpcMiddleware } from 'json-rpc-engine'; +import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine'; + import { UNSUPPORTED_RPC_METHODS } from '../utils'; +import { Json, JsonRpcParams } from '@metamask/utils'; /** * Creates a middleware that rejects explicitly unsupported RPC methods with the * appropriate error. */ const createUnsupportedMethodMiddleware = (): JsonRpcMiddleware< - unknown, - void + JsonRpcParams, + Json > => async function unsupportedMethodMiddleware(req, _res, next, end) { if ((UNSUPPORTED_RPC_METHODS as Set).has(req.method)) { diff --git a/app/core/RPCMethods/eth_sendTransaction.test.ts b/app/core/RPCMethods/eth_sendTransaction.test.ts index 89e3c154b1f..16627f4f8ae 100644 --- a/app/core/RPCMethods/eth_sendTransaction.test.ts +++ b/app/core/RPCMethods/eth_sendTransaction.test.ts @@ -1,6 +1,11 @@ // eslint-disable-next-line import/no-nodejs-modules import { inspect } from 'util'; -import type { JsonRpcRequest, PendingJsonRpcResponse } from 'json-rpc-engine'; +import type { + Json, + JsonRpcParams, + JsonRpcRequest, + PendingJsonRpcResponse, +} from '@metamask/utils'; import type { TransactionParams, TransactionController, @@ -48,8 +53,10 @@ jest.mock('../../util/transaction-controller', () => ({ * @returns The JSON-RPC request. */ function constructSendTransactionRequest( - params: unknown, -): JsonRpcRequest & { method: 'eth_sendTransaction' } { + params: [TransactionParams & JsonRpcParams], +): JsonRpcRequest<[TransactionParams & JsonRpcParams]> & { + method: 'eth_sendTransaction'; +} { return { jsonrpc: '2.0', id: 1, @@ -63,7 +70,7 @@ function constructSendTransactionRequest( * * @returns A pending JSON-RPC response. */ -function constructPendingJsonRpcResponse(): PendingJsonRpcResponse { +function constructPendingJsonRpcResponse(): PendingJsonRpcResponse { return { jsonrpc: '2.0', id: 1, @@ -144,7 +151,9 @@ function getMockAddTransaction({ describe('eth_sendTransaction', () => { it('sends the transaction and returns the resulting hash', async () => { const mockAddress = '0x0000000000000000000000000000000000000001'; - const mockTransactionParameters = { from: mockAddress }; + const mockTransactionParameters = { + from: mockAddress, + }; const expectedResult = 'fake-hash'; const pendingResult = constructPendingJsonRpcResponse(); @@ -172,6 +181,7 @@ describe('eth_sendTransaction', () => { async () => await eth_sendTransaction({ hostname: 'example.metamask.io', + //@ts-expect-error - invalid parameters forced req: constructSendTransactionRequest(invalidParameter), res: constructPendingJsonRpcResponse(), sendTransaction: getMockAddTransaction({ @@ -194,6 +204,7 @@ describe('eth_sendTransaction', () => { async () => await eth_sendTransaction({ hostname: 'example.metamask.io', + //@ts-expect-error - invalid parameters forced req: constructSendTransactionRequest(invalidParameter), res: constructPendingJsonRpcResponse(), sendTransaction: getMockAddTransaction({ diff --git a/app/core/RPCMethods/eth_sendTransaction.ts b/app/core/RPCMethods/eth_sendTransaction.ts index 465cc87b51d..4479dae9dde 100644 --- a/app/core/RPCMethods/eth_sendTransaction.ts +++ b/app/core/RPCMethods/eth_sendTransaction.ts @@ -1,6 +1,13 @@ -import type { JsonRpcRequest, PendingJsonRpcResponse } from 'json-rpc-engine'; +import type { + Hex, + Json, + JsonRpcParams, + JsonRpcRequest, + PendingJsonRpcResponse, +} from '@metamask/utils'; import { TransactionController, + TransactionParams, WalletDevice, } from '@metamask/transaction-controller'; import { rpcErrors } from '@metamask/rpc-errors'; @@ -46,6 +53,11 @@ const hasProperty = < ): objectToCheck is ObjectToCheck & Record => Object.hasOwnProperty.call(objectToCheck, name); +interface SendArgs { + from: string; + chainId?: Hex; +} + /** * Handle a `eth_sendTransaction` request. * @@ -66,13 +78,12 @@ async function eth_sendTransaction({ validateAccountAndChainId, }: { hostname: string; - req: JsonRpcRequest & { method: 'eth_sendTransaction' }; - res: PendingJsonRpcResponse; + req: JsonRpcRequest<[TransactionParams & JsonRpcParams]> & { + method: 'eth_sendTransaction'; + }; + res: PendingJsonRpcResponse; sendTransaction: TransactionController['addTransaction']; - validateAccountAndChainId: (args: { - from: string; - chainId?: number; - }) => Promise; + validateAccountAndChainId: (args: SendArgs) => Promise; }) { if ( !Array.isArray(req.params) && diff --git a/app/core/RPCMethods/utils.ts b/app/core/RPCMethods/utils.ts index d5b2c577611..3cae77c032d 100644 --- a/app/core/RPCMethods/utils.ts +++ b/app/core/RPCMethods/utils.ts @@ -2,7 +2,8 @@ import { query } from '@metamask/controller-utils'; import Engine from '../Engine'; import { selectHooks } from '@metamask/snaps-rpc-methods'; import { OptionalDataWithOptionalCause, rpcErrors } from '@metamask/rpc-errors'; -import { JsonRpcMiddleware } from 'json-rpc-engine'; +import { JsonRpcMiddleware } from '@metamask/json-rpc-engine'; + import { PermittedHandlerExport } from '@metamask/permission-controller'; import { Json, JsonRpcParams, hasProperty } from '@metamask/utils'; import EthQuery from '@metamask/eth-query'; @@ -76,7 +77,7 @@ export function makeMethodMiddlewareMaker( const makeMethodMiddleware = (hooks: Record) => { assertExpectedHook(hooks, expectedHookNames); - const methodMiddleware: JsonRpcMiddleware = async ( + const methodMiddleware: JsonRpcMiddleware = async ( req, res, next, @@ -88,12 +89,11 @@ export function makeMethodMiddlewareMaker( try { // Implementations may or may not be async, so we must await them. return await implementation( - // @ts-expect-error JsonRpcId (number | string | void) doesn't match the permission middleware's id, which is (string | number | null) req, res, next, end, - selectHooks(hooks, hookNames), + selectHooks(hooks, hookNames) as U, ); } catch (error) { if (process.env.METAMASK_DEBUG) { diff --git a/app/core/RPCMethods/wallet_watchAsset.ts b/app/core/RPCMethods/wallet_watchAsset.ts index 09e7dea5470..adc7bd457cb 100644 --- a/app/core/RPCMethods/wallet_watchAsset.ts +++ b/app/core/RPCMethods/wallet_watchAsset.ts @@ -11,8 +11,8 @@ import { } from '../../constants/error'; import { selectChainId } from '../../selectors/networkController'; import { isValidAddress } from 'ethereumjs-util'; -import { JsonRpcRequest, PendingJsonRpcResponse } from 'json-rpc-engine'; import { toChecksumHexAddress } from '@metamask/controller-utils'; +import { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils'; const wallet_watchAsset = async ({ req, diff --git a/app/core/SanitizationMiddleware.ts b/app/core/SanitizationMiddleware.ts index a7eb92f9291..705b001a4ed 100644 --- a/app/core/SanitizationMiddleware.ts +++ b/app/core/SanitizationMiddleware.ts @@ -1,4 +1,5 @@ -import { JsonRpcMiddleware, JsonRpcRequest } from 'json-rpc-engine'; +import { JsonRpcMiddleware } from '@metamask/json-rpc-engine'; +import type { Json, JsonRpcParams, JsonRpcRequest } from '@metamask/utils'; import { addHexPrefix } from 'ethereumjs-util'; // We use this to clean any custom params from the txParams @@ -39,18 +40,20 @@ export const permittedKeys = [ * @param parameter - The parameter to sanitize. * @returns The given parameter containing just permitted keys. */ -function sanitizeRpcParameter(parameter: Record) { - return permittedKeys.reduce>((copy, permitted) => { +function sanitizeRpcParameter( + parameter: Record, +): Record { + return permittedKeys.reduce>((copy, permitted) => { if (permitted in parameter) { const value = parameter[permitted]; if (Array.isArray(value)) { - copy[permitted] = value.map(sanitize); + copy[permitted] = value.map(sanitize) as Json; } else { - copy[permitted] = sanitize(value); + copy[permitted] = sanitize(value) as Json; } } return copy; - }, {}); + }, {} as Record); } /** @@ -80,12 +83,12 @@ function sanitize(value: unknown) { * request along. */ export function createSanitizationMiddleware(): JsonRpcMiddleware< - unknown, - unknown + JsonRpcParams, + Json > { // TODO: Replace "any" with type // eslint-disable-next-line @typescript-eslint/no-explicit-any - return (req: JsonRpcRequest, _: any, next: () => any) => { + return (req: JsonRpcRequest, _: any, next: () => any) => { if (!Array.isArray(req.params)) { next(); return; diff --git a/app/core/Snaps/SnapBridge.ts b/app/core/Snaps/SnapBridge.ts index 5a9c468dc65..1a7f28e4d24 100644 --- a/app/core/Snaps/SnapBridge.ts +++ b/app/core/Snaps/SnapBridge.ts @@ -10,7 +10,7 @@ import { createSwappableProxy, createEventEmitterProxy, } from '@metamask/swappable-obj-proxy'; -import { JsonRpcEngine } from 'json-rpc-engine'; +import { JsonRpcEngine } from '@metamask/json-rpc-engine'; import { createEngineStream } from 'json-rpc-middleware-stream'; import { NetworksChainId } from '@metamask/controller-utils'; @@ -22,9 +22,9 @@ import snapMethodMiddlewareBuilder from './SnapsMethodMiddleware'; import { SubjectType } from '@metamask/permission-controller'; const ObjectMultiplex = require('@metamask/object-multiplex'); -const createFilterMiddleware = require('eth-json-rpc-filters'); -const createSubscriptionManager = require('eth-json-rpc-filters/subscriptionManager'); -const providerAsMiddleware = require('eth-json-rpc-middleware/providerAsMiddleware'); +const createFilterMiddleware = require('@metamask/eth-json-rpc-filters'); +const createSubscriptionManager = require('@metamask/eth-json-rpc-filters/subscriptionManager'); +import { providerAsMiddleware } from '@metamask/eth-json-rpc-middleware'; const pump = require('pump'); interface ISnapBridgeProps { @@ -125,14 +125,7 @@ export default class SnapBridge { // TODO: Replace "any" with type // eslint-disable-next-line @typescript-eslint/no-explicit-any pump(outStream, providerStream, outStream, (err: any) => { - // handle any middleware cleanup - // TODO: Replace "any" with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - engine._middleware.forEach((mid: any) => { - if (mid.destroy && typeof mid.destroy === 'function') { - mid.destroy(); - } - }); + engine.destroy(); if (err) Logger.log('Error with provider stream conn', err); }); }; diff --git a/app/core/WalletConnect/WalletConnect2Session.test.ts b/app/core/WalletConnect/WalletConnect2Session.test.ts index 6e0e14059e8..18c0fdc5173 100644 --- a/app/core/WalletConnect/WalletConnect2Session.test.ts +++ b/app/core/WalletConnect/WalletConnect2Session.test.ts @@ -215,7 +215,7 @@ describe('WalletConnect2Session', () => { .spyOn(session as any, 'getApprovedAccountsFromPermissions') .mockResolvedValue(approvedAccounts); - await session.updateSession({ chainId: 1, accounts: approvedAccounts }); + await session.updateSession({ chainId: '0x1', accounts: approvedAccounts }); expect(mockUpdateSession).toHaveBeenCalledWith({ topic: mockSession.topic, diff --git a/app/core/WalletConnect/WalletConnect2Session.ts b/app/core/WalletConnect/WalletConnect2Session.ts index ff3613e63ff..ffcf44880a1 100644 --- a/app/core/WalletConnect/WalletConnect2Session.ts +++ b/app/core/WalletConnect/WalletConnect2Session.ts @@ -1,6 +1,7 @@ import Client, { SingleEthereumTypes } from '@walletconnect/se-sdk'; import { WalletDevice } from '@metamask/transaction-controller'; import { PermissionController } from '@metamask/permission-controller'; +import { isStrictHexString, type Hex } from '@metamask/utils'; import { NavigationContainerRef } from '@react-navigation/native'; import { ErrorResponse } from '@walletconnect/jsonrpc-types'; import { SessionTypes } from '@walletconnect/types'; @@ -312,7 +313,7 @@ class WalletConnect2Session { chainId, accounts, }: { - chainId: number; + chainId: Hex; accounts?: string[]; }) => { try { @@ -343,12 +344,12 @@ class WalletConnect2Session { } } - if (chainId === 0) { + if (!isStrictHexString(chainId) || chainId === '0x0') { DevLogger.log( `WC2::updateSession invalid chainId --- skip ${typeof chainId} chainId=${chainId} accounts=${accounts})`, ); // overwrite chainId with actual value. - chainId = parseInt(selectChainId(store.getState())); + chainId = selectChainId(store.getState()); DevLogger.log( `WC2::updateSession overwrite invalid chain Id with selectedChainId=${chainId}`, ); @@ -356,7 +357,7 @@ class WalletConnect2Session { await this.web3Wallet.updateSession({ topic: this.session.topic, - chainId, + chainId: parseInt(chainId, 16), accounts, }); } catch (err) { diff --git a/app/core/WalletConnect/WalletConnectV2.ts b/app/core/WalletConnect/WalletConnectV2.ts index 432335c676f..98f700a64f2 100644 --- a/app/core/WalletConnect/WalletConnectV2.ts +++ b/app/core/WalletConnect/WalletConnectV2.ts @@ -172,13 +172,12 @@ export class WC2Manager { DevLogger.log(`WC2::init approvedAccounts`, approvedAccounts); } - const nChainId = parseInt(chainId, 16); DevLogger.log( - `WC2::init updateSession session=${sessionKey} chainId=${chainId} nChainId=${nChainId} selectedAddress=${selectedInternalAccountChecksummedAddress}`, + `WC2::init updateSession session=${sessionKey} chainId=${chainId} selectedAddress=${selectedInternalAccountChecksummedAddress}`, approvedAccounts, ); await this.sessions[sessionKey].updateSession({ - chainId: nChainId, + chainId, accounts: approvedAccounts, }); } catch (err) { diff --git a/app/core/WalletConnect/extractApprovedAccounts.ts b/app/core/WalletConnect/extractApprovedAccounts.ts index 8018459950d..24738d449f8 100644 --- a/app/core/WalletConnect/extractApprovedAccounts.ts +++ b/app/core/WalletConnect/extractApprovedAccounts.ts @@ -1,5 +1,5 @@ import { Caveat, ValidPermission } from '@metamask/permission-controller'; -import { Json } from 'json-rpc-engine'; +import { Json } from '@metamask/utils'; export const extractApprovedAccounts = ( accountPermission: // TODO: Replace "any" with type diff --git a/app/core/createTracingMiddleware/index.test.ts b/app/core/createTracingMiddleware/index.test.ts index c9a6f84ad2d..f599e870408 100644 --- a/app/core/createTracingMiddleware/index.test.ts +++ b/app/core/createTracingMiddleware/index.test.ts @@ -1,11 +1,11 @@ -import type { JsonRpcRequest, PendingJsonRpcResponse } from 'json-rpc-engine'; +import type { Json, JsonRpcParams, JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils'; import { default as createTracingMiddleware, MESSAGE_TYPE } from './index'; const REQUEST_MOCK = { id: 'testId', method: MESSAGE_TYPE.PERSONAL_SIGN, -} as JsonRpcRequest; -const RESPONSE_MOCK = {} as PendingJsonRpcResponse; +} as JsonRpcRequest; +const RESPONSE_MOCK = {} as PendingJsonRpcResponse; const NEXT_MOCK = jest.fn(); jest.mock('../../util/trace', () => ({ @@ -14,7 +14,7 @@ jest.mock('../../util/trace', () => ({ })); describe('createTracingMiddleware', () => { - let request: JsonRpcRequest & { traceContext?: unknown }; + let request: JsonRpcRequest & { traceContext?: unknown }; beforeEach(() => { jest.clearAllMocks(); request = { ...REQUEST_MOCK }; diff --git a/app/core/createTracingMiddleware/index.ts b/app/core/createTracingMiddleware/index.ts index 092447d3d01..5a5b623cdce 100644 --- a/app/core/createTracingMiddleware/index.ts +++ b/app/core/createTracingMiddleware/index.ts @@ -1,4 +1,4 @@ -import type { JsonRpcRequest, PendingJsonRpcResponse } from 'json-rpc-engine'; +import type { Json, JsonRpcParams, JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils'; import { trace, TraceName } from '../../util/trace'; export const MESSAGE_TYPE = { @@ -19,8 +19,8 @@ const METHOD_TYPE_TO_TRACE_NAME: Record = { export default function createTracingMiddleware() { return async function tracingMiddleware( - req: JsonRpcRequest & { traceContext?: unknown }, - _res: PendingJsonRpcResponse, + req: JsonRpcRequest & { traceContext?: unknown }, + _res: PendingJsonRpcResponse, next: () => void, ) { const { id, method } = req; diff --git a/bitrise.yml b/bitrise.yml index 1fc61f98351..8177a0e3f42 100644 --- a/bitrise.yml +++ b/bitrise.yml @@ -1553,7 +1553,7 @@ app: NVM_SHA256SUM: '8e45fa547f428e9196a5613efad3bfa4d4608b74ca870f930090598f5af5f643' - opts: is_expand: false - NODE_VERSION: 20.12.2 + NODE_VERSION: 20.18.0 - opts: is_expand: false YARN_VERSION: 1.22.22 diff --git a/package.json b/package.json index a84de8c30c4..2e158345021 100644 --- a/package.json +++ b/package.json @@ -148,12 +148,15 @@ "@metamask/contract-metadata": "^2.1.0", "@metamask/controller-utils": "^11.3.0", "@metamask/design-tokens": "^4.0.0", + "@metamask/eth-json-rpc-filters": "^9.0.0", + "@metamask/eth-json-rpc-middleware": ">=12.0.0", "@metamask/eth-ledger-bridge-keyring": "^4.1.0", "@metamask/eth-query": "^4.0.0", "@metamask/eth-sig-util": "^7.0.2", "@metamask/eth-snap-keyring": "^4.3.3", "@metamask/etherscan-link": "^2.0.0", "@metamask/gas-fee-controller": "^18.0.0", + "@metamask/json-rpc-engine": "^10.0.0", "@metamask/key-tree": "^9.0.0", "@metamask/keyring-api": "^8.1.0", "@metamask/keyring-controller": "^17.2.1", @@ -172,7 +175,7 @@ "@metamask/react-native-payments": "^2.0.0", "@metamask/react-native-search-api": "1.0.1", "@metamask/react-native-webview": "^14.0.4", - "@metamask/rpc-errors": "^6.2.1", + "@metamask/rpc-errors": "^7.0.0", "@metamask/scure-bip39": "^2.1.0", "@metamask/sdk-communication-layer": "0.29.0-wallet", "@metamask/selected-network-controller": "^15.0.2", @@ -236,8 +239,6 @@ "eciesjs": "^0.3.15", "eth-block-tracker": "^7.0.1", "eth-ens-namehash": "2.0.8", - "eth-json-rpc-filters": "4.2.2", - "eth-json-rpc-middleware": "4.3.0", "eth-url-parser": "1.0.4", "ethereumjs-abi": "0.6.6", "ethereumjs-util": "6.1.0", @@ -253,7 +254,6 @@ "human-standard-token-abi": "^2.0.0", "humanize-duration": "^3.27.2", "is-url": "^1.2.4", - "json-rpc-engine": "^6.1.0", "json-rpc-middleware-stream": "3.0.0", "lodash": "^4.17.21", "lottie-ios": "3.4.1", @@ -531,7 +531,7 @@ "fs": "react-native-level-fs" }, "engines": { - "node": "^20.12.2", + "node": "^20.18.0", "yarn": "^1.22.22" }, "lavamoat": { diff --git a/patches/@metamask+post-message-stream+8.1.0.patch b/patches/@metamask+post-message-stream+8.1.1.patch similarity index 95% rename from patches/@metamask+post-message-stream+8.1.0.patch rename to patches/@metamask+post-message-stream+8.1.1.patch index 22d35a8aee5..1f320420ffb 100644 --- a/patches/@metamask+post-message-stream+8.1.0.patch +++ b/patches/@metamask+post-message-stream+8.1.1.patch @@ -1,8 +1,8 @@ diff --git a/node_modules/@metamask/post-message-stream/dist/window/WindowPostMessageStream.js b/node_modules/@metamask/post-message-stream/dist/window/WindowPostMessageStream.js -index cead325..a319ed7 100644 +index f2e42ef..27807bb 100644 --- a/node_modules/@metamask/post-message-stream/dist/window/WindowPostMessageStream.js +++ b/node_modules/@metamask/post-message-stream/dist/window/WindowPostMessageStream.js -@@ -6,11 +6,21 @@ const utils_1 = require("@metamask/utils"); +@@ -17,11 +17,21 @@ const utils_1 = require("@metamask/utils"); const BasePostMessageStream_1 = require("../BasePostMessageStream"); const utils_2 = require("../utils"); /* istanbul ignore next */ diff --git a/patches/@metamask+rpc-errors+6.3.1.patch b/patches/@metamask+rpc-errors+6.3.1.patch deleted file mode 100644 index a7ba2358c78..00000000000 --- a/patches/@metamask+rpc-errors+6.3.1.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/node_modules/@metamask/rpc-errors/dist/chunk-PV5NRPSS.js b/node_modules/@metamask/rpc-errors/dist/chunk-PV5NRPSS.js -index b92b1bc..467d025 100644 ---- a/node_modules/@metamask/rpc-errors/dist/chunk-PV5NRPSS.js -+++ b/node_modules/@metamask/rpc-errors/dist/chunk-PV5NRPSS.js -@@ -46,9 +46,14 @@ var JsonRpcError = class extends Error { - serialized.data.cause = _chunkXOYARAPPjs.serializeCause.call(void 0, this.data.cause); - } - } -+ /** -+ * passing the stack creates a loop, possible conflicting with hermes, since it's hermes that throws an error -+ */ -+ /* - if (this.stack) { - serialized.stack = this.stack; - } -+ */ - return serialized; - } - /** diff --git a/patches/@metamask+rpc-errors+7.0.0.patch b/patches/@metamask+rpc-errors+7.0.0.patch new file mode 100644 index 00000000000..38330e1a93f --- /dev/null +++ b/patches/@metamask+rpc-errors+7.0.0.patch @@ -0,0 +1,38 @@ +diff --git a/node_modules/@metamask/rpc-errors/dist/classes.cjs b/node_modules/@metamask/rpc-errors/dist/classes.cjs +index 2cf07ef..63d76e8 100644 +--- a/node_modules/@metamask/rpc-errors/dist/classes.cjs ++++ b/node_modules/@metamask/rpc-errors/dist/classes.cjs +@@ -56,9 +56,14 @@ class JsonRpcError extends Error { + serialized.data.cause = (0, utils_2.serializeCause)(this.data.cause); + } + } ++ /** ++ * passing the stack creates a loop, possible conflicting with hermes, since it's hermes that throws an error ++ */ ++ /* + if (this.stack) { + serialized.stack = this.stack; + } ++ */ + return serialized; + } + /** +diff --git a/node_modules/@metamask/rpc-errors/dist/classes.mjs b/node_modules/@metamask/rpc-errors/dist/classes.mjs +index 9d4c652..81f8518 100644 +--- a/node_modules/@metamask/rpc-errors/dist/classes.mjs ++++ b/node_modules/@metamask/rpc-errors/dist/classes.mjs +@@ -57,9 +57,14 @@ export class JsonRpcError extends Error { + serialized.data.cause = serializeCause(this.data.cause); + } + } ++ /** ++ * passing the stack creates a loop, possible conflicting with hermes, since it's hermes that throws an error ++ */ ++ /* + if (this.stack) { + serialized.stack = this.stack; + } ++ */ + return serialized; + } + /** diff --git a/yarn.lock b/yarn.lock index c97ed0969ac..aa3c7292cac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4507,6 +4507,17 @@ json-rpc-random-id "^1.0.1" pify "^5.0.0" +"@metamask/eth-block-tracker@^11.0.1": + version "11.0.2" + resolved "https://registry.yarnpkg.com/@metamask/eth-block-tracker/-/eth-block-tracker-11.0.2.tgz#7890a4430bd6a92577585a66d7958771bfd88ec8" + integrity sha512-R1J3n2WY3PyEfYELc45MVFw7+6iKu7O3S/nBU0icmM3Q2mVqDMpctF5Z5pAZDYYEW35h7tTU2KJfUb1DrXzWcg== + dependencies: + "@metamask/eth-json-rpc-provider" "^4.1.5" + "@metamask/safe-event-emitter" "^3.1.1" + "@metamask/utils" "^9.1.0" + json-rpc-random-id "^1.0.1" + pify "^5.0.0" + "@metamask/eth-block-tracker@^9.0.2", "@metamask/eth-block-tracker@^9.0.3": version "9.0.3" resolved "https://registry.yarnpkg.com/@metamask/eth-block-tracker/-/eth-block-tracker-9.0.3.tgz#ceebe9bc720a54c3a4749fc09c8f8bb9fe206255" @@ -4529,6 +4540,17 @@ "@metamask/utils" "^9.2.1" ethereum-cryptography "^2.1.2" +"@metamask/eth-json-rpc-filters@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@metamask/eth-json-rpc-filters/-/eth-json-rpc-filters-9.0.0.tgz#9efe770d12f7d1d8289d9f2ed601911c642c31b9" + integrity sha512-mn3clrrNF1zl3E729IgNHV9ia6wvRl+eRwc98e38GM+Se2EcDqBvx1oa9e3oo6BTlqmzzIwdeTvF4/jHU1CDWQ== + dependencies: + "@metamask/eth-query" "^4.0.0" + "@metamask/json-rpc-engine" "^10.0.0" + "@metamask/safe-event-emitter" "^3.0.0" + async-mutex "^0.5.0" + pify "^5.0.0" + "@metamask/eth-json-rpc-infura@^9.0.0", "@metamask/eth-json-rpc-infura@^9.1.0": version "9.1.0" resolved "https://registry.yarnpkg.com/@metamask/eth-json-rpc-infura/-/eth-json-rpc-infura-9.1.0.tgz#8e09588ed58f49058615cab7040dcbce4682a292" @@ -4540,6 +4562,23 @@ "@metamask/utils" "^8.1.0" node-fetch "^2.7.0" +"@metamask/eth-json-rpc-middleware@>=12.0.0": + version "15.0.0" + resolved "https://registry.yarnpkg.com/@metamask/eth-json-rpc-middleware/-/eth-json-rpc-middleware-15.0.0.tgz#167288ad4618438af9d1bda75d238cb0facfde3f" + integrity sha512-RkmaPQPWGH1qggaq0sStwVIeamiJOjf/2jBJfbX78r/nDCai8ddY/zHpATJr42SvtRYD0JrCPjo6v356IDzjQw== + dependencies: + "@metamask/eth-block-tracker" "^11.0.1" + "@metamask/eth-json-rpc-provider" "^4.1.5" + "@metamask/eth-sig-util" "^7.0.3" + "@metamask/json-rpc-engine" "^10.0.0" + "@metamask/rpc-errors" "^7.0.0" + "@metamask/utils" "^9.1.0" + "@types/bn.js" "^5.1.5" + bn.js "^5.2.1" + klona "^2.0.6" + pify "^5.0.0" + safe-stable-stringify "^2.4.3" + "@metamask/eth-json-rpc-middleware@^12.1.0", "@metamask/eth-json-rpc-middleware@^12.1.1": version "12.1.1" resolved "https://registry.yarnpkg.com/@metamask/eth-json-rpc-middleware/-/eth-json-rpc-middleware-12.1.1.tgz#5b6a19386f420211cb554c637f0927b76dc3167a" @@ -4599,13 +4638,13 @@ "@metamask/safe-event-emitter" "^3.0.0" "@metamask/utils" "^8.3.0" -"@metamask/eth-json-rpc-provider@^4.0.0", "@metamask/eth-json-rpc-provider@^4.1.0", "@metamask/eth-json-rpc-provider@^4.1.2", "@metamask/eth-json-rpc-provider@^4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@metamask/eth-json-rpc-provider/-/eth-json-rpc-provider-4.1.4.tgz#212c2a6cc743145dca2886952befb9e6ceefb8d1" - integrity sha512-1pfU3ruTq/CG1YuFE89PJ3U8Mnwg3GUUDAkli9XFK26IxXzL7OKrWeir20AMm+tvjiQytNQTHJHaKhXJr9IA/A== +"@metamask/eth-json-rpc-provider@^4.0.0", "@metamask/eth-json-rpc-provider@^4.1.0", "@metamask/eth-json-rpc-provider@^4.1.2", "@metamask/eth-json-rpc-provider@^4.1.4", "@metamask/eth-json-rpc-provider@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@metamask/eth-json-rpc-provider/-/eth-json-rpc-provider-4.1.5.tgz#8461fb3af8a48e3a32b45602ce96e81e1c49b5db" + integrity sha512-ARXEgPnVhrz4uDiG+atgkfZD6t8oZbD4pzWZMV4kJIOgZeUngZvq0m5gVeLKWxkc5ofejoSUBRRAKUQBRaaJKA== dependencies: - "@metamask/json-rpc-engine" "^9.0.3" - "@metamask/rpc-errors" "^6.3.1" + "@metamask/json-rpc-engine" "^10.0.0" + "@metamask/rpc-errors" "^7.0.0" "@metamask/safe-event-emitter" "^3.0.0" "@metamask/utils" "^9.1.0" uuid "^8.3.2" @@ -4776,6 +4815,15 @@ bn.js "^5.2.1" uuid "^8.3.2" +"@metamask/json-rpc-engine@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@metamask/json-rpc-engine/-/json-rpc-engine-10.0.0.tgz#d2beb23ca43596bf2e4a72c54c1d4c24fce1c8a6" + integrity sha512-10GzJR3G+MM1uS9tLEOw67fc8/kstCSwVoSqaL3fxYaWfUrM6RJWAq1jnMdVrLgyItDguC0d8fsW1FTmF856rQ== + dependencies: + "@metamask/rpc-errors" "^7.0.0" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^9.1.0" + "@metamask/json-rpc-engine@^7.0.0", "@metamask/json-rpc-engine@^7.1.1", "@metamask/json-rpc-engine@^7.3.2", "@metamask/json-rpc-engine@^7.3.3": version "7.3.3" resolved "https://registry.yarnpkg.com/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz#f2b30a2164558014bfcca45db10f5af291d989af" @@ -5283,6 +5331,14 @@ "@metamask/utils" "^9.0.0" fast-safe-stringify "^2.0.6" +"@metamask/rpc-errors@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@metamask/rpc-errors/-/rpc-errors-7.0.0.tgz#7bdd638a353708da72f591142053631b00431b74" + integrity sha512-KDkqwL+MgGMOex6KHntbMQsHGlW29QeH5vpaG/bzovsf1r8xFwxk5f5vnP7/AGpzR9EojNhP8aKeBSJ44rvDMw== + dependencies: + "@metamask/utils" "^9.0.0" + fast-safe-stringify "^2.0.6" + "@metamask/safe-event-emitter@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" @@ -9425,13 +9481,6 @@ dependencies: "@types/node" "*" -"@types/bn.js@^4.11.3": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - "@types/bn.js@^5.1.0", "@types/bn.js@^5.1.5": version "5.1.5" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" @@ -11490,20 +11539,6 @@ abstract-leveldown@~0.12.1: dependencies: xtend "~3.0.0" -abstract-leveldown@~2.6.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" - integrity sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" - integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== - dependencies: - xtend "~4.0.0" - accepts@^1.3.5, accepts@^1.3.7, accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -12814,7 +12849,7 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-eventemitter@0.2.4, async-eventemitter@^0.2.2: +async-eventemitter@0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" integrity sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw== @@ -12872,12 +12907,7 @@ async-mutex@^0.5.0: dependencies: tslib "^2.4.0" -async@^1.4.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.6.0, async@^2.6.3, async@^2.6.4: +async@^2.4.0, async@^2.6.0, async@^2.6.3, async@^2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== @@ -13576,11 +13606,6 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -btoa@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" - integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== - buffer-alloc-unsafe@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" @@ -13994,13 +14019,6 @@ charenc@0.0.2: resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== -checkpoint-store@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" - integrity sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY= - dependencies: - functional-red-black-tree "^1.0.1" - cheerio-select@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" @@ -14319,11 +14337,6 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - clone@~0.1.9: version "0.1.19" resolved "https://registry.yarnpkg.com/clone/-/clone-0.1.19.tgz#613fb68639b26a494ac53253e15b1a6bd88ada85" @@ -15477,13 +15490,6 @@ deferred-leveldown@~0.2.0: dependencies: abstract-leveldown "~0.12.1" -deferred-leveldown@~1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" - integrity sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA== - dependencies: - abstract-leveldown "~2.6.0" - define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" @@ -16991,62 +16997,6 @@ eth-ens-namehash@^1.0.2: idna-uts46 "^1.0.1" js-sha3 "^0.5.7" -eth-json-rpc-errors@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz#148377ef55155585981c21ff574a8937f9d6991f" - integrity sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-json-rpc-filters@4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz#eb35e1dfe9357ace8a8908e7daee80b2cd60a10d" - integrity sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw== - dependencies: - "@metamask/safe-event-emitter" "^2.0.0" - async-mutex "^0.2.6" - eth-json-rpc-middleware "^6.0.0" - eth-query "^2.1.2" - json-rpc-engine "^6.1.0" - pify "^5.0.0" - -eth-json-rpc-middleware@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.3.0.tgz#d3e72efb60b6f601f022ce01384481eaed552b6b" - integrity sha512-Acr+FaIHB0oIV0nWrCvepQghgA3FzYFvnMDXdTUeHQvAX/G6ioMbw1exGJs+6HirRjJ+MmkZqaArphx+PTrRNQ== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-json-rpc-errors "^1.0.1" - eth-query "^2.1.2" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.7" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.6.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^5.1.3" - json-stable-stringify "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-json-rpc-middleware@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz#4fe16928b34231a2537856f08a5ebbc3d0c31175" - integrity sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-query "^2.1.2" - eth-rpc-errors "^3.0.0" - eth-sig-util "^1.4.2" - ethereumjs-util "^5.1.2" - json-rpc-engine "^5.3.0" - json-stable-stringify "^1.0.1" - node-fetch "^2.6.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - eth-method-registry@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eth-method-registry/-/eth-method-registry-4.0.0.tgz#2c2b78d5711dbd8f2c8f5e2de85a7a05f9769800" @@ -17062,21 +17012,6 @@ eth-phishing-detect@^1.2.0: dependencies: fast-levenshtein "^2.0.6" -eth-query@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/eth-query/-/eth-query-2.1.2.tgz#d6741d9000106b51510c72db92d6365456a6da5e" - integrity sha1-1nQdkAAQa1FRDHLbktY2VFam2l4= - dependencies: - json-rpc-random-id "^1.0.0" - xtend "^4.0.1" - -eth-rpc-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz#d7b22653c70dbf9defd4ef490fd08fe70608ca10" - integrity sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg== - dependencies: - fast-safe-stringify "^2.0.6" - eth-rpc-errors@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz#6ddb6190a4bf360afda82790bb7d9d5e724f423a" @@ -17084,14 +17019,6 @@ eth-rpc-errors@^4.0.2: dependencies: fast-safe-stringify "^2.0.6" -eth-sig-util@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210" - integrity sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA= - dependencies: - ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" - ethereumjs-util "^5.1.1" - eth-url-parser@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/eth-url-parser/-/eth-url-parser-1.0.4.tgz#310a99f331abdb8d603c74131568fb773e609cd8" @@ -17100,16 +17027,6 @@ eth-url-parser@1.0.4: bignumber.js "^7.2.1" qs "^6.5.2" -ethereum-common@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.2.0.tgz#13bf966131cce1eeade62a1b434249bb4cb120ca" - integrity sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA== - -ethereum-common@^0.0.18: - version "0.0.18" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" - integrity sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ== - ethereum-cryptography@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" @@ -17154,65 +17071,6 @@ ethereumjs-abi@0.6.6: bn.js "^4.10.0" ethereumjs-util "^5.0.0" -"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": - version "0.6.8" - resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0" - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -ethereumjs-account@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz#eeafc62de544cb07b0ee44b10f572c9c49e00a84" - integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== - dependencies: - ethereumjs-util "^5.0.0" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-block@^1.6.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz#78b88e6cc56de29a6b4884ee75379b6860333c3f" - integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== - dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@~2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" - integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== - dependencies: - async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-common@^1.1.0, ethereumjs-common@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" - integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== - -ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" - integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== - dependencies: - ethereum-common "^0.0.18" - ethereumjs-util "^5.0.0" - -ethereumjs-tx@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz#5dfe7688bf177b45c9a23f86cf9104d47ea35fed" - integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== - dependencies: - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.0.0" - ethereumjs-util@6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz#e9c51e5549e8ebd757a339cc00f5380507e799c8" @@ -17226,7 +17084,7 @@ ethereumjs-util@6.1.0: safe-buffer "^5.1.1" secp256k1 "^3.0.1" -ethereumjs-util@^5.0.0, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2: +ethereumjs-util@^5.0.0: version "5.2.1" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz#a833f0e5fca7e5b361384dc76301a721f537bf65" integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== @@ -17239,19 +17097,6 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2: rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-util@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" - integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" - ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.8, ethereumjs-util@^7.1.2: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" @@ -17263,23 +17108,6 @@ ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.8, ethereumjs-util@^7.1.2: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethereumjs-vm@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - ethereumjs-wallet@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz#2c000504b4c71e8f3782dabe1113d192522e99b6" @@ -17774,13 +17602,6 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fake-merkle-patricia-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" - integrity sha1-S4w6z7Ugr635hgsfFM2M40As3dM= - dependencies: - checkpoint-store "^1.1.0" - fancy-log@^1.3.2: version "1.3.3" resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" @@ -17959,13 +17780,6 @@ fecha@^4.2.0: resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== -fetch-ponyfill@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893" - integrity sha1-rjzl9zLGReq4fkroeTQUcJsjmJM= - dependencies: - node-fetch "~1.7.1" - figures@^3.0.0, figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -18507,11 +18321,6 @@ function.prototype.name@^1.1.0, function.prototype.name@^1.1.2, function.prototy es-abstract "^1.22.1" functions-have-names "^1.2.3" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -19603,11 +19412,6 @@ image-to-base64@^2.2.0: dependencies: node-fetch "^2.6.0" -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== - immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" @@ -21134,14 +20938,6 @@ json-pointer@^0.6.2: dependencies: foreach "^2.0.4" -json-rpc-engine@^5.1.3, json-rpc-engine@^5.3.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz#75758609d849e1dba1e09021ae473f3ab63161e5" - integrity sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g== - dependencies: - eth-rpc-errors "^3.0.0" - safe-event-emitter "^1.0.1" - json-rpc-engine@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz#bf5ff7d029e1c1bf20cb6c0e9f348dcd8be5a393" @@ -21209,13 +21005,6 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -21261,11 +21050,6 @@ jsonfile@^6.0.1, jsonfile@^6.1.0: optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - jsonpath-plus@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/jsonpath-plus/-/jsonpath-plus-7.2.0.tgz#7ad94e147b3ed42f7939c315d2b9ce490c5a3899" @@ -21498,11 +21282,6 @@ level-blobs@^0.1.7: once "^1.3.0" readable-stream "^1.0.26-4" -level-codec@~7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" - integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== - level-concat-iterator@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz#5235b1f744bc34847ed65a50548aa88d22e881cf" @@ -21510,20 +21289,6 @@ level-concat-iterator@^3.0.0: dependencies: catering "^2.1.0" -level-errors@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.1.2.tgz#4399c2f3d3ab87d0625f7e3676e2d807deff404d" - integrity sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w== - dependencies: - errno "~0.1.1" - -level-errors@~1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.0.5.tgz#83dbfb12f0b8a2516bdc9a31c4876038e227b859" - integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== - dependencies: - errno "~0.1.1" - level-filesystem@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/level-filesystem/-/level-filesystem-1.2.0.tgz#a00aca9919c4a4dfafdca6a8108d225aadff63b3" @@ -21558,16 +21323,6 @@ level-fix-range@~1.0.2: dependencies: string-range "~1.2" -level-iterator-stream@~1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" - integrity sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0= - dependencies: - inherits "^2.0.1" - level-errors "^1.0.3" - readable-stream "^1.0.33" - xtend "^4.0.0" - level-peek@1.0.6, level-peek@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/level-peek/-/level-peek-1.0.6.tgz#bec51c72a82ee464d336434c7c876c3fcbcce77f" @@ -21603,14 +21358,6 @@ level-transcoder@^1.0.1: buffer "^6.0.3" module-error "^1.0.1" -level-ws@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" - integrity sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos= - dependencies: - readable-stream "~1.0.15" - xtend "~2.1.1" - leveldown@6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-6.1.0.tgz#7ab1297706f70c657d1a72b31b40323aa612b9ee" @@ -21633,19 +21380,6 @@ levelup@^0.18.2: semver "~2.3.1" xtend "~3.0.0" -levelup@^1.2.1: - version "1.3.9" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" - integrity sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ== - dependencies: - deferred-leveldown "~1.2.1" - level-codec "~7.0.0" - level-errors "~1.0.3" - level-iterator-stream "~1.3.0" - prr "~1.0.1" - semver "~5.4.1" - xtend "~4.0.0" - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -22097,7 +21831,7 @@ lru-cache@^7.14.0, lru-cache@^7.14.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== -ltgt@^2.1.3, ltgt@~2.2.0: +ltgt@^2.1.3: version "2.2.1" resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== @@ -22246,18 +21980,6 @@ mem@^4.0.0: mimic-fn "^2.0.0" p-is-promise "^2.0.0" -memdown@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" - integrity sha1-tOThkhdGZP+65BNhqlAPMRnv4hU= - dependencies: - abstract-leveldown "~2.7.1" - functional-red-black-tree "^1.0.1" - immediate "^3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - memfs@^3.4.1, memfs@^3.4.12: version "3.6.0" resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" @@ -22299,20 +22021,6 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz#982ca1b5a0fde00eed2f6aeed1f9152860b8208a" - integrity sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g== - dependencies: - async "^1.4.2" - ethereumjs-util "^5.0.0" - level-ws "0.0.0" - levelup "^1.2.1" - memdown "^1.0.0" - readable-stream "^2.0.0" - rlp "^2.0.0" - semaphore ">=1.0.1" - mersenne-twister@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz#f916618ee43d7179efcf641bec4531eb9670978a" @@ -23242,7 +22950,7 @@ node-fetch-native@^1.4.0, node-fetch-native@^1.4.1: resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.1.tgz#f95c74917d3cebc794cdae0cd2a9c7594aad0cb4" integrity sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw== -node-fetch@2.6.7, node-fetch@^2.0.0, node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.7.0, node-fetch@~1.7.1: +node-fetch@2.6.7, node-fetch@^2.0.0, node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.7.0: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -23585,11 +23293,6 @@ object-keys@~0.2.0: indexof "~0.0.1" is "~0.2.6" -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= - object.assign@^4.1.0, object.assign@^4.1.2, object.assign@^4.1.4, object.assign@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" @@ -26219,7 +25922,7 @@ readable-stream@2.3.7: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^1.0.26-4, readable-stream@^1.0.31, readable-stream@^1.0.33: +readable-stream@^1.0.26-4, readable-stream@^1.0.31: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= @@ -26253,7 +25956,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable process "^0.11.10" string_decoder "^1.3.0" -readable-stream@~1.0.15, readable-stream@~1.0.26, readable-stream@~1.0.26-4, readable-stream@~1.0.31: +readable-stream@~1.0.26, readable-stream@~1.0.26-4, readable-stream@~1.0.31: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= @@ -26801,7 +26504,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: hash-base "^3.0.0" inherits "^2.0.1" -rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4, rlp@^2.2.6: +rlp@^2.0.0, rlp@^2.2.4, rlp@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== @@ -26866,11 +26569,6 @@ run-parallel@^1.1.2, run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rustbn.js@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" - integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== - "rxjs@>= 6", rxjs@^7.5.5, rxjs@^7.8.1: version "7.8.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" @@ -26915,13 +26613,6 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-event-emitter@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" - integrity sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg== - dependencies: - events "^3.0.0" - safe-json-stringify@~1: version "1.2.0" resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" @@ -27047,11 +26738,6 @@ selenium-webdriver@^3.6.0: tmp "0.0.30" xml2js "^0.4.17" -semaphore@>=1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" - integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== - semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" @@ -27091,11 +26777,6 @@ semver@~5.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" integrity sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw== -semver@~5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== - send@0.18.0, send@0.19.0: version "0.19.0" resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" @@ -30086,13 +29767,6 @@ xtend@~2.0.4: is-object "~0.1.2" object-keys "~0.2.0" -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= - dependencies: - object-keys "~0.4.0" - xtend@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a"