Commit 9d25e0a5 authored by Kelvin Fichter's avatar Kelvin Fichter Committed by GitHub

dev: Use eth-optimism/core-utils where applicable (#281)

* Use core-utils where applicable

* Further reduce utils

* Update ovmCREATEEOA.spec.ts
Co-authored-by: default avatarMark Tyneway <mark.tyneway@gmail.com>
parent e7b0d3de
......@@ -33,6 +33,7 @@
"serve": "./bin/serve_dump.sh"
},
"dependencies": {
"@eth-optimism/core-utils": "^0.1.8",
"@eth-optimism/dev": "^1.1.1",
"@ethersproject/abstract-provider": "^5.0.8",
"@ethersproject/contracts": "^5.0.5",
......@@ -42,7 +43,7 @@
"glob": "^7.1.6"
},
"devDependencies": {
"@eth-optimism/plugins": "^0.0.16",
"@eth-optimism/plugins": "^0.0.17",
"@eth-optimism/smock": "0.2.1-alpha.0",
"@nomiclabs/hardhat-ethers": "^2.0.1",
"@nomiclabs/hardhat-waffle": "^2.0.1",
......
......@@ -6,7 +6,7 @@ import { Interface } from 'ethers/lib/utils'
export const getContractDefinition = (name: string, ovm?: boolean): any => {
const match = glob.sync(
path.resolve(__dirname, `../artifacts`) +
`/**/${name}${ovm ? '.ovm' : ''}.json`
`/**/${name}${ovm ? '-ovm' : ''}.json`
)
if (match.length > 0) {
......
......@@ -3,10 +3,10 @@ import * as path from 'path'
import { ethers } from 'ethers'
import * as Ganache from 'ganache-core'
import { keccak256 } from 'ethers/lib/utils'
import { fromHexString, toHexString, remove0x } from '@eth-optimism/core-utils'
/* Internal Imports */
import { deploy, RollupDeployConfig } from './contract-deployment'
import { fromHexString, toHexString, remove0x } from './utils'
import { getContractDefinition } from './contract-defs'
interface StorageDump {
......
/* External Imports */
import { BigNumber } from 'ethers'
/**
* Converts a string or buffer to a '0x'-prefixed hex string.
* @param buf String or buffer to convert.
* @returns '0x'-prefixed string.
*/
export const toHexString = (buf: Buffer | string): string => {
return '0x' + fromHexString(buf).toString('hex')
}
/**
* Converts a '0x'-prefixed string to a buffer.
* @param str '0x'-prefixed string to convert.
* @returns Hex buffer.
*/
export const fromHexString = (str: string | Buffer): Buffer => {
if (typeof str === 'string' && str.startsWith('0x')) {
return Buffer.from(str.slice(2), 'hex')
}
return Buffer.from(str)
}
export const toHexString32 = (
input: Buffer | string | number,
padRight = false
): string => {
if (typeof input === 'number') {
input = BigNumber.from(input).toHexString()
}
input = toHexString(input).slice(2)
return '0x' + (padRight ? input.padEnd(64, '0') : input.padStart(64, '0'))
}
export const getHexSlice = (
input: Buffer | string,
start: number,
length: number
): string => {
return toHexString(fromHexString(input).slice(start, start + length))
}
const hexRegex = /^(0x)?[0-9a-fA-F]*$/
/**
* Generates a hex string of repeated bytes.
* @param byte Byte to repeat.
* @param len Number of times to repeat the byte.
* @return '0x'-prefixed hex string filled with the provided byte.
*/
export const makeHexString = (byte: string, len: number): string => {
return '0x' + byte.repeat(len)
}
/**
* Genereates an address with a repeated byte.
* @param byte Byte to repeat in the address.
* @return Address filled with the repeated byte.
*/
export const makeAddress = (byte: string): string => {
return makeHexString(byte, 20)
}
/**
* Removes '0x' from a hex string.
* @param str Hex string to remove '0x' from.
* @returns String without the '0x' prefix.
*/
export const remove0x = (str: string): string => {
if (str.startsWith('0x')) {
return str.slice(2)
} else {
return str
}
}
/**
* Returns whether or not the provided string is a hex string.
*
* @param str The string to test.
* @returns True if the provided string is a hex string, false otherwise.
*/
export const isHexString = (str: string): boolean => {
return hexRegex.test(str)
}
/**
* Converts a hex string to a buffer
* @param hexString the hex string to be converted
* @returns the hexString as a buffer.
*/
export const hexStrToBuf = (hexString: string): Buffer => {
if (!isHexString(hexString)) {
throw new RangeError(`Invalid hex string [${hexString}]`)
}
if (hexString.length % 2 !== 0) {
throw new RangeError(
`Invalid hex string -- odd number of characters: [${hexString}]`
)
}
return Buffer.from(remove0x(hexString), 'hex')
}
/**
* Converts a JavaScript number to a big-endian hex string.
* @param number the JavaScript number to be converted.
* @param padToBytes the number of numeric bytes the resulting string should be, -1 if no padding should be done.
* @returns the JavaScript number as a string.
*/
export const numberToHexString = (
number: number,
padToBytes: number = -1
): string => {
let str = number.toString(16)
if (padToBytes > 0 || str.length < padToBytes * 2) {
str = `${'0'.repeat(padToBytes * 2 - str.length)}${str}`
}
return add0x(str)
}
/**
* Adds "0x" to the start of a string if necessary.
* @param str String to modify.
* @returns the string with "0x".
*/
export const add0x = (str: string): string => {
if (str === undefined) {
return str
}
return str.startsWith('0x') ? str : '0x' + str
}
export * from './buffer-utils'
export * from './byte-utils'
......@@ -4,9 +4,10 @@ import { expect } from '../../../setup'
import { ethers, waffle } from 'hardhat'
import { ContractFactory, Contract, Wallet } from 'ethers'
import { MockContract, smockit } from '@eth-optimism/smock'
import { remove0x } from '@eth-optimism/core-utils'
/* Internal Imports */
import { remove0x, decodeSolidityError } from '../../../helpers'
import { decodeSolidityError } from '../../../helpers'
const callPrecompile = async (
Helper_PrecompileCaller: Contract,
......
......@@ -4,6 +4,7 @@ import { expect } from '../../../../setup'
import { ethers } from 'hardhat'
import { Signer, ContractFactory, Contract, BigNumber } from 'ethers'
import { smockit, MockContract } from '@eth-optimism/smock'
import { remove0x, toHexString } from '@eth-optimism/core-utils'
/* Internal Imports */
import {
......@@ -15,9 +16,7 @@ import {
DUMMY_BATCH_HEADERS,
DUMMY_BATCH_PROOFS,
TrieTestGenerator,
toHexString,
getNextBlockNumber,
remove0x,
getXDomainCalldata,
} from '../../../../helpers'
import { keccak256 } from 'ethers/lib/utils'
......
......@@ -4,6 +4,7 @@ import { expect } from '../../../../setup'
import { ethers } from 'hardhat'
import { Signer, ContractFactory, Contract } from 'ethers'
import { smockit, MockContract } from '@eth-optimism/smock'
import { toHexString } from '@eth-optimism/core-utils'
/* Internal Imports */
import {
......@@ -12,7 +13,6 @@ import {
NON_NULL_BYTES32,
DUMMY_BATCH_HEADERS,
DUMMY_BATCH_PROOFS,
toHexString,
} from '../../../../helpers'
describe('OVM_L1MultiMessageRelayer', () => {
......
......@@ -5,6 +5,7 @@ import { ethers } from 'hardhat'
import { Signer, ContractFactory, Contract, BigNumber } from 'ethers'
import { TransactionResponse } from '@ethersproject/abstract-provider'
import { smockit, MockContract } from '@eth-optimism/smock'
import { remove0x } from '@eth-optimism/core-utils'
import _ from 'lodash'
/* Internal Imports */
......@@ -15,7 +16,6 @@ import {
FORCE_INCLUSION_PERIOD_BLOCKS,
setEthTime,
NON_ZERO_ADDRESS,
remove0x,
getEthTime,
getNextBlockNumber,
increaseEthTime,
......
/* External Imports */
import { fromHexString } from '@eth-optimism/core-utils'
/* Internal Imports */
import {
ExecutionManagerTestRunner,
......@@ -5,7 +8,6 @@ import {
OVM_TX_GAS_LIMIT,
NON_NULL_BYTES32,
VERIFIED_EMPTY_CONTRACT_HASH,
fromHexString,
} from '../../../../helpers'
import { getContractDefinition } from '../../../../../src'
......
......@@ -4,9 +4,11 @@ import { expect } from '../../../setup'
import { ethers } from 'hardhat'
import { ContractFactory, Contract } from 'ethers'
import { MockContract, smockit } from '@eth-optimism/smock'
import { NON_ZERO_ADDRESS } from '../../../helpers/constants'
import { remove0x } from '@eth-optimism/core-utils'
import { keccak256 } from 'ethers/lib/utils'
import { remove0x } from '../../../helpers'
/* Internal Imports */
import { NON_ZERO_ADDRESS } from '../../../helpers/constants'
const ELEMENT_TEST_SIZES = [1, 2, 4, 8, 16]
......
......@@ -4,9 +4,10 @@ import { expect } from '../../../setup'
import { ethers, waffle } from 'hardhat'
import { ContractFactory, Contract, Wallet } from 'ethers'
import { MockContract, smockit } from '@eth-optimism/smock'
import { ZERO_ADDRESS, remove0x } from '@eth-optimism/core-utils'
/* Internal Imports */
import { decodeSolidityError, ZERO_ADDRESS, remove0x } from '../../../helpers'
import { decodeSolidityError } from '../../../helpers'
const callPrecompile = async (
Helper_PrecompileCaller: Contract,
......
......@@ -15,7 +15,6 @@ import {
setProxyTarget,
TrieTestGenerator,
ZERO_ADDRESS,
numberToHexString,
} from '../../../helpers'
import {
MockContract,
......@@ -24,6 +23,7 @@ import {
smoddit,
ModifiableContractFactory,
} from '@eth-optimism/smock'
import { toHexString } from '@eth-optimism/core-utils'
describe('OVM_StateTransitioner', () => {
let AddressManager: Contract
......@@ -279,7 +279,7 @@ describe('OVM_StateTransitioner', () => {
l1QueueOrigin: '0x00',
l1TxOrigin: ZERO_ADDRESS,
entrypoint: ZERO_ADDRESS,
gasLimit: numberToHexString(gasLimit),
gasLimit: toHexString(gasLimit),
data: '0x1234',
}
......
......@@ -4,9 +4,10 @@ import { expect } from '../../../setup'
import * as rlp from 'rlp'
import { ethers } from 'hardhat'
import { Contract } from 'ethers'
import { toHexString } from '@eth-optimism/core-utils'
/* Internal Imports */
import { toHexString, TrieTestGenerator } from '../../../helpers'
import { TrieTestGenerator } from '../../../helpers'
const NODE_COUNTS = [1, 2, 128]
......
......@@ -4,14 +4,19 @@ import { expect } from '../../../setup'
/* External Imports */
import { ethers } from 'hardhat'
import { Contract, Signer } from 'ethers'
import { fromHexString, toHexString } from '@eth-optimism/core-utils'
/* Internal Imports */
import {
ZERO_ADDRESS,
makeHexString,
fromHexString,
getHexSlice,
} from '../../../helpers'
import { ZERO_ADDRESS } from '../../../helpers'
// Leaving this here for now. If it's sufficiently useful we can throw it in core-utils.
const getHexSlice = (
input: Buffer | string,
start: number,
length: number
): string => {
return toHexString(fromHexString(input).slice(start, start + length))
}
describe('Lib_EthUtils', () => {
let signer: Signer
......@@ -42,7 +47,7 @@ describe('Lib_EthUtils', () => {
offset,
length
)
).to.equal(makeHexString('00', length))
).to.equal('0x' + '00'.repeat(length))
})
})
......@@ -58,7 +63,7 @@ describe('Lib_EthUtils', () => {
offset,
length
)
).to.equal(makeHexString('00', length))
).to.equal('0x' + '00'.repeat(length))
})
})
})
......@@ -81,7 +86,7 @@ describe('Lib_EthUtils', () => {
offset,
length
)
).to.equal(makeHexString('00', length))
).to.equal('0x' + '00'.repeat(length))
})
})
......@@ -97,7 +102,7 @@ describe('Lib_EthUtils', () => {
offset,
length
)
).to.equal(makeHexString('00', length))
).to.equal('0x' + '00'.repeat(length))
})
})
})
......@@ -291,7 +296,7 @@ describe('Lib_EthUtils', () => {
offset,
length
)
).to.equal(makeHexString('00', length))
).to.equal('0x' + '00'.repeat(length))
})
})
})
......
......@@ -4,14 +4,10 @@ import { expect } from '../../../setup'
import { ethers } from 'hardhat'
import { Contract, BigNumber } from 'ethers'
import { MerkleTree } from 'merkletreejs'
import { fromHexString, toHexString } from '@eth-optimism/core-utils'
/* Internal Imports */
import {
fromHexString,
NON_NULL_BYTES32,
NULL_BYTES32,
toHexString,
} from '../../../helpers'
import { NON_NULL_BYTES32, NULL_BYTES32 } from '../../../helpers'
const NODE_COUNTS = [
2,
......
......@@ -3,7 +3,7 @@ import { ethers } from 'hardhat'
import { Wallet } from 'ethers'
/* Internal Imports */
import { remove0x, hexStrToBuf } from '../'
import { remove0x, fromHexString } from '@eth-optimism/core-utils'
import { ZERO_ADDRESS } from '../constants'
export interface EIP155Transaction {
......@@ -47,9 +47,9 @@ export const encodeCompactTransaction = (transaction: any): string => {
const compressedGasPrice: any = transaction.gasPrice / 1000000
const gasPrice = ethers.utils.zeroPad(compressedGasPrice, 3)
const to = !transaction.to.length
? hexStrToBuf(ZERO_ADDRESS)
: hexStrToBuf(transaction.to)
const data = hexStrToBuf(transaction.data)
? fromHexString(ZERO_ADDRESS)
: fromHexString(transaction.to)
const data = fromHexString(transaction.data)
return Buffer.concat([
Buffer.from(gasLimit),
......
/* External Imports */
import { ethers } from 'ethers'
import { defaultAccounts } from 'ethereum-waffle'
import { fromHexString, toHexString } from '@eth-optimism/core-utils'
import xor from 'buffer-xor'
/* Internal Imports */
import { makeHexString, makeAddress, fromHexString, toHexString } from './utils'
export const DEFAULT_ACCOUNTS = defaultAccounts
export const DEFAULT_ACCOUNTS_HARDHAT = defaultAccounts.map((account) => {
return {
......@@ -19,10 +17,12 @@ export const RUN_OVM_TEST_GAS = 20_000_000
export const FORCE_INCLUSION_PERIOD_SECONDS = 600
export const FORCE_INCLUSION_PERIOD_BLOCKS = 600 / 12
export const NULL_BYTES32 = makeHexString('00', 32)
export const NON_NULL_BYTES32 = makeHexString('11', 32)
export const ZERO_ADDRESS = makeAddress('00')
export const NON_ZERO_ADDRESS = makeAddress('11')
export const NULL_BYTES32 =
'0x0000000000000000000000000000000000000000000000000000000000000000'
export const NON_NULL_BYTES32 =
'0x1111111111111111111111111111111111111111111111111111111111111111'
export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'
export const NON_ZERO_ADDRESS = '0x1111111111111111111111111111111111111111'
export const VERIFIED_EMPTY_CONTRACT_HASH =
'0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
......
......@@ -4,7 +4,6 @@ import { BigNumber } from 'ethers'
/* Internal Imports */
import { DUMMY_BYTES32 } from './bytes32'
import { ZERO_ADDRESS, NON_ZERO_ADDRESS } from '../constants'
import { makeAddress } from '../utils'
import { OVMAccount } from '../types/ovm-types'
export const DUMMY_ACCOUNTS: Array<{
......@@ -12,7 +11,7 @@ export const DUMMY_ACCOUNTS: Array<{
data: OVMAccount
}> = [
{
address: makeAddress('12'),
address: '0x1212121212121212121212121212121212121212',
data: {
nonce: BigNumber.from(123),
balance: BigNumber.from(456),
......@@ -22,7 +21,7 @@ export const DUMMY_ACCOUNTS: Array<{
},
},
{
address: makeAddress('21'),
address: '0x2121212121212121212121212121212121212121',
data: {
nonce: BigNumber.from(321),
balance: BigNumber.from(654),
......
......@@ -2,9 +2,9 @@
import * as rlp from 'rlp'
import { default as seedbytes } from 'random-bytes-seed'
import { SecureTrie, BaseTrie } from 'merkle-patricia-tree'
import { fromHexString, toHexString } from '@eth-optimism/core-utils'
/* Internal Imports */
import { fromHexString, toHexString } from '../utils'
import { NULL_BYTES32 } from '../constants'
export interface TrieNode {
......
/* External Imports */
import { Signer } from 'ethers'
import { toHexString } from '../../../src/utils'
import { toHexString } from '@eth-optimism/core-utils'
export const deployContractCode = async (
code: string,
......
export * from '../../../src/utils'
export * from './eth-time'
export * from './sol-utils'
export * from './custom-deployer'
......@@ -39,17 +39,27 @@
resolved "https://registry.yarnpkg.com/@ensdomains/resolver/-/resolver-0.2.4.tgz#c10fe28bf5efbf49bff4666d909aed0265efbc89"
integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==
"@eth-optimism/contracts@0.0.2-alpha.14":
version "0.0.2-alpha.14"
resolved "https://registry.yarnpkg.com/@eth-optimism/contracts/-/contracts-0.0.2-alpha.14.tgz#382ae9250e7d89e7729bcfe73ffdb85897e385c2"
integrity sha512-EeOKiQ+Tu/bZqlq2bsXJegRYHhBXlcDO+fNXG1NJyies23rcLrjR7LMocJmw/F9TpYJ08UqvOHttD5w//cntpg==
"@eth-optimism/contracts@^0.1.9":
version "0.1.9"
resolved "https://registry.yarnpkg.com/@eth-optimism/contracts/-/contracts-0.1.9.tgz#01a8b7816b2fcc8408c102d81e455868e4a09bc3"
integrity sha512-vLW6vnFymdSWveF7qMUwYNFGSOYI90qosOJLxalOLi2dvJ6Glh7wtnCF6GvXMb3bNQ1fS5eFwHzjhWIbBMvWRA==
dependencies:
"@eth-optimism/solc" "^0.6.12-alpha.1"
"@ethersproject/abstract-provider" "^5.0.8"
"@ethersproject/contracts" "^5.0.5"
"@ethersproject/hardware-wallets" "^5.0.8"
"@openzeppelin/contracts" "^3.3.0"
ethers "5.0.0"
ganache-core "^2.12.1"
glob "^7.1.6"
"@eth-optimism/core-utils@^0.1.8":
version "0.1.8"
resolved "https://registry.yarnpkg.com/@eth-optimism/core-utils/-/core-utils-0.1.8.tgz#bf9ac0e537e99a56b2f03af525d317aac5933c41"
integrity sha512-IdRDkyVWmrmbA4P0hvupS+uLSQ1qwG1bWtdvwqeG1+wfDMC7nfZyjdeRWrRZbFvVs/hKk20LERC7L5/lJEo1hA==
dependencies:
"@ethersproject/abstract-provider" "^5.0.9"
colors "^1.4.0"
debug "^4.3.1"
ethers "^5.0.31"
"@eth-optimism/dev@^1.1.1":
version "1.1.1"
......@@ -96,16 +106,17 @@
util.promisify "^1.0.0"
uuid "^8.3.0"
"@eth-optimism/plugins@^0.0.16":
version "0.0.16"
resolved "https://registry.yarnpkg.com/@eth-optimism/plugins/-/plugins-0.0.16.tgz#eae8a3e3be4d92aac866e31acad96291d4ae5c76"
integrity sha512-vXYljJzQu+kSUydG6WIgGxfnP54nbutKmzbAcy8j2GJgLLhtZSxCIA+UhBiO1mA4k/qFeUGJcf8kZfaddKygIQ==
"@eth-optimism/plugins@^0.0.17":
version "0.0.17"
resolved "https://registry.yarnpkg.com/@eth-optimism/plugins/-/plugins-0.0.17.tgz#e7b9fa9bd99d687d564975f206c01fde1124e735"
integrity sha512-jvF4Q9kAZ0T1I4COaUrgqxDY2GW9uRRgwc4IlY7JS1LGKK0fYeGf6alxhkXdZAmZBiwCEFpmTx0JTp8YxG7G4g==
dependencies:
"@eth-optimism/contracts" "0.0.2-alpha.14"
"@eth-optimism/contracts" "^0.1.9"
"@eth-optimism/ethereumjs-vm" "^4.2.0-alpha.2"
"@nomiclabs/hardhat-truffle5" "^2.0.0"
bn.js "^5.1.3"
ethereumjs-account "^3.0.0"
ethers "^5.0.31"
ethjs-common-v1 "npm:ethereumjs-common@1.5.0"
ethjs-util-v6 "npm:ethereumjs-util@6.2.1"
node-fetch "^2.6.1"
......@@ -122,21 +133,6 @@
fs-extra "^9.0.1"
hardhat "^2.0.3"
"@eth-optimism/solc@^0.6.12-alpha.1":
version "0.6.12-alpha.1"
resolved "https://registry.yarnpkg.com/@eth-optimism/solc/-/solc-0.6.12-alpha.1.tgz#041876f83b34c6afe2f19dfe9626568df6ed8590"
integrity sha512-Ky73mo+2iNJs/VTaT751nMeZ7hXns0TBAlffTOxIOsScjAZ/zi/KWsDUo3r89aV2JKXcYAU/bLidxF40MVJeUw==
dependencies:
command-exists "^1.2.8"
commander "3.0.2"
follow-redirects "^1.12.1"
fs-extra "^0.30.0"
js-sha3 "0.8.0"
memorystream "^0.3.1"
require-from-string "^2.0.0"
semver "^5.5.0"
tmp "0.0.33"
"@ethereum-waffle/chai@^3.0.0", "@ethereum-waffle/chai@^3.2.2":
version "3.2.2"
resolved "https://registry.yarnpkg.com/@ethereum-waffle/chai/-/chai-3.2.2.tgz#33a349688386c9a8fdc4da5baea329036b9fe75e"
......@@ -202,7 +198,7 @@
"@ethersproject/properties" ">=5.0.0-beta.131"
"@ethersproject/strings" ">=5.0.0-beta.130"
"@ethersproject/abi@5.0.12", "@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.0.1", "@ethersproject/abi@^5.0.10":
"@ethersproject/abi@5.0.12", "@ethersproject/abi@^5.0.1", "@ethersproject/abi@^5.0.10":
version "5.0.12"
resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.12.tgz#9aebe6aedc05ce45bb6c41b06d80bd195b7de77c"
integrity sha512-Ujr/3bwyYYjXLDQfebeiiTuvOw9XtUKM8av6YkoBeMXyGQM9GkjrQlwJMNwGTmqjATH/ZNbRgCh98GjOLiIB1Q==
......@@ -232,7 +228,7 @@
"@ethersproject/properties" "^5.0.3"
"@ethersproject/strings" "^5.0.4"
"@ethersproject/abstract-provider@5.0.9", "@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.0.8":
"@ethersproject/abstract-provider@5.0.9", "@ethersproject/abstract-provider@^5.0.8", "@ethersproject/abstract-provider@^5.0.9":
version "5.0.9"
resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.9.tgz#a55410b73e3994842884eb82b1f43e3a9f653eea"
integrity sha512-X9fMkqpeu9ayC3JyBkeeZhn35P4xQkpGX/l+FrxDtEW9tybf/UWXSMi8bGThpPtfJ6q6U2LDetXSpSwK4TfYQQ==
......@@ -245,7 +241,7 @@
"@ethersproject/transactions" "^5.0.9"
"@ethersproject/web" "^5.0.12"
"@ethersproject/abstract-signer@5.0.13", "@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.0.10":
"@ethersproject/abstract-signer@5.0.13", "@ethersproject/abstract-signer@^5.0.10":
version "5.0.13"
resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.13.tgz#59b4d0367d6327ec53bc269c6730c44a4a3b043c"
integrity sha512-VBIZEI5OK0TURoCYyw0t3w+TEO4kdwnI9wvt4kqUwyxSn3YCRpXYVl0Xoe7XBR/e5+nYOi2MyFGJ3tsFwONecQ==
......@@ -256,7 +252,7 @@
"@ethersproject/logger" "^5.0.8"
"@ethersproject/properties" "^5.0.7"
"@ethersproject/address@5.0.10", "@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.0.9":
"@ethersproject/address@5.0.10", "@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.0.9":
version "5.0.10"
resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.10.tgz#2bc69fdff4408e0570471cd19dee577ab06a10d0"
integrity sha512-70vqESmW5Srua1kMDIN6uVfdneZMaMyRYH4qPvkAXGkbicrCOsA9m01vIloA4wYiiF+HLEfL1ENKdn5jb9xiAw==
......@@ -267,7 +263,7 @@
"@ethersproject/logger" "^5.0.8"
"@ethersproject/rlp" "^5.0.7"
"@ethersproject/base64@5.0.8", "@ethersproject/base64@^5.0.0", "@ethersproject/base64@^5.0.7":
"@ethersproject/base64@5.0.8", "@ethersproject/base64@^5.0.7":
version "5.0.8"
resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.8.tgz#1bc4b4b8c59c1debf972c7164b96c0b8964a20a1"
integrity sha512-PNbpHOMgZpZ1skvQl119pV2YkCPXmZTxw+T92qX0z7zaMFPypXWTZBzim+hUceb//zx4DFjeGT4aSjZRTOYThg==
......@@ -282,7 +278,7 @@
"@ethersproject/bytes" "^5.0.9"
"@ethersproject/properties" "^5.0.7"
"@ethersproject/bignumber@5.0.14", "@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.13", "@ethersproject/bignumber@^5.0.7":
"@ethersproject/bignumber@5.0.14", "@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.13", "@ethersproject/bignumber@^5.0.7":
version "5.0.14"
resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.14.tgz#605bc61dcbd4a8c6df8b5a7a77c0210273f3de8a"
integrity sha512-Q4TjMq9Gg3Xzj0aeJWqJgI3tdEiPiET7Y5OtNtjTAODZ2kp4y9jMNg97zVcvPedFvGROdpGDyCI77JDFodUzOw==
......@@ -291,21 +287,21 @@
"@ethersproject/logger" "^5.0.8"
bn.js "^4.4.0"
"@ethersproject/bytes@5.0.10", "@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.9":
"@ethersproject/bytes@5.0.10", "@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.9":
version "5.0.10"
resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.10.tgz#aa49afe7491ba24ff76fa33d98677351263f9ba4"
integrity sha512-vpu0v1LZ1j1s9kERQIMnVU69MyHEzUff7nqK9XuCU4vx+AM8n9lU2gj7jtJIvGSt9HzatK/6I6bWusI5nyuaTA==
dependencies:
"@ethersproject/logger" "^5.0.8"
"@ethersproject/constants@5.0.9", "@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.0.8":
"@ethersproject/constants@5.0.9", "@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.0.8":
version "5.0.9"
resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.9.tgz#81ac44c3bf612de63eb1c490b314ea1b932cda9f"
integrity sha512-2uAKH89UcaJP/Sc+54u92BtJtZ4cPgcS1p0YbB1L3tlkavwNvth+kNCUplIB1Becqs7BOZr0B/3dMNjhJDy4Dg==
dependencies:
"@ethersproject/bignumber" "^5.0.13"
"@ethersproject/contracts@5.0.11", "@ethersproject/contracts@^5.0.0", "@ethersproject/contracts@^5.0.5":
"@ethersproject/contracts@5.0.11", "@ethersproject/contracts@^5.0.5":
version "5.0.11"
resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.0.11.tgz#e6cc57698a05be2329cb2ca3d7e87686f95e438a"
integrity sha512-FTUUd/6x00dYL2VufE2VowZ7h3mAyBfCQMGwI3tKDIWka+C0CunllFiKrlYCdiHFuVeMotR65dIcnzbLn72MCw==
......@@ -332,7 +328,7 @@
optionalDependencies:
"@ledgerhq/hw-transport-node-hid" "5.26.0"
"@ethersproject/hash@5.0.11", "@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.0.10", "@ethersproject/hash@^5.0.4":
"@ethersproject/hash@5.0.11", "@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.0.10", "@ethersproject/hash@^5.0.4":
version "5.0.11"
resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.11.tgz#da89517438bbbf8a39df56fff09f0a71669ae7a7"
integrity sha512-H3KJ9fk33XWJ2djAW03IL7fg3DsDMYjO1XijiUb1hJ85vYfhvxu0OmsU7d3tg2Uv1H1kFSo8ghr3WFQ8c+NL3g==
......@@ -346,7 +342,7 @@
"@ethersproject/properties" "^5.0.7"
"@ethersproject/strings" "^5.0.8"
"@ethersproject/hdnode@5.0.9", "@ethersproject/hdnode@^5.0.0", "@ethersproject/hdnode@^5.0.8":
"@ethersproject/hdnode@5.0.9", "@ethersproject/hdnode@^5.0.8":
version "5.0.9"
resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.9.tgz#ce65b430d3d3f0cd3c8f9dfaaf376b55881d9dba"
integrity sha512-S5UMmIC6XfFtqhUK4uTjD8GPNzSbE+sZ/0VMqFnA3zAJ+cEFZuEyhZDYnl2ItGJzjT4jsy+uEy1SIl3baYK1PQ==
......@@ -364,7 +360,7 @@
"@ethersproject/transactions" "^5.0.9"
"@ethersproject/wordlists" "^5.0.8"
"@ethersproject/json-wallets@5.0.11", "@ethersproject/json-wallets@^5.0.0", "@ethersproject/json-wallets@^5.0.10":
"@ethersproject/json-wallets@5.0.11", "@ethersproject/json-wallets@^5.0.10":
version "5.0.11"
resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.0.11.tgz#86fdc41b7762acb443d6a896f6c61231ab2aee5d"
integrity sha512-0GhWScWUlXXb4qJNp0wmkU95QS3YdN9UMOfMSEl76CRANWWrmyzxcBVSXSBu5iQ0/W8wO+xGlJJ3tpA6v3mbIw==
......@@ -383,7 +379,7 @@
aes-js "3.0.0"
scrypt-js "3.0.1"
"@ethersproject/keccak256@5.0.8", "@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.0.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.0.7":
"@ethersproject/keccak256@5.0.8", "@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.0.7":
version "5.0.8"
resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.8.tgz#13aaf69e1c8bd15fc59a2ebd055c0878f2a059c8"
integrity sha512-zoGbwXcWWs9MX4NOAZ7N0hhgIRl4Q/IO/u9c/RHRY4WqDy3Ywm0OLamEV53QDwhjwn3YiiVwU1Ve5j7yJ0a/KQ==
......@@ -391,19 +387,19 @@
"@ethersproject/bytes" "^5.0.9"
js-sha3 "0.5.7"
"@ethersproject/logger@5.0.9", "@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.0.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.0.8":
"@ethersproject/logger@5.0.9", "@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.0.8":
version "5.0.9"
resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.9.tgz#0e6a0b3ecc938713016954daf4ac7967467aa763"
integrity sha512-kV3Uamv3XOH99Xf3kpIG3ZkS7mBNYcLDM00JSDtNgNB4BihuyxpQzIZPRIDmRi+95Z/R1Bb0X2kUNHa/kJoVrw==
"@ethersproject/networks@5.0.8", "@ethersproject/networks@^5.0.0", "@ethersproject/networks@^5.0.7":
"@ethersproject/networks@5.0.8", "@ethersproject/networks@^5.0.7":
version "5.0.8"
resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.8.tgz#37e6f8c058f2d540373ea5939056cd3de069132e"
integrity sha512-PYpptlO2Tu5f/JEBI5hdlMds5k1DY1QwVbh3LKPb3un9dQA2bC51vd2/gRWAgSBpF3kkmZOj4FhD7ATLX4H+DA==
dependencies:
"@ethersproject/logger" "^5.0.8"
"@ethersproject/pbkdf2@5.0.8", "@ethersproject/pbkdf2@^5.0.0", "@ethersproject/pbkdf2@^5.0.7":
"@ethersproject/pbkdf2@5.0.8", "@ethersproject/pbkdf2@^5.0.7":
version "5.0.8"
resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.8.tgz#06a086b1ac04c75e6846afd6cf6170a49a634411"
integrity sha512-UlmAMGbIPaS2xXsI38FbePVTfJMuU9jnwcqVn3p88HxPF4kD897ha+l3TNsBqJqf32UbQL5GImnf1oJkSKq4vQ==
......@@ -411,14 +407,14 @@
"@ethersproject/bytes" "^5.0.9"
"@ethersproject/sha2" "^5.0.7"
"@ethersproject/properties@5.0.8", "@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.7":
"@ethersproject/properties@5.0.8", "@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.7":
version "5.0.8"
resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.8.tgz#e45d28d25402c73394873dbf058f856c966cae01"
integrity sha512-zEnLMze2Eu2VDPj/05QwCwMKHh506gpT9PP9KPVd4dDB+5d6AcROUYVLoIIQgBYK7X/Gw0UJmG3oVtnxOQafAw==
dependencies:
"@ethersproject/logger" "^5.0.8"
"@ethersproject/providers@5.0.23", "@ethersproject/providers@^5.0.0":
"@ethersproject/providers@5.0.23":
version "5.0.23"
resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.23.tgz#1e26512303d60bbd557242532fdb5fa3c5d5fb73"
integrity sha512-eJ94z2tgPaUgUmxwd3BVkIzkgkbNIkY6wRPVas04LVaBTycObQbgj794aaUu2bfk7+Bn2B/gjUZtJW1ybxh9/A==
......@@ -443,7 +439,7 @@
bech32 "1.1.4"
ws "7.2.3"
"@ethersproject/random@5.0.8", "@ethersproject/random@^5.0.0", "@ethersproject/random@^5.0.7":
"@ethersproject/random@5.0.8", "@ethersproject/random@^5.0.7":
version "5.0.8"
resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.8.tgz#8d3726be48e95467abce9b23c93adbb1de009dda"
integrity sha512-4rHtotmd9NjklW0eDvByicEkL+qareIyFSbG1ShC8tPJJSAC0g55oQWzw+3nfdRCgBHRuEE7S8EcPcTVPvZ9cA==
......@@ -451,7 +447,7 @@
"@ethersproject/bytes" "^5.0.9"
"@ethersproject/logger" "^5.0.8"
"@ethersproject/rlp@5.0.8", "@ethersproject/rlp@^5.0.0", "@ethersproject/rlp@^5.0.7":
"@ethersproject/rlp@5.0.8", "@ethersproject/rlp@^5.0.7":
version "5.0.8"
resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.8.tgz#ff54e206d0ae28640dd054f2bcc7070f06f9dfbe"
integrity sha512-E4wdFs8xRNJfzNHmnkC8w5fPeT4Wd1U2cust3YeT16/46iSkLT8nn8ilidC6KhR7hfuSZE4UqSPzyk76p7cdZg==
......@@ -459,7 +455,7 @@
"@ethersproject/bytes" "^5.0.9"
"@ethersproject/logger" "^5.0.8"
"@ethersproject/sha2@5.0.8", "@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.0.7":
"@ethersproject/sha2@5.0.8", "@ethersproject/sha2@^5.0.7":
version "5.0.8"
resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.8.tgz#9903c67e562739d8b312820b0a265b9c9bf35fc3"
integrity sha512-ILP1ZgyvDj4rrdE+AXrTv9V88m7x87uga2VZ/FeULKPumOEw/4bGnJz/oQ8zDnDvVYRCJ+48VaQBS2CFLbk1ww==
......@@ -468,7 +464,7 @@
"@ethersproject/logger" "^5.0.8"
hash.js "1.1.3"
"@ethersproject/signing-key@5.0.10", "@ethersproject/signing-key@^5.0.0", "@ethersproject/signing-key@^5.0.8":
"@ethersproject/signing-key@5.0.10", "@ethersproject/signing-key@^5.0.8":
version "5.0.10"
resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.10.tgz#05e26e04f0aa5360dc78674d7331bacea8fea5c1"
integrity sha512-w5it3GbFOvN6e0mTd5gDNj+bwSe6L9jqqYjU+uaYS8/hAEp4qYLk5p8ZjbJJkNn7u1p0iwocp8X9oH/OdK8apA==
......@@ -478,7 +474,7 @@
"@ethersproject/properties" "^5.0.7"
elliptic "6.5.4"
"@ethersproject/solidity@5.0.9", "@ethersproject/solidity@^5.0.0":
"@ethersproject/solidity@5.0.9":
version "5.0.9"
resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.0.9.tgz#49100fbe9f364ac56f7ff7c726f4f3d151901134"
integrity sha512-LIxSAYEQgLRXE3mRPCq39ou61kqP8fDrGqEeNcaNJS3aLbmAOS8MZp56uK++WsdI9hj8sNsFh78hrAa6zR9Jag==
......@@ -489,7 +485,7 @@
"@ethersproject/sha2" "^5.0.7"
"@ethersproject/strings" "^5.0.8"
"@ethersproject/strings@5.0.9", "@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.0.8":
"@ethersproject/strings@5.0.9", "@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.0.8":
version "5.0.9"
resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.9.tgz#8e2eb2918b140231e1d1b883d77e43213a8ac280"
integrity sha512-ogxBpcUpdO524CYs841MoJHgHxEPUy0bJFDS4Ezg8My+WYVMfVAOlZSLss0Rurbeeam8CpUVDzM4zUn09SU66Q==
......@@ -498,7 +494,7 @@
"@ethersproject/constants" "^5.0.8"
"@ethersproject/logger" "^5.0.8"
"@ethersproject/transactions@5.0.10", "@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.0.9":
"@ethersproject/transactions@5.0.10", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.0.9":
version "5.0.10"
resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.10.tgz#d50cafd80d27206336f80114bc0f18bc18687331"
integrity sha512-Tqpp+vKYQyQdJQQk4M73tDzO7ODf2D42/sJOcKlDAAbdSni13v6a+31hUdo02qYXhVYwIs+ZjHnO4zKv5BNk8w==
......@@ -513,7 +509,7 @@
"@ethersproject/rlp" "^5.0.7"
"@ethersproject/signing-key" "^5.0.8"
"@ethersproject/units@5.0.10", "@ethersproject/units@^5.0.0":
"@ethersproject/units@5.0.10":
version "5.0.10"
resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.0.10.tgz#9cca3b65cd0c92fab1bd33f2abd233546dd61987"
integrity sha512-eaiHi9ham5lbC7qpqxpae7OY/nHJUnRUnFFuEwi2VB5Nwe3Np468OAV+e+HR+jAK4fHXQE6PFBTxWGtnZuO37g==
......@@ -522,7 +518,7 @@
"@ethersproject/constants" "^5.0.8"
"@ethersproject/logger" "^5.0.8"
"@ethersproject/wallet@5.0.11", "@ethersproject/wallet@^5.0.0":
"@ethersproject/wallet@5.0.11":
version "5.0.11"
resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.0.11.tgz#9891936089d1b91e22ed59f850bc344b1544bf26"
integrity sha512-2Fg/DOvUltR7aZTOyWWlQhru+SKvq2UE3uEhXSyCFgMqDQNuc2nHXh1SHJtN65jsEbjVIppOe1Q7EQMvhmeeRw==
......@@ -543,7 +539,7 @@
"@ethersproject/transactions" "^5.0.9"
"@ethersproject/wordlists" "^5.0.8"
"@ethersproject/web@5.0.13", "@ethersproject/web@^5.0.0", "@ethersproject/web@^5.0.12":
"@ethersproject/web@5.0.13", "@ethersproject/web@^5.0.12":
version "5.0.13"
resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.13.tgz#5a92ac6d835d2ebce95b6b645a86668736e2f532"
integrity sha512-G3x/Ns7pQm21ALnWLbdBI5XkW/jrsbXXffI9hKNPHqf59mTxHYtlNiSwxdoTSwCef3Hn7uvGZpaSgTyxs7IufQ==
......@@ -554,7 +550,7 @@
"@ethersproject/properties" "^5.0.7"
"@ethersproject/strings" "^5.0.8"
"@ethersproject/wordlists@5.0.9", "@ethersproject/wordlists@^5.0.0", "@ethersproject/wordlists@^5.0.8":
"@ethersproject/wordlists@5.0.9", "@ethersproject/wordlists@^5.0.8":
version "5.0.9"
resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.9.tgz#f16cc0b317637c3ae9c689ebd7bc2cbbffadd013"
integrity sha512-Sn6MTjZkfbriod6GG6+p43W09HOXT4gwcDVNj0YoPYlo4Zq2Fk6b1CU9KUX3c6aI17PrgYb4qwZm5BMuORyqyQ==
......@@ -2632,6 +2628,11 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
colors@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
......@@ -3800,41 +3801,6 @@ ethereumjs-wallet@0.6.5:
utf8 "^3.0.0"
uuid "^3.3.2"
ethers@5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.0.tgz#76558a3020766f310a49f4e1a4c6c1e331761abd"
integrity sha512-uOSACd2E8dg8XuiOewpL42uFH7SvrkA5k0oGkHoqSJl2lflrMPV+7ciWzyuPBjyHnOFvAPPJUpsXrwpFKaLFww==
dependencies:
"@ethersproject/abi" "^5.0.0"
"@ethersproject/abstract-provider" "^5.0.0"
"@ethersproject/abstract-signer" "^5.0.0"
"@ethersproject/address" "^5.0.0"
"@ethersproject/base64" "^5.0.0"
"@ethersproject/bignumber" "^5.0.0"
"@ethersproject/bytes" "^5.0.0"
"@ethersproject/constants" "^5.0.0"
"@ethersproject/contracts" "^5.0.0"
"@ethersproject/hash" "^5.0.0"
"@ethersproject/hdnode" "^5.0.0"
"@ethersproject/json-wallets" "^5.0.0"
"@ethersproject/keccak256" "^5.0.0"
"@ethersproject/logger" "^5.0.0"
"@ethersproject/networks" "^5.0.0"
"@ethersproject/pbkdf2" "^5.0.0"
"@ethersproject/properties" "^5.0.0"
"@ethersproject/providers" "^5.0.0"
"@ethersproject/random" "^5.0.0"
"@ethersproject/rlp" "^5.0.0"
"@ethersproject/sha2" "^5.0.0"
"@ethersproject/signing-key" "^5.0.0"
"@ethersproject/solidity" "^5.0.0"
"@ethersproject/strings" "^5.0.0"
"@ethersproject/transactions" "^5.0.0"
"@ethersproject/units" "^5.0.0"
"@ethersproject/wallet" "^5.0.0"
"@ethersproject/web" "^5.0.0"
"@ethersproject/wordlists" "^5.0.0"
ethers@^4.0.0-beta.1, ethers@^4.0.32:
version "4.0.48"
resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.48.tgz#330c65b8133e112b0613156e57e92d9009d8fbbe"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment