diff --git a/.changeset/mighty-eagles-remember.md b/.changeset/mighty-eagles-remember.md new file mode 100644 index 0000000000000..8acddf51944da --- /dev/null +++ b/.changeset/mighty-eagles-remember.md @@ -0,0 +1,5 @@ +--- +'@eth-optimism/core-utils': minor +--- + +Removes ethers as a dependency in favor of individual ethers sub-packages diff --git a/packages/core-utils/package.json b/packages/core-utils/package.json index 36749cb4b17a4..87717cdac4fc0 100644 --- a/packages/core-utils/package.json +++ b/packages/core-utils/package.json @@ -32,14 +32,22 @@ "url": "https://github.com/ethereum-optimism/optimism.git" }, "dependencies": { + "@ethersproject/abi": "^5.6.3", "@ethersproject/abstract-provider": "^5.6.1", + "@ethersproject/address": "^5.6.1", + "@ethersproject/bignumber": "^5.6.1", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/contracts": "^5.6.2", + "@ethersproject/constants": "^5.6.1", + "@ethersproject/hash": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", "@ethersproject/providers": "^5.6.8", + "@ethersproject/rlp": "^5.6.1", "@ethersproject/transactions": "^5.6.2", "@ethersproject/properties": "^5.6.0", "@ethersproject/web": "^5.6.1", "bufio": "^1.0.7", - "chai": "^4.3.4", - "ethers": "^5.6.8" + "chai": "^4.3.4" }, "devDependencies": { "mocha": "^10.0.0" diff --git a/packages/core-utils/src/common/bn.ts b/packages/core-utils/src/common/bn.ts index 42d4438499ddb..4ef48ac69c3c2 100644 --- a/packages/core-utils/src/common/bn.ts +++ b/packages/core-utils/src/common/bn.ts @@ -1,4 +1,5 @@ -import { ethers } from 'ethers' +import { BigNumber } from '@ethersproject/bignumber' +import { getAddress } from '@ethersproject/address' import { remove0x, add0x } from './hex-strings' @@ -8,15 +9,15 @@ import { remove0x, add0x } from './hex-strings' * @param bn BigNumber to convert to an address. * @return BigNumber converted to an address, represented as a hex string. */ -export const bnToAddress = (bn: ethers.BigNumber | number): string => { +export const bnToAddress = (bn: BigNumber | number): string => { // Coerce numbers into a BigNumber. - bn = ethers.BigNumber.from(bn) + bn = BigNumber.from(bn) // Negative numbers are converted to addresses by adding MAX_ADDRESS + 1. // TODO: Explain this in more detail, it's basically just matching the behavior of doing // addr(uint256(addr) - some_number) in Solidity where some_number > uint256(addr). if (bn.isNegative()) { - bn = ethers.BigNumber.from('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF') + bn = BigNumber.from('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF') .add(bn) .add(1) } @@ -32,7 +33,7 @@ export const bnToAddress = (bn: ethers.BigNumber | number): string => { // Add 0x again addr = add0x(addr) // Convert into a checksummed address - addr = ethers.utils.getAddress(addr) + addr = getAddress(addr) return addr } diff --git a/packages/core-utils/src/common/hex-strings.ts b/packages/core-utils/src/common/hex-strings.ts index 8f001e097bab9..bc9f365cccffa 100644 --- a/packages/core-utils/src/common/hex-strings.ts +++ b/packages/core-utils/src/common/hex-strings.ts @@ -1,5 +1,6 @@ /* Imports: External */ -import { BigNumber, ethers } from 'ethers' +import { BigNumber } from '@ethersproject/bignumber' +import { isHexString, hexZeroPad } from '@ethersproject/bytes' /** * Removes "0x" from start of a string if it exists. @@ -112,11 +113,11 @@ export const encodeHex = (val: any, len: number): string => * @return True if equal */ export const hexStringEquals = (stringA: string, stringB: string): boolean => { - if (!ethers.utils.isHexString(stringA)) { + if (!isHexString(stringA)) { throw new Error(`input is not a hex string: ${stringA}`) } - if (!ethers.utils.isHexString(stringB)) { + if (!isHexString(stringB)) { throw new Error(`input is not a hex string: ${stringB}`) } @@ -130,5 +131,5 @@ export const hexStringEquals = (stringA: string, stringB: string): boolean => { * @return Number cast as a hex string. */ export const bytes32ify = (value: number | BigNumber): string => { - return ethers.utils.hexZeroPad(BigNumber.from(value).toHexString(), 32) + return hexZeroPad(BigNumber.from(value).toHexString(), 32) } diff --git a/packages/core-utils/src/common/test-utils.ts b/packages/core-utils/src/common/test-utils.ts index 0df28ae2b1b67..9ee8e11ebda61 100644 --- a/packages/core-utils/src/common/test-utils.ts +++ b/packages/core-utils/src/common/test-utils.ts @@ -1,5 +1,5 @@ import { expect } from 'chai' -import { BigNumber } from 'ethers' +import { BigNumber } from '@ethersproject/bignumber' import { sleep } from './misc' diff --git a/packages/core-utils/src/external/ethers/fallback-provider.ts b/packages/core-utils/src/external/ethers/fallback-provider.ts index 9b781a6234c75..c862bc9efabaa 100644 --- a/packages/core-utils/src/external/ethers/fallback-provider.ts +++ b/packages/core-utils/src/external/ethers/fallback-provider.ts @@ -2,9 +2,12 @@ * Provider Utilities */ -import { ethers } from 'ethers' -import { Provider } from '@ethersproject/providers' -import { ConnectionInfo } from 'ethers/lib/utils' +import { + Provider, + StaticJsonRpcProvider, + FallbackProvider as EthersFallbackProvider, +} from '@ethersproject/providers' +import { ConnectionInfo } from '@ethersproject/web' export interface HttpHeaders { [key: string]: string @@ -44,11 +47,11 @@ export const FallbackProvider = ( } configs.push({ priority: i, - provider: new ethers.providers.StaticJsonRpcProvider(connectionInfo), + provider: new StaticJsonRpcProvider(connectionInfo), }) } - return new ethers.providers.FallbackProvider(configs) + return new EthersFallbackProvider(configs) } - return new ethers.providers.FallbackProvider(config) + return new EthersFallbackProvider(config) } diff --git a/packages/core-utils/src/optimism/alias.ts b/packages/core-utils/src/optimism/alias.ts index db983d07200e3..f0b33851ae34a 100644 --- a/packages/core-utils/src/optimism/alias.ts +++ b/packages/core-utils/src/optimism/alias.ts @@ -1,4 +1,5 @@ -import { ethers } from 'ethers' +import { isAddress } from '@ethersproject/address' +import { BigNumber } from '@ethersproject/bignumber' import { bnToAddress } from '../common' @@ -18,11 +19,11 @@ export const L1_TO_L2_ALIAS_OFFSET = * @returns Address with the scheme applied. */ export const applyL1ToL2Alias = (address: string): string => { - if (!ethers.utils.isAddress(address)) { + if (!isAddress(address)) { throw new Error(`not a valid address: ${address}`) } - return bnToAddress(ethers.BigNumber.from(address).add(L1_TO_L2_ALIAS_OFFSET)) + return bnToAddress(BigNumber.from(address).add(L1_TO_L2_ALIAS_OFFSET)) } /** @@ -32,9 +33,9 @@ export const applyL1ToL2Alias = (address: string): string => { * @returns Alias with the scheme reversed. */ export const undoL1ToL2Alias = (address: string): string => { - if (!ethers.utils.isAddress(address)) { + if (!isAddress(address)) { throw new Error(`not a valid address: ${address}`) } - return bnToAddress(ethers.BigNumber.from(address).sub(L1_TO_L2_ALIAS_OFFSET)) + return bnToAddress(BigNumber.from(address).sub(L1_TO_L2_ALIAS_OFFSET)) } diff --git a/packages/core-utils/src/optimism/batch-encoding.ts b/packages/core-utils/src/optimism/batch-encoding.ts index 69e261a9be11e..19d7d67cf9396 100644 --- a/packages/core-utils/src/optimism/batch-encoding.ts +++ b/packages/core-utils/src/optimism/batch-encoding.ts @@ -1,8 +1,8 @@ import zlib from 'zlib' -import { parse, serialize } from '@ethersproject/transactions' -import { ethers } from 'ethers' +import { parse, serialize, Transaction } from '@ethersproject/transactions' import { Struct, BufferWriter, BufferReader } from 'bufio' +import { id } from '@ethersproject/hash' import { remove0x } from '../common' @@ -28,7 +28,7 @@ export interface AppendSequencerBatchParams { const APPEND_SEQUENCER_BATCH_METHOD_ID = 'appendSequencerBatch()' const FOUR_BYTE_APPEND_SEQUENCER_BATCH = Buffer.from( - ethers.utils.id(APPEND_SEQUENCER_BATCH_METHOD_ID).slice(2, 10), + id(APPEND_SEQUENCER_BATCH_METHOD_ID).slice(2, 10), 'hex' ) @@ -166,9 +166,9 @@ export class BatchedTx extends Struct { public txSize: number // rlp encoded transaction public raw: Buffer - public tx: ethers.Transaction + public tx: Transaction - constructor(tx?: ethers.Transaction) { + constructor(tx?: Transaction) { super() this.tx = tx } @@ -210,7 +210,7 @@ export class BatchedTx extends Struct { return this } - toTransaction(): ethers.Transaction { + toTransaction(): Transaction { if (this.tx) { return this.tx } diff --git a/packages/core-utils/src/optimism/deposit-transaction.ts b/packages/core-utils/src/optimism/deposit-transaction.ts index f234872eb5aca..7715781352ba4 100644 --- a/packages/core-utils/src/optimism/deposit-transaction.ts +++ b/packages/core-utils/src/optimism/deposit-transaction.ts @@ -1,14 +1,17 @@ +import { getAddress } from '@ethersproject/address' +import { ContractReceipt, Event } from '@ethersproject/contracts' +import { BigNumber, BigNumberish } from '@ethersproject/bignumber' +import { keccak256 } from '@ethersproject/keccak256' +import { Zero } from '@ethersproject/constants' +import * as RLP from '@ethersproject/rlp' import { - BigNumber, - BigNumberish, + arrayify, BytesLike, - ContractReceipt, - ethers, - Event, - utils, -} from 'ethers' - -const { hexDataSlice, stripZeros, hexConcat, keccak256, zeroPad } = utils + hexDataSlice, + stripZeros, + hexConcat, + zeroPad, +} from '@ethersproject/bytes' const formatBoolean = (value: boolean): Uint8Array => { return value ? new Uint8Array([1]) : new Uint8Array([]) @@ -34,7 +37,7 @@ const handleBoolean = (value: string): boolean => { const handleNumber = (value: string): BigNumber => { if (value === '0x') { - return ethers.constants.Zero + return Zero } return BigNumber.from(value) } @@ -44,7 +47,7 @@ const handleAddress = (value: string): string => { // @ts-ignore return null } - return utils.getAddress(value) + return getAddress(value) } export enum SourceHashDomain { @@ -142,8 +145,8 @@ export class DepositTx { encode() { const fields: any = [ this.sourceHash() || '0x', - utils.getAddress(this.from) || '0x', - this.to != null ? utils.getAddress(this.to) : '0x', + getAddress(this.from) || '0x', + this.to != null ? getAddress(this.to) : '0x', formatNumber(this.mint || 0, 'mint'), formatNumber(this.value || 0, 'value'), formatNumber(this.gas || 0, 'gas'), @@ -153,17 +156,17 @@ export class DepositTx { return hexConcat([ BigNumber.from(this.type).toHexString(), - utils.RLP.encode(fields), + RLP.encode(fields), ]) } decode(raw: BytesLike, extra: DepositTxExtraOpts = {}) { - const payload = utils.arrayify(raw) + const payload = arrayify(raw) if (payload[0] !== this.type) { throw new Error(`Invalid type ${payload[0]}`) } this.version = payload[1] - const transaction = utils.RLP.decode(payload.slice(1)) + const transaction = RLP.decode(payload.slice(1)) this._sourceHash = transaction[0] this.from = handleAddress(transaction[1]) this.to = handleAddress(transaction[2]) diff --git a/packages/core-utils/src/optimism/encoding.ts b/packages/core-utils/src/optimism/encoding.ts index cb1f58fa73c0b..f1f48281d9ba3 100644 --- a/packages/core-utils/src/optimism/encoding.ts +++ b/packages/core-utils/src/optimism/encoding.ts @@ -1,6 +1,7 @@ -import { ethers, BigNumberish, BigNumber } from 'ethers' +import { BigNumberish, BigNumber } from '@ethersproject/bignumber' +import { Interface } from '@ethersproject/abi' -const iface = new ethers.utils.Interface([ +const iface = new Interface([ 'function relayMessage(address,address,bytes,uint256)', 'function relayMessage(uint256,address,address,uint256,uint256,bytes)', ]) diff --git a/packages/core-utils/src/optimism/fees.ts b/packages/core-utils/src/optimism/fees.ts index db33b156685fa..a1103e5754082 100644 --- a/packages/core-utils/src/optimism/fees.ts +++ b/packages/core-utils/src/optimism/fees.ts @@ -2,7 +2,7 @@ * Fee related serialization and deserialization */ -import { BigNumber } from 'ethers' +import { BigNumber } from '@ethersproject/bignumber' import { remove0x } from '../common' diff --git a/packages/core-utils/src/optimism/hashing.ts b/packages/core-utils/src/optimism/hashing.ts index 8a48b7e2852fa..1d9f47abfc44d 100644 --- a/packages/core-utils/src/optimism/hashing.ts +++ b/packages/core-utils/src/optimism/hashing.ts @@ -1,5 +1,6 @@ -import { BigNumberish, BigNumber, utils } from 'ethers' -const { keccak256, defaultAbiCoder } = utils +import { BigNumberish, BigNumber } from '@ethersproject/bignumber' +import { keccak256 } from '@ethersproject/keccak256' +import { defaultAbiCoder } from '@ethersproject/abi' import { decodeVersionedNonce, diff --git a/packages/core-utils/src/optimism/op-provider.ts b/packages/core-utils/src/optimism/op-provider.ts index dda73a1dd6ad7..2dd6e2ece3bf2 100644 --- a/packages/core-utils/src/optimism/op-provider.ts +++ b/packages/core-utils/src/optimism/op-provider.ts @@ -1,6 +1,6 @@ import EventEmitter from 'events' -import { BigNumber } from 'ethers' +import { BigNumber } from '@ethersproject/bignumber' import { deepCopy } from '@ethersproject/properties' import { ConnectionInfo, fetchJson } from '@ethersproject/web' diff --git a/packages/core-utils/test/fees.spec.ts b/packages/core-utils/test/fees.spec.ts index b8b61cefdb843..1e81cf5fa89ed 100644 --- a/packages/core-utils/test/fees.spec.ts +++ b/packages/core-utils/test/fees.spec.ts @@ -1,6 +1,6 @@ import './setup' -import { BigNumber } from 'ethers' +import { BigNumber } from '@ethersproject/bignumber' import { zeroesAndOnes, calldataCost } from '../src' diff --git a/packages/core-utils/test/hex-utils.spec.ts b/packages/core-utils/test/hex-utils.spec.ts index ecac90f22c981..2fd99bbf28034 100644 --- a/packages/core-utils/test/hex-utils.spec.ts +++ b/packages/core-utils/test/hex-utils.spec.ts @@ -1,4 +1,4 @@ -import { BigNumber } from 'ethers' +import { BigNumber } from '@ethersproject/bignumber' /* Imports: Internal */ import { expect } from './setup' diff --git a/yarn.lock b/yarn.lock index bc21e89a69603..d7a6c188ad019 100644 --- a/yarn.lock +++ b/yarn.lock @@ -981,6 +981,21 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" +"@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/abstract-provider@5.4.1", "@ethersproject/abstract-provider@^5.4.0": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz#e404309a29f771bd4d28dbafadcaa184668c2a6e" @@ -1007,6 +1022,19 @@ "@ethersproject/transactions" "^5.6.2" "@ethersproject/web" "^5.6.1" +"@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + "@ethersproject/abstract-signer@5.4.1", "@ethersproject/abstract-signer@^5.4.0": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz#e4e9abcf4dd4f1ba0db7dff9746a5f78f355ea81" @@ -1029,6 +1057,17 @@ "@ethersproject/logger" "^5.6.0" "@ethersproject/properties" "^5.6.0" +"@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/address@5.4.0", "@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.4.0.tgz#ba2d00a0f8c4c0854933b963b9a3a9f6eb4a37a3" @@ -1051,6 +1090,17 @@ "@ethersproject/logger" "^5.6.0" "@ethersproject/rlp" "^5.6.1" +"@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/base64@5.4.0", "@ethersproject/base64@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.4.0.tgz#7252bf65295954c9048c7ca5f43e5c86441b2a9a" @@ -1065,6 +1115,13 @@ dependencies: "@ethersproject/bytes" "^5.6.1" +"@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/basex@5.4.0", "@ethersproject/basex@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.4.0.tgz#0a2da0f4e76c504a94f2b21d3161ed9438c7f8a6" @@ -1099,6 +1156,15 @@ "@ethersproject/logger" "^5.6.0" bn.js "^5.2.1" +"@ethersproject/bignumber@^5.6.1", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + "@ethersproject/bytes@5.4.0", "@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e" @@ -1113,6 +1179,13 @@ dependencies: "@ethersproject/logger" "^5.6.0" +"@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + "@ethersproject/constants@5.4.0", "@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a" @@ -1127,6 +1200,13 @@ dependencies: "@ethersproject/bignumber" "^5.6.2" +"@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/contracts@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.1.tgz#3eb4f35b7fe60a962a75804ada2746494df3e470" @@ -1159,6 +1239,22 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/transactions" "^5.6.2" +"@ethersproject/contracts@^5.6.2": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/hardware-wallets@^5.6.1": version "5.6.1" resolved "https://registry.yarnpkg.com/@ethersproject/hardware-wallets/-/hardware-wallets-5.6.1.tgz#d99ee1c6169bd9f3423c386e3b11e0ab09f34964" @@ -1199,6 +1295,21 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.1" +"@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/hdnode@5.4.0", "@ethersproject/hdnode@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.4.0.tgz#4bc9999b9a12eb5ce80c5faa83114a57e4107cac" @@ -1289,6 +1400,14 @@ "@ethersproject/bytes" "^5.6.1" js-sha3 "0.8.0" +"@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" + "@ethersproject/logger@5.4.0", "@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.0.tgz#f39adadf62ad610c420bcd156fd41270e91b3ca9" @@ -1299,6 +1418,11 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.6.0.tgz#d7db1bfcc22fd2e4ab574cba0bb6ad779a9a3e7a" integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== +"@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + "@ethersproject/networks@5.4.2", "@ethersproject/networks@^5.4.0": version "5.4.2" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.2.tgz#2247d977626e97e2c3b8ee73cd2457babde0ce35" @@ -1320,6 +1444,13 @@ dependencies: "@ethersproject/logger" "^5.6.0" +"@ethersproject/networks@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.0.tgz#df72a392f1a63a57f87210515695a31a245845ad" + integrity sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA== + dependencies: + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2@5.4.0", "@ethersproject/pbkdf2@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz#ed88782a67fda1594c22d60d0ca911a9d669641c" @@ -1350,6 +1481,13 @@ dependencies: "@ethersproject/logger" "^5.6.0" +"@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + "@ethersproject/providers@5.4.4": version "5.4.4" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.4.tgz#6729120317942fc0ab0ecdb35e944ec6bbedb795" @@ -1433,6 +1571,14 @@ "@ethersproject/bytes" "^5.6.1" "@ethersproject/logger" "^5.6.0" +"@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/sha2@5.4.0", "@ethersproject/sha2@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.4.0.tgz#c9a8db1037014cbc4e9482bd662f86c090440371" @@ -1475,6 +1621,18 @@ elliptic "6.5.4" hash.js "1.1.7" +"@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + "@ethersproject/solidity@5.4.0", "@ethersproject/solidity@^5.0.9": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.4.0.tgz#1305e058ea02dc4891df18b33232b11a14ece9ec" @@ -1516,6 +1674,15 @@ "@ethersproject/constants" "^5.6.1" "@ethersproject/logger" "^5.6.0" +"@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/transactions@5.4.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.4.0.tgz#a159d035179334bd92f340ce0f77e83e9e1522e0" @@ -1546,6 +1713,21 @@ "@ethersproject/rlp" "^5.6.1" "@ethersproject/signing-key" "^5.6.2" +"@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/units@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.4.0.tgz#d57477a4498b14b88b10396062c8cbbaf20c79fe" @@ -1628,6 +1810,17 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.1" +"@ethersproject/web@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.0.tgz#40850c05260edad8b54827923bbad23d96aac0bc" + integrity sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/wordlists@5.4.0", "@ethersproject/wordlists@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.4.0.tgz#f34205ec3bbc9e2c49cadaee774cf0b07e7573d7"