From 186234a31290737d45b77ee3723607982501de97 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Tue, 18 Apr 2023 12:19:48 +0100 Subject: [PATCH 01/20] zkSync era deploy script --- .gitmodules | 4 + index.ts | 11 +- init_submodule.sh | 2 + package.json | 14 +- src/deploy.ts | 4 +- src/migrations.ts | 4 +- src/steps/add-1bp-fee-tier.ts | 4 +- src/steps/deploy-multicall2.ts | 6 +- .../deploy-nft-descriptor-library-v1_3_0.ts | 2 +- .../deploy-nft-position-descriptor-v1_3_0.ts | 13 +- .../deploy-nonfungible-position-manager.ts | 6 +- src/steps/deploy-proxy-admin.ts | 6 +- src/steps/deploy-quoter-v2.ts | 6 +- src/steps/deploy-tick-lens.ts | 6 +- .../deploy-transparent-proxy-descriptor.ts | 6 +- src/steps/deploy-v3-core-factory.ts | 6 +- src/steps/deploy-v3-migrator.ts | 6 +- src/steps/deploy-v3-staker.ts | 6 +- src/steps/deploy-v3-swap-router-02.ts | 6 +- src/steps/meta/createDeployContractStep.ts | 23 +- src/steps/meta/createDeployLibraryStep.ts | 3 +- src/steps/transfer-proxy-admin.ts | 4 +- src/steps/transfer-v3-core-factory-owner.ts | 4 +- test/deploy-v3-core-factory.spec.ts | 174 +-- v3-periphery-1_3_0 | 1 + yarn.lock | 1108 ++++++++++------- 26 files changed, 864 insertions(+), 571 deletions(-) create mode 100644 .gitmodules create mode 100755 init_submodule.sh create mode 160000 v3-periphery-1_3_0 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a32dae2 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "v3-periphery-1_3_0"] + path = v3-periphery-1_3_0 + url = https://github.com/AntonD3/v3-periphery.git + branch = v1.3.0-zksync-era diff --git a/index.ts b/index.ts index dd30860..6f04a7e 100644 --- a/index.ts +++ b/index.ts @@ -1,6 +1,6 @@ import { program } from 'commander' -import { Wallet } from '@ethersproject/wallet' -import { JsonRpcProvider, TransactionReceipt } from '@ethersproject/providers' +import { Wallet, Provider } from 'zksync-web3' +import { TransactionResponse } from '@ethersproject/providers' import { AddressZero } from '@ethersproject/constants' import { getAddress } from '@ethersproject/address' import fs from 'fs' @@ -21,7 +21,6 @@ program .option('-s, --state ', 'Path to the JSON file containing the migrations state (optional)', './state.json') .option('-v2, --v2-core-factory-address
', 'The V2 core factory address used in the swap router (optional)') .option('-g, --gas-price ', 'The gas price to pay in GWEI for each transaction (optional)') - .option('-c, --confirmations ', 'How many confirmations to wait for after each transaction (optional)', '2') program.name('npx @uniswap/deploy-v3').version(version).parse(process.argv) @@ -90,7 +89,7 @@ try { process.exit(1) } -const wallet = new Wallet(program.privateKey, new JsonRpcProvider({ url: url.href })) +const wallet = new Wallet(program.privateKey, new Provider({ url: url.href })) let state: MigrationState if (fs.existsSync(program.state)) { @@ -131,9 +130,9 @@ async function run() { // wait 15 minutes for any transactions sent in the step await Promise.all( result.map( - (stepResult): Promise => { + async (stepResult): Promise => { if (stepResult.hash) { - return wallet.provider.waitForTransaction(stepResult.hash, confirmations, /* 15 minutes */ 1000 * 60 * 15) + return await wallet._providerL2().getTransaction(stepResult.hash); } else { return Promise.resolve(true) } diff --git a/init_submodule.sh b/init_submodule.sh new file mode 100755 index 0000000..c3285d5 --- /dev/null +++ b/init_submodule.sh @@ -0,0 +1,2 @@ +yarn --cwd v3-periphery-1_3_0 install --frozen-lockfile +yarn --cwd v3-periphery-1_3_0 hardhat compile --network zkSyncTestnet \ No newline at end of file diff --git a/package.json b/package.json index bf38e28..13fda8a 100644 --- a/package.json +++ b/package.json @@ -43,24 +43,26 @@ "@ethersproject/contracts": "^5.5.0", "@ethersproject/providers": "^5.5.1", "@ethersproject/wallet": "^5.5.0", - "@openzeppelin/contracts": "3.4.1-solc-0.7-2", + "@matterlabs/hardhat-zksync-deploy": "^0.6.3", "@types/chai": "^4.2.12", "@types/mocha": "^8.0.3", "@types/node": "^14.6.3", "@uniswap/sdk-core": "^1.0.8", - "@uniswap/swap-router-contracts": "1.1.0", - "@uniswap/v3-core": "1.0.0", - "@uniswap/v3-periphery": "1.1.1", - "@uniswap/v3-staker": "1.0.2", "@vercel/ncc": "^0.33.1", "chai": "^4.2.0", "commander": "^6.1.0", + "ethers": "5", "ganache-cli": "^6.10.1", "immer": "^7.0.8", "mocha": "^8.1.3", + "openzeppelin-contracts": "https://github.com/AntonD3/openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era", "prettier": "^2.1.1", + "swap-router-contracts": "https://github.com/AntonD3/swap-router-contracts.git#v1.1.0-zksync-era", "ts-node": "^9.0.0", "typescript": "^4.0.2", - "v3-periphery-1_3_0": "npm:@uniswap/v3-periphery@1.3.0" + "v3-core": "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era", + "v3-periphery": "https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era", + "v3-staker": "https://github.com/AntonD3/v3-staker.git#v1.0.2-zksync-era", + "zksync-web3": "^0.14.3" } } diff --git a/src/deploy.ts b/src/deploy.ts index ab8db77..90d243a 100644 --- a/src/deploy.ts +++ b/src/deploy.ts @@ -1,4 +1,4 @@ -import { Signer } from '@ethersproject/abstract-signer' +import { Wallet } from 'zksync-web3' import { BigNumber } from '@ethersproject/bignumber' import { migrate } from './migrate' import { MigrationState, MigrationStep, StepOutput } from './migrations' @@ -47,7 +47,7 @@ export default function deploy({ v2CoreFactoryAddress, ownerAddress, }: { - signer: Signer + signer: Wallet gasPrice: number | undefined weth9Address: string nativeCurrencyLabelBytes: string diff --git a/src/migrations.ts b/src/migrations.ts index 13b6e3c..31fbf1d 100644 --- a/src/migrations.ts +++ b/src/migrations.ts @@ -1,4 +1,4 @@ -import { Signer } from '@ethersproject/abstract-signer' +import { Wallet } from 'zksync-web3' import { BigNumber } from '@ethersproject/bignumber' import { GenericMigrationStep } from './migrate' @@ -20,7 +20,7 @@ export interface MigrationState { export type StepOutput = { message: string; hash?: string; address?: string } export type MigrationConfig = { - signer: Signer + signer: Wallet gasPrice: BigNumber | undefined weth9Address: string nativeCurrencyLabelBytes: string diff --git a/src/steps/add-1bp-fee-tier.ts b/src/steps/add-1bp-fee-tier.ts index df9ac68..9ce54c4 100644 --- a/src/steps/add-1bp-fee-tier.ts +++ b/src/steps/add-1bp-fee-tier.ts @@ -1,5 +1,5 @@ -import UniswapV3Factory from '@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' -import { Contract } from '@ethersproject/contracts' +import UniswapV3Factory from 'v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' +import { Contract } from 'zksync-web3' import { MigrationStep } from '../migrations' const ONE_BP_FEE = 100 diff --git a/src/steps/deploy-multicall2.ts b/src/steps/deploy-multicall2.ts index b13db5c..9ae2c77 100644 --- a/src/steps/deploy-multicall2.ts +++ b/src/steps/deploy-multicall2.ts @@ -1,7 +1,9 @@ -import UniswapInterfaceMulticall from '@uniswap/v3-periphery/artifacts/contracts/lens/UniswapInterfaceMulticall.sol/UniswapInterfaceMulticall.json' +import UniswapInterfaceMulticall from 'v3-periphery/artifacts-zk/contracts/lens/UniswapInterfaceMulticall.sol/UniswapInterfaceMulticall.json' import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_MULTICALL2 = createDeployContractStep({ key: 'multicall2Address', - artifact: UniswapInterfaceMulticall, + computeArtifact() { + return UniswapInterfaceMulticall + } }) diff --git a/src/steps/deploy-nft-descriptor-library-v1_3_0.ts b/src/steps/deploy-nft-descriptor-library-v1_3_0.ts index a07cf5d..253ec64 100644 --- a/src/steps/deploy-nft-descriptor-library-v1_3_0.ts +++ b/src/steps/deploy-nft-descriptor-library-v1_3_0.ts @@ -1,4 +1,4 @@ -import NFTDescriptor from 'v3-periphery-1_3_0/artifacts/contracts/libraries/NFTDescriptor.sol/NFTDescriptor.json' +import NFTDescriptor from '../../v3-periphery-1_3_0/artifacts-zk/contracts/libraries/NFTDescriptor.sol/NFTDescriptor.json' import createDeployLibraryStep from './meta/createDeployLibraryStep' export const DEPLOY_NFT_DESCRIPTOR_LIBRARY_V1_3_0 = createDeployLibraryStep({ diff --git a/src/steps/deploy-nft-position-descriptor-v1_3_0.ts b/src/steps/deploy-nft-position-descriptor-v1_3_0.ts index 1dc3d00..efd9c91 100644 --- a/src/steps/deploy-nft-position-descriptor-v1_3_0.ts +++ b/src/steps/deploy-nft-position-descriptor-v1_3_0.ts @@ -1,16 +1,17 @@ -import NonfungibleTokenPositionDescriptor from 'v3-periphery-1_3_0/artifacts/contracts/NonfungibleTokenPositionDescriptor.sol/NonfungibleTokenPositionDescriptor.json' import createDeployContractStep from './meta/createDeployContractStep' +import { execSync } from 'child_process' +import fs from 'fs'; export const DEPLOY_NFT_POSITION_DESCRIPTOR_V1_3_0 = createDeployContractStep({ key: 'nonfungibleTokenPositionDescriptorAddressV1_3_0', - artifact: NonfungibleTokenPositionDescriptor, - computeLibraries(state) { + computeArtifact(state) { if (state.nftDescriptorLibraryAddressV1_3_0 === undefined) { throw new Error('NFTDescriptor library missing') } - return { - NFTDescriptor: state.nftDescriptorLibraryAddressV1_3_0, - } + process.env.NFT_DESCRIPTOR_ADDRESS = state.nftDescriptorLibraryAddressV1_3_0 + execSync('yarn --cwd v3-periphery-1_3_0 hardhat compile --network zkSyncTestnet') + const file = fs.readFileSync('v3-periphery-1_3_0/artifacts-zk/contracts/NonfungibleTokenPositionDescriptor.sol/NonfungibleTokenPositionDescriptor.json') + return JSON.parse(file.toString()) }, computeArguments(_, { weth9Address, nativeCurrencyLabelBytes }) { return [weth9Address, nativeCurrencyLabelBytes] diff --git a/src/steps/deploy-nonfungible-position-manager.ts b/src/steps/deploy-nonfungible-position-manager.ts index de724dd..cf43c30 100644 --- a/src/steps/deploy-nonfungible-position-manager.ts +++ b/src/steps/deploy-nonfungible-position-manager.ts @@ -1,9 +1,11 @@ -import NonfungiblePositionManager from '@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json' +import NonfungiblePositionManager from 'v3-periphery/artifacts-zk/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json' import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_NONFUNGIBLE_POSITION_MANAGER = createDeployContractStep({ key: 'nonfungibleTokenPositionManagerAddress', - artifact: NonfungiblePositionManager, + computeArtifact() { + return NonfungiblePositionManager + }, computeArguments(state, config) { if (state.v3CoreFactoryAddress === undefined) { throw new Error('Missing V3 Core Factory') diff --git a/src/steps/deploy-proxy-admin.ts b/src/steps/deploy-proxy-admin.ts index fcfd3a2..319a355 100644 --- a/src/steps/deploy-proxy-admin.ts +++ b/src/steps/deploy-proxy-admin.ts @@ -1,7 +1,9 @@ -import ProxyAdmin from '@openzeppelin/contracts/build/contracts/ProxyAdmin.json' +import ProxyAdmin from 'openzeppelin-contracts/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_PROXY_ADMIN = createDeployContractStep({ key: 'proxyAdminAddress', - artifact: ProxyAdmin, + computeArtifact() { + return ProxyAdmin + }, }) diff --git a/src/steps/deploy-quoter-v2.ts b/src/steps/deploy-quoter-v2.ts index 61ada24..90b5201 100644 --- a/src/steps/deploy-quoter-v2.ts +++ b/src/steps/deploy-quoter-v2.ts @@ -1,9 +1,11 @@ -import QuoterV2 from '@uniswap/swap-router-contracts/artifacts/contracts/lens/QuoterV2.sol/QuoterV2.json' +import QuoterV2 from 'swap-router-contracts/artifacts-zk/contracts/lens/QuoterV2.sol/QuoterV2.json' import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_QUOTER_V2 = createDeployContractStep({ key: 'quoterV2Address', - artifact: QuoterV2, + computeArtifact() { + return QuoterV2 + }, computeArguments(state, config) { if (state.v3CoreFactoryAddress === undefined) { throw new Error('Missing V3 Core Factory') diff --git a/src/steps/deploy-tick-lens.ts b/src/steps/deploy-tick-lens.ts index e5be004..a4db88d 100644 --- a/src/steps/deploy-tick-lens.ts +++ b/src/steps/deploy-tick-lens.ts @@ -1,7 +1,9 @@ -import TickLens from '@uniswap/v3-periphery/artifacts/contracts/lens/TickLens.sol/TickLens.json' +import TickLens from 'v3-periphery/artifacts-zk/contracts/lens/TickLens.sol/TickLens.json' import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_TICK_LENS = createDeployContractStep({ key: 'tickLensAddress', - artifact: TickLens, + computeArtifact() { + return TickLens + }, }) diff --git a/src/steps/deploy-transparent-proxy-descriptor.ts b/src/steps/deploy-transparent-proxy-descriptor.ts index 695a90d..82dd1c8 100644 --- a/src/steps/deploy-transparent-proxy-descriptor.ts +++ b/src/steps/deploy-transparent-proxy-descriptor.ts @@ -1,9 +1,11 @@ -import TransparentUpgradeableProxy from '@openzeppelin/contracts/build/contracts/TransparentUpgradeableProxy.json' +import TransparentUpgradeableProxy from 'openzeppelin-contracts/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json' import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_TRANSPARENT_PROXY_DESCRIPTOR = createDeployContractStep({ key: 'descriptorProxyAddress', - artifact: TransparentUpgradeableProxy, + computeArtifact() { + return TransparentUpgradeableProxy + }, computeArguments(state) { if (state.nonfungibleTokenPositionDescriptorAddressV1_3_0 === undefined) { throw new Error('Missing NonfungibleTokenPositionDescriptor') diff --git a/src/steps/deploy-v3-core-factory.ts b/src/steps/deploy-v3-core-factory.ts index 8c6a6aa..6fb7ace 100644 --- a/src/steps/deploy-v3-core-factory.ts +++ b/src/steps/deploy-v3-core-factory.ts @@ -1,7 +1,9 @@ -import UniswapV3Factory from '@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' +import UniswapV3Factory from 'v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_V3_CORE_FACTORY = createDeployContractStep({ key: 'v3CoreFactoryAddress', - artifact: UniswapV3Factory, + computeArtifact() { + return UniswapV3Factory + }, }) diff --git a/src/steps/deploy-v3-migrator.ts b/src/steps/deploy-v3-migrator.ts index 43e4027..4675a3a 100644 --- a/src/steps/deploy-v3-migrator.ts +++ b/src/steps/deploy-v3-migrator.ts @@ -1,9 +1,11 @@ -import V3Migrator from '@uniswap/v3-periphery/artifacts/contracts/V3Migrator.sol/V3Migrator.json' +import V3Migrator from 'v3-periphery/artifacts-zk/contracts/V3Migrator.sol/V3Migrator.json' import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_V3_MIGRATOR = createDeployContractStep({ key: 'v3MigratorAddress', - artifact: V3Migrator, + computeArtifact() { + return V3Migrator + }, computeArguments(state, config) { if (state.v3CoreFactoryAddress === undefined) { throw new Error('Missing V3 Core Factory') diff --git a/src/steps/deploy-v3-staker.ts b/src/steps/deploy-v3-staker.ts index 4cfad01..0842876 100644 --- a/src/steps/deploy-v3-staker.ts +++ b/src/steps/deploy-v3-staker.ts @@ -1,4 +1,4 @@ -import UniswapV3Staker from '@uniswap/v3-staker/artifacts/contracts/UniswapV3Staker.sol/UniswapV3Staker.json' +import UniswapV3Staker from 'v3-staker/artifacts-zk/contracts/UniswapV3Staker.sol/UniswapV3Staker.json' import createDeployContractStep from './meta/createDeployContractStep' const ONE_MINUTE_SECONDS = 60 @@ -14,7 +14,9 @@ const MAX_INCENTIVE_DURATION = ONE_YEAR_SECONDS * 2 export const DEPLOY_V3_STAKER = createDeployContractStep({ key: 'v3StakerAddress', - artifact: UniswapV3Staker, + computeArtifact() { + return UniswapV3Staker + }, computeArguments(state) { if (state.v3CoreFactoryAddress === undefined) { throw new Error('Missing V3 Core Factory') diff --git a/src/steps/deploy-v3-swap-router-02.ts b/src/steps/deploy-v3-swap-router-02.ts index 31b61be..cb7a301 100644 --- a/src/steps/deploy-v3-swap-router-02.ts +++ b/src/steps/deploy-v3-swap-router-02.ts @@ -1,9 +1,11 @@ -import SwapRouter02 from '@uniswap/swap-router-contracts/artifacts/contracts/SwapRouter02.sol/SwapRouter02.json' +import SwapRouter02 from 'swap-router-contracts/artifacts-zk/contracts/SwapRouter02.sol/SwapRouter02.json' import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_V3_SWAP_ROUTER_02 = createDeployContractStep({ key: 'swapRouter02', - artifact: SwapRouter02, + computeArtifact() { + return SwapRouter02 + }, computeArguments(state, config) { if (state.v3CoreFactoryAddress === undefined) { throw new Error('Missing V3 Core Factory') diff --git a/src/steps/meta/createDeployContractStep.ts b/src/steps/meta/createDeployContractStep.ts index 918cf97..5764408 100644 --- a/src/steps/meta/createDeployContractStep.ts +++ b/src/steps/meta/createDeployContractStep.ts @@ -1,40 +1,35 @@ -import { Contract, ContractInterface, ContractFactory } from '@ethersproject/contracts' +import { ContractInterface } from '@ethersproject/contracts' +import { Contract, ContractFactory } from 'zksync-web3' import { MigrationConfig, MigrationState, MigrationStep } from '../../migrations' -import linkLibraries from '../../util/linkLibraries' type ConstructorArgs = (string | number | string[] | number[])[] export default function createDeployContractStep({ key, - artifact: { contractName, abi, bytecode, linkReferences }, - computeLibraries, + computeArtifact, computeArguments, }: { key: keyof MigrationState - artifact: { + computeArtifact: (state: Readonly, config: MigrationConfig) => { contractName: string abi: ContractInterface bytecode: string linkReferences?: { [fileName: string]: { [contractName: string]: { length: number; start: number }[] } } } - computeLibraries?: (state: Readonly, config: MigrationConfig) => { [libraryName: string]: string } computeArguments?: (state: Readonly, config: MigrationConfig) => ConstructorArgs }): MigrationStep { - if (linkReferences && Object.keys(linkReferences).length > 0 && !computeLibraries) { - throw new Error('Missing function to compute library addresses') - } else if (computeLibraries && (!linkReferences || Object.keys(linkReferences).length === 0)) { - throw new Error('Compute libraries passed but no link references') - } return async (state, config) => { + const { contractName, abi, bytecode, linkReferences } = computeArtifact(state, config) if (state[key] === undefined) { const constructorArgs: ConstructorArgs = computeArguments ? computeArguments(state, config) : [] + if (linkReferences && Object.keys(linkReferences).length > 0) { + throw new Error('Missing function to compute library addresses') + } const factory = new ContractFactory( abi, - linkReferences && computeLibraries - ? linkLibraries({ bytecode, linkReferences }, computeLibraries(state, config)) - : bytecode, + bytecode, config.signer ) diff --git a/src/steps/meta/createDeployLibraryStep.ts b/src/steps/meta/createDeployLibraryStep.ts index a798875..8430dfe 100644 --- a/src/steps/meta/createDeployLibraryStep.ts +++ b/src/steps/meta/createDeployLibraryStep.ts @@ -1,4 +1,5 @@ -import { ContractInterface, ContractFactory } from '@ethersproject/contracts' +import { ContractInterface } from '@ethersproject/contracts' +import { ContractFactory } from 'zksync-web3' import { MigrationState, MigrationStep } from '../../migrations' export default function createDeployLibraryStep({ diff --git a/src/steps/transfer-proxy-admin.ts b/src/steps/transfer-proxy-admin.ts index a084ef6..2e7ecf2 100644 --- a/src/steps/transfer-proxy-admin.ts +++ b/src/steps/transfer-proxy-admin.ts @@ -1,5 +1,5 @@ -import ProxyAdmin from '@openzeppelin/contracts/build/contracts/ProxyAdmin.json' -import { Contract } from '@ethersproject/contracts' +import ProxyAdmin from 'openzeppelin-contracts/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' +import { Contract } from 'zksync-web3' import { MigrationStep } from '../migrations' export const TRANSFER_PROXY_ADMIN: MigrationStep = async (state, { signer, gasPrice, ownerAddress }) => { diff --git a/src/steps/transfer-v3-core-factory-owner.ts b/src/steps/transfer-v3-core-factory-owner.ts index 23c19ed..3e6eb39 100644 --- a/src/steps/transfer-v3-core-factory-owner.ts +++ b/src/steps/transfer-v3-core-factory-owner.ts @@ -1,5 +1,5 @@ -import UniswapV3Factory from '@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' -import { Contract } from '@ethersproject/contracts' +import UniswapV3Factory from 'v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' +import { Contract } from 'zksync-web3' import { MigrationStep } from '../migrations' export const TRANSFER_V3_CORE_FACTORY_OWNER: MigrationStep = async (state, { signer, gasPrice, ownerAddress }) => { diff --git a/test/deploy-v3-core-factory.spec.ts b/test/deploy-v3-core-factory.spec.ts index 9894132..a94a4c1 100644 --- a/test/deploy-v3-core-factory.spec.ts +++ b/test/deploy-v3-core-factory.spec.ts @@ -1,87 +1,87 @@ -import { BigNumber } from '@ethersproject/bignumber' -import { Contract } from '@ethersproject/contracts' -import { JsonRpcSigner, Web3Provider } from '@ethersproject/providers' - -import UniswapV3Factory from '@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' -import { expect } from 'chai' -import { DEPLOY_V3_CORE_FACTORY } from '../src/steps/deploy-v3-core-factory' -import { asciiStringToBytes32 } from '../src/util/asciiStringToBytes32' - -const DUMMY_ADDRESS = '0x9999999999999999999999999999999999999999' - -const ganache = require('ganache-cli') - -describe('deploy-v3-core-factory', () => { - let provider: Web3Provider - let signer: JsonRpcSigner - - before('create provider', () => { - provider = new Web3Provider(ganache.provider()) - signer = provider.getSigner() - }) - - function singleElem(v: T[]): T { - return v[0] - } - - describe('DEPLOY_V3_CORE_FACTORY', () => { - it('deploys the v3 core factory contract', async () => { - const result = singleElem( - await DEPLOY_V3_CORE_FACTORY( - {}, - { - signer, - gasPrice: BigNumber.from(1), - ownerAddress: DUMMY_ADDRESS, - v2CoreFactoryAddress: DUMMY_ADDRESS, - weth9Address: DUMMY_ADDRESS, - nativeCurrencyLabelBytes: asciiStringToBytes32('ETH'), - } - ) - ) - expect(result.message).to.eq('Contract UniswapV3Factory deployed') - }) - - it('does not deploy if already deployed', async () => { - const result = singleElem( - await DEPLOY_V3_CORE_FACTORY( - { v3CoreFactoryAddress: DUMMY_ADDRESS }, - { - signer, - gasPrice: BigNumber.from(1), - ownerAddress: DUMMY_ADDRESS, - v2CoreFactoryAddress: DUMMY_ADDRESS, - weth9Address: DUMMY_ADDRESS, - nativeCurrencyLabelBytes: asciiStringToBytes32('ETH'), - } - ) - ) - expect(result.message).to.eq('Contract UniswapV3Factory was already deployed') - expect(result.address).to.eq(DUMMY_ADDRESS) - }) - - describe('test contract functions', () => { - let v3CoreFactory: Contract - beforeEach(async () => { - const result = singleElem( - await DEPLOY_V3_CORE_FACTORY( - {}, - { - signer, - gasPrice: BigNumber.from(1), - ownerAddress: DUMMY_ADDRESS, - v2CoreFactoryAddress: DUMMY_ADDRESS, - weth9Address: DUMMY_ADDRESS, - nativeCurrencyLabelBytes: asciiStringToBytes32('ETH'), - } - ) - ) - v3CoreFactory = new Contract(result.address!, UniswapV3Factory.abi, provider) - }) - - it('points to signer address', async () => { - expect(await v3CoreFactory.owner()).to.eq(await signer.getAddress()) - }) - }) - }) -}) +// import { BigNumber } from '@ethersproject/bignumber' +// import { Contract } from '@ethersproject/contracts' +// import { JsonRpcSigner, Web3Provider } from '@ethersproject/providers' +// +// import UniswapV3Factory from '@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' +// import { expect } from 'chai' +// import { DEPLOY_V3_CORE_FACTORY } from '../src/steps/deploy-v3-core-factory' +// import { asciiStringToBytes32 } from '../src/util/asciiStringToBytes32' +// +// const DUMMY_ADDRESS = '0x9999999999999999999999999999999999999999' +// +// const ganache = require('ganache-cli') +// +// describe('deploy-v3-core-factory', () => { +// let provider: Web3Provider +// let signer: JsonRpcSigner +// +// before('create provider', () => { +// provider = new Web3Provider(ganache.provider()) +// signer = provider.getSigner() +// }) +// +// function singleElem(v: T[]): T { +// return v[0] +// } +// +// describe('DEPLOY_V3_CORE_FACTORY', () => { +// it('deploys the v3 core factory contract', async () => { +// const result = singleElem( +// await DEPLOY_V3_CORE_FACTORY( +// {}, +// { +// signer, +// gasPrice: BigNumber.from(1), +// ownerAddress: DUMMY_ADDRESS, +// v2CoreFactoryAddress: DUMMY_ADDRESS, +// weth9Address: DUMMY_ADDRESS, +// nativeCurrencyLabelBytes: asciiStringToBytes32('ETH'), +// } +// ) +// ) +// expect(result.message).to.eq('Contract UniswapV3Factory deployed') +// }) +// +// it('does not deploy if already deployed', async () => { +// const result = singleElem( +// await DEPLOY_V3_CORE_FACTORY( +// { v3CoreFactoryAddress: DUMMY_ADDRESS }, +// { +// signer, +// gasPrice: BigNumber.from(1), +// ownerAddress: DUMMY_ADDRESS, +// v2CoreFactoryAddress: DUMMY_ADDRESS, +// weth9Address: DUMMY_ADDRESS, +// nativeCurrencyLabelBytes: asciiStringToBytes32('ETH'), +// } +// ) +// ) +// expect(result.message).to.eq('Contract UniswapV3Factory was already deployed') +// expect(result.address).to.eq(DUMMY_ADDRESS) +// }) +// +// describe('test contract functions', () => { +// let v3CoreFactory: Contract +// beforeEach(async () => { +// const result = singleElem( +// await DEPLOY_V3_CORE_FACTORY( +// {}, +// { +// signer, +// gasPrice: BigNumber.from(1), +// ownerAddress: DUMMY_ADDRESS, +// v2CoreFactoryAddress: DUMMY_ADDRESS, +// weth9Address: DUMMY_ADDRESS, +// nativeCurrencyLabelBytes: asciiStringToBytes32('ETH'), +// } +// ) +// ) +// v3CoreFactory = new Contract(result.address!, UniswapV3Factory.abi, provider) +// }) +// +// it('points to signer address', async () => { +// expect(await v3CoreFactory.owner()).to.eq(await signer.getAddress()) +// }) +// }) +// }) +// }) diff --git a/v3-periphery-1_3_0 b/v3-periphery-1_3_0 new file mode 160000 index 0000000..a2c0aaf --- /dev/null +++ b/v3-periphery-1_3_0 @@ -0,0 +1 @@ +Subproject commit a2c0aafba2e82c82a045c1ecba0ee3d9dafd08e6 diff --git a/yarn.lock b/yarn.lock index c9b6af5..beebf15 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,9 +2,24 @@ # yarn lockfile v1 +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" + 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/abi@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.5.0.tgz" integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== dependencies: "@ethersproject/address" "^5.5.0" @@ -17,9 +32,22 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" + 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-provider@^5.5.0": version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" + resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz" integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== dependencies: "@ethersproject/bignumber" "^5.5.0" @@ -30,96 +58,107 @@ "@ethersproject/transactions" "^5.5.0" "@ethersproject/web" "^5.5.0" -"@ethersproject/abstract-signer@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" - integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.5.0", "@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" + "@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.0.2": - version "5.0.11" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.11.tgz#12022e8c590c33939beb5ab18b401ecf585eac59" - integrity sha512-Et4GBdD8/tsBGjCEOKee9upN29qjL5kbRcmJifb4Penmiuh9GARXL2/xpXvEp5EW+EIW/rfCHFJrkYBgoQFQBw== +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.5.0", "@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== dependencies: - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/keccak256" "^5.0.7" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/rlp" "^5.0.7" + "@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/address@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" - integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" + "@ethersproject/bytes" "^5.7.0" "@ethersproject/base64@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" + resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.5.0.tgz" integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== dependencies: "@ethersproject/bytes" "^5.5.0" +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/basex@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" + resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.5.0.tgz" integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== dependencies: "@ethersproject/bytes" "^5.5.0" "@ethersproject/properties" "^5.5.0" -"@ethersproject/bignumber@^5.0.13": - version "5.0.15" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.15.tgz#b089b3f1e0381338d764ac1c10512f0c93b184ed" - integrity sha512-MTADqnyacvdRwtKh7o9ujwNDSM1SDJjYDMYAzjIgjoi9rh6TY4suMbhCa3i2vh3SUXiXSICyTI8ui+NPdrZ9Lw== +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.5.0", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - bn.js "^4.4.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" -"@ethersproject/bignumber@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" - integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - bn.js "^4.11.9" - -"@ethersproject/bytes@^5.0.9": - version "5.0.11" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.11.tgz#21118e75b1d00db068984c15530e316021101276" - integrity sha512-D51plLYY5qF05AsoVQwIZVLqlBkaTPVHVP/1WmmBIWyHB0cRW0C9kh0kx5Exo51rB63Hk8PfHxc7SmpoaQFEyg== - dependencies: - "@ethersproject/logger" "^5.0.8" + "@ethersproject/logger" "^5.7.0" "@ethersproject/bytes@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" + resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.5.0.tgz" integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== dependencies: "@ethersproject/logger" "^5.5.0" -"@ethersproject/constants@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" - integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== - dependencies: - "@ethersproject/bignumber" "^5.5.0" +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.5.0", "@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/contracts@5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz" + 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/contracts@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" + resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.5.0.tgz" integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== dependencies: "@ethersproject/abi" "^5.5.0" @@ -133,9 +172,24 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/transactions" "^5.5.0" +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" + 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/hash@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" + resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.5.0.tgz" integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== dependencies: "@ethersproject/abstract-signer" "^5.5.0" @@ -147,9 +201,27 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + "@ethersproject/hdnode@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" + resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.5.0.tgz" integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== dependencies: "@ethersproject/abstract-signer" "^5.5.0" @@ -165,9 +237,28 @@ "@ethersproject/transactions" "^5.5.0" "@ethersproject/wordlists" "^5.5.0" +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + "@ethersproject/json-wallets@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" + resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz" integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== dependencies: "@ethersproject/abstract-signer" "^5.5.0" @@ -184,115 +275,167 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@^5.0.7": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.9.tgz#ca0d86e4af56c13b1ef25e533bde3e96d28f647d" - integrity sha512-zhdUTj6RGtCJSgU+bDrWF6cGbvW453LoIC1DSNWrTlXzC7WuH4a+EiPrgc7/kNoRxerKuA/cxYlI8GwNtVtDlw== +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== dependencies: - "@ethersproject/bytes" "^5.0.9" - js-sha3 "0.5.7" + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" "@ethersproject/keccak256@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" + resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.5.0.tgz" integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== dependencies: "@ethersproject/bytes" "^5.5.0" js-sha3 "0.8.0" -"@ethersproject/logger@^5.0.8": - version "5.0.10" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.10.tgz#fd884688b3143253e0356ef92d5f22d109d2e026" - integrity sha512-0y2T2NqykDrbPM3Zw9RSbPkDOxwChAL8detXaom76CfYoGxsOnRP/zTX8OUAV+x9LdwzgbWvWmeXrc0M7SuDZw== +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== "@ethersproject/logger@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" + resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.5.0.tgz" integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks@^5.5.0": version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.1.tgz#b7f7b9fb88dec1ea48f739b7fb9621311aa8ce6c" + resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.5.1.tgz" integrity sha512-tYRDM4zZtSUcKnD4UMuAlj7SeXH/k5WC4SP2u1Pn57++JdXHkRu2zwNkgNogZoxHzhm9Q6qqurDBVptHOsW49Q== dependencies: "@ethersproject/logger" "^5.5.0" +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz" + integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/pbkdf2@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" + resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz" integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== dependencies: "@ethersproject/bytes" "^5.5.0" "@ethersproject/sha2" "^5.5.0" +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" + resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.5.0.tgz" integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== dependencies: "@ethersproject/logger" "^5.5.0" -"@ethersproject/providers@^5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.1.tgz#ba87e3c93219bbd2e2edf8b369873aee774abf04" - integrity sha512-2zdD5sltACDWhjUE12Kucg2PcgM6V2q9JMyVvObtVGnzJu+QSmibbP+BHQyLWZUBfLApx2942+7DC5D+n4wBQQ== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.0" +"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.5.1": + version "5.7.2" + resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" + integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" bech32 "1.1.4" ws "7.4.6" +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/random@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" + resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.5.0.tgz" integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== dependencies: "@ethersproject/bytes" "^5.5.0" "@ethersproject/logger" "^5.5.0" -"@ethersproject/rlp@^5.0.7": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.9.tgz#da205bf8a34d3c3409eb73ddd237130a4b376aff" - integrity sha512-ns1U7ZMVeruUW6JXc4om+1w3w4ynHN/0fpwmeNTsAjwGKoF8SAUgue6ylKpHKWSti2idx7jDxbn8hNNFHk67CA== +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" + resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.5.0.tgz" integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== dependencies: "@ethersproject/bytes" "^5.5.0" "@ethersproject/logger" "^5.5.0" +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + hash.js "1.1.7" + "@ethersproject/sha2@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.5.0.tgz" integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== dependencies: "@ethersproject/bytes" "^5.5.0" "@ethersproject/logger" "^5.5.0" hash.js "1.1.7" +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" + 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/signing-key@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" + resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.5.0.tgz" integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== dependencies: "@ethersproject/bytes" "^5.5.0" @@ -302,18 +445,54 @@ elliptic "6.5.4" hash.js "1.1.7" +"@ethersproject/solidity@5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz" + integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/strings@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" + resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.5.0.tgz" integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== dependencies: "@ethersproject/bytes" "^5.5.0" "@ethersproject/constants" "^5.5.0" "@ethersproject/logger" "^5.5.0" +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" + 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/transactions@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" + resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.5.0.tgz" integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== dependencies: "@ethersproject/address" "^5.5.0" @@ -326,9 +505,39 @@ "@ethersproject/rlp" "^5.5.0" "@ethersproject/signing-key" "^5.5.0" +"@ethersproject/units@5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz" + integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/wallet@5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz" + integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== + dependencies: + "@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/hash" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/json-wallets" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + "@ethersproject/wallet@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" + resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.5.0.tgz" integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== dependencies: "@ethersproject/abstract-provider" "^5.5.0" @@ -347,9 +556,20 @@ "@ethersproject/transactions" "^5.5.0" "@ethersproject/wordlists" "^5.5.0" +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + 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/web@^5.5.0": version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.1.tgz#cfcc4a074a6936c657878ac58917a61341681316" + resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.5.1.tgz" integrity sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg== dependencies: "@ethersproject/base64" "^5.5.0" @@ -358,9 +578,20 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/wordlists@^5.5.0": version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" + resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.5.0.tgz" integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== dependencies: "@ethersproject/bytes" "^5.5.0" @@ -369,60 +600,67 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" +"@matterlabs/hardhat-zksync-deploy@^0.6.3": + version "0.6.3" + resolved "https://registry.npmjs.org/@matterlabs/hardhat-zksync-deploy/-/hardhat-zksync-deploy-0.6.3.tgz" + integrity sha512-FB+2xFL/80JJwlGna+aHA6dk4ONrMFqThTZATYVJUAKooA0Aw5qmpmM8B3qsNB4LLzHSO/EmVrHIcLaPv8hYwQ== + dependencies: + chalk "4.1.2" + "@openzeppelin/contracts@3.4.1-solc-0.7-2": version "3.4.1-solc-0.7-2" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-3.4.1-solc-0.7-2.tgz#371c67ebffe50f551c3146a9eec5fe6ffe862e92" + resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.1-solc-0.7-2.tgz" integrity sha512-tAG9LWg8+M2CMu7hIsqHPaTyG4uDzjr6mhvH96LvOpLZZj6tgzTluBt+LsCf1/QaYrlis6pITvpIaIhE+iZB+Q== "@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" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== dependencies: "@types/node" "*" "@types/chai@^4.2.12": version "4.2.15" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.15.tgz#b7a6d263c2cecf44b6de9a051cf496249b154553" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.2.15.tgz" integrity sha512-rYff6FI+ZTKAPkJUoyz7Udq3GaoDZnxYDEvdEdFZASiA7PoErltHezDishqQiSDWrGxvxmplH304jyzQmjp0AQ== "@types/mocha@^8.0.3": version "8.2.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.1.tgz#f3f3ae4590c5386fc7c543aae9b78d4cf30ffee9" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.1.tgz" integrity sha512-NysN+bNqj6E0Hv4CTGWSlPzMW6vTKjDpOteycDkV4IWBsO+PU48JonrPzV9ODjiI2XrjmA05KInLgF5ivZ/YGQ== "@types/node@*", "@types/node@^14.6.3": version "14.14.32" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.32.tgz#90c5c4a8d72bbbfe53033f122341343249183448" + resolved "https://registry.npmjs.org/@types/node/-/node-14.14.32.tgz" integrity sha512-/Ctrftx/zp4m8JOujM5ZhwzlWLx22nbQJiVqz8/zE15gOeEW+uly3FSX4fGFpcfEvFzXcMCJwq9lGVWgyARXhg== "@types/pbkdf2@^3.0.0": version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz" integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== dependencies: "@types/node" "*" "@types/secp256k1@^4.0.1": version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.1.tgz#fb3aa61a1848ad97d7425ff9dcba784549fca5a4" + resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz" integrity sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog== dependencies: "@types/node" "*" "@ungap/promise-all-settled@1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== "@uniswap/lib@^4.0.1-alpha": version "4.0.1-alpha" - resolved "https://registry.yarnpkg.com/@uniswap/lib/-/lib-4.0.1-alpha.tgz#2881008e55f075344675b3bca93f020b028fbd02" + resolved "https://registry.npmjs.org/@uniswap/lib/-/lib-4.0.1-alpha.tgz" integrity sha512-f6UIliwBbRsgVLxIaBANF6w09tYqc6Y/qXdsrbEmXHyFA7ILiKrIwRFXe1yOg8M3cksgVsO9N7yuL2DdCGQKBA== "@uniswap/sdk-core@^1.0.8": version "1.0.8" - resolved "https://registry.yarnpkg.com/@uniswap/sdk-core/-/sdk-core-1.0.8.tgz#ef71021bd7f2791bdb146b740f876a4f2d89c05b" + resolved "https://registry.npmjs.org/@uniswap/sdk-core/-/sdk-core-1.0.8.tgz" integrity sha512-ted1NTEj023A501rVLdYHqvJt+abAJZPyYZKMLgQ0OGsT/rO8NCYR4kZgvwumv+c7ZlUM8jdmnkiPVH+lFc/kw== dependencies: "@ethersproject/address" "^5.0.2" @@ -433,42 +671,19 @@ tiny-warning "^1.0.3" toformat "^2.0.0" -"@uniswap/swap-router-contracts@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@uniswap/swap-router-contracts/-/swap-router-contracts-1.1.0.tgz#e027b14d4c172f231c53c48e1fd708a78d7d94d8" - integrity sha512-GPmpx1lvjXWloB95+YUabr3UHJYr3scnSS8EzaNXnNrIz9nYZ+XQcMaJxOKe85Yi7IfcUQpj0HzD2TW99dtolA== - dependencies: - "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/v2-core" "1.0.1" - "@uniswap/v3-core" "1.0.0" - "@uniswap/v3-periphery" "1.3.0" - hardhat-watcher "^2.1.1" - "@uniswap/v2-core@1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@uniswap/v2-core/-/v2-core-1.0.1.tgz#af8f508bf183204779938969e2e54043e147d425" + resolved "https://registry.npmjs.org/@uniswap/v2-core/-/v2-core-1.0.1.tgz" integrity sha512-MtybtkUPSyysqLY2U210NBDeCHX+ltHt3oADGdjqoThZaFRDKwM6k1Nb3F0A3hk5hwuQvytFWhrWHOEq6nVJ8Q== "@uniswap/v3-core@1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@uniswap/v3-core/-/v3-core-1.0.0.tgz#6c24adacc4c25dceee0ba3ca142b35adbd7e359d" + resolved "https://registry.npmjs.org/@uniswap/v3-core/-/v3-core-1.0.0.tgz" integrity sha512-kSC4djMGKMHj7sLMYVnn61k9nu+lHjMIxgg9CDQT+s2QYLoA56GbSK9Oxr+qJXzzygbkrmuY6cwgP6cW2JXPFA== -"@uniswap/v3-periphery@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@uniswap/v3-periphery/-/v3-periphery-1.1.1.tgz#be6dfca7b29318ea0d76a7baf15d3b33c3c5e90a" - integrity sha512-orqD2Xy4lxVPF6pxd7ECSJY0gzEuqyeVSDHjzM86uWxOXlA4Nlh5pvI959KaS32pSOFBOVVA4XbbZywbJj+CZg== - dependencies: - "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "1.0.1" - "@uniswap/v3-core" "1.0.0" - base64-sol "1.0.1" - hardhat-watcher "^2.1.1" - -"@uniswap/v3-periphery@1.3.0", "v3-periphery-1_3_0@npm:@uniswap/v3-periphery@1.3.0": +"@uniswap/v3-periphery@1.3.0", "@uniswap/v3-periphery@^1.0.1": version "1.3.0" - resolved "https://registry.yarnpkg.com/@uniswap/v3-periphery/-/v3-periphery-1.3.0.tgz#37f0a1ef6025221722e50e9f3f2009c2d5d6e4ec" + resolved "https://registry.npmjs.org/@uniswap/v3-periphery/-/v3-periphery-1.3.0.tgz" integrity sha512-HjHdI5RkjBl8zz3bqHShrbULFoZSrjbbrRHoO2vbzn+WRzTa6xY4PWphZv2Tlcb38YEKfKHp6NPl5hVedac8uw== dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" @@ -478,147 +693,123 @@ base64-sol "1.0.1" hardhat-watcher "^2.1.1" -"@uniswap/v3-periphery@^1.0.1": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@uniswap/v3-periphery/-/v3-periphery-1.1.0.tgz#0afdf4d0bed536d06988a9d29f466c05f9f3286b" - integrity sha512-fZU0Ohf4uIpHxMEKuTjdjIPM/fWPh35m5sRAKo93RqAlwPD8UmMhngXEwcC4Hj8fz3bimmoY++2DiniGUVzpdQ== - dependencies: - "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "1.0.1" - "@uniswap/v3-core" "1.0.0" - base64-sol "1.0.1" - hardhat-watcher "^2.1.1" - -"@uniswap/v3-staker@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@uniswap/v3-staker/-/v3-staker-1.0.2.tgz#febad4905903032bb114ab58138c2d5200c87a3c" - integrity sha512-+swIh/yhY9GQGyQxT4Gz54aXYLK+uc3qsmIvaAX+FjvhcL9TGOvS9tXbQsCZM4AJW63vj6TLsmHIjGMIePL1BQ== - dependencies: - "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/v3-core" "1.0.0" - "@uniswap/v3-periphery" "^1.0.1" - "@vercel/ncc@^0.33.1": version "0.33.1" - resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.33.1.tgz#b240080a3c1ded9446a30955a06a79851bb38f71" + resolved "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.33.1.tgz" integrity sha512-Mlsps/P0PLZwsCFtSol23FGqT3FhBGb4B1AuGQ52JTAtXhak+b0Fh/4T55r0/SVQPeRiX9pNItOEHwakGPmZYA== aes-js@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= ansi-colors@4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= ansi-regex@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.0: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== +anymatch@~3.1.1, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" arg@^4.1.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== balanced-match@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base-x@^3.0.2: version "3.0.8" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz" integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA== dependencies: safe-buffer "^5.0.1" base64-sol@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/base64-sol/-/base64-sol-1.0.1.tgz#91317aa341f0bc763811783c5729f1c2574600f6" + resolved "https://registry.npmjs.org/base64-sol/-/base64-sol-1.0.1.tgz" integrity sha512-ld3cCNMeXt4uJXmLZBHFGMvVpK9KsLVEhPpFRXnvSVAqABKbuNZg/+dsq3NuM+wxFLb/UrVkz7m1ciWmkMfTbg== bech32@1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== big.js@^5.2.2: version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== blakejs@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" + resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz" integrity sha1-ad+S75U6qIylGjLfarHFShVfx6U= -bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.9, bn.js@^4.4.0: +bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.9: version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -626,24 +817,24 @@ brace-expansion@^1.1.7: braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" brorand@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserify-aes@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -655,14 +846,14 @@ browserify-aes@^1.2.0: bs58@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= dependencies: base-x "^3.0.2" bs58check@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz" integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== dependencies: bs58 "^4.0.0" @@ -671,27 +862,27 @@ bs58check@^2.1.2: buffer-from@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= camelcase@^5.0.0: version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.0.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== chai@^4.2.0: version "4.3.3" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.3.tgz#f2b2ad9736999d07a7ff95cf1e7086c43a76f72d" + resolved "https://registry.npmjs.org/chai/-/chai-4.3.3.tgz" integrity sha512-MPSLOZwxxnA0DhLE84klnGPojWFK5KuhP7/j5dTsxpr2S3XlkqJP5WbyYl1gCTWvG2Z5N+HD4F472WsbEZL6Pw== dependencies: assertion-error "^1.1.0" @@ -701,9 +892,17 @@ chai@^4.2.0: pathval "^1.1.1" type-detect "^4.0.5" +chalk@4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz" integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== dependencies: ansi-styles "^4.1.0" @@ -711,12 +910,12 @@ chalk@^4.0.0: check-error@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= chokidar@3.5.1: version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz" integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== dependencies: anymatch "~3.1.1" @@ -731,7 +930,7 @@ chokidar@3.5.1: chokidar@^3.4.3: version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== dependencies: anymatch "~3.1.2" @@ -746,7 +945,7 @@ chokidar@^3.4.3: cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" @@ -754,7 +953,7 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: cliui@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== dependencies: string-width "^3.1.0" @@ -763,7 +962,7 @@ cliui@^5.0.0: cliui@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -772,41 +971,41 @@ cliui@^7.0.2: color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== commander@^6.1.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -817,7 +1016,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -829,12 +1028,12 @@ create-hmac@^1.1.4, create-hmac@^1.1.7: create-require@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== cross-spawn@^6.0.0: version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" @@ -845,46 +1044,46 @@ cross-spawn@^6.0.0: debug@4.3.1: version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decamelize@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== decimal.js-light@^2.5.0: version "2.5.1" - resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" + resolved "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz" integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== deep-eql@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz" integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== dependencies: type-detect "^4.0.0" diff@5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== diff@^4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== elliptic@6.5.4, elliptic@^6.5.2: version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: bn.js "^4.11.9" @@ -897,34 +1096,34 @@ elliptic@6.5.4, elliptic@^6.5.2: emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" escalade@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-string-regexp@4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== ethereum-cryptography@^0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== dependencies: "@types/pbkdf2" "^3.0.0" @@ -945,7 +1144,7 @@ ethereum-cryptography@^0.1.3: ethereumjs-util@6.2.1: version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== dependencies: "@types/bn.js" "^4.11.3" @@ -956,9 +1155,45 @@ ethereumjs-util@6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" +ethers@5: + version "5.7.2" + resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" + integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.1" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.2" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.1" + "@ethersproject/wordlists" "5.7.0" + ethjs-util@0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + resolved "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz" integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== dependencies: is-hex-prefixed "1.0.0" @@ -966,7 +1201,7 @@ ethjs-util@0.1.6: evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" @@ -974,7 +1209,7 @@ evp_bytestokey@^1.0.3: execa@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== dependencies: cross-spawn "^6.0.0" @@ -987,14 +1222,14 @@ execa@^1.0.0: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" find-up@5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -1002,29 +1237,29 @@ find-up@5.0.0: find-up@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" flat@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@~2.3.1, fsevents@~2.3.2: version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== ganache-cli@^6.10.1: version "6.12.2" - resolved "https://registry.yarnpkg.com/ganache-cli/-/ganache-cli-6.12.2.tgz#c0920f7db0d4ac062ffe2375cb004089806f627a" + resolved "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz" integrity sha512-bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw== dependencies: ethereumjs-util "6.2.1" @@ -1033,31 +1268,31 @@ ganache-cli@^6.10.1: get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-func-name@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= get-stream@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" glob-parent@~5.1.0, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob@7.1.6: version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" @@ -1069,24 +1304,24 @@ glob@7.1.6: growl@1.10.5: version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== hardhat-watcher@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/hardhat-watcher/-/hardhat-watcher-2.1.1.tgz#8b05fec429ed45da11808bbf6054a90f3e34c51a" + resolved "https://registry.npmjs.org/hardhat-watcher/-/hardhat-watcher-2.1.1.tgz" integrity sha512-zilmvxAYD34IofBrwOliQn4z92UiDmt2c949DW4Gokf0vS0qk4YTfVCi/LmUBICThGygNANE3WfnRTpjCJGtDA== dependencies: chokidar "^3.4.3" has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" @@ -1095,7 +1330,7 @@ hash-base@^3.0.0: hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" @@ -1103,12 +1338,12 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: he@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" @@ -1117,12 +1352,12 @@ hmac-drbg@^1.0.1: immer@^7.0.8: version "7.0.15" - resolved "https://registry.yarnpkg.com/immer/-/immer-7.0.15.tgz#dc3bc6db87401659d2e737c67a21b227c484a4ad" + resolved "https://registry.npmjs.org/immer/-/immer-7.0.15.tgz" integrity sha512-yM7jo9+hvYgvdCQdqvhCNRRio0SCXc8xDPzA25SvKWa7b1WVPjLwQs1VYU5JPXjcJPTqAa5NP5dqpORGYBQ2AA== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" @@ -1130,108 +1365,104 @@ inflight@^1.0.4: inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== invert-kv@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" is-hex-prefixed@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + resolved "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz" integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-obj@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -js-sha3@0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= - js-sha3@0.8.0: version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== js-yaml@4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz" integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== dependencies: argparse "^2.0.1" jsbi@^3.1.4: version "3.1.4" - resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-3.1.4.tgz#9654dd02207a66a4911b4e4bb74265bc2cbc9dd0" + resolved "https://registry.npmjs.org/jsbi/-/jsbi-3.1.4.tgz" integrity sha512-52QRRFSsi9impURE8ZUbzAMCLjPm4THO7H2fcuIvaaeFTbSysvkodbQQXIVsNgq/ypDbq6dJiuGKL0vZ/i9hUg== keccak@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" - integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== + version "3.0.3" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz" + integrity sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ== dependencies: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" + readable-stream "^3.6.0" lcid@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + resolved "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz" integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== dependencies: invert-kv "^2.0.0" locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" @@ -1239,33 +1470,33 @@ locate-path@^3.0.0: locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" log-symbols@4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz" integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== dependencies: chalk "^4.0.0" make-error@^1.1.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== map-age-cleaner@^0.1.1: version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz" integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== dependencies: p-defer "^1.0.0" md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -1274,7 +1505,7 @@ md5.js@^1.3.4: mem@^4.0.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + resolved "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz" integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== dependencies: map-age-cleaner "^0.1.1" @@ -1283,29 +1514,29 @@ mem@^4.0.0: mimic-fn@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" mocha@^8.1.3: version "8.3.1" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.3.1.tgz#b9eda6da1eb8cb8d29860a9c2205de5b8a076560" + resolved "https://registry.npmjs.org/mocha/-/mocha-8.3.1.tgz" integrity sha512-5SBMxANWqOv5bw3Hx+HVgaWlcWcFEQDUdaUAr1AUU+qwtx6cowhn7gEDT/DwQP7uYxnvShdUOVLbTYAHOEGfDQ== dependencies: "@ungap/promise-all-settled" "1.1.2" @@ -1336,56 +1567,60 @@ mocha@^8.1.3: ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nanoid@3.1.20: version "3.1.20" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz" integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== nice-try@^1.0.4: version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== node-addon-api@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== node-gyp-build@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" - integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== + version "4.6.0" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz" + integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== npm-run-path@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" +"openzeppelin-contracts@https://github.com/AntonD3/openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era": + version "3.4.1-solc-0.7-2" + resolved "git+ssh://git@github.com/AntonD3/openzeppelin-contracts.git#88002198dbde43b14cbac3358cc6fdc13006ee6a" + os-locale@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz" integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== dependencies: execa "^1.0.0" @@ -1394,80 +1629,80 @@ os-locale@^3.1.0: p-defer@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz" integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= p-finally@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-is-promise@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== p-limit@^2.0.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= pathval@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== pbkdf2@^3.0.17: version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz" integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== dependencies: create-hash "^1.1.2" @@ -1478,17 +1713,17 @@ pbkdf2@^3.0.17: picomatch@^2.0.4, picomatch@^2.2.1: version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== prettier@^2.1.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz" integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -1496,14 +1731,14 @@ pump@^3.0.0: randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" readable-stream@^3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" @@ -1512,31 +1747,31 @@ readable-stream@^3.6.0: readdirp@~3.5.0: version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz" integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== dependencies: picomatch "^2.2.1" readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" @@ -1544,24 +1779,24 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: rlp@^2.2.3: version "2.2.6" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" + resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz" integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== dependencies: bn.js "^4.11.1" safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== scrypt-js@3.0.1, scrypt-js@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== secp256k1@^4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz" integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== dependencies: elliptic "^6.5.2" @@ -1570,29 +1805,29 @@ secp256k1@^4.0.1: semver@^5.5.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== serialize-javascript@5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz" integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== dependencies: randombytes "^2.1.0" set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= setimmediate@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" @@ -1600,45 +1835,45 @@ sha.js@^2.4.0, sha.js@^2.4.8: shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= signal-exit@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== source-map-support@0.5.12: version "0.5.12" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz" integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" source-map-support@^0.5.17: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" source-map@^0.6.0: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== "string-width@^1.0.2 || 2": version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" @@ -1646,7 +1881,7 @@ source-map@^0.6.0: string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" @@ -1654,98 +1889,108 @@ string-width@^3.0.0, string-width@^3.1.0: strip-ansi "^5.1.0" string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: - ansi-regex "^5.0.0" + ansi-regex "^5.0.1" strip-eof@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-hex-prefix@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= dependencies: is-hex-prefixed "1.0.0" strip-json-comments@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== supports-color@8.1.1: version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" +"swap-router-contracts@https://github.com/AntonD3/swap-router-contracts.git#v1.1.0-zksync-era": + version "1.1.0" + resolved "git+ssh://git@github.com/AntonD3/swap-router-contracts.git#c85ac9db4a76c423dcf0a25c0081e0443e1ff0b5" + dependencies: + "@openzeppelin/contracts" "3.4.1-solc-0.7-2" + "@uniswap/v2-core" "1.0.1" + "@uniswap/v3-core" "1.0.0" + "@uniswap/v3-periphery" "1.3.0" + hardhat-watcher "^2.1.1" + tiny-invariant@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz" integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== tiny-warning@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" toformat@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/toformat/-/toformat-2.0.0.tgz#7a043fd2dfbe9021a4e36e508835ba32056739d8" + resolved "https://registry.npmjs.org/toformat/-/toformat-2.0.0.tgz" integrity sha512-03SWBVop6nU8bpyZCx7SodpYznbZF5R4ljwNLBcTQzKOD9xuihRo/psX58llS1BMFhhAI08H3luot5GoXJz2pQ== ts-node@^9.0.0: version "9.1.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz" integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== dependencies: arg "^4.1.0" @@ -1757,53 +2002,76 @@ ts-node@^9.0.0: type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== typescript@^4.0.2: version "4.2.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz" integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== util-deprecate@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= +"v3-core@https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era": + version "1.0.0" + resolved "git+ssh://git@github.com/AntonD3/v3-core.git#4afb5445a26ff4ff55549aae25d567b724703a98" + +"v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era": + version "1.1.1" + resolved "git+ssh://git@github.com/AntonD3/v3-periphery.git#e786658ea888e8770503f0257015d8d5db8eccbc" + dependencies: + "@openzeppelin/contracts" "3.4.1-solc-0.7-2" + "@uniswap/lib" "^4.0.1-alpha" + "@uniswap/v2-core" "1.0.1" + "@uniswap/v3-core" "1.0.0" + base64-sol "1.0.1" + hardhat-watcher "^2.1.1" + +"v3-staker@https://github.com/AntonD3/v3-staker.git#v1.0.2-zksync-era": + version "1.0.2" + resolved "git+ssh://git@github.com/AntonD3/v3-staker.git#b987826389a716a1b9ba517409f0176ee1140f94" + dependencies: + "@openzeppelin/contracts" "3.4.1-solc-0.7-2" + "@uniswap/v3-core" "1.0.0" + "@uniswap/v3-periphery" "^1.0.1" + which-module@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" which@^1.2.9: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" wide-align@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" workerpool@6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz" integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== wrap-ansi@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== dependencies: ansi-styles "^3.2.0" @@ -1812,7 +2080,7 @@ wrap-ansi@^5.1.0: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -1821,45 +2089,40 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= ws@7.4.6: version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" - integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yargs-parser@20.2.4: +yargs-parser@20.2.4, yargs-parser@^20.2.2: version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== yargs-parser@^13.1.0: version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2: - version "20.2.6" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20" - integrity sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA== - yargs-unparser@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== dependencies: camelcase "^6.0.0" @@ -1869,7 +2132,7 @@ yargs-unparser@2.0.0: yargs@13.2.4: version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" + resolved "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz" integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== dependencies: cliui "^5.0.0" @@ -1886,7 +2149,7 @@ yargs@13.2.4: yargs@16.2.0: version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -1899,10 +2162,15 @@ yargs@16.2.0: yn@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zksync-web3@^0.14.3: + version "0.14.3" + resolved "https://registry.npmjs.org/zksync-web3/-/zksync-web3-0.14.3.tgz" + integrity sha512-hT72th4AnqyLW1d5Jlv8N2B/qhEnl2NePK2A3org7tAa24niem/UAaHMkEvmWI3SF9waYUPtqAtjpf+yvQ9zvQ== From 1605ec95a5bec80283cf3766e11655e0d9dd96d2 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Wed, 19 Apr 2023 10:32:43 +0100 Subject: [PATCH 02/20] Transform into hardhat project --- .gitignore | 4 + .gitmodules | 4 - hardhat.config.ts | 38 + index.ts | 93 +- package.json | 11 +- src/steps/deploy-multicall2.ts | 2 +- .../deploy-nft-descriptor-library-v1_3_0.ts | 2 +- .../deploy-nft-position-descriptor-v1_3_0.ts | 16 +- .../deploy-nonfungible-position-manager.ts | 2 +- src/steps/deploy-proxy-admin.ts | 2 +- src/steps/deploy-quoter-v2.ts | 2 +- src/steps/deploy-tick-lens.ts | 2 +- .../deploy-transparent-proxy-descriptor.ts | 2 +- src/steps/deploy-v3-core-factory.ts | 2 +- src/steps/deploy-v3-migrator.ts | 2 +- src/steps/deploy-v3-staker.ts | 2 +- src/steps/deploy-v3-swap-router-02.ts | 2 +- src/steps/meta/createDeployContractStep.ts | 6 +- v3-periphery-1_3_0 | 1 - yarn.lock | 1667 ++++++++++++++++- 20 files changed, 1735 insertions(+), 127 deletions(-) delete mode 100644 .gitmodules create mode 100644 hardhat.config.ts delete mode 160000 v3-periphery-1_3_0 diff --git a/.gitignore b/.gitignore index 084e3bd..f3abb48 100644 --- a/.gitignore +++ b/.gitignore @@ -106,3 +106,7 @@ dist .tern-port .nvmrc + +# hardhat +artifacts-zk/ +cache-zk/ diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index a32dae2..0000000 --- a/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule "v3-periphery-1_3_0"] - path = v3-periphery-1_3_0 - url = https://github.com/AntonD3/v3-periphery.git - branch = v1.3.0-zksync-era diff --git a/hardhat.config.ts b/hardhat.config.ts new file mode 100644 index 0000000..0f1e73d --- /dev/null +++ b/hardhat.config.ts @@ -0,0 +1,38 @@ +import '@matterlabs/hardhat-zksync-solc' +import 'hardhat-dependency-compiler' + +export default { + defaultNetwork: 'zkSyncTestnet', + networks: { + hardhat: { + allowUnlimitedContractSize: false, + zksync: true, + }, + zkSyncTestnet: { + url: "https://testnet.era.zksync.dev", + ethNetwork: `https://goerli.infura.io/v3/${process.env.INFURA_API_KEY}`, + zksync: true, + }, + }, + solidity: { + version: '0.7.6', + settings: { + optimizer: { + enabled: true, + }, + metadata: { + bytecodeHash: 'none', + }, + }, + }, + zksolc: { + version: "1.3.9", + compilerSource: "binary", + settings: {}, + }, + dependencyCompiler: { + paths: [ + 'v3-periphery-1_3_0/contracts/NonfungibleTokenPositionDescriptor.sol', + ], + }, +} diff --git a/index.ts b/index.ts index 6f04a7e..9bc44aa 100644 --- a/index.ts +++ b/index.ts @@ -1,4 +1,3 @@ -import { program } from 'commander' import { Wallet, Provider } from 'zksync-web3' import { TransactionResponse } from '@ethersproject/providers' import { AddressZero } from '@ethersproject/constants' @@ -7,94 +6,30 @@ import fs from 'fs' import deploy from './src/deploy' import { MigrationState } from './src/migrations' import { asciiStringToBytes32 } from './src/util/asciiStringToBytes32' -import { version } from './package.json' - -program - .requiredOption('-pk, --private-key ', 'Private key used to deploy all contracts') - .requiredOption('-j, --json-rpc ', 'JSON RPC URL where the program should be deployed') - .requiredOption('-w9, --weth9-address
', 'Address of the WETH9 contract on this chain') - .requiredOption('-ncl, --native-currency-label ', 'Native currency label, e.g. ETH') - .requiredOption( - '-o, --owner-address
', - 'Contract address that will own the deployed artifacts after the script runs' - ) - .option('-s, --state ', 'Path to the JSON file containing the migrations state (optional)', './state.json') - .option('-v2, --v2-core-factory-address
', 'The V2 core factory address used in the swap router (optional)') - .option('-g, --gas-price ', 'The gas price to pay in GWEI for each transaction (optional)') - -program.name('npx @uniswap/deploy-v3').version(version).parse(process.argv) - -if (!/^0x[a-zA-Z0-9]{64}$/.test(program.privateKey)) { - console.error('Invalid private key!') - process.exit(1) -} -let url: URL -try { - url = new URL(program.jsonRpc) -} catch (error) { - console.error('Invalid JSON RPC URL', (error as Error).message) - process.exit(1) -} +const privateKey: string =// 0x... -let gasPrice: number | undefined -try { - gasPrice = program.gasPrice ? parseInt(program.gasPrice) : undefined -} catch (error) { - console.error('Failed to parse gas price', (error as Error).message) - process.exit(1) -} +const url: URL =// new URL('http://localhost:3050') -let confirmations: number -try { - confirmations = parseInt(program.confirmations) -} catch (error) { - console.error('Failed to parse confirmations', (error as Error).message) - process.exit(1) -} +const gasPrice: number | undefined =// undefined -let nativeCurrencyLabelBytes: string -try { - nativeCurrencyLabelBytes = asciiStringToBytes32(program.nativeCurrencyLabel) -} catch (error) { - console.error('Invalid native currency label', (error as Error).message) - process.exit(1) -} +const nativeCurrencyLabelBytes: string =// asciiStringToBytes32('ETH') -let weth9Address: string -try { - weth9Address = getAddress(program.weth9Address) -} catch (error) { - console.error('Invalid WETH9 address', (error as Error).message) - process.exit(1) -} +const weth9Address: string =// getAddress('0xa61464658AfeAf65CccaaFD3a512b69A83B77618') -let v2CoreFactoryAddress: string -if (typeof program.v2CoreFactoryAddress === 'undefined') { - v2CoreFactoryAddress = AddressZero -} else { - try { - v2CoreFactoryAddress = getAddress(program.v2CoreFactoryAddress) - } catch (error) { - console.error('Invalid V2 factory address', (error as Error).message) - process.exit(1) - } -} +const v2CoreFactoryAddress: string =// AddressZero + +const ownerAddress: string =// getAddress('0x36615Cf349d7F6344891B1e7CA7C72883F5dc049') + +const statePath: string =// './state.json' -let ownerAddress: string -try { - ownerAddress = getAddress(program.ownerAddress) -} catch (error) { - console.error('Invalid owner address', (error as Error).message) - process.exit(1) -} -const wallet = new Wallet(program.privateKey, new Provider({ url: url.href })) +const wallet = new Wallet(privateKey, new Provider({ url: url.href })) let state: MigrationState -if (fs.existsSync(program.state)) { +if (fs.existsSync(statePath)) { try { - state = JSON.parse(fs.readFileSync(program.state, { encoding: 'utf8' })) + state = JSON.parse(fs.readFileSync(statePath, { encoding: 'utf8' })) } catch (error) { console.error('Failed to load and parse migration state file', (error as Error).message) process.exit(1) @@ -105,7 +40,7 @@ if (fs.existsSync(program.state)) { let finalState: MigrationState const onStateChange = async (newState: MigrationState): Promise => { - fs.writeFileSync(program.state, JSON.stringify(newState)) + fs.writeFileSync(statePath, JSON.stringify(newState)) finalState = newState } diff --git a/package.json b/package.json index 13fda8a..212bb65 100644 --- a/package.json +++ b/package.json @@ -8,12 +8,7 @@ }, "main": "dist/index.js", "scripts": { - "test": "mocha", - "build": "ncc build index.ts -o dist -m", - "postbuild": "cat shebang.txt dist/index.js > dist/index.cmd.js && mv dist/index.cmd.js dist/index.js", - "prestart": "yarn build", - "start": "node dist/index.js", - "prepublishOnly": "yarn build" + "test": "mocha" }, "files": [ "dist/" @@ -44,6 +39,7 @@ "@ethersproject/providers": "^5.5.1", "@ethersproject/wallet": "^5.5.0", "@matterlabs/hardhat-zksync-deploy": "^0.6.3", + "@matterlabs/hardhat-zksync-solc": "^0.3.16", "@types/chai": "^4.2.12", "@types/mocha": "^8.0.3", "@types/node": "^14.6.3", @@ -53,6 +49,8 @@ "commander": "^6.1.0", "ethers": "5", "ganache-cli": "^6.10.1", + "hardhat": "^2.14.0", + "hardhat-dependency-compiler": "^1.1.3", "immer": "^7.0.8", "mocha": "^8.1.3", "openzeppelin-contracts": "https://github.com/AntonD3/openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era", @@ -62,6 +60,7 @@ "typescript": "^4.0.2", "v3-core": "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era", "v3-periphery": "https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era", + "v3-periphery-1_3_0": "https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era", "v3-staker": "https://github.com/AntonD3/v3-staker.git#v1.0.2-zksync-era", "zksync-web3": "^0.14.3" } diff --git a/src/steps/deploy-multicall2.ts b/src/steps/deploy-multicall2.ts index 9ae2c77..95396a4 100644 --- a/src/steps/deploy-multicall2.ts +++ b/src/steps/deploy-multicall2.ts @@ -3,7 +3,7 @@ import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_MULTICALL2 = createDeployContractStep({ key: 'multicall2Address', - computeArtifact() { + async computeArtifact() { return UniswapInterfaceMulticall } }) diff --git a/src/steps/deploy-nft-descriptor-library-v1_3_0.ts b/src/steps/deploy-nft-descriptor-library-v1_3_0.ts index 253ec64..2480874 100644 --- a/src/steps/deploy-nft-descriptor-library-v1_3_0.ts +++ b/src/steps/deploy-nft-descriptor-library-v1_3_0.ts @@ -1,4 +1,4 @@ -import NFTDescriptor from '../../v3-periphery-1_3_0/artifacts-zk/contracts/libraries/NFTDescriptor.sol/NFTDescriptor.json' +import NFTDescriptor from 'v3-periphery-1_3_0/artifacts-zk/contracts/libraries/NFTDescriptor.sol/NFTDescriptor.json' import createDeployLibraryStep from './meta/createDeployLibraryStep' export const DEPLOY_NFT_DESCRIPTOR_LIBRARY_V1_3_0 = createDeployLibraryStep({ diff --git a/src/steps/deploy-nft-position-descriptor-v1_3_0.ts b/src/steps/deploy-nft-position-descriptor-v1_3_0.ts index efd9c91..8c00bc3 100644 --- a/src/steps/deploy-nft-position-descriptor-v1_3_0.ts +++ b/src/steps/deploy-nft-position-descriptor-v1_3_0.ts @@ -1,17 +1,19 @@ import createDeployContractStep from './meta/createDeployContractStep' -import { execSync } from 'child_process' -import fs from 'fs'; +const hre = require("hardhat") export const DEPLOY_NFT_POSITION_DESCRIPTOR_V1_3_0 = createDeployContractStep({ key: 'nonfungibleTokenPositionDescriptorAddressV1_3_0', - computeArtifact(state) { + async computeArtifact(state) { if (state.nftDescriptorLibraryAddressV1_3_0 === undefined) { throw new Error('NFTDescriptor library missing') } - process.env.NFT_DESCRIPTOR_ADDRESS = state.nftDescriptorLibraryAddressV1_3_0 - execSync('yarn --cwd v3-periphery-1_3_0 hardhat compile --network zkSyncTestnet') - const file = fs.readFileSync('v3-periphery-1_3_0/artifacts-zk/contracts/NonfungibleTokenPositionDescriptor.sol/NonfungibleTokenPositionDescriptor.json') - return JSON.parse(file.toString()) + hre.config.zksolc.settings.libraries = { + "v3-periphery-1_3_0/contracts/libraries/NFTDescriptor.sol": { + NFTDescriptor: state.nftDescriptorLibraryAddressV1_3_0, + }, + } + await hre.run("compile") + return hre.artifacts.readArtifactSync('NonfungibleTokenPositionDescriptor') }, computeArguments(_, { weth9Address, nativeCurrencyLabelBytes }) { return [weth9Address, nativeCurrencyLabelBytes] diff --git a/src/steps/deploy-nonfungible-position-manager.ts b/src/steps/deploy-nonfungible-position-manager.ts index cf43c30..f026147 100644 --- a/src/steps/deploy-nonfungible-position-manager.ts +++ b/src/steps/deploy-nonfungible-position-manager.ts @@ -3,7 +3,7 @@ import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_NONFUNGIBLE_POSITION_MANAGER = createDeployContractStep({ key: 'nonfungibleTokenPositionManagerAddress', - computeArtifact() { + async computeArtifact() { return NonfungiblePositionManager }, computeArguments(state, config) { diff --git a/src/steps/deploy-proxy-admin.ts b/src/steps/deploy-proxy-admin.ts index 319a355..98bff11 100644 --- a/src/steps/deploy-proxy-admin.ts +++ b/src/steps/deploy-proxy-admin.ts @@ -3,7 +3,7 @@ import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_PROXY_ADMIN = createDeployContractStep({ key: 'proxyAdminAddress', - computeArtifact() { + async computeArtifact() { return ProxyAdmin }, }) diff --git a/src/steps/deploy-quoter-v2.ts b/src/steps/deploy-quoter-v2.ts index 90b5201..b3099f2 100644 --- a/src/steps/deploy-quoter-v2.ts +++ b/src/steps/deploy-quoter-v2.ts @@ -3,7 +3,7 @@ import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_QUOTER_V2 = createDeployContractStep({ key: 'quoterV2Address', - computeArtifact() { + async computeArtifact() { return QuoterV2 }, computeArguments(state, config) { diff --git a/src/steps/deploy-tick-lens.ts b/src/steps/deploy-tick-lens.ts index a4db88d..65f8347 100644 --- a/src/steps/deploy-tick-lens.ts +++ b/src/steps/deploy-tick-lens.ts @@ -3,7 +3,7 @@ import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_TICK_LENS = createDeployContractStep({ key: 'tickLensAddress', - computeArtifact() { + async computeArtifact() { return TickLens }, }) diff --git a/src/steps/deploy-transparent-proxy-descriptor.ts b/src/steps/deploy-transparent-proxy-descriptor.ts index 82dd1c8..79453fc 100644 --- a/src/steps/deploy-transparent-proxy-descriptor.ts +++ b/src/steps/deploy-transparent-proxy-descriptor.ts @@ -3,7 +3,7 @@ import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_TRANSPARENT_PROXY_DESCRIPTOR = createDeployContractStep({ key: 'descriptorProxyAddress', - computeArtifact() { + async computeArtifact() { return TransparentUpgradeableProxy }, computeArguments(state) { diff --git a/src/steps/deploy-v3-core-factory.ts b/src/steps/deploy-v3-core-factory.ts index 6fb7ace..339610c 100644 --- a/src/steps/deploy-v3-core-factory.ts +++ b/src/steps/deploy-v3-core-factory.ts @@ -3,7 +3,7 @@ import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_V3_CORE_FACTORY = createDeployContractStep({ key: 'v3CoreFactoryAddress', - computeArtifact() { + async computeArtifact() { return UniswapV3Factory }, }) diff --git a/src/steps/deploy-v3-migrator.ts b/src/steps/deploy-v3-migrator.ts index 4675a3a..37cee9b 100644 --- a/src/steps/deploy-v3-migrator.ts +++ b/src/steps/deploy-v3-migrator.ts @@ -3,7 +3,7 @@ import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_V3_MIGRATOR = createDeployContractStep({ key: 'v3MigratorAddress', - computeArtifact() { + async computeArtifact() { return V3Migrator }, computeArguments(state, config) { diff --git a/src/steps/deploy-v3-staker.ts b/src/steps/deploy-v3-staker.ts index 0842876..13d2aed 100644 --- a/src/steps/deploy-v3-staker.ts +++ b/src/steps/deploy-v3-staker.ts @@ -14,7 +14,7 @@ const MAX_INCENTIVE_DURATION = ONE_YEAR_SECONDS * 2 export const DEPLOY_V3_STAKER = createDeployContractStep({ key: 'v3StakerAddress', - computeArtifact() { + async computeArtifact() { return UniswapV3Staker }, computeArguments(state) { diff --git a/src/steps/deploy-v3-swap-router-02.ts b/src/steps/deploy-v3-swap-router-02.ts index cb7a301..1e987ec 100644 --- a/src/steps/deploy-v3-swap-router-02.ts +++ b/src/steps/deploy-v3-swap-router-02.ts @@ -3,7 +3,7 @@ import createDeployContractStep from './meta/createDeployContractStep' export const DEPLOY_V3_SWAP_ROUTER_02 = createDeployContractStep({ key: 'swapRouter02', - computeArtifact() { + async computeArtifact() { return SwapRouter02 }, computeArguments(state, config) { diff --git a/src/steps/meta/createDeployContractStep.ts b/src/steps/meta/createDeployContractStep.ts index 5764408..adbc3dd 100644 --- a/src/steps/meta/createDeployContractStep.ts +++ b/src/steps/meta/createDeployContractStep.ts @@ -10,17 +10,17 @@ export default function createDeployContractStep({ computeArguments, }: { key: keyof MigrationState - computeArtifact: (state: Readonly, config: MigrationConfig) => { + computeArtifact: (state: Readonly, config: MigrationConfig) => Promise<{ contractName: string abi: ContractInterface bytecode: string linkReferences?: { [fileName: string]: { [contractName: string]: { length: number; start: number }[] } } - } + }> computeArguments?: (state: Readonly, config: MigrationConfig) => ConstructorArgs }): MigrationStep { return async (state, config) => { - const { contractName, abi, bytecode, linkReferences } = computeArtifact(state, config) + const { contractName, abi, bytecode, linkReferences } = await computeArtifact(state, config) if (state[key] === undefined) { const constructorArgs: ConstructorArgs = computeArguments ? computeArguments(state, config) : [] if (linkReferences && Object.keys(linkReferences).length > 0) { diff --git a/v3-periphery-1_3_0 b/v3-periphery-1_3_0 deleted file mode 160000 index a2c0aaf..0000000 --- a/v3-periphery-1_3_0 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a2c0aafba2e82c82a045c1ecba0ee3d9dafd08e6 diff --git a/yarn.lock b/yarn.lock index beebf15..3476f15 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,48 @@ # yarn lockfile v1 -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": +"@balena/dockerignore@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@balena/dockerignore/-/dockerignore-1.0.2.tgz#9ffe4726915251e8eb69f44ef3547e0da2c03e0d" + integrity sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q== + +"@chainsafe/as-sha256@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9" + integrity sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg== + +"@chainsafe/persistent-merkle-tree@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz#4c9ee80cc57cd3be7208d98c40014ad38f36f7ff" + integrity sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + +"@chainsafe/persistent-merkle-tree@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz#2b4a62c9489a5739dedd197250d8d2f5427e9f63" + integrity sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + +"@chainsafe/ssz@^0.10.0": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.10.2.tgz#c782929e1bb25fec66ba72e75934b31fd087579e" + integrity sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + "@chainsafe/persistent-merkle-tree" "^0.5.0" + +"@chainsafe/ssz@^0.9.2": + version "0.9.4" + resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.9.4.tgz#696a8db46d6975b600f8309ad3a12f7c0e310497" + integrity sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + "@chainsafe/persistent-merkle-tree" "^0.4.2" + case "^1.6.3" + +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== @@ -345,7 +386,7 @@ dependencies: "@ethersproject/logger" "^5.5.0" -"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.5.1": +"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.5.1", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2": version "5.7.2" resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== @@ -607,11 +648,340 @@ dependencies: chalk "4.1.2" +"@matterlabs/hardhat-zksync-solc@^0.3.16": + version "0.3.16" + resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.3.16.tgz#dd8ed44f1a580f282794a15fee995f418b040158" + integrity sha512-gw46yyiCfj49I/nbUcOlnF5xE80WyeW/i8i9ouHom4KWJNt1kioQIwOPkN7aJURhXpJJxKSdeWBrQHLWTZDnTA== + dependencies: + "@nomiclabs/hardhat-docker" "^2.0.0" + chalk "4.1.2" + dockerode "^3.3.4" + +"@metamask/eth-sig-util@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" + integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== + dependencies: + ethereumjs-abi "^0.6.8" + ethereumjs-util "^6.2.1" + ethjs-util "^0.1.6" + tweetnacl "^1.0.3" + tweetnacl-util "^0.15.1" + +"@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" + integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== + +"@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== + +"@nomicfoundation/ethereumjs-block@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.1.tgz#6f89664f55febbd723195b6d0974773d29ee133d" + integrity sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-trie" "6.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + ethereum-cryptography "0.1.3" + ethers "^5.7.1" + +"@nomicfoundation/ethereumjs-blockchain@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.1.tgz#80e0bd3535bfeb9baa29836b6f25123dab06a726" + integrity sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-ethash" "3.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-trie" "6.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + abstract-level "^1.0.3" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + level "^8.0.0" + lru-cache "^5.1.1" + memory-level "^1.0.0" + +"@nomicfoundation/ethereumjs-common@4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.1.tgz#4702d82df35b07b5407583b54a45bf728e46a2f0" + integrity sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g== + dependencies: + "@nomicfoundation/ethereumjs-util" "9.0.1" + crc-32 "^1.2.0" + +"@nomicfoundation/ethereumjs-ethash@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.1.tgz#65ca494d53e71e8415c9a49ef48bc921c538fc41" + integrity sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + abstract-level "^1.0.3" + bigint-crypto-utils "^3.0.23" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-evm@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.1.tgz#f35681e203363f69ce2b3d3bf9f44d4e883ca1f1" + integrity sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ== + dependencies: + "@ethersproject/providers" "^5.7.1" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + mcl-wasm "^0.7.1" + rustbn.js "~0.2.0" + +"@nomicfoundation/ethereumjs-rlp@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.1.tgz#0b30c1cf77d125d390408e391c4bb5291ef43c28" + integrity sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ== + +"@nomicfoundation/ethereumjs-statemanager@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.1.tgz#8824a97938db4471911e2d2f140f79195def5935" + integrity sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + ethers "^5.7.1" + js-sdsl "^4.1.4" + +"@nomicfoundation/ethereumjs-trie@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.1.tgz#662c55f6b50659fd4b22ea9f806a7401cafb7717" + integrity sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA== + dependencies: + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + "@types/readable-stream" "^2.3.13" + ethereum-cryptography "0.1.3" + readable-stream "^3.6.0" + +"@nomicfoundation/ethereumjs-tx@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.1.tgz#7629dc2036b4a33c34e9f0a592b43227ef4f0c7d" + integrity sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w== + dependencies: + "@chainsafe/ssz" "^0.9.2" + "@ethersproject/providers" "^5.7.2" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-util@9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.1.tgz#530cda8bae33f8b5020a8f199ed1d0a2ce48ec89" + integrity sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA== + dependencies: + "@chainsafe/ssz" "^0.10.0" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-vm@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.1.tgz#7d035e0993bcad10716c8b36e61dfb87fa3ca05f" + integrity sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.1" + "@nomicfoundation/ethereumjs-blockchain" "7.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-evm" "2.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-statemanager" "2.0.1" + "@nomicfoundation/ethereumjs-trie" "6.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + mcl-wasm "^0.7.1" + rustbn.js "~0.2.0" + +"@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz#4c858096b1c17fe58a474fe81b46815f93645c15" + integrity sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w== + +"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz#6e25ccdf6e2d22389c35553b64fe6f3fdaec432c" + integrity sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA== + +"@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz#0a224ea50317139caeebcdedd435c28a039d169c" + integrity sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA== + +"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz#dfa085d9ffab9efb2e7b383aed3f557f7687ac2b" + integrity sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg== + +"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz#c9e06b5d513dd3ab02a7ac069c160051675889a4" + integrity sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w== + +"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz#8d328d16839e52571f72f2998c81e46bf320f893" + integrity sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA== + +"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz#9b49d0634b5976bb5ed1604a1e1b736f390959bb" + integrity sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w== + +"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz#e2867af7264ebbcc3131ef837878955dd6a3676f" + integrity sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg== + +"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz#0685f78608dd516c8cdfb4896ed451317e559585" + integrity sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ== + +"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz#c9a44f7108646f083b82e851486e0f6aeb785836" + integrity sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw== + +"@nomicfoundation/solidity-analyzer@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz#f5f4d36d3f66752f59a57e7208cd856f3ddf6f2d" + integrity sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg== + optionalDependencies: + "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.1" + "@nomicfoundation/solidity-analyzer-darwin-x64" "0.1.1" + "@nomicfoundation/solidity-analyzer-freebsd-x64" "0.1.1" + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu" "0.1.1" + "@nomicfoundation/solidity-analyzer-linux-arm64-musl" "0.1.1" + "@nomicfoundation/solidity-analyzer-linux-x64-gnu" "0.1.1" + "@nomicfoundation/solidity-analyzer-linux-x64-musl" "0.1.1" + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc" "0.1.1" + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.1" + "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.1" + +"@nomiclabs/hardhat-docker@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-docker/-/hardhat-docker-2.0.2.tgz#ae964be17951275a55859ff7358e9e7c77448846" + integrity sha512-XgGEpRT3wlA1VslyB57zyAHV+oll8KnV1TjwnxxC1tpAL04/lbdwpdO5KxInVN8irMSepqFpsiSkqlcnvbE7Ng== + dependencies: + dockerode "^2.5.8" + fs-extra "^7.0.1" + node-fetch "^2.6.0" + "@openzeppelin/contracts@3.4.1-solc-0.7-2": version "3.4.1-solc-0.7-2" resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.1-solc-0.7-2.tgz" integrity sha512-tAG9LWg8+M2CMu7hIsqHPaTyG4uDzjr6mhvH96LvOpLZZj6tgzTluBt+LsCf1/QaYrlis6pITvpIaIhE+iZB+Q== +"@scure/base@~1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" + integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== + +"@scure/bip32@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.5.tgz#d2ccae16dcc2e75bc1d75f5ef3c66a338d1ba300" + integrity sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw== + dependencies: + "@noble/hashes" "~1.2.0" + "@noble/secp256k1" "~1.7.0" + "@scure/base" "~1.1.0" + +"@scure/bip39@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.1.tgz#b54557b2e86214319405db819c4b6a370cf340c5" + integrity sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg== + dependencies: + "@noble/hashes" "~1.2.0" + "@scure/base" "~1.1.0" + +"@sentry/core@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" + integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== + dependencies: + "@sentry/hub" "5.30.0" + "@sentry/minimal" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/hub@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" + integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== + dependencies: + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/minimal@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b" + integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== + dependencies: + "@sentry/hub" "5.30.0" + "@sentry/types" "5.30.0" + tslib "^1.9.3" + +"@sentry/node@^5.18.1": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48" + integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg== + dependencies: + "@sentry/core" "5.30.0" + "@sentry/hub" "5.30.0" + "@sentry/tracing" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + cookie "^0.4.1" + https-proxy-agent "^5.0.0" + lru_map "^0.3.3" + tslib "^1.9.3" + +"@sentry/tracing@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f" + integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw== + dependencies: + "@sentry/hub" "5.30.0" + "@sentry/minimal" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/types@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402" + integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== + +"@sentry/utils@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" + integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== + dependencies: + "@sentry/types" "5.30.0" + tslib "^1.9.3" + "@types/bn.js@^4.11.3": version "4.11.6" resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" @@ -619,11 +989,23 @@ dependencies: "@types/node" "*" +"@types/bn.js@^5.1.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" + integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== + dependencies: + "@types/node" "*" + "@types/chai@^4.2.12": version "4.2.15" resolved "https://registry.npmjs.org/@types/chai/-/chai-4.2.15.tgz" integrity sha512-rYff6FI+ZTKAPkJUoyz7Udq3GaoDZnxYDEvdEdFZASiA7PoErltHezDishqQiSDWrGxvxmplH304jyzQmjp0AQ== +"@types/lru-cache@^5.1.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" + integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== + "@types/mocha@^8.0.3": version "8.2.1" resolved "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.1.tgz" @@ -641,6 +1023,14 @@ dependencies: "@types/node" "*" +"@types/readable-stream@^2.3.13": + version "2.3.15" + resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae" + integrity sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ== + dependencies: + "@types/node" "*" + safe-buffer "~5.1.1" + "@types/secp256k1@^4.0.1": version "4.0.1" resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz" @@ -698,16 +1088,76 @@ resolved "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.33.1.tgz" integrity sha512-Mlsps/P0PLZwsCFtSol23FGqT3FhBGb4B1AuGQ52JTAtXhak+b0Fh/4T55r0/SVQPeRiX9pNItOEHwakGPmZYA== +JSONStream@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" + integrity sha512-mn0KSip7N4e0UDPZHnqDsHECo5uGQrixQKnAskOM1BIB8hd7QKbd6il8IPRPudPHOeHiECoCFqhyMaRO9+nWyA== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" + integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== + dependencies: + buffer "^6.0.3" + catering "^2.1.0" + is-buffer "^2.0.5" + level-supports "^4.0.0" + level-transcoder "^1.0.1" + module-error "^1.0.1" + queue-microtask "^1.2.3" + +adm-zip@^0.4.16: + version "0.4.16" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" + integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== + aes-js@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + ansi-colors@4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" @@ -723,7 +1173,7 @@ ansi-regex@^5.0.1: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^3.2.0: +ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -755,6 +1205,13 @@ argparse@^2.0.1: resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +asn1@^0.2.4: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" @@ -772,11 +1229,23 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + base64-sol@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/base64-sol/-/base64-sol-1.0.1.tgz" integrity sha512-ld3cCNMeXt4uJXmLZBHFGMvVpK9KsLVEhPpFRXnvSVAqABKbuNZg/+dsq3NuM+wxFLb/UrVkz7m1ciWmkMfTbg== +bcrypt-pbkdf@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + bech32@1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" @@ -787,17 +1256,39 @@ big.js@^5.2.2: resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +bigint-crypto-utils@^3.0.23: + version "3.2.2" + resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.2.2.tgz#e30a49ec38357c6981cd3da5aaa6480b1f752ee4" + integrity sha512-U1RbE3aX9ayCUVcIPHuPDPKcK3SFOXf93J1UK/iHlJuQB7bhagPIX06/CLpLEsDThJ7KA4Dhrnzynl+d2weTiw== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +bl@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + blakejs@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz" integrity sha1-ad+S75U6qIylGjLfarHFShVfx6U= -bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.9: +bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -815,6 +1306,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" @@ -827,6 +1325,16 @@ brorand@^1.1.0: resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browser-level@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" + integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.1" + module-error "^1.0.2" + run-parallel-limit "^1.1.0" + browser-stdout@1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" @@ -860,6 +1368,24 @@ bs58check@^2.1.2: create-hash "^1.1.0" safe-buffer "^5.1.2" +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" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== + buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" @@ -870,6 +1396,47 @@ buffer-xor@^1.0.3: resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +buildcheck@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/buildcheck/-/buildcheck-0.0.5.tgz#5b7c0830b25dc61422032eeb5c18bfcaa9eebb8d" + integrity sha512-jYWpRy8eedl/JZqkOeq0X0bNcaK04hXKhIi4gYsDKZUJWRjJJWViYfsMXO0BJQ40zSLcdLoa+iqe48Kz2PtQag== + +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + camelcase@^5.0.0: version "5.3.1" resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" @@ -880,6 +1447,16 @@ camelcase@^6.0.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== +case@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/case/-/case-1.6.3.tgz#0a4386e3e9825351ca2e6216c60467ff5f1ea1c9" + integrity sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ== + +catering@^2.1.0, catering@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" + integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== + chai@^4.2.0: version "4.3.3" resolved "https://registry.npmjs.org/chai/-/chai-4.3.3.tgz" @@ -892,7 +1469,7 @@ chai@^4.2.0: pathval "^1.1.1" type-detect "^4.0.5" -chalk@4.1.2: +chalk@4.1.2, chalk@^4.1.0: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -900,6 +1477,15 @@ chalk@4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chalk@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz" @@ -928,6 +1514,21 @@ chokidar@3.5.1: optionalDependencies: fsevents "~2.3.1" +chokidar@3.5.3, chokidar@^3.4.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chokidar@^3.4.3: version "3.5.2" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" @@ -943,6 +1544,16 @@ chokidar@^3.4.3: optionalDependencies: fsevents "~2.3.2" +chownr@^1.0.1, chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" @@ -951,6 +1562,22 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +classic-level@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8" + integrity sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.0" + module-error "^1.0.1" + napi-macros "^2.2.2" + node-gyp-build "^4.3.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + cliui@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" @@ -993,6 +1620,16 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +command-exists@^1.2.8: + version "1.2.9" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== + +commander@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" + integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== + commander@^6.1.0: version "6.2.1" resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" @@ -1003,6 +1640,39 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +concat-stream@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +cookie@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cpu-features@~0.0.4: + version "0.0.6" + resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.6.tgz#607e82a4d563343f64b7dd90a33f2b1d821214b5" + integrity sha512-Rj33pk//oVNh25YjsBaKtOkXNW7IARYxejWJosJkXqVPpbK+FrdpThPk6f4m3d+CEh2qMlkGx/SFt2Y1XSWN6g== + dependencies: + buildcheck "0.0.5" + nan "^2.17.0" + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" @@ -1042,6 +1712,13 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" +debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.3: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + debug@4.3.1: version "4.3.1" resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" @@ -1049,6 +1726,13 @@ debug@4.3.1: dependencies: ms "2.1.2" +debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + decamelize@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" @@ -1071,6 +1755,11 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + diff@5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" @@ -1081,6 +1770,44 @@ diff@^4.0.1: resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +docker-modem@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-1.0.9.tgz#a1f13e50e6afb6cf3431b2d5e7aac589db6aaba8" + integrity sha512-lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw== + dependencies: + JSONStream "1.3.2" + debug "^3.2.6" + readable-stream "~1.0.26-4" + split-ca "^1.0.0" + +docker-modem@^3.0.0: + version "3.0.8" + resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-3.0.8.tgz#ef62c8bdff6e8a7d12f0160988c295ea8705e77a" + integrity sha512-f0ReSURdM3pcKPNS30mxOHSbaFLcknGmQjwSfmbcdOw1XWKXVhukM3NJHhr7NpY9BIyyWQb0EBo3KQvvuU5egQ== + dependencies: + debug "^4.1.1" + readable-stream "^3.5.0" + split-ca "^1.0.1" + ssh2 "^1.11.0" + +dockerode@^2.5.8: + version "2.5.8" + resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-2.5.8.tgz#1b661e36e1e4f860e25f56e0deabe9f87f1d0acc" + integrity sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw== + dependencies: + concat-stream "~1.6.2" + docker-modem "^1.0.8" + tar-fs "~1.16.3" + +dockerode@^3.3.4: + version "3.3.5" + resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-3.3.5.tgz#7ae3f40f2bec53ae5e9a741ce655fff459745629" + integrity sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA== + dependencies: + "@balena/dockerignore" "^1.0.2" + docker-modem "^3.0.0" + tar-fs "~2.0.1" + elliptic@6.5.4, elliptic@^6.5.2: version "6.5.4" resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" @@ -1104,13 +1831,25 @@ emoji-regex@^8.0.0: resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -end-of-stream@^1.1.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" +enquirer@^2.3.0: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + escalade@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" @@ -1121,7 +1860,12 @@ escape-string-regexp@4.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -ethereum-cryptography@^0.1.3: +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: version "0.1.3" resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== @@ -1142,7 +1886,25 @@ ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereumjs-util@6.2.1: +ethereum-cryptography@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz#5ccfa183e85fdaf9f9b299a79430c044268c9b3a" + integrity sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw== + dependencies: + "@noble/hashes" "1.2.0" + "@noble/secp256k1" "1.7.1" + "@scure/bip32" "1.1.5" + "@scure/bip39" "1.1.1" + +ethereumjs-abi@^0.6.8: + version "0.6.8" + resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" + integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== + dependencies: + bn.js "^4.11.8" + ethereumjs-util "^6.0.0" + +ethereumjs-util@6.2.1, ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: version "6.2.1" resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== @@ -1155,7 +1917,7 @@ ethereumjs-util@6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethers@5: +ethers@5, ethers@^5.7.1: version "5.7.2" resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -1191,7 +1953,7 @@ ethers@5: "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" -ethjs-util@0.1.6: +ethjs-util@0.1.6, ethjs-util@^0.1.6: version "0.1.6" resolved "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz" integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== @@ -1199,6 +1961,11 @@ ethjs-util@0.1.6: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" @@ -1235,6 +2002,13 @@ find-up@5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" @@ -1247,6 +2021,46 @@ flat@^5.0.2: resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== +follow-redirects@^1.12.1: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +fp-ts@1.19.3: + version "1.19.3" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f" + integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== + +fp-ts@^1.0.0: + version "1.19.5" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" + integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" @@ -1257,6 +2071,16 @@ fsevents@~2.3.1, fsevents@~2.3.2: resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +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 sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + ganache-cli@^6.10.1: version "6.12.2" resolved "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz" @@ -1276,6 +2100,15 @@ get-func-name@^2.0.0: resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= +get-intrinsic@^1.0.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" + integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + get-stream@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" @@ -1302,11 +2135,45 @@ glob@7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +glob@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + growl@1.10.5: version "1.10.5" resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== +hardhat-dependency-compiler@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hardhat-dependency-compiler/-/hardhat-dependency-compiler-1.1.3.tgz#1e49e23f68878bd713f860c66648a711bc4a4a79" + integrity sha512-bCDqsOxGST6WkbMvj4lPchYWidNSSBm5CFnkyAex1T11cGmr9otZTGl81W6f9pmrtBXbKCvr3OSuNJ6Q394sAw== + hardhat-watcher@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/hardhat-watcher/-/hardhat-watcher-2.1.1.tgz" @@ -1314,11 +2181,84 @@ hardhat-watcher@^2.1.1: dependencies: chokidar "^3.4.3" +hardhat@^2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.14.0.tgz#b60c74861494aeb1b50803cf04cc47865a42b87a" + integrity sha512-73jsInY4zZahMSVFurSK+5TNCJTXMv+vemvGia0Ac34Mm19fYp6vEPVGF3sucbumszsYxiTT2TbS8Ii2dsDSoQ== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@metamask/eth-sig-util" "^4.0.0" + "@nomicfoundation/ethereumjs-block" "5.0.1" + "@nomicfoundation/ethereumjs-blockchain" "7.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-evm" "2.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-statemanager" "2.0.1" + "@nomicfoundation/ethereumjs-trie" "6.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-vm" "7.0.1" + "@nomicfoundation/solidity-analyzer" "^0.1.0" + "@sentry/node" "^5.18.1" + "@types/bn.js" "^5.1.0" + "@types/lru-cache" "^5.1.0" + abort-controller "^3.0.0" + adm-zip "^0.4.16" + aggregate-error "^3.0.0" + ansi-escapes "^4.3.0" + chalk "^2.4.2" + chokidar "^3.4.0" + ci-info "^2.0.0" + debug "^4.1.1" + enquirer "^2.3.0" + env-paths "^2.2.0" + ethereum-cryptography "^1.0.3" + ethereumjs-abi "^0.6.8" + find-up "^2.1.0" + fp-ts "1.19.3" + fs-extra "^7.0.1" + glob "7.2.0" + immutable "^4.0.0-rc.12" + io-ts "1.10.4" + keccak "^3.0.2" + lodash "^4.17.11" + mnemonist "^0.38.0" + mocha "^10.0.0" + p-map "^4.0.0" + qs "^6.7.0" + raw-body "^2.4.1" + resolve "1.17.0" + semver "^6.3.0" + solc "0.7.3" + source-map-support "^0.5.13" + stacktrace-parser "^0.1.10" + tsort "0.0.1" + undici "^5.14.0" + uuid "^8.3.2" + ws "^7.4.6" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + has-flag@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + hash-base@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" @@ -1350,11 +2290,52 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + immer@^7.0.8: version "7.0.15" resolved "https://registry.npmjs.org/immer/-/immer-7.0.15.tgz" integrity sha512-yM7jo9+hvYgvdCQdqvhCNRRio0SCXc8xDPzA25SvKWa7b1WVPjLwQs1VYU5JPXjcJPTqAa5NP5dqpORGYBQ2AA== +immutable@^4.0.0-rc.12: + version "4.3.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" + integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" @@ -1363,7 +2344,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1373,6 +2354,13 @@ invert-kv@^2.0.0: resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== +io-ts@1.10.4: + version "1.10.4" + resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" + integrity sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g== + dependencies: + fp-ts "^1.0.0" + is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -1380,6 +2368,11 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-buffer@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" @@ -1422,11 +2415,31 @@ is-stream@^1.1.0: resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +js-sdsl@^4.1.4: + version "4.4.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" + integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== + js-sha3@0.8.0: version "0.8.0" resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" @@ -1439,12 +2452,38 @@ js-yaml@4.0.0: dependencies: argparse "^2.0.1" +js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbi@^3.1.4: version "3.1.4" resolved "https://registry.npmjs.org/jsbi/-/jsbi-3.1.4.tgz" integrity sha512-52QRRFSsi9impURE8ZUbzAMCLjPm4THO7H2fcuIvaaeFTbSysvkodbQQXIVsNgq/ypDbq6dJiuGKL0vZ/i9hUg== -keccak@^3.0.0: +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +keccak@^3.0.0, keccak@^3.0.2: version "3.0.3" resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz" integrity sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ== @@ -1453,6 +2492,13 @@ keccak@^3.0.0: node-gyp-build "^4.2.0" readable-stream "^3.6.0" +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== + optionalDependencies: + graceful-fs "^4.1.9" + lcid@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz" @@ -1460,6 +2506,35 @@ lcid@^2.0.0: dependencies: invert-kv "^2.0.0" +level-supports@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" + integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== + +level-transcoder@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" + integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== + dependencies: + buffer "^6.0.3" + module-error "^1.0.1" + +level@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" + integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== + dependencies: + browser-level "^1.0.1" + classic-level "^1.2.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" @@ -1475,6 +2550,11 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash@^4.17.11: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + log-symbols@4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz" @@ -1482,6 +2562,26 @@ log-symbols@4.0.0: dependencies: chalk "^4.0.0" +log-symbols@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru_map@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" + integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== + make-error@^1.1.1: version "1.3.6" resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" @@ -1494,6 +2594,11 @@ map-age-cleaner@^0.1.1: dependencies: p-defer "^1.0.0" +mcl-wasm@^0.7.1: + version "0.7.9" + resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" + integrity sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ== + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" @@ -1512,6 +2617,20 @@ mem@^4.0.0: mimic-fn "^2.0.0" p-is-promise "^2.0.0" +memory-level@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" + integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== + dependencies: + abstract-level "^1.0.0" + functional-red-black-tree "^1.0.1" + module-error "^1.0.1" + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== + mimic-fn@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" @@ -1534,6 +2653,71 @@ minimatch@3.0.4, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mkdirp-classic@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mnemonist@^0.38.0: + version "0.38.5" + resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" + integrity sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg== + dependencies: + obliterator "^2.0.0" + +mocha@^10.0.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + nanoid "3.3.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + mocha@^8.1.3: version "8.3.1" resolved "https://registry.npmjs.org/mocha/-/mocha-8.3.1.tgz" @@ -1565,21 +2749,41 @@ mocha@^8.1.3: yargs-parser "20.2.4" yargs-unparser "2.0.0" +module-error@^1.0.1, module-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" + integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== + ms@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.1.1: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +nan@^2.16.0, nan@^2.17.0: + version "2.17.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" + integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== + nanoid@3.1.20: version "3.1.20" resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz" integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== + +napi-macros@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044" + integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g== + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" @@ -1590,7 +2794,14 @@ node-addon-api@^2.0.0: resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-gyp-build@^4.2.0: +node-fetch@^2.6.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" + integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== + dependencies: + whatwg-url "^5.0.0" + +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: version "4.6.0" resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz" integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== @@ -1607,6 +2818,16 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +obliterator@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" + integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" @@ -1627,6 +2848,11 @@ os-locale@^3.1.0: lcid "^2.0.0" mem "^4.0.0" +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + p-defer@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz" @@ -1642,6 +2868,13 @@ p-is-promise@^2.0.0: resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + p-limit@^2.0.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" @@ -1656,6 +2889,13 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" @@ -1670,6 +2910,18 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + p-try@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" @@ -1695,6 +2947,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + pathval@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" @@ -1721,6 +2978,19 @@ prettier@^2.1.1: resolved "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz" integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +pump@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + pump@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" @@ -1729,6 +2999,18 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +qs@^6.7.0: + version "6.11.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" + integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== + dependencies: + side-channel "^1.0.4" + +queue-microtask@^1.2.2, queue-microtask@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" @@ -1736,6 +3018,38 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" +raw-body@^2.4.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" @@ -1745,6 +3059,16 @@ readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@~1.0.26-4: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readdirp@~3.5.0: version "3.5.0" resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz" @@ -1764,11 +3088,30 @@ require-directory@^2.1.1: resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== +resolve@1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +rimraf@^2.2.8: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" @@ -1784,11 +3127,33 @@ rlp@^2.2.3: dependencies: bn.js "^4.11.1" +run-parallel-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" + integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== + 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== + safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + scrypt-js@3.0.1, scrypt-js@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" @@ -1808,6 +3173,11 @@ semver@^5.5.0: resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + serialize-javascript@5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz" @@ -1815,6 +3185,13 @@ serialize-javascript@5.0.1: dependencies: randombytes "^2.1.0" +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" @@ -1825,6 +3202,11 @@ setimmediate@^1.0.5: resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" @@ -1845,11 +3227,35 @@ shebang-regex@^1.0.0: resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + signal-exit@^3.0.0: version "3.0.3" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +solc@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" + integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== + 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" + source-map-support@0.5.12: version "0.5.12" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz" @@ -1858,7 +3264,7 @@ source-map-support@0.5.12: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@^0.5.17: +source-map-support@^0.5.13, source-map-support@^0.5.17: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -1871,6 +3277,39 @@ source-map@^0.6.0: resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +split-ca@^1.0.0, split-ca@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" + integrity sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ== + +ssh2@^1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.11.0.tgz#ce60186216971e12f6deb553dcf82322498fe2e4" + integrity sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw== + dependencies: + asn1 "^0.2.4" + bcrypt-pbkdf "^1.0.2" + optionalDependencies: + cpu-features "~0.0.4" + nan "^2.16.0" + +stacktrace-parser@^0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" + integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== + dependencies: + type-fest "^0.7.1" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + "string-width@^1.0.2 || 2": version "2.1.1" resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" @@ -1904,6 +3343,18 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" @@ -1949,6 +3400,13 @@ supports-color@8.1.1: dependencies: has-flag "^4.0.0" +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" @@ -1966,6 +3424,55 @@ supports-color@^7.1.0: "@uniswap/v3-periphery" "1.3.0" hardhat-watcher "^2.1.1" +tar-fs@~1.16.3: + version "1.16.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== + dependencies: + chownr "^1.0.1" + mkdirp "^0.5.1" + pump "^1.0.0" + tar-stream "^1.1.2" + +tar-fs@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" + integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.0.0" + +tar-stream@^1.1.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +tar-stream@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +"through@>=2.2.7 <3": + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + tiny-invariant@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz" @@ -1976,6 +3483,18 @@ tiny-warning@^1.0.3: resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== +tmp@0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -1988,6 +3507,16 @@ toformat@^2.0.0: resolved "https://registry.npmjs.org/toformat/-/toformat-2.0.0.tgz" integrity sha512-03SWBVop6nU8bpyZCx7SodpYznbZF5R4ljwNLBcTQzKOD9xuihRo/psX58llS1BMFhhAI08H3luot5GoXJz2pQ== +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + ts-node@^9.0.0: version "9.1.1" resolved "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz" @@ -2000,25 +3529,98 @@ ts-node@^9.0.0: source-map-support "^0.5.17" yn "3.1.1" +tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsort@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" + integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== + +tweetnacl-util@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" + integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== + +tweetnacl@^0.14.3: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" + integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + typescript@^4.0.2: version "4.2.3" resolved "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz" integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== -util-deprecate@^1.0.1: +undici@^5.14.0: + version "5.21.2" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.21.2.tgz#329f628aaea3f1539a28b9325dccc72097d29acd" + integrity sha512-f6pTQ9RF4DQtwoWSaC42P/NKlUjvezVvd9r155ohqkwFNRyBKM3f3pcty3ouusefNRyM25XhIQEbeQ46sZDJfQ== + dependencies: + busboy "^1.6.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + "v3-core@https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era": version "1.0.0" resolved "git+ssh://git@github.com/AntonD3/v3-core.git#4afb5445a26ff4ff55549aae25d567b724703a98" +"v3-periphery-1_3_0@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era": + version "1.3.0" + resolved "https://github.com/AntonD3/v3-periphery.git#a2c0aafba2e82c82a045c1ecba0ee3d9dafd08e6" + dependencies: + "@openzeppelin/contracts" "3.4.1-solc-0.7-2" + "@uniswap/lib" "^4.0.1-alpha" + "@uniswap/v2-core" "1.0.1" + "@uniswap/v3-core" "1.0.0" + base64-sol "1.0.1" + hardhat-watcher "^2.1.1" + "v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era": version "1.1.1" resolved "git+ssh://git@github.com/AntonD3/v3-periphery.git#e786658ea888e8770503f0257015d8d5db8eccbc" @@ -2038,6 +3640,19 @@ util-deprecate@^1.0.1: "@uniswap/v3-core" "1.0.0" "@uniswap/v3-periphery" "^1.0.1" +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" @@ -2069,6 +3684,11 @@ workerpool@6.1.0: resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz" integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" @@ -2097,6 +3717,16 @@ ws@7.4.6: resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +ws@^7.4.6: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" @@ -2107,6 +3737,11 @@ y18n@^5.0.5: resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yargs-parser@20.2.4, yargs-parser@^20.2.2: version "20.2.4" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" From 5adab3e8e2d9da38c02c348f2a62539d1e3f9602 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Thu, 20 Apr 2023 09:17:55 +0100 Subject: [PATCH 03/20] factory deps --- hardhat.config.ts | 8 +++-- index.ts | 20 ++++++++----- src/steps/deploy-multicall2.ts | 3 +- .../deploy-nft-position-descriptor-v1_3_0.ts | 1 + .../deploy-nonfungible-position-manager.ts | 3 +- src/steps/deploy-proxy-admin.ts | 3 +- src/steps/deploy-quoter-v2.ts | 3 +- src/steps/deploy-tick-lens.ts | 3 +- .../deploy-transparent-proxy-descriptor.ts | 3 +- src/steps/deploy-v3-core-factory.ts | 6 ++-- src/steps/deploy-v3-migrator.ts | 3 +- src/steps/deploy-v3-staker.ts | 3 +- src/steps/deploy-v3-swap-router-02.ts | 3 +- src/steps/meta/createDeployContractStep.ts | 30 ++++++++----------- 14 files changed, 53 insertions(+), 39 deletions(-) diff --git a/hardhat.config.ts b/hardhat.config.ts index 0f1e73d..d2ec31e 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -2,7 +2,6 @@ import '@matterlabs/hardhat-zksync-solc' import 'hardhat-dependency-compiler' export default { - defaultNetwork: 'zkSyncTestnet', networks: { hardhat: { allowUnlimitedContractSize: false, @@ -13,6 +12,11 @@ export default { ethNetwork: `https://goerli.infura.io/v3/${process.env.INFURA_API_KEY}`, zksync: true, }, + zkSyncLocalhost: { + url: "http://localhost:3050", + ethNetwork: "http://localhost:8545", + zksync: true, + } }, solidity: { version: '0.7.6', @@ -32,7 +36,7 @@ export default { }, dependencyCompiler: { paths: [ - 'v3-periphery-1_3_0/contracts/NonfungibleTokenPositionDescriptor.sol', + 'v3-core/contracts/UniswapV3Factory.sol', ], }, } diff --git a/index.ts b/index.ts index 9bc44aa..d2de117 100644 --- a/index.ts +++ b/index.ts @@ -6,22 +6,25 @@ import fs from 'fs' import deploy from './src/deploy' import { MigrationState } from './src/migrations' import { asciiStringToBytes32 } from './src/util/asciiStringToBytes32' +const hre = require("hardhat") -const privateKey: string =// 0x... +// TODO: think how to pass args +const privateKey: string = '0xac1e735be8536c6534bb4f17f06f6afc73b2b5ba84ac2cfb12f7461b20c0bbe3' -const url: URL =// new URL('http://localhost:3050') +// TODO: think how to sync url with hardhat env +const url: URL = new URL('http://localhost:3050') -const gasPrice: number | undefined =// undefined +const gasPrice: number | undefined = undefined -const nativeCurrencyLabelBytes: string =// asciiStringToBytes32('ETH') +const nativeCurrencyLabelBytes: string = asciiStringToBytes32('ETH') -const weth9Address: string =// getAddress('0xa61464658AfeAf65CccaaFD3a512b69A83B77618') +const weth9Address: string = getAddress('0xa61464658AfeAf65CccaaFD3a512b69A83B77618') -const v2CoreFactoryAddress: string =// AddressZero +const v2CoreFactoryAddress: string = AddressZero -const ownerAddress: string =// getAddress('0x36615Cf349d7F6344891B1e7CA7C72883F5dc049') +const ownerAddress: string = getAddress('0x36615Cf349d7F6344891B1e7CA7C72883F5dc049') -const statePath: string =// './state.json' +const statePath: string = './state.json' const wallet = new Wallet(privateKey, new Provider({ url: url.href })) @@ -66,6 +69,7 @@ async function run() { await Promise.all( result.map( async (stepResult): Promise => { + // TODO: think about confirmations if (stepResult.hash) { return await wallet._providerL2().getTransaction(stepResult.hash); } else { diff --git a/src/steps/deploy-multicall2.ts b/src/steps/deploy-multicall2.ts index 95396a4..d855622 100644 --- a/src/steps/deploy-multicall2.ts +++ b/src/steps/deploy-multicall2.ts @@ -1,9 +1,10 @@ import UniswapInterfaceMulticall from 'v3-periphery/artifacts-zk/contracts/lens/UniswapInterfaceMulticall.sol/UniswapInterfaceMulticall.json' import createDeployContractStep from './meta/createDeployContractStep' +import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; export const DEPLOY_MULTICALL2 = createDeployContractStep({ key: 'multicall2Address', async computeArtifact() { - return UniswapInterfaceMulticall + return UniswapInterfaceMulticall as ZkSyncArtifact } }) diff --git a/src/steps/deploy-nft-position-descriptor-v1_3_0.ts b/src/steps/deploy-nft-position-descriptor-v1_3_0.ts index 8c00bc3..5825abe 100644 --- a/src/steps/deploy-nft-position-descriptor-v1_3_0.ts +++ b/src/steps/deploy-nft-position-descriptor-v1_3_0.ts @@ -12,6 +12,7 @@ export const DEPLOY_NFT_POSITION_DESCRIPTOR_V1_3_0 = createDeployContractStep({ NFTDescriptor: state.nftDescriptorLibraryAddressV1_3_0, }, } + hre.config.dependencyCompiler.paths = ['v3-periphery-1_3_0/contracts/NonfungibleTokenPositionDescriptor.sol'] await hre.run("compile") return hre.artifacts.readArtifactSync('NonfungibleTokenPositionDescriptor') }, diff --git a/src/steps/deploy-nonfungible-position-manager.ts b/src/steps/deploy-nonfungible-position-manager.ts index f026147..d9ec18a 100644 --- a/src/steps/deploy-nonfungible-position-manager.ts +++ b/src/steps/deploy-nonfungible-position-manager.ts @@ -1,10 +1,11 @@ import NonfungiblePositionManager from 'v3-periphery/artifacts-zk/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json' import createDeployContractStep from './meta/createDeployContractStep' +import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; export const DEPLOY_NONFUNGIBLE_POSITION_MANAGER = createDeployContractStep({ key: 'nonfungibleTokenPositionManagerAddress', async computeArtifact() { - return NonfungiblePositionManager + return NonfungiblePositionManager as ZkSyncArtifact }, computeArguments(state, config) { if (state.v3CoreFactoryAddress === undefined) { diff --git a/src/steps/deploy-proxy-admin.ts b/src/steps/deploy-proxy-admin.ts index 98bff11..9834ddc 100644 --- a/src/steps/deploy-proxy-admin.ts +++ b/src/steps/deploy-proxy-admin.ts @@ -1,9 +1,10 @@ import ProxyAdmin from 'openzeppelin-contracts/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' import createDeployContractStep from './meta/createDeployContractStep' +import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; export const DEPLOY_PROXY_ADMIN = createDeployContractStep({ key: 'proxyAdminAddress', async computeArtifact() { - return ProxyAdmin + return ProxyAdmin as ZkSyncArtifact }, }) diff --git a/src/steps/deploy-quoter-v2.ts b/src/steps/deploy-quoter-v2.ts index b3099f2..d52c7a0 100644 --- a/src/steps/deploy-quoter-v2.ts +++ b/src/steps/deploy-quoter-v2.ts @@ -1,10 +1,11 @@ import QuoterV2 from 'swap-router-contracts/artifacts-zk/contracts/lens/QuoterV2.sol/QuoterV2.json' import createDeployContractStep from './meta/createDeployContractStep' +import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; export const DEPLOY_QUOTER_V2 = createDeployContractStep({ key: 'quoterV2Address', async computeArtifact() { - return QuoterV2 + return QuoterV2 as ZkSyncArtifact }, computeArguments(state, config) { if (state.v3CoreFactoryAddress === undefined) { diff --git a/src/steps/deploy-tick-lens.ts b/src/steps/deploy-tick-lens.ts index 65f8347..181e550 100644 --- a/src/steps/deploy-tick-lens.ts +++ b/src/steps/deploy-tick-lens.ts @@ -1,9 +1,10 @@ import TickLens from 'v3-periphery/artifacts-zk/contracts/lens/TickLens.sol/TickLens.json' import createDeployContractStep from './meta/createDeployContractStep' +import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; export const DEPLOY_TICK_LENS = createDeployContractStep({ key: 'tickLensAddress', async computeArtifact() { - return TickLens + return TickLens as ZkSyncArtifact }, }) diff --git a/src/steps/deploy-transparent-proxy-descriptor.ts b/src/steps/deploy-transparent-proxy-descriptor.ts index 79453fc..4a64b27 100644 --- a/src/steps/deploy-transparent-proxy-descriptor.ts +++ b/src/steps/deploy-transparent-proxy-descriptor.ts @@ -1,10 +1,11 @@ import TransparentUpgradeableProxy from 'openzeppelin-contracts/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json' import createDeployContractStep from './meta/createDeployContractStep' +import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; export const DEPLOY_TRANSPARENT_PROXY_DESCRIPTOR = createDeployContractStep({ key: 'descriptorProxyAddress', async computeArtifact() { - return TransparentUpgradeableProxy + return TransparentUpgradeableProxy as ZkSyncArtifact }, computeArguments(state) { if (state.nonfungibleTokenPositionDescriptorAddressV1_3_0 === undefined) { diff --git a/src/steps/deploy-v3-core-factory.ts b/src/steps/deploy-v3-core-factory.ts index 339610c..f6af3bd 100644 --- a/src/steps/deploy-v3-core-factory.ts +++ b/src/steps/deploy-v3-core-factory.ts @@ -1,9 +1,11 @@ -import UniswapV3Factory from 'v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' +import UniswapV3Factory from '../../artifacts-zk/v3-core/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' import createDeployContractStep from './meta/createDeployContractStep' +import { ZkSyncArtifact } from "@matterlabs/hardhat-zksync-deploy/src/types"; export const DEPLOY_V3_CORE_FACTORY = createDeployContractStep({ key: 'v3CoreFactoryAddress', async computeArtifact() { - return UniswapV3Factory + // TODO: think about factory deps without compiling in the current context + return UniswapV3Factory as ZkSyncArtifact }, }) diff --git a/src/steps/deploy-v3-migrator.ts b/src/steps/deploy-v3-migrator.ts index 37cee9b..c57e0e3 100644 --- a/src/steps/deploy-v3-migrator.ts +++ b/src/steps/deploy-v3-migrator.ts @@ -1,10 +1,11 @@ import V3Migrator from 'v3-periphery/artifacts-zk/contracts/V3Migrator.sol/V3Migrator.json' import createDeployContractStep from './meta/createDeployContractStep' +import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; export const DEPLOY_V3_MIGRATOR = createDeployContractStep({ key: 'v3MigratorAddress', async computeArtifact() { - return V3Migrator + return V3Migrator as ZkSyncArtifact }, computeArguments(state, config) { if (state.v3CoreFactoryAddress === undefined) { diff --git a/src/steps/deploy-v3-staker.ts b/src/steps/deploy-v3-staker.ts index 13d2aed..655ff86 100644 --- a/src/steps/deploy-v3-staker.ts +++ b/src/steps/deploy-v3-staker.ts @@ -1,5 +1,6 @@ import UniswapV3Staker from 'v3-staker/artifacts-zk/contracts/UniswapV3Staker.sol/UniswapV3Staker.json' import createDeployContractStep from './meta/createDeployContractStep' +import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; const ONE_MINUTE_SECONDS = 60 const ONE_HOUR_SECONDS = ONE_MINUTE_SECONDS * 60 @@ -15,7 +16,7 @@ const MAX_INCENTIVE_DURATION = ONE_YEAR_SECONDS * 2 export const DEPLOY_V3_STAKER = createDeployContractStep({ key: 'v3StakerAddress', async computeArtifact() { - return UniswapV3Staker + return UniswapV3Staker as ZkSyncArtifact }, computeArguments(state) { if (state.v3CoreFactoryAddress === undefined) { diff --git a/src/steps/deploy-v3-swap-router-02.ts b/src/steps/deploy-v3-swap-router-02.ts index 1e987ec..493c8eb 100644 --- a/src/steps/deploy-v3-swap-router-02.ts +++ b/src/steps/deploy-v3-swap-router-02.ts @@ -1,10 +1,11 @@ import SwapRouter02 from 'swap-router-contracts/artifacts-zk/contracts/SwapRouter02.sol/SwapRouter02.json' import createDeployContractStep from './meta/createDeployContractStep' +import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; export const DEPLOY_V3_SWAP_ROUTER_02 = createDeployContractStep({ key: 'swapRouter02', async computeArtifact() { - return SwapRouter02 + return SwapRouter02 as ZkSyncArtifact }, computeArguments(state, config) { if (state.v3CoreFactoryAddress === undefined) { diff --git a/src/steps/meta/createDeployContractStep.ts b/src/steps/meta/createDeployContractStep.ts index adbc3dd..17a6f34 100644 --- a/src/steps/meta/createDeployContractStep.ts +++ b/src/steps/meta/createDeployContractStep.ts @@ -1,8 +1,11 @@ import { ContractInterface } from '@ethersproject/contracts' import { Contract, ContractFactory } from 'zksync-web3' +import { Deployer } from '@matterlabs/hardhat-zksync-deploy' +import { ZkSyncArtifact } from "@matterlabs/hardhat-zksync-deploy/dist/types"; import { MigrationConfig, MigrationState, MigrationStep } from '../../migrations' +const hre = require("hardhat") -type ConstructorArgs = (string | number | string[] | number[])[] +type ConstructorArgs = (string | number)[] export default function createDeployContractStep({ key, @@ -10,34 +13,25 @@ export default function createDeployContractStep({ computeArguments, }: { key: keyof MigrationState - computeArtifact: (state: Readonly, config: MigrationConfig) => Promise<{ - contractName: string - abi: ContractInterface - bytecode: string - linkReferences?: { [fileName: string]: { [contractName: string]: { length: number; start: number }[] } } - }> + computeArtifact: (state: Readonly, config: MigrationConfig) => Promise computeArguments?: (state: Readonly, config: MigrationConfig) => ConstructorArgs }): MigrationStep { return async (state, config) => { - const { contractName, abi, bytecode, linkReferences } = await computeArtifact(state, config) + const artifact = await computeArtifact(state, config) if (state[key] === undefined) { const constructorArgs: ConstructorArgs = computeArguments ? computeArguments(state, config) : [] - if (linkReferences && Object.keys(linkReferences).length > 0) { + if (artifact.linkReferences && Object.keys(artifact.linkReferences).length > 0) { throw new Error('Missing function to compute library addresses') } - const factory = new ContractFactory( - abi, - bytecode, - config.signer - ) + const deployer = new Deployer(hre, config.signer) let contract: Contract try { - contract = await factory.deploy(...constructorArgs, { gasPrice: config.gasPrice }) + contract = await deployer.deploy(artifact, constructorArgs, { gasPrice: config.gasPrice }) } catch (error) { - console.error(`Failed to deploy ${contractName}`) + console.error(`Failed to deploy ${artifact.contractName}`) throw error } @@ -45,13 +39,13 @@ export default function createDeployContractStep({ return [ { - message: `Contract ${contractName} deployed`, + message: `Contract ${artifact.contractName} deployed`, address: contract.address, hash: contract.deployTransaction.hash, }, ] } else { - return [{ message: `Contract ${contractName} was already deployed`, address: state[key] }] + return [{ message: `Contract ${artifact.contractName} was already deployed`, address: state[key] }] } } } From 05aa5c2334ae51493e40f6ae25aa4ebde46127d4 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Wed, 26 Apr 2023 17:15:26 +0100 Subject: [PATCH 04/20] improvements --- hardhat.config.ts | 30 +-- index.ts | 195 +++++++++++------- src/steps/deploy-multicall2.ts | 6 +- .../deploy-nft-descriptor-library-v1_3_0.ts | 3 +- .../deploy-nft-position-descriptor-v1_3_0.ts | 11 +- .../deploy-nonfungible-position-manager.ts | 6 +- src/steps/deploy-proxy-admin.ts | 6 +- src/steps/deploy-quoter-v2.ts | 6 +- src/steps/deploy-tick-lens.ts | 6 +- .../deploy-transparent-proxy-descriptor.ts | 6 +- src/steps/deploy-v3-core-factory.ts | 13 +- src/steps/deploy-v3-migrator.ts | 6 +- src/steps/deploy-v3-staker.ts | 6 +- src/steps/deploy-v3-swap-router-02.ts | 6 +- src/steps/meta/createDeployContractStep.ts | 66 ++++-- src/steps/meta/createDeployLibraryStep.ts | 19 +- 16 files changed, 260 insertions(+), 131 deletions(-) diff --git a/hardhat.config.ts b/hardhat.config.ts index d2ec31e..13ee049 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,5 +1,21 @@ import '@matterlabs/hardhat-zksync-solc' import 'hardhat-dependency-compiler' +import { task } from 'hardhat/config' +import {deployV3} from './index' + +task('deploy-v3') + .addParam('privateKey', 'Private key used to deploy all contracts') + .addParam('jsonRpc', 'JSON RPC URL where the program should be deployed') + .addParam('weth9Address', 'Address of the WETH9 contract on this chain') + .addParam('nativeCurrencyLabel', 'Native currency label, e.g. ETH') + .addParam('ownerAddress', 'Contract address that will own the deployed artifacts after the script runs') + .addOptionalParam('state', 'Path to the JSON file containing the migrations state (optional)', './state.json') + .addOptionalParam('v2CoreFactoryAddress', 'The V2 core factory address used in the swap router (optional)') + .addOptionalParam('gasPrice', 'The gas price to pay in GWEI for each transaction (optional)') + .addOptionalParam('confirmations', 'How many confirmations to wait for after each transaction (optional)', '2') + .setAction(async (taskArgs) => { + await deployV3(taskArgs) + }) export default { networks: { @@ -7,16 +23,6 @@ export default { allowUnlimitedContractSize: false, zksync: true, }, - zkSyncTestnet: { - url: "https://testnet.era.zksync.dev", - ethNetwork: `https://goerli.infura.io/v3/${process.env.INFURA_API_KEY}`, - zksync: true, - }, - zkSyncLocalhost: { - url: "http://localhost:3050", - ethNetwork: "http://localhost:8545", - zksync: true, - } }, solidity: { version: '0.7.6', @@ -30,13 +36,13 @@ export default { }, }, zksolc: { - version: "1.3.9", + version: "1.3.10", compilerSource: "binary", settings: {}, }, dependencyCompiler: { paths: [ - 'v3-core/contracts/UniswapV3Factory.sol', + 'v3-periphery-1_3_0/contracts/NonfungibleTokenPositionDescriptor.sol', ], }, } diff --git a/index.ts b/index.ts index d2de117..2ed967a 100644 --- a/index.ts +++ b/index.ts @@ -1,99 +1,146 @@ import { Wallet, Provider } from 'zksync-web3' -import { TransactionResponse } from '@ethersproject/providers' +import { TransactionReceipt } from '@ethersproject/providers' import { AddressZero } from '@ethersproject/constants' import { getAddress } from '@ethersproject/address' import fs from 'fs' import deploy from './src/deploy' -import { MigrationState } from './src/migrations' +import {MigrationState, StepOutput} from './src/migrations' import { asciiStringToBytes32 } from './src/util/asciiStringToBytes32' -const hre = require("hardhat") -// TODO: think how to pass args -const privateKey: string = '0xac1e735be8536c6534bb4f17f06f6afc73b2b5ba84ac2cfb12f7461b20c0bbe3' - -// TODO: think how to sync url with hardhat env -const url: URL = new URL('http://localhost:3050') - -const gasPrice: number | undefined = undefined - -const nativeCurrencyLabelBytes: string = asciiStringToBytes32('ETH') +export async function deployV3(args: any) { + if (!/^0x[a-zA-Z0-9]{64}$/.test(args.privateKey)) { + console.error('Invalid private key!') + process.exit(1) + } -const weth9Address: string = getAddress('0xa61464658AfeAf65CccaaFD3a512b69A83B77618') + let url: URL + try { + url = new URL(args.jsonRpc) + } catch (error) { + console.error('Invalid JSON RPC URL', (error as Error).message) + process.exit(1) + } -const v2CoreFactoryAddress: string = AddressZero + let gasPrice: number | undefined + try { + gasPrice = args.gasPrice ? parseInt(args.gasPrice) : undefined + } catch (error) { + console.error('Failed to parse gas price', (error as Error).message) + process.exit(1) + } -const ownerAddress: string = getAddress('0x36615Cf349d7F6344891B1e7CA7C72883F5dc049') + let confirmations: number + try { + confirmations = parseInt(args.confirmations) + } catch (error) { + console.error('Failed to parse confirmations', (error as Error).message) + process.exit(1) + } -const statePath: string = './state.json' + let nativeCurrencyLabelBytes: string + try { + nativeCurrencyLabelBytes = asciiStringToBytes32(args.nativeCurrencyLabel) + } catch (error) { + console.error('Invalid native currency label', (error as Error).message) + process.exit(1) + } + let weth9Address: string + try { + weth9Address = getAddress(args.weth9Address) + } catch (error) { + console.error('Invalid WETH9 address', (error as Error).message) + process.exit(1) + } -const wallet = new Wallet(privateKey, new Provider({ url: url.href })) + let v2CoreFactoryAddress: string + if (typeof args.v2CoreFactoryAddress === 'undefined') { + v2CoreFactoryAddress = AddressZero + } else { + try { + v2CoreFactoryAddress = getAddress(args.v2CoreFactoryAddress) + } catch (error) { + console.error('Invalid V2 factory address', (error as Error).message) + process.exit(1) + } + } -let state: MigrationState -if (fs.existsSync(statePath)) { + let ownerAddress: string try { - state = JSON.parse(fs.readFileSync(statePath, { encoding: 'utf8' })) + ownerAddress = getAddress(args.ownerAddress) } catch (error) { - console.error('Failed to load and parse migration state file', (error as Error).message) + console.error('Invalid owner address', (error as Error).message) process.exit(1) } -} else { - state = {} -} - -let finalState: MigrationState -const onStateChange = async (newState: MigrationState): Promise => { - fs.writeFileSync(statePath, JSON.stringify(newState)) - finalState = newState -} - -async function run() { - let step = 1 - const results = [] - const generator = deploy({ - signer: wallet, - gasPrice, - nativeCurrencyLabelBytes, - v2CoreFactoryAddress, - ownerAddress, - weth9Address, - initialState: state, - onStateChange, - }) - - for await (const result of generator) { - console.log(`Step ${step++} complete`, result) - results.push(result) - - // wait 15 minutes for any transactions sent in the step - await Promise.all( - result.map( - async (stepResult): Promise => { - // TODO: think about confirmations - if (stepResult.hash) { - return await wallet._providerL2().getTransaction(stepResult.hash); - } else { - return Promise.resolve(true) - } - } - ) - ) + + const wallet = new Wallet(args.privateKey, new Provider({url: url.href})) + + let state: MigrationState + if (fs.existsSync(args.state)) { + try { + state = JSON.parse(fs.readFileSync(args.state, {encoding: 'utf8'})) + } catch (error) { + console.error('Failed to load and parse migration state file', (error as Error).message) + process.exit(1) + } + } else { + state = {} } - return results -} + let finalState: MigrationState + const onStateChange = async (newState: MigrationState): Promise => { + fs.writeFileSync(args.state, JSON.stringify(newState)) + finalState = newState + } -run() - .then((results) => { - console.log('Deployment succeeded') - console.log(JSON.stringify(results)) - console.log('Final state') - console.log(JSON.stringify(finalState)) - process.exit(0) - }) - .catch((error) => { + async function run() { + let step = 1 + const results = [] + const generator = deploy({ + signer: wallet, + gasPrice, + nativeCurrencyLabelBytes, + v2CoreFactoryAddress, + ownerAddress, + weth9Address, + initialState: state, + onStateChange, + }) + + for await (const result of generator) { + console.log(`Step ${step++} complete`, result) + results.push(result) + + // wait 15 minutes for any transactions sent in the step + await Promise.all( + result.map( + (stepResult): Promise => { + if (stepResult.hash) { + return wallet.provider.waitForTransaction(stepResult.hash, confirmations, /* 15 minutes */ 1000 * 60 * 15) + } else { + return Promise.resolve(true) + } + } + ) + ) + } + + return results + } + + let results: StepOutput[][] + try { + results = await run() + } catch (error) { console.error('Deployment failed', error) console.log('Final state') console.log(JSON.stringify(finalState)) process.exit(1) - }) + } + + console.log('Deployment succeeded') + console.log(JSON.stringify(results)) + console.log('Final state') + console.log(JSON.stringify(finalState)) + process.exit(0) +} \ No newline at end of file diff --git a/src/steps/deploy-multicall2.ts b/src/steps/deploy-multicall2.ts index d855622..823931c 100644 --- a/src/steps/deploy-multicall2.ts +++ b/src/steps/deploy-multicall2.ts @@ -1,10 +1,12 @@ import UniswapInterfaceMulticall from 'v3-periphery/artifacts-zk/contracts/lens/UniswapInterfaceMulticall.sol/UniswapInterfaceMulticall.json' import createDeployContractStep from './meta/createDeployContractStep' -import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' export const DEPLOY_MULTICALL2 = createDeployContractStep({ key: 'multicall2Address', async computeArtifact() { - return UniswapInterfaceMulticall as ZkSyncArtifact + return { + artifact: UniswapInterfaceMulticall as ZkSyncArtifact + } } }) diff --git a/src/steps/deploy-nft-descriptor-library-v1_3_0.ts b/src/steps/deploy-nft-descriptor-library-v1_3_0.ts index 2480874..d563b2f 100644 --- a/src/steps/deploy-nft-descriptor-library-v1_3_0.ts +++ b/src/steps/deploy-nft-descriptor-library-v1_3_0.ts @@ -1,7 +1,8 @@ import NFTDescriptor from 'v3-periphery-1_3_0/artifacts-zk/contracts/libraries/NFTDescriptor.sol/NFTDescriptor.json' import createDeployLibraryStep from './meta/createDeployLibraryStep' +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' export const DEPLOY_NFT_DESCRIPTOR_LIBRARY_V1_3_0 = createDeployLibraryStep({ key: 'nftDescriptorLibraryAddressV1_3_0', - artifact: NFTDescriptor, + artifact: NFTDescriptor as ZkSyncArtifact, }) diff --git a/src/steps/deploy-nft-position-descriptor-v1_3_0.ts b/src/steps/deploy-nft-position-descriptor-v1_3_0.ts index 5825abe..377120a 100644 --- a/src/steps/deploy-nft-position-descriptor-v1_3_0.ts +++ b/src/steps/deploy-nft-position-descriptor-v1_3_0.ts @@ -1,5 +1,4 @@ import createDeployContractStep from './meta/createDeployContractStep' -const hre = require("hardhat") export const DEPLOY_NFT_POSITION_DESCRIPTOR_V1_3_0 = createDeployContractStep({ key: 'nonfungibleTokenPositionDescriptorAddressV1_3_0', @@ -7,14 +6,16 @@ export const DEPLOY_NFT_POSITION_DESCRIPTOR_V1_3_0 = createDeployContractStep({ if (state.nftDescriptorLibraryAddressV1_3_0 === undefined) { throw new Error('NFTDescriptor library missing') } + const hre = require('hardhat') hre.config.zksolc.settings.libraries = { - "v3-periphery-1_3_0/contracts/libraries/NFTDescriptor.sol": { + 'v3-periphery-1_3_0/contracts/libraries/NFTDescriptor.sol': { NFTDescriptor: state.nftDescriptorLibraryAddressV1_3_0, }, } - hre.config.dependencyCompiler.paths = ['v3-periphery-1_3_0/contracts/NonfungibleTokenPositionDescriptor.sol'] - await hre.run("compile") - return hre.artifacts.readArtifactSync('NonfungibleTokenPositionDescriptor') + await hre.run('compile') + return { + artifact: hre.artifacts.readArtifactSync('NonfungibleTokenPositionDescriptor') + } }, computeArguments(_, { weth9Address, nativeCurrencyLabelBytes }) { return [weth9Address, nativeCurrencyLabelBytes] diff --git a/src/steps/deploy-nonfungible-position-manager.ts b/src/steps/deploy-nonfungible-position-manager.ts index d9ec18a..0a44171 100644 --- a/src/steps/deploy-nonfungible-position-manager.ts +++ b/src/steps/deploy-nonfungible-position-manager.ts @@ -1,11 +1,13 @@ import NonfungiblePositionManager from 'v3-periphery/artifacts-zk/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json' import createDeployContractStep from './meta/createDeployContractStep' -import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' export const DEPLOY_NONFUNGIBLE_POSITION_MANAGER = createDeployContractStep({ key: 'nonfungibleTokenPositionManagerAddress', async computeArtifact() { - return NonfungiblePositionManager as ZkSyncArtifact + return { + artifact: NonfungiblePositionManager as ZkSyncArtifact + } }, computeArguments(state, config) { if (state.v3CoreFactoryAddress === undefined) { diff --git a/src/steps/deploy-proxy-admin.ts b/src/steps/deploy-proxy-admin.ts index 9834ddc..3d8b0d7 100644 --- a/src/steps/deploy-proxy-admin.ts +++ b/src/steps/deploy-proxy-admin.ts @@ -1,10 +1,12 @@ import ProxyAdmin from 'openzeppelin-contracts/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' import createDeployContractStep from './meta/createDeployContractStep' -import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' export const DEPLOY_PROXY_ADMIN = createDeployContractStep({ key: 'proxyAdminAddress', async computeArtifact() { - return ProxyAdmin as ZkSyncArtifact + return { + artifact: ProxyAdmin as ZkSyncArtifact + } }, }) diff --git a/src/steps/deploy-quoter-v2.ts b/src/steps/deploy-quoter-v2.ts index d52c7a0..07c4a49 100644 --- a/src/steps/deploy-quoter-v2.ts +++ b/src/steps/deploy-quoter-v2.ts @@ -1,11 +1,13 @@ import QuoterV2 from 'swap-router-contracts/artifacts-zk/contracts/lens/QuoterV2.sol/QuoterV2.json' import createDeployContractStep from './meta/createDeployContractStep' -import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' export const DEPLOY_QUOTER_V2 = createDeployContractStep({ key: 'quoterV2Address', async computeArtifact() { - return QuoterV2 as ZkSyncArtifact + return { + artifact: QuoterV2 as ZkSyncArtifact + } }, computeArguments(state, config) { if (state.v3CoreFactoryAddress === undefined) { diff --git a/src/steps/deploy-tick-lens.ts b/src/steps/deploy-tick-lens.ts index 181e550..7bad3f7 100644 --- a/src/steps/deploy-tick-lens.ts +++ b/src/steps/deploy-tick-lens.ts @@ -1,10 +1,12 @@ import TickLens from 'v3-periphery/artifacts-zk/contracts/lens/TickLens.sol/TickLens.json' import createDeployContractStep from './meta/createDeployContractStep' -import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' export const DEPLOY_TICK_LENS = createDeployContractStep({ key: 'tickLensAddress', async computeArtifact() { - return TickLens as ZkSyncArtifact + return { + artifact: TickLens as ZkSyncArtifact + } }, }) diff --git a/src/steps/deploy-transparent-proxy-descriptor.ts b/src/steps/deploy-transparent-proxy-descriptor.ts index 4a64b27..2f4c964 100644 --- a/src/steps/deploy-transparent-proxy-descriptor.ts +++ b/src/steps/deploy-transparent-proxy-descriptor.ts @@ -1,11 +1,13 @@ import TransparentUpgradeableProxy from 'openzeppelin-contracts/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json' import createDeployContractStep from './meta/createDeployContractStep' -import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' export const DEPLOY_TRANSPARENT_PROXY_DESCRIPTOR = createDeployContractStep({ key: 'descriptorProxyAddress', async computeArtifact() { - return TransparentUpgradeableProxy as ZkSyncArtifact + return { + artifact: TransparentUpgradeableProxy as ZkSyncArtifact + } }, computeArguments(state) { if (state.nonfungibleTokenPositionDescriptorAddressV1_3_0 === undefined) { diff --git a/src/steps/deploy-v3-core-factory.ts b/src/steps/deploy-v3-core-factory.ts index f6af3bd..3ad3a88 100644 --- a/src/steps/deploy-v3-core-factory.ts +++ b/src/steps/deploy-v3-core-factory.ts @@ -1,11 +1,16 @@ -import UniswapV3Factory from '../../artifacts-zk/v3-core/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' +import UniswapV3Factory from 'v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' +import UniswapV3Pool from 'v3-core/artifacts-zk/contracts/UniswapV3Pool.sol/UniswapV3Pool.json' import createDeployContractStep from './meta/createDeployContractStep' -import { ZkSyncArtifact } from "@matterlabs/hardhat-zksync-deploy/src/types"; +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' export const DEPLOY_V3_CORE_FACTORY = createDeployContractStep({ key: 'v3CoreFactoryAddress', async computeArtifact() { - // TODO: think about factory deps without compiling in the current context - return UniswapV3Factory as ZkSyncArtifact + return { + artifact: UniswapV3Factory as ZkSyncArtifact, + factoryDepsArtifacts: [ + UniswapV3Pool as ZkSyncArtifact + ] + } }, }) diff --git a/src/steps/deploy-v3-migrator.ts b/src/steps/deploy-v3-migrator.ts index c57e0e3..4ea7583 100644 --- a/src/steps/deploy-v3-migrator.ts +++ b/src/steps/deploy-v3-migrator.ts @@ -1,11 +1,13 @@ import V3Migrator from 'v3-periphery/artifacts-zk/contracts/V3Migrator.sol/V3Migrator.json' import createDeployContractStep from './meta/createDeployContractStep' -import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' export const DEPLOY_V3_MIGRATOR = createDeployContractStep({ key: 'v3MigratorAddress', async computeArtifact() { - return V3Migrator as ZkSyncArtifact + return { + artifact: V3Migrator as ZkSyncArtifact + } }, computeArguments(state, config) { if (state.v3CoreFactoryAddress === undefined) { diff --git a/src/steps/deploy-v3-staker.ts b/src/steps/deploy-v3-staker.ts index 655ff86..8ee758f 100644 --- a/src/steps/deploy-v3-staker.ts +++ b/src/steps/deploy-v3-staker.ts @@ -1,6 +1,6 @@ import UniswapV3Staker from 'v3-staker/artifacts-zk/contracts/UniswapV3Staker.sol/UniswapV3Staker.json' import createDeployContractStep from './meta/createDeployContractStep' -import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' const ONE_MINUTE_SECONDS = 60 const ONE_HOUR_SECONDS = ONE_MINUTE_SECONDS * 60 @@ -16,7 +16,9 @@ const MAX_INCENTIVE_DURATION = ONE_YEAR_SECONDS * 2 export const DEPLOY_V3_STAKER = createDeployContractStep({ key: 'v3StakerAddress', async computeArtifact() { - return UniswapV3Staker as ZkSyncArtifact + return { + artifact: UniswapV3Staker as ZkSyncArtifact + } }, computeArguments(state) { if (state.v3CoreFactoryAddress === undefined) { diff --git a/src/steps/deploy-v3-swap-router-02.ts b/src/steps/deploy-v3-swap-router-02.ts index 493c8eb..c2ea4c4 100644 --- a/src/steps/deploy-v3-swap-router-02.ts +++ b/src/steps/deploy-v3-swap-router-02.ts @@ -1,11 +1,13 @@ import SwapRouter02 from 'swap-router-contracts/artifacts-zk/contracts/SwapRouter02.sol/SwapRouter02.json' import createDeployContractStep from './meta/createDeployContractStep' -import {ZkSyncArtifact} from "@matterlabs/hardhat-zksync-deploy/src/types"; +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' export const DEPLOY_V3_SWAP_ROUTER_02 = createDeployContractStep({ key: 'swapRouter02', async computeArtifact() { - return SwapRouter02 as ZkSyncArtifact + return { + artifact: SwapRouter02 as ZkSyncArtifact + } }, computeArguments(state, config) { if (state.v3CoreFactoryAddress === undefined) { diff --git a/src/steps/meta/createDeployContractStep.ts b/src/steps/meta/createDeployContractStep.ts index 17a6f34..d89a957 100644 --- a/src/steps/meta/createDeployContractStep.ts +++ b/src/steps/meta/createDeployContractStep.ts @@ -1,11 +1,9 @@ -import { ContractInterface } from '@ethersproject/contracts' -import { Contract, ContractFactory } from 'zksync-web3' -import { Deployer } from '@matterlabs/hardhat-zksync-deploy' -import { ZkSyncArtifact } from "@matterlabs/hardhat-zksync-deploy/dist/types"; +import * as zk from 'zksync-web3' +import * as ethers from 'ethers' +import { ZkSyncArtifact} from '@matterlabs/hardhat-zksync-deploy/src/types' import { MigrationConfig, MigrationState, MigrationStep } from '../../migrations' -const hre = require("hardhat") -type ConstructorArgs = (string | number)[] +type ConstructorArgs = (string | number | string[] | number[])[] export default function createDeployContractStep({ key, @@ -13,23 +11,42 @@ export default function createDeployContractStep({ computeArguments, }: { key: keyof MigrationState - computeArtifact: (state: Readonly, config: MigrationConfig) => Promise + computeArtifact: (state: Readonly, config: MigrationConfig) => Promise<{ + artifact: ZkSyncArtifact, + factoryDepsArtifacts?: ZkSyncArtifact[] + }> computeArguments?: (state: Readonly, config: MigrationConfig) => ConstructorArgs }): MigrationStep { return async (state, config) => { - const artifact = await computeArtifact(state, config) + let {artifact, factoryDepsArtifacts} = await computeArtifact(state, config) + factoryDepsArtifacts = factoryDepsArtifacts ? factoryDepsArtifacts : [] + if (state[key] === undefined) { const constructorArgs: ConstructorArgs = computeArguments ? computeArguments(state, config) : [] if (artifact.linkReferences && Object.keys(artifact.linkReferences).length > 0) { - throw new Error('Missing function to compute library addresses') + throw new Error('Link references should be empty for ZkSyncArtifact') } - const deployer = new Deployer(hre, config.signer) + const visited = new Set() + visited.add(`${artifact.sourceName}:${artifact.contractName}`) + let factoryDeps: string[] = extractFactoryDeps(artifact, factoryDepsArtifacts, visited) + + const factory = new zk.ContractFactory( + artifact.abi, + artifact.bytecode, + config.signer + ) - let contract: Contract + let contract: zk.Contract try { - contract = await deployer.deploy(artifact, constructorArgs, { gasPrice: config.gasPrice }) + contract = await factory.deploy(...constructorArgs, { + // TODO: check gas price + gasPrice: config.gasPrice, + customData: { + factoryDeps, + }, + }) } catch (error) { console.error(`Failed to deploy ${artifact.contractName}`) throw error @@ -49,3 +66,28 @@ export default function createDeployContractStep({ } } } + +function extractFactoryDeps(artifact: ZkSyncArtifact, knownArtifacts: ZkSyncArtifact[], visited: Set): string[] { + const factoryDeps: string[] = [] + + for (const dependencyHash in artifact.factoryDeps) { + const dependencyContract = artifact.factoryDeps[dependencyHash] + + if (!visited.has(dependencyContract)) { + const dependencyArtifact = knownArtifacts.find(dependencyArtifact => { + return dependencyArtifact.sourceName + ':' + dependencyArtifact.contractName === dependencyContract && + ethers.utils.hexlify(zk.utils.hashBytecode(dependencyArtifact.bytecode)) === dependencyHash + }) + if (dependencyArtifact === undefined) { + throw new Error('Dependency: `' + dependencyContract + '` is not found') + } + + factoryDeps.push(dependencyArtifact.bytecode) + visited.add(dependencyContract) + const transitiveDeps = extractFactoryDeps(dependencyArtifact, knownArtifacts, visited) + factoryDeps.push(...transitiveDeps) + } + } + + return factoryDeps +} \ No newline at end of file diff --git a/src/steps/meta/createDeployLibraryStep.ts b/src/steps/meta/createDeployLibraryStep.ts index 8430dfe..6ee54dd 100644 --- a/src/steps/meta/createDeployLibraryStep.ts +++ b/src/steps/meta/createDeployLibraryStep.ts @@ -1,30 +1,39 @@ import { ContractInterface } from '@ethersproject/contracts' import { ContractFactory } from 'zksync-web3' import { MigrationState, MigrationStep } from '../../migrations' +import {ZkSyncArtifact} from '@matterlabs/hardhat-zksync-deploy/src/types' export default function createDeployLibraryStep({ key, - artifact: { contractName, abi, bytecode }, + artifact, }: { key: keyof MigrationState - artifact: { contractName: string; abi: ContractInterface; bytecode: string } + artifact: ZkSyncArtifact }): MigrationStep { return async (state, { signer, gasPrice }) => { if (state[key] === undefined) { - const factory = new ContractFactory(abi, bytecode, signer) + if (Object.keys(artifact.factoryDeps).length !== 0) { + throw new Error('Factory deps for the library: `' + artifact.contractName + '` is not empty') + } + + const factory = new ContractFactory( + artifact.abi, + artifact.bytecode, + signer + ) const library = await factory.deploy({ gasPrice }) state[key] = library.address return [ { - message: `Library ${contractName} deployed`, + message: `Library ${artifact.contractName} deployed`, address: library.address, hash: library.deployTransaction.hash, }, ] } else { - return [{ message: `Library ${contractName} was already deployed`, address: state[key] }] + return [{ message: `Library ${artifact.contractName} was already deployed`, address: state[key] }] } } } From 61d8c024c36d26744b08ded4eb2d72402be84704 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Thu, 27 Apr 2023 18:55:04 +0100 Subject: [PATCH 05/20] Tests --- .gitignore | 3 + index.ts | 4 +- package.json | 4 +- scripts/start-local-setup.sh | 13 +++ src/steps/deploy-v3-core-factory.ts | 2 +- test/deploy-v3-core-factory.spec.ts | 175 ++++++++++++++-------------- 6 files changed, 109 insertions(+), 92 deletions(-) create mode 100755 scripts/start-local-setup.sh diff --git a/.gitignore b/.gitignore index f3abb48..7318000 100644 --- a/.gitignore +++ b/.gitignore @@ -110,3 +110,6 @@ dist # hardhat artifacts-zk/ cache-zk/ + +# local zksync setup +local-setup/ diff --git a/index.ts b/index.ts index 2ed967a..ae47c89 100644 --- a/index.ts +++ b/index.ts @@ -134,13 +134,13 @@ export async function deployV3(args: any) { } catch (error) { console.error('Deployment failed', error) console.log('Final state') - console.log(JSON.stringify(finalState)) + console.log(JSON.stringify(finalState!)) process.exit(1) } console.log('Deployment succeeded') console.log(JSON.stringify(results)) console.log('Final state') - console.log(JSON.stringify(finalState)) + console.log(JSON.stringify(finalState!)) process.exit(0) } \ No newline at end of file diff --git a/package.json b/package.json index 212bb65..7e256cc 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ }, "main": "dist/index.js", "scripts": { + "local-setup": "./scripts/start-local-setup.sh", "test": "mocha" }, "files": [ @@ -47,8 +48,7 @@ "@vercel/ncc": "^0.33.1", "chai": "^4.2.0", "commander": "^6.1.0", - "ethers": "5", - "ganache-cli": "^6.10.1", + "ethers": "5.7.0", "hardhat": "^2.14.0", "hardhat-dependency-compiler": "^1.1.3", "immer": "^7.0.8", diff --git a/scripts/start-local-setup.sh b/scripts/start-local-setup.sh new file mode 100755 index 0000000..31cca1a --- /dev/null +++ b/scripts/start-local-setup.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +git clone https://github.com/matter-labs/local-setup.git +cd local-setup +git checkout 1c016dcd143c42c2ecf696209155bb1efee842ef + +rm -rf ./volumes +mkdir -p ./volumes +mkdir -p ./volumes/postgres ./volumes/geth ./volumes/zksync/env/dev ./volumes/zksync/data +touch ./volumes/zksync/env.env + +docker-compose down -v +docker-compose pull +docker-compose up -d \ No newline at end of file diff --git a/src/steps/deploy-v3-core-factory.ts b/src/steps/deploy-v3-core-factory.ts index 3ad3a88..b71d3e5 100644 --- a/src/steps/deploy-v3-core-factory.ts +++ b/src/steps/deploy-v3-core-factory.ts @@ -7,7 +7,7 @@ export const DEPLOY_V3_CORE_FACTORY = createDeployContractStep({ key: 'v3CoreFactoryAddress', async computeArtifact() { return { - artifact: UniswapV3Factory as ZkSyncArtifact, + artifact: UniswapV3Factory as any, factoryDepsArtifacts: [ UniswapV3Pool as ZkSyncArtifact ] diff --git a/test/deploy-v3-core-factory.spec.ts b/test/deploy-v3-core-factory.spec.ts index a94a4c1..a1ba6b1 100644 --- a/test/deploy-v3-core-factory.spec.ts +++ b/test/deploy-v3-core-factory.spec.ts @@ -1,87 +1,88 @@ -// import { BigNumber } from '@ethersproject/bignumber' -// import { Contract } from '@ethersproject/contracts' -// import { JsonRpcSigner, Web3Provider } from '@ethersproject/providers' -// -// import UniswapV3Factory from '@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' -// import { expect } from 'chai' -// import { DEPLOY_V3_CORE_FACTORY } from '../src/steps/deploy-v3-core-factory' -// import { asciiStringToBytes32 } from '../src/util/asciiStringToBytes32' -// -// const DUMMY_ADDRESS = '0x9999999999999999999999999999999999999999' -// -// const ganache = require('ganache-cli') -// -// describe('deploy-v3-core-factory', () => { -// let provider: Web3Provider -// let signer: JsonRpcSigner -// -// before('create provider', () => { -// provider = new Web3Provider(ganache.provider()) -// signer = provider.getSigner() -// }) -// -// function singleElem(v: T[]): T { -// return v[0] -// } -// -// describe('DEPLOY_V3_CORE_FACTORY', () => { -// it('deploys the v3 core factory contract', async () => { -// const result = singleElem( -// await DEPLOY_V3_CORE_FACTORY( -// {}, -// { -// signer, -// gasPrice: BigNumber.from(1), -// ownerAddress: DUMMY_ADDRESS, -// v2CoreFactoryAddress: DUMMY_ADDRESS, -// weth9Address: DUMMY_ADDRESS, -// nativeCurrencyLabelBytes: asciiStringToBytes32('ETH'), -// } -// ) -// ) -// expect(result.message).to.eq('Contract UniswapV3Factory deployed') -// }) -// -// it('does not deploy if already deployed', async () => { -// const result = singleElem( -// await DEPLOY_V3_CORE_FACTORY( -// { v3CoreFactoryAddress: DUMMY_ADDRESS }, -// { -// signer, -// gasPrice: BigNumber.from(1), -// ownerAddress: DUMMY_ADDRESS, -// v2CoreFactoryAddress: DUMMY_ADDRESS, -// weth9Address: DUMMY_ADDRESS, -// nativeCurrencyLabelBytes: asciiStringToBytes32('ETH'), -// } -// ) -// ) -// expect(result.message).to.eq('Contract UniswapV3Factory was already deployed') -// expect(result.address).to.eq(DUMMY_ADDRESS) -// }) -// -// describe('test contract functions', () => { -// let v3CoreFactory: Contract -// beforeEach(async () => { -// const result = singleElem( -// await DEPLOY_V3_CORE_FACTORY( -// {}, -// { -// signer, -// gasPrice: BigNumber.from(1), -// ownerAddress: DUMMY_ADDRESS, -// v2CoreFactoryAddress: DUMMY_ADDRESS, -// weth9Address: DUMMY_ADDRESS, -// nativeCurrencyLabelBytes: asciiStringToBytes32('ETH'), -// } -// ) -// ) -// v3CoreFactory = new Contract(result.address!, UniswapV3Factory.abi, provider) -// }) -// -// it('points to signer address', async () => { -// expect(await v3CoreFactory.owner()).to.eq(await signer.getAddress()) -// }) -// }) -// }) -// }) +import { BigNumber } from '@ethersproject/bignumber' +import { Contract } from '@ethersproject/contracts' +import { Wallet, Provider } from 'zksync-web3' + +import UniswapV3Factory from 'v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' +import { expect } from 'chai' +import { DEPLOY_V3_CORE_FACTORY } from '../src/steps/deploy-v3-core-factory' +import { asciiStringToBytes32 } from '../src/util/asciiStringToBytes32' + +import * as fs from 'fs' + +const DUMMY_ADDRESS = '0x9999999999999999999999999999999999999999' +const RICH_WALLET_PRIVATE_KEY = JSON.parse(fs.readFileSync(`./local-setup/rich-wallets.json`, "utf8"))[0]; + +describe('deploy-v3-core-factory', () => { + let provider: Provider + let signer: Wallet + + before('create provider', () => { + provider = Provider.getDefaultProvider() + signer = new Wallet(RICH_WALLET_PRIVATE_KEY, provider) + }) + + function singleElem(v: T[]): T { + return v[0] + } + + describe('DEPLOY_V3_CORE_FACTORY', () => { + it('deploys the v3 core factory contract', async () => { + const result = singleElem( + await DEPLOY_V3_CORE_FACTORY( + {}, + { + signer, + gasPrice: BigNumber.from(1), + ownerAddress: DUMMY_ADDRESS, + v2CoreFactoryAddress: DUMMY_ADDRESS, + weth9Address: DUMMY_ADDRESS, + nativeCurrencyLabelBytes: asciiStringToBytes32('ETH'), + } + ) + ) + expect(result.message).to.eq('Contract UniswapV3Factory deployed') + }) + + it('does not deploy if already deployed', async () => { + const result = singleElem( + await DEPLOY_V3_CORE_FACTORY( + { v3CoreFactoryAddress: DUMMY_ADDRESS }, + { + signer, + gasPrice: BigNumber.from(1), + ownerAddress: DUMMY_ADDRESS, + v2CoreFactoryAddress: DUMMY_ADDRESS, + weth9Address: DUMMY_ADDRESS, + nativeCurrencyLabelBytes: asciiStringToBytes32('ETH'), + } + ) + ) + expect(result.message).to.eq('Contract UniswapV3Factory was already deployed') + expect(result.address).to.eq(DUMMY_ADDRESS) + }) + + describe('test contract functions', () => { + let v3CoreFactory: Contract + beforeEach(async () => { + const result = singleElem( + await DEPLOY_V3_CORE_FACTORY( + {}, + { + signer, + gasPrice: BigNumber.from(1), + ownerAddress: DUMMY_ADDRESS, + v2CoreFactoryAddress: DUMMY_ADDRESS, + weth9Address: DUMMY_ADDRESS, + nativeCurrencyLabelBytes: asciiStringToBytes32('ETH'), + } + ) + ) + v3CoreFactory = new Contract(result.address!, UniswapV3Factory.abi, provider) + }) + + it('points to signer address', async () => { + expect(await v3CoreFactory.owner()).to.eq(await signer.getAddress()) + }) + }) + }) +}) From 3228273542f760fa97a8119fc902ce0d211af2a1 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Sat, 29 Apr 2023 11:44:57 +0100 Subject: [PATCH 06/20] Update deps, improvements --- .gitignore | 2 +- hardhat.config.ts | 7 +- init_submodule.sh | 2 - package.json | 21 +- src/steps/add-1bp-fee-tier.ts | 2 +- src/steps/deploy-multicall2.ts | 2 +- .../deploy-nonfungible-position-manager.ts | 2 +- src/steps/deploy-proxy-admin.ts | 2 +- src/steps/deploy-quoter-v2.ts | 2 +- src/steps/deploy-tick-lens.ts | 2 +- .../deploy-transparent-proxy-descriptor.ts | 2 +- src/steps/deploy-v3-core-factory.ts | 4 +- src/steps/deploy-v3-migrator.ts | 2 +- src/steps/deploy-v3-staker.ts | 2 +- src/steps/deploy-v3-swap-router-02.ts | 2 +- src/steps/transfer-proxy-admin.ts | 2 +- src/steps/transfer-v3-core-factory-owner.ts | 2 +- test/deploy-v3-core-factory.spec.ts | 2 +- yarn.lock | 624 ++++++++---------- 19 files changed, 326 insertions(+), 360 deletions(-) delete mode 100755 init_submodule.sh diff --git a/.gitignore b/.gitignore index 7318000..1be318a 100644 --- a/.gitignore +++ b/.gitignore @@ -111,5 +111,5 @@ dist artifacts-zk/ cache-zk/ -# local zksync setup +# zksync local setup local-setup/ diff --git a/hardhat.config.ts b/hardhat.config.ts index 13ee049..21a7151 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,4 +1,5 @@ import '@matterlabs/hardhat-zksync-solc' +import '@matterlabs/hardhat-zksync-verify' import 'hardhat-dependency-compiler' import { task } from 'hardhat/config' import {deployV3} from './index' @@ -38,7 +39,11 @@ export default { zksolc: { version: "1.3.10", compilerSource: "binary", - settings: {}, + settings: { + metadata: { + bytecodeHash: 'none', + }, + }, }, dependencyCompiler: { paths: [ diff --git a/init_submodule.sh b/init_submodule.sh deleted file mode 100755 index c3285d5..0000000 --- a/init_submodule.sh +++ /dev/null @@ -1,2 +0,0 @@ -yarn --cwd v3-periphery-1_3_0 install --frozen-lockfile -yarn --cwd v3-periphery-1_3_0 hardhat compile --network zkSyncTestnet \ No newline at end of file diff --git a/package.json b/package.json index 7e256cc..ba14dc9 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,13 @@ }, "main": "dist/index.js", "scripts": { - "local-setup": "./scripts/start-local-setup.sh", - "test": "mocha" + "test": "mocha", + "build": "ncc build index.ts -o dist -m", + "postbuild": "cat shebang.txt dist/index.js > dist/index.cmd.js && mv dist/index.cmd.js dist/index.js", + "prestart": "yarn build", + "start": "yarn hardhat deploy-v3", + "prepublishOnly": "yarn build", + "local-setup": "./scripts/start-local-setup.sh" }, "files": [ "dist/" @@ -41,10 +46,16 @@ "@ethersproject/wallet": "^5.5.0", "@matterlabs/hardhat-zksync-deploy": "^0.6.3", "@matterlabs/hardhat-zksync-solc": "^0.3.16", + "@matterlabs/hardhat-zksync-verify": "^0.1.5", + "@nomiclabs/hardhat-etherscan": "^3.1.7", "@types/chai": "^4.2.12", "@types/mocha": "^8.0.3", "@types/node": "^14.6.3", "@uniswap/sdk-core": "^1.0.8", + "@uniswap/swap-router-contracts": "https://github.com/AntonD3/swap-router-contracts.git#v1.1.0-zksync-era", + "@uniswap/v3-core": "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era", + "@uniswap/v3-periphery": "https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era", + "@uniswap/v3-staker": "https://github.com/AntonD3/v3-staker.git#v1.0.2-zksync-era", "@vercel/ncc": "^0.33.1", "chai": "^4.2.0", "commander": "^6.1.0", @@ -53,15 +64,11 @@ "hardhat-dependency-compiler": "^1.1.3", "immer": "^7.0.8", "mocha": "^8.1.3", - "openzeppelin-contracts": "https://github.com/AntonD3/openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era", + "openzeppelin-solidity": "https://github.com/AntonD3/openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era", "prettier": "^2.1.1", - "swap-router-contracts": "https://github.com/AntonD3/swap-router-contracts.git#v1.1.0-zksync-era", "ts-node": "^9.0.0", "typescript": "^4.0.2", - "v3-core": "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era", - "v3-periphery": "https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era", "v3-periphery-1_3_0": "https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era", - "v3-staker": "https://github.com/AntonD3/v3-staker.git#v1.0.2-zksync-era", "zksync-web3": "^0.14.3" } } diff --git a/src/steps/add-1bp-fee-tier.ts b/src/steps/add-1bp-fee-tier.ts index 9ce54c4..4e783de 100644 --- a/src/steps/add-1bp-fee-tier.ts +++ b/src/steps/add-1bp-fee-tier.ts @@ -1,4 +1,4 @@ -import UniswapV3Factory from 'v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' +import UniswapV3Factory from '@uniswap/v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' import { Contract } from 'zksync-web3' import { MigrationStep } from '../migrations' diff --git a/src/steps/deploy-multicall2.ts b/src/steps/deploy-multicall2.ts index 823931c..263cb06 100644 --- a/src/steps/deploy-multicall2.ts +++ b/src/steps/deploy-multicall2.ts @@ -1,4 +1,4 @@ -import UniswapInterfaceMulticall from 'v3-periphery/artifacts-zk/contracts/lens/UniswapInterfaceMulticall.sol/UniswapInterfaceMulticall.json' +import UniswapInterfaceMulticall from '@uniswap/v3-periphery/artifacts-zk/contracts/lens/UniswapInterfaceMulticall.sol/UniswapInterfaceMulticall.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/deploy-nonfungible-position-manager.ts b/src/steps/deploy-nonfungible-position-manager.ts index 0a44171..6d2d4e4 100644 --- a/src/steps/deploy-nonfungible-position-manager.ts +++ b/src/steps/deploy-nonfungible-position-manager.ts @@ -1,4 +1,4 @@ -import NonfungiblePositionManager from 'v3-periphery/artifacts-zk/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json' +import NonfungiblePositionManager from '@uniswap/v3-periphery/artifacts-zk/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/deploy-proxy-admin.ts b/src/steps/deploy-proxy-admin.ts index 3d8b0d7..7ba6bd4 100644 --- a/src/steps/deploy-proxy-admin.ts +++ b/src/steps/deploy-proxy-admin.ts @@ -1,4 +1,4 @@ -import ProxyAdmin from 'openzeppelin-contracts/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' +import ProxyAdmin from 'openzeppelin-solidity/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/deploy-quoter-v2.ts b/src/steps/deploy-quoter-v2.ts index 07c4a49..3a9d04f 100644 --- a/src/steps/deploy-quoter-v2.ts +++ b/src/steps/deploy-quoter-v2.ts @@ -1,4 +1,4 @@ -import QuoterV2 from 'swap-router-contracts/artifacts-zk/contracts/lens/QuoterV2.sol/QuoterV2.json' +import QuoterV2 from '@uniswap/swap-router-contracts/artifacts-zk/contracts/lens/QuoterV2.sol/QuoterV2.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/deploy-tick-lens.ts b/src/steps/deploy-tick-lens.ts index 7bad3f7..5d3e61e 100644 --- a/src/steps/deploy-tick-lens.ts +++ b/src/steps/deploy-tick-lens.ts @@ -1,4 +1,4 @@ -import TickLens from 'v3-periphery/artifacts-zk/contracts/lens/TickLens.sol/TickLens.json' +import TickLens from '@uniswap/v3-periphery/artifacts-zk/contracts/lens/TickLens.sol/TickLens.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/deploy-transparent-proxy-descriptor.ts b/src/steps/deploy-transparent-proxy-descriptor.ts index 2f4c964..4abdfa6 100644 --- a/src/steps/deploy-transparent-proxy-descriptor.ts +++ b/src/steps/deploy-transparent-proxy-descriptor.ts @@ -1,4 +1,4 @@ -import TransparentUpgradeableProxy from 'openzeppelin-contracts/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json' +import TransparentUpgradeableProxy from 'openzeppelin-solidity/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/deploy-v3-core-factory.ts b/src/steps/deploy-v3-core-factory.ts index b71d3e5..03453e9 100644 --- a/src/steps/deploy-v3-core-factory.ts +++ b/src/steps/deploy-v3-core-factory.ts @@ -1,5 +1,5 @@ -import UniswapV3Factory from 'v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' -import UniswapV3Pool from 'v3-core/artifacts-zk/contracts/UniswapV3Pool.sol/UniswapV3Pool.json' +import UniswapV3Factory from '@uniswap/v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' +import UniswapV3Pool from '@uniswap/v3-core/artifacts-zk/contracts/UniswapV3Pool.sol/UniswapV3Pool.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/deploy-v3-migrator.ts b/src/steps/deploy-v3-migrator.ts index 4ea7583..c47f4e2 100644 --- a/src/steps/deploy-v3-migrator.ts +++ b/src/steps/deploy-v3-migrator.ts @@ -1,4 +1,4 @@ -import V3Migrator from 'v3-periphery/artifacts-zk/contracts/V3Migrator.sol/V3Migrator.json' +import V3Migrator from '@uniswap/v3-periphery/artifacts-zk/contracts/V3Migrator.sol/V3Migrator.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/deploy-v3-staker.ts b/src/steps/deploy-v3-staker.ts index 8ee758f..26ce630 100644 --- a/src/steps/deploy-v3-staker.ts +++ b/src/steps/deploy-v3-staker.ts @@ -1,4 +1,4 @@ -import UniswapV3Staker from 'v3-staker/artifacts-zk/contracts/UniswapV3Staker.sol/UniswapV3Staker.json' +import UniswapV3Staker from '@uniswap/v3-staker/artifacts-zk/contracts/UniswapV3Staker.sol/UniswapV3Staker.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/deploy-v3-swap-router-02.ts b/src/steps/deploy-v3-swap-router-02.ts index c2ea4c4..957ba90 100644 --- a/src/steps/deploy-v3-swap-router-02.ts +++ b/src/steps/deploy-v3-swap-router-02.ts @@ -1,4 +1,4 @@ -import SwapRouter02 from 'swap-router-contracts/artifacts-zk/contracts/SwapRouter02.sol/SwapRouter02.json' +import SwapRouter02 from '@uniswap/swap-router-contracts/artifacts-zk/contracts/SwapRouter02.sol/SwapRouter02.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/transfer-proxy-admin.ts b/src/steps/transfer-proxy-admin.ts index 2e7ecf2..3f52370 100644 --- a/src/steps/transfer-proxy-admin.ts +++ b/src/steps/transfer-proxy-admin.ts @@ -1,4 +1,4 @@ -import ProxyAdmin from 'openzeppelin-contracts/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' +import ProxyAdmin from 'openzeppelin-solidity/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' import { Contract } from 'zksync-web3' import { MigrationStep } from '../migrations' diff --git a/src/steps/transfer-v3-core-factory-owner.ts b/src/steps/transfer-v3-core-factory-owner.ts index 3e6eb39..08fb248 100644 --- a/src/steps/transfer-v3-core-factory-owner.ts +++ b/src/steps/transfer-v3-core-factory-owner.ts @@ -1,4 +1,4 @@ -import UniswapV3Factory from 'v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' +import UniswapV3Factory from '@uniswap/v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' import { Contract } from 'zksync-web3' import { MigrationStep } from '../migrations' diff --git a/test/deploy-v3-core-factory.spec.ts b/test/deploy-v3-core-factory.spec.ts index a1ba6b1..2215f9f 100644 --- a/test/deploy-v3-core-factory.spec.ts +++ b/test/deploy-v3-core-factory.spec.ts @@ -2,7 +2,7 @@ import { BigNumber } from '@ethersproject/bignumber' import { Contract } from '@ethersproject/contracts' import { Wallet, Provider } from 'zksync-web3' -import UniswapV3Factory from 'v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' +import UniswapV3Factory from '@uniswap/v3-core/artifacts-zk/contracts/UniswapV3Factory.sol/UniswapV3Factory.json' import { expect } from 'chai' import { DEPLOY_V3_CORE_FACTORY } from '../src/steps/deploy-v3-core-factory' import { asciiStringToBytes32 } from '../src/util/asciiStringToBytes32' diff --git a/yarn.lock b/yarn.lock index 3476f15..712ec11 100644 --- a/yarn.lock +++ b/yarn.lock @@ -342,6 +342,13 @@ resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.5.0.tgz" integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== +"@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/networks@5.7.1", "@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" @@ -386,6 +393,32 @@ dependencies: "@ethersproject/logger" "^5.5.0" +"@ethersproject/providers@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.0.tgz#a885cfc7650a64385e7b03ac86fe9c2d4a9c2c63" + integrity sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bech32 "1.1.4" + ws "7.4.6" + "@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.5.1", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2": version "5.7.2" resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" @@ -597,6 +630,17 @@ "@ethersproject/transactions" "^5.5.0" "@ethersproject/wordlists" "^5.5.0" +"@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/web@5.7.1", "@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" @@ -648,6 +692,15 @@ dependencies: chalk "4.1.2" +"@matterlabs/hardhat-zksync-solc@0.3.14": + version "0.3.14" + resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.3.14.tgz#0a32f01b4cd8631ecd8dfe0547e3ac49ab8290d5" + integrity sha512-iKuQ+vvnpv3K2lkFO41xpJcNWH0KHJ/5JbOboTlPZATVR7F3GJeHfJL+GG4wkxKXnxZczpxyQqC4rAfMKvRaDg== + dependencies: + "@nomiclabs/hardhat-docker" "^2.0.0" + chalk "4.1.2" + dockerode "^3.3.4" + "@matterlabs/hardhat-zksync-solc@^0.3.16": version "0.3.16" resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.3.16.tgz#dd8ed44f1a580f282794a15fee995f418b040158" @@ -657,6 +710,16 @@ chalk "4.1.2" dockerode "^3.3.4" +"@matterlabs/hardhat-zksync-verify@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-verify/-/hardhat-zksync-verify-0.1.5.tgz#300a03d5533581a8cca775cc7a7968b22e8a2d62" + integrity sha512-o79DsXaEfa4ou4z07KLhCVOk4vX593QZME5cNq1wDD4DG3+ZYAjxwqplCpLhUmSSVjUKAVRGfEfqvuRMcvis2w== + dependencies: + "@matterlabs/hardhat-zksync-solc" "0.3.14" + axios "^1.3.4" + chalk "4.1.2" + dockerode "^3.3.4" + "@metamask/eth-sig-util@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" @@ -887,6 +950,22 @@ fs-extra "^7.0.1" node-fetch "^2.6.0" +"@nomiclabs/hardhat-etherscan@^3.1.7": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz#72e3d5bd5d0ceb695e097a7f6f5ff6fcbf062b9a" + integrity sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@ethersproject/address" "^5.0.2" + cbor "^8.1.0" + chalk "^2.4.2" + debug "^4.1.1" + fs-extra "^7.0.1" + lodash "^4.17.11" + semver "^6.3.0" + table "^6.8.0" + undici "^5.14.0" + "@openzeppelin/contracts@3.4.1-solc-0.7-2": version "3.4.1-solc-0.7-2" resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.1-solc-0.7-2.tgz" @@ -1061,28 +1140,65 @@ tiny-warning "^1.0.3" toformat "^2.0.0" +"@uniswap/swap-router-contracts@https://github.com/AntonD3/swap-router-contracts.git#v1.1.0-zksync-era": + version "1.1.0" + resolved "https://github.com/AntonD3/swap-router-contracts.git#c953a1ce91f0ef005fa16c807acd21c45c7bd21d" + dependencies: + "@openzeppelin/contracts" "3.4.1-solc-0.7-2" + "@uniswap/v2-core" "1.0.1" + "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" + "@uniswap/v3-periphery" "https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era" + hardhat-watcher "^2.1.1" + "@uniswap/v2-core@1.0.1": version "1.0.1" resolved "https://registry.npmjs.org/@uniswap/v2-core/-/v2-core-1.0.1.tgz" integrity sha512-MtybtkUPSyysqLY2U210NBDeCHX+ltHt3oADGdjqoThZaFRDKwM6k1Nb3F0A3hk5hwuQvytFWhrWHOEq6nVJ8Q== -"@uniswap/v3-core@1.0.0": +"@uniswap/v3-core@1.0.0", "@uniswap/v3-core@https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era": version "1.0.0" - resolved "https://registry.npmjs.org/@uniswap/v3-core/-/v3-core-1.0.0.tgz" - integrity sha512-kSC4djMGKMHj7sLMYVnn61k9nu+lHjMIxgg9CDQT+s2QYLoA56GbSK9Oxr+qJXzzygbkrmuY6cwgP6cW2JXPFA== + resolved "https://github.com/AntonD3/v3-core.git#f8ca660b2c470e3746b710c31588a03737d30ef1" -"@uniswap/v3-periphery@1.3.0", "@uniswap/v3-periphery@^1.0.1": +"@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.0.1-zksync-era": + version "1.0.1" + resolved "https://github.com/AntonD3/v3-periphery.git#77ca0bdfa167dd60ac7219a1d55be4fec949ccf5" + dependencies: + "@openzeppelin/contracts" "3.4.1-solc-0.7-2" + "@uniswap/lib" "^4.0.1-alpha" + "@uniswap/v2-core" "1.0.1" + "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" + base64-sol "1.0.1" + +"@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era": + version "1.1.1" + resolved "https://github.com/AntonD3/v3-periphery.git#d2736f3f1e8cdff329aca087289770f68f65bd08" + dependencies: + "@openzeppelin/contracts" "3.4.1-solc-0.7-2" + "@uniswap/lib" "^4.0.1-alpha" + "@uniswap/v2-core" "1.0.1" + "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" + base64-sol "1.0.1" + hardhat-watcher "^2.1.1" + +"@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era": version "1.3.0" - resolved "https://registry.npmjs.org/@uniswap/v3-periphery/-/v3-periphery-1.3.0.tgz" - integrity sha512-HjHdI5RkjBl8zz3bqHShrbULFoZSrjbbrRHoO2vbzn+WRzTa6xY4PWphZv2Tlcb38YEKfKHp6NPl5hVedac8uw== + resolved "https://github.com/AntonD3/v3-periphery.git#4c48e784540f02df7cd89179f4647084fb0d7cad" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" "@uniswap/v2-core" "1.0.1" - "@uniswap/v3-core" "1.0.0" + "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" base64-sol "1.0.1" hardhat-watcher "^2.1.1" +"@uniswap/v3-staker@https://github.com/AntonD3/v3-staker.git#v1.0.2-zksync-era": + version "1.0.2" + resolved "https://github.com/AntonD3/v3-staker.git#0ec12075a7ea1fc10916f0122171a5b512226a39" + dependencies: + "@openzeppelin/contracts" "3.4.1-solc-0.7-2" + "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" + "@uniswap/v3-periphery" "https://github.com/AntonD3/v3-periphery.git#v1.0.1-zksync-era" + "@vercel/ncc@^0.33.1": version "0.33.1" resolved "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.33.1.tgz" @@ -1141,6 +1257,16 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" +ajv@^8.0.1: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ansi-colors@4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" @@ -1163,17 +1289,12 @@ ansi-regex@^3.0.0: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -1217,6 +1338,25 @@ assertion-error@^1.1.0: resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.3.4: + version "1.4.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f" + integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" @@ -1437,11 +1577,6 @@ call-bind@^1.0.0: function-bind "^1.1.1" get-intrinsic "^1.0.2" -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - camelcase@^6.0.0: version "6.2.0" resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" @@ -1457,6 +1592,13 @@ catering@^2.1.0, catering@^2.1.1: resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== +cbor@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" + integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== + dependencies: + nofilter "^3.1.0" + chai@^4.2.0: version "4.3.3" resolved "https://registry.npmjs.org/chai/-/chai-4.3.3.tgz" @@ -1578,15 +1720,6 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - cliui@^7.0.2: version "7.0.4" resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" @@ -1620,6 +1753,13 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + command-exists@^1.2.8: version "1.2.9" resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" @@ -1701,17 +1841,6 @@ create-require@^1.1.0: resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.3: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -1733,11 +1862,6 @@ debug@^3.2.6: dependencies: ms "^2.1.1" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - decamelize@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" @@ -1755,6 +1879,11 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -1821,11 +1950,6 @@ elliptic@6.5.4, elliptic@^6.5.2: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" @@ -1904,7 +2028,7 @@ ethereumjs-abi@^0.6.8: bn.js "^4.11.8" ethereumjs-util "^6.0.0" -ethereumjs-util@6.2.1, ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: +ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: version "6.2.1" resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== @@ -1917,7 +2041,43 @@ ethereumjs-util@6.2.1, ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethers@5, ethers@^5.7.1: +ethers@5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.0.tgz#0055da174b9e076b242b8282638bc94e04b39835" + integrity sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.0" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.0" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.0" + "@ethersproject/wordlists" "5.7.0" + +ethers@^5.7.1: version "5.7.2" resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -1974,18 +2134,10 @@ evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fill-range@^7.0.1: version "7.0.1" @@ -2009,23 +2161,25 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - flat@^5.0.2: version "5.0.2" resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -follow-redirects@^1.12.1: +follow-redirects@^1.12.1, follow-redirects@^1.15.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + fp-ts@1.19.3: version "1.19.3" resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f" @@ -2081,16 +2235,7 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== -ganache-cli@^6.10.1: - version "6.12.2" - resolved "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz" - integrity sha512-bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw== - dependencies: - ethereumjs-util "6.2.1" - source-map-support "0.5.12" - yargs "13.2.4" - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -2109,13 +2254,6 @@ get-intrinsic@^1.0.2: has "^1.0.3" has-symbols "^1.0.3" -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - glob-parent@~5.1.0, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" @@ -2349,11 +2487,6 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - io-ts@1.10.4: version "1.10.4" resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" @@ -2410,11 +2543,6 @@ is-plain-obj@^2.1.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" @@ -2464,6 +2592,11 @@ jsbi@^3.1.4: resolved "https://registry.npmjs.org/jsbi/-/jsbi-3.1.4.tgz" integrity sha512-52QRRFSsi9impURE8ZUbzAMCLjPm4THO7H2fcuIvaaeFTbSysvkodbQQXIVsNgq/ypDbq6dJiuGKL0vZ/i9hUg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -2499,13 +2632,6 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - level-supports@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" @@ -2535,14 +2661,6 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - locate-path@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" @@ -2550,6 +2668,11 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + lodash@^4.17.11: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -2587,13 +2710,6 @@ make-error@^1.1.1: resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - mcl-wasm@^0.7.1: version "0.7.9" resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" @@ -2608,15 +2724,6 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - memory-level@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" @@ -2631,10 +2738,17 @@ memorystream@^0.3.1: resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== -mimic-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" @@ -2784,11 +2898,6 @@ napi-macros@^2.2.2: resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044" integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - node-addon-api@^2.0.0: version "2.0.2" resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" @@ -2806,18 +2915,16 @@ node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz" integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== +nofilter@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" + integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" @@ -2835,39 +2942,15 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -"openzeppelin-contracts@https://github.com/AntonD3/openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era": +"openzeppelin-solidity@https://github.com/AntonD3/openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era": version "3.4.1-solc-0.7-2" - resolved "git+ssh://git@github.com/AntonD3/openzeppelin-contracts.git#88002198dbde43b14cbac3358cc6fdc13006ee6a" - -os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" + resolved "https://github.com/AntonD3/openzeppelin-contracts.git#9afed897b7fb41f862acaa2143e99696bc855851" os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -2875,13 +2958,6 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - p-limit@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" @@ -2896,13 +2972,6 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - p-locate@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" @@ -2922,11 +2991,6 @@ p-try@^1.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" @@ -2942,11 +3006,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - path-parse@^1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -2983,6 +3042,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + pump@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" @@ -2999,6 +3063,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + qs@^6.7.0: version "6.11.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" @@ -3088,16 +3157,11 @@ require-directory@^2.1.1: resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-from-string@^2.0.0: +require-from-string@^2.0.0, require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - resolve@1.17.0: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" @@ -3192,11 +3256,6 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" @@ -3215,18 +3274,6 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -3236,10 +3283,14 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" solc@0.7.3: version "0.7.3" @@ -3256,14 +3307,6 @@ solc@0.7.3: semver "^5.5.0" tmp "0.0.33" -source-map-support@0.5.12: - version "0.5.12" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz" - integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-support@^0.5.13, source-map-support@^0.5.17: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" @@ -3318,18 +3361,9 @@ streamsearch@^1.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -3362,13 +3396,6 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -3376,11 +3403,6 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" @@ -3414,15 +3436,16 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -"swap-router-contracts@https://github.com/AntonD3/swap-router-contracts.git#v1.1.0-zksync-era": - version "1.1.0" - resolved "git+ssh://git@github.com/AntonD3/swap-router-contracts.git#c85ac9db4a76c423dcf0a25c0081e0443e1ff0b5" +table@^6.8.0: + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== dependencies: - "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/v2-core" "1.0.1" - "@uniswap/v3-core" "1.0.0" - "@uniswap/v3-periphery" "1.3.0" - hardhat-watcher "^2.1.1" + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" tar-fs@~1.16.3: version "1.16.3" @@ -3596,6 +3619,13 @@ unpipe@1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" @@ -3606,10 +3636,6 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -"v3-core@https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era": - version "1.0.0" - resolved "git+ssh://git@github.com/AntonD3/v3-core.git#4afb5445a26ff4ff55549aae25d567b724703a98" - "v3-periphery-1_3_0@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era": version "1.3.0" resolved "https://github.com/AntonD3/v3-periphery.git#a2c0aafba2e82c82a045c1ecba0ee3d9dafd08e6" @@ -3621,25 +3647,6 @@ uuid@^8.3.2: base64-sol "1.0.1" hardhat-watcher "^2.1.1" -"v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era": - version "1.1.1" - resolved "git+ssh://git@github.com/AntonD3/v3-periphery.git#e786658ea888e8770503f0257015d8d5db8eccbc" - dependencies: - "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "1.0.1" - "@uniswap/v3-core" "1.0.0" - base64-sol "1.0.1" - hardhat-watcher "^2.1.1" - -"v3-staker@https://github.com/AntonD3/v3-staker.git#v1.0.2-zksync-era": - version "1.0.2" - resolved "git+ssh://git@github.com/AntonD3/v3-staker.git#b987826389a716a1b9ba517409f0176ee1140f94" - dependencies: - "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/v3-core" "1.0.0" - "@uniswap/v3-periphery" "^1.0.1" - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -3653,11 +3660,6 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - which@2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" @@ -3665,13 +3667,6 @@ which@2.0.2: dependencies: isexe "^2.0.0" -which@^1.2.9: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - wide-align@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" @@ -3689,15 +3684,6 @@ workerpool@6.2.1: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" @@ -3727,11 +3713,6 @@ xtend@^4.0.0: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - y18n@^5.0.5: version "5.0.8" resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" @@ -3747,14 +3728,6 @@ yargs-parser@20.2.4, yargs-parser@^20.2.2: resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@^13.1.0: - version "13.1.2" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-unparser@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" @@ -3765,23 +3738,6 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@13.2.4: - version "13.2.4" - resolved "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz" - integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.0" - yargs@16.2.0: version "16.2.0" resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" From 83498f2de34d7754fef6be21e2519da6503d45d9 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Sat, 29 Apr 2023 11:50:29 +0100 Subject: [PATCH 07/20] Add constructor args to deploy message --- src/steps/meta/createDeployContractStep.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/steps/meta/createDeployContractStep.ts b/src/steps/meta/createDeployContractStep.ts index d89a957..fc53a2c 100644 --- a/src/steps/meta/createDeployContractStep.ts +++ b/src/steps/meta/createDeployContractStep.ts @@ -56,7 +56,7 @@ export default function createDeployContractStep({ return [ { - message: `Contract ${artifact.contractName} deployed`, + message: `Contract ${artifact.contractName} deployed, constructor args: ${constructorArgs}`, address: contract.address, hash: contract.deployTransaction.hash, }, From 5e16ae31acca9846dd3414237cf841810c8219fb Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Sat, 29 Apr 2023 12:34:29 +0100 Subject: [PATCH 08/20] Update deps --- yarn.lock | 96 ++++++++++++++++++++----------------------------------- 1 file changed, 35 insertions(+), 61 deletions(-) diff --git a/yarn.lock b/yarn.lock index 712ec11..537dc24 100644 --- a/yarn.lock +++ b/yarn.lock @@ -968,7 +968,7 @@ "@openzeppelin/contracts@3.4.1-solc-0.7-2": version "3.4.1-solc-0.7-2" - resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.1-solc-0.7-2.tgz" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-3.4.1-solc-0.7-2.tgz#371c67ebffe50f551c3146a9eec5fe6ffe862e92" integrity sha512-tAG9LWg8+M2CMu7hIsqHPaTyG4uDzjr6mhvH96LvOpLZZj6tgzTluBt+LsCf1/QaYrlis6pITvpIaIhE+iZB+Q== "@scure/base@~1.1.0": @@ -1124,7 +1124,7 @@ "@uniswap/lib@^4.0.1-alpha": version "4.0.1-alpha" - resolved "https://registry.npmjs.org/@uniswap/lib/-/lib-4.0.1-alpha.tgz" + resolved "https://registry.yarnpkg.com/@uniswap/lib/-/lib-4.0.1-alpha.tgz#2881008e55f075344675b3bca93f020b028fbd02" integrity sha512-f6UIliwBbRsgVLxIaBANF6w09tYqc6Y/qXdsrbEmXHyFA7ILiKrIwRFXe1yOg8M3cksgVsO9N7yuL2DdCGQKBA== "@uniswap/sdk-core@^1.0.8": @@ -1142,7 +1142,7 @@ "@uniswap/swap-router-contracts@https://github.com/AntonD3/swap-router-contracts.git#v1.1.0-zksync-era": version "1.1.0" - resolved "https://github.com/AntonD3/swap-router-contracts.git#c953a1ce91f0ef005fa16c807acd21c45c7bd21d" + resolved "https://github.com/AntonD3/swap-router-contracts.git#487e981ea14ade03e2d026ee2d24245fae4d575d" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/v2-core" "1.0.1" @@ -1152,16 +1152,16 @@ "@uniswap/v2-core@1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@uniswap/v2-core/-/v2-core-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/@uniswap/v2-core/-/v2-core-1.0.1.tgz#af8f508bf183204779938969e2e54043e147d425" integrity sha512-MtybtkUPSyysqLY2U210NBDeCHX+ltHt3oADGdjqoThZaFRDKwM6k1Nb3F0A3hk5hwuQvytFWhrWHOEq6nVJ8Q== -"@uniswap/v3-core@1.0.0", "@uniswap/v3-core@https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era": +"@uniswap/v3-core@https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era": version "1.0.0" resolved "https://github.com/AntonD3/v3-core.git#f8ca660b2c470e3746b710c31588a03737d30ef1" "@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.0.1-zksync-era": version "1.0.1" - resolved "https://github.com/AntonD3/v3-periphery.git#77ca0bdfa167dd60ac7219a1d55be4fec949ccf5" + resolved "https://github.com/AntonD3/v3-periphery.git#436d501b224d88025d5cf3cd2602dbbea6939ac1" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" @@ -1171,7 +1171,7 @@ "@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era": version "1.1.1" - resolved "https://github.com/AntonD3/v3-periphery.git#d2736f3f1e8cdff329aca087289770f68f65bd08" + resolved "https://github.com/AntonD3/v3-periphery.git#c49fa72a28819b3ad021ad7ea78efc77d70abf7e" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" @@ -1180,9 +1180,9 @@ base64-sol "1.0.1" hardhat-watcher "^2.1.1" -"@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era": +"@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era", "v3-periphery-1_3_0@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era": version "1.3.0" - resolved "https://github.com/AntonD3/v3-periphery.git#4c48e784540f02df7cd89179f4647084fb0d7cad" + resolved "https://github.com/AntonD3/v3-periphery.git#f5f6644ebf003119535c1b0f0496980874acdd1a" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" @@ -1193,7 +1193,7 @@ "@uniswap/v3-staker@https://github.com/AntonD3/v3-staker.git#v1.0.2-zksync-era": version "1.0.2" - resolved "https://github.com/AntonD3/v3-staker.git#0ec12075a7ea1fc10916f0122171a5b512226a39" + resolved "https://github.com/AntonD3/v3-staker.git#051ddeac959635451a49a9f72851a6d081481c7f" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" @@ -1310,7 +1310,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: anymatch@~3.1.1, anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -1376,7 +1376,7 @@ base64-js@^1.3.1: base64-sol@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/base64-sol/-/base64-sol-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/base64-sol/-/base64-sol-1.0.1.tgz#91317aa341f0bc763811783c5729f1c2574600f6" integrity sha512-ld3cCNMeXt4uJXmLZBHFGMvVpK9KsLVEhPpFRXnvSVAqABKbuNZg/+dsq3NuM+wxFLb/UrVkz7m1ciWmkMfTbg== bcrypt-pbkdf@^1.0.2: @@ -1403,7 +1403,7 @@ bigint-crypto-utils@^3.0.23: binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bl@^1.0.0: @@ -1455,7 +1455,7 @@ brace-expansion@^2.0.1: braces@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" @@ -1656,7 +1656,7 @@ chokidar@3.5.1: optionalDependencies: fsevents "~2.3.1" -chokidar@3.5.3, chokidar@^3.4.0: +chokidar@3.5.3, chokidar@^3.4.0, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -1671,21 +1671,6 @@ chokidar@3.5.3, chokidar@^3.4.0: optionalDependencies: fsevents "~2.3.2" -chokidar@^3.4.3: - version "3.5.2" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - chownr@^1.0.1, chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -2141,7 +2126,7 @@ fast-deep-equal@^3.1.1: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" @@ -2222,7 +2207,7 @@ fs.realpath@^1.0.0: fsevents@~2.3.1, fsevents@~2.3.2: version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== function-bind@^1.1.1: @@ -2256,7 +2241,7 @@ get-intrinsic@^1.0.2: glob-parent@~5.1.0, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" @@ -2313,11 +2298,11 @@ hardhat-dependency-compiler@^1.1.3: integrity sha512-bCDqsOxGST6WkbMvj4lPchYWidNSSBm5CFnkyAex1T11cGmr9otZTGl81W6f9pmrtBXbKCvr3OSuNJ6Q394sAw== hardhat-watcher@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/hardhat-watcher/-/hardhat-watcher-2.1.1.tgz" - integrity sha512-zilmvxAYD34IofBrwOliQn4z92UiDmt2c949DW4Gokf0vS0qk4YTfVCi/LmUBICThGygNANE3WfnRTpjCJGtDA== + version "2.5.0" + resolved "https://registry.yarnpkg.com/hardhat-watcher/-/hardhat-watcher-2.5.0.tgz#3ee76c3cb5b99f2875b78d176207745aa484ed4a" + integrity sha512-Su2qcSMIo2YO2PrmJ0/tdkf+6pSt8zf9+4URR5edMVti6+ShI8T3xhPrwugdyTOFuyj8lKHrcTZNKUFYowYiyA== dependencies: - chokidar "^3.4.3" + chokidar "^3.5.3" hardhat@^2.14.0: version "2.14.0" @@ -2496,7 +2481,7 @@ io-ts@1.10.4: is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" @@ -2508,8 +2493,8 @@ is-buffer@^2.0.5: is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^2.0.0: version "2.0.0" @@ -2522,9 +2507,9 @@ is-fullwidth-code-point@^3.0.0: integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" @@ -2535,7 +2520,7 @@ is-hex-prefixed@1.0.0: is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-obj@^2.1.0: @@ -2922,7 +2907,7 @@ nofilter@^3.1.0: normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== object-inspect@^1.9.0: @@ -3028,9 +3013,9 @@ pbkdf2@^3.0.17: sha.js "^2.4.8" picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== prettier@^2.1.1: version "2.2.1" @@ -3147,7 +3132,7 @@ readdirp@~3.5.0: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" @@ -3520,7 +3505,7 @@ to-buffer@^1.1.1: to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" @@ -3636,17 +3621,6 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -"v3-periphery-1_3_0@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era": - version "1.3.0" - resolved "https://github.com/AntonD3/v3-periphery.git#a2c0aafba2e82c82a045c1ecba0ee3d9dafd08e6" - dependencies: - "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "1.0.1" - "@uniswap/v3-core" "1.0.0" - base64-sol "1.0.1" - hardhat-watcher "^2.1.1" - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" From ccac5266c76168d983775994974ebc20401d7584 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Sat, 29 Apr 2023 12:40:00 +0100 Subject: [PATCH 09/20] Add zkSyncTestnet network --- hardhat.config.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hardhat.config.ts b/hardhat.config.ts index 21a7151..8d3143e 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -24,6 +24,12 @@ export default { allowUnlimitedContractSize: false, zksync: true, }, + zkSyncTestnet: { + url: "https://testnet.era.zksync.dev", + ethNetwork: `https://goerli.infura.io/v3/${process.env.INFURA_API_KEY}`, + zksync: true, + verifyURL: 'https://zksync2-testnet-explorer.zksync.dev/contract_verification' + } }, solidity: { version: '0.7.6', From b369c32bf0037e83d22e19224026e02afb2b9052 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Thu, 29 Jun 2023 18:21:39 +0200 Subject: [PATCH 10/20] zksolc 1.3.12, fix gas price --- hardhat.config.ts | 13 +- package.json | 2 - src/steps/meta/createDeployContractStep.ts | 4 +- src/steps/meta/createDeployLibraryStep.ts | 8 +- yarn.lock | 194 ++------------------- 5 files changed, 26 insertions(+), 195 deletions(-) diff --git a/hardhat.config.ts b/hardhat.config.ts index 8d3143e..f9bc0a6 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,8 +1,7 @@ import '@matterlabs/hardhat-zksync-solc' -import '@matterlabs/hardhat-zksync-verify' import 'hardhat-dependency-compiler' import { task } from 'hardhat/config' -import {deployV3} from './index' +import { deployV3 } from './index' task('deploy-v3') .addParam('privateKey', 'Private key used to deploy all contracts') @@ -21,21 +20,15 @@ task('deploy-v3') export default { networks: { hardhat: { - allowUnlimitedContractSize: false, zksync: true, }, - zkSyncTestnet: { - url: "https://testnet.era.zksync.dev", - ethNetwork: `https://goerli.infura.io/v3/${process.env.INFURA_API_KEY}`, - zksync: true, - verifyURL: 'https://zksync2-testnet-explorer.zksync.dev/contract_verification' - } }, solidity: { version: '0.7.6', settings: { optimizer: { enabled: true, + runs: 1_000_000, }, metadata: { bytecodeHash: 'none', @@ -43,7 +36,7 @@ export default { }, }, zksolc: { - version: "1.3.10", + version: "1.3.12", compilerSource: "binary", settings: { metadata: { diff --git a/package.json b/package.json index ba14dc9..90d1c0b 100644 --- a/package.json +++ b/package.json @@ -46,8 +46,6 @@ "@ethersproject/wallet": "^5.5.0", "@matterlabs/hardhat-zksync-deploy": "^0.6.3", "@matterlabs/hardhat-zksync-solc": "^0.3.16", - "@matterlabs/hardhat-zksync-verify": "^0.1.5", - "@nomiclabs/hardhat-etherscan": "^3.1.7", "@types/chai": "^4.2.12", "@types/mocha": "^8.0.3", "@types/node": "^14.6.3", diff --git a/src/steps/meta/createDeployContractStep.ts b/src/steps/meta/createDeployContractStep.ts index fc53a2c..68c6628 100644 --- a/src/steps/meta/createDeployContractStep.ts +++ b/src/steps/meta/createDeployContractStep.ts @@ -41,8 +41,8 @@ export default function createDeployContractStep({ let contract: zk.Contract try { contract = await factory.deploy(...constructorArgs, { - // TODO: check gas price - gasPrice: config.gasPrice, + maxFeePerGas: config.gasPrice, + maxPriorityFeePerGas: 0, customData: { factoryDeps, }, diff --git a/src/steps/meta/createDeployLibraryStep.ts b/src/steps/meta/createDeployLibraryStep.ts index 6ee54dd..f719528 100644 --- a/src/steps/meta/createDeployLibraryStep.ts +++ b/src/steps/meta/createDeployLibraryStep.ts @@ -1,7 +1,6 @@ -import { ContractInterface } from '@ethersproject/contracts' import { ContractFactory } from 'zksync-web3' import { MigrationState, MigrationStep } from '../../migrations' -import {ZkSyncArtifact} from '@matterlabs/hardhat-zksync-deploy/src/types' +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' export default function createDeployLibraryStep({ key, @@ -22,7 +21,10 @@ export default function createDeployLibraryStep({ signer ) - const library = await factory.deploy({ gasPrice }) + const library = await factory.deploy({ + maxFeePerGas: gasPrice, + maxPriorityFeePerGas: 0, + }) state[key] = library.address return [ diff --git a/yarn.lock b/yarn.lock index 537dc24..a28fdd5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -692,15 +692,6 @@ dependencies: chalk "4.1.2" -"@matterlabs/hardhat-zksync-solc@0.3.14": - version "0.3.14" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.3.14.tgz#0a32f01b4cd8631ecd8dfe0547e3ac49ab8290d5" - integrity sha512-iKuQ+vvnpv3K2lkFO41xpJcNWH0KHJ/5JbOboTlPZATVR7F3GJeHfJL+GG4wkxKXnxZczpxyQqC4rAfMKvRaDg== - dependencies: - "@nomiclabs/hardhat-docker" "^2.0.0" - chalk "4.1.2" - dockerode "^3.3.4" - "@matterlabs/hardhat-zksync-solc@^0.3.16": version "0.3.16" resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.3.16.tgz#dd8ed44f1a580f282794a15fee995f418b040158" @@ -710,16 +701,6 @@ chalk "4.1.2" dockerode "^3.3.4" -"@matterlabs/hardhat-zksync-verify@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-verify/-/hardhat-zksync-verify-0.1.5.tgz#300a03d5533581a8cca775cc7a7968b22e8a2d62" - integrity sha512-o79DsXaEfa4ou4z07KLhCVOk4vX593QZME5cNq1wDD4DG3+ZYAjxwqplCpLhUmSSVjUKAVRGfEfqvuRMcvis2w== - dependencies: - "@matterlabs/hardhat-zksync-solc" "0.3.14" - axios "^1.3.4" - chalk "4.1.2" - dockerode "^3.3.4" - "@metamask/eth-sig-util@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" @@ -950,22 +931,6 @@ fs-extra "^7.0.1" node-fetch "^2.6.0" -"@nomiclabs/hardhat-etherscan@^3.1.7": - version "3.1.7" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz#72e3d5bd5d0ceb695e097a7f6f5ff6fcbf062b9a" - integrity sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ== - dependencies: - "@ethersproject/abi" "^5.1.2" - "@ethersproject/address" "^5.0.2" - cbor "^8.1.0" - chalk "^2.4.2" - debug "^4.1.1" - fs-extra "^7.0.1" - lodash "^4.17.11" - semver "^6.3.0" - table "^6.8.0" - undici "^5.14.0" - "@openzeppelin/contracts@3.4.1-solc-0.7-2": version "3.4.1-solc-0.7-2" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-3.4.1-solc-0.7-2.tgz#371c67ebffe50f551c3146a9eec5fe6ffe862e92" @@ -1142,58 +1107,57 @@ "@uniswap/swap-router-contracts@https://github.com/AntonD3/swap-router-contracts.git#v1.1.0-zksync-era": version "1.1.0" - resolved "https://github.com/AntonD3/swap-router-contracts.git#487e981ea14ade03e2d026ee2d24245fae4d575d" + resolved "https://github.com/AntonD3/swap-router-contracts.git#6364993ed1bfa161aab0e42a2682e9d1337597fe" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/v2-core" "1.0.1" + "@uniswap/v2-core" "https://github.com/AntonD3/v2-core.git#v1.0.1-zksync-era" "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" "@uniswap/v3-periphery" "https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era" hardhat-watcher "^2.1.1" -"@uniswap/v2-core@1.0.1": +"@uniswap/v2-core@https://github.com/AntonD3/v2-core.git#v1.0.1-zksync-era": version "1.0.1" - resolved "https://registry.yarnpkg.com/@uniswap/v2-core/-/v2-core-1.0.1.tgz#af8f508bf183204779938969e2e54043e147d425" - integrity sha512-MtybtkUPSyysqLY2U210NBDeCHX+ltHt3oADGdjqoThZaFRDKwM6k1Nb3F0A3hk5hwuQvytFWhrWHOEq6nVJ8Q== + resolved "https://github.com/AntonD3/v2-core.git#0ce72c31df25108e7301536085eca9f00460301e" "@uniswap/v3-core@https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era": version "1.0.0" - resolved "https://github.com/AntonD3/v3-core.git#f8ca660b2c470e3746b710c31588a03737d30ef1" + resolved "https://github.com/AntonD3/v3-core.git#32a847aba1aa842012b11491a65cac86bef1b7a8" "@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.0.1-zksync-era": version "1.0.1" - resolved "https://github.com/AntonD3/v3-periphery.git#436d501b224d88025d5cf3cd2602dbbea6939ac1" + resolved "https://github.com/AntonD3/v3-periphery.git#91785066548d5bcd854e927b5675a9920ca3b206" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "1.0.1" + "@uniswap/v2-core" "https://github.com/AntonD3/v2-core.git#v1.0.1-zksync-era" "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" base64-sol "1.0.1" "@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era": version "1.1.1" - resolved "https://github.com/AntonD3/v3-periphery.git#c49fa72a28819b3ad021ad7ea78efc77d70abf7e" + resolved "https://github.com/AntonD3/v3-periphery.git#a3f1812de05fdce95b3bbdb864ace02ed1316799" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "1.0.1" + "@uniswap/v2-core" "https://github.com/AntonD3/v2-core.git#v1.0.1-zksync-era" "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" base64-sol "1.0.1" hardhat-watcher "^2.1.1" "@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era", "v3-periphery-1_3_0@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era": version "1.3.0" - resolved "https://github.com/AntonD3/v3-periphery.git#f5f6644ebf003119535c1b0f0496980874acdd1a" + resolved "https://github.com/AntonD3/v3-periphery.git#be9380ab4bdac90b376fdee155d08a530b84f87b" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "1.0.1" + "@uniswap/v2-core" "https://github.com/AntonD3/v2-core.git#v1.0.1-zksync-era" "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" base64-sol "1.0.1" hardhat-watcher "^2.1.1" "@uniswap/v3-staker@https://github.com/AntonD3/v3-staker.git#v1.0.2-zksync-era": version "1.0.2" - resolved "https://github.com/AntonD3/v3-staker.git#051ddeac959635451a49a9f72851a6d081481c7f" + resolved "https://github.com/AntonD3/v3-staker.git#b9b30e4743f008240678db31765cc831ac52c7a3" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" @@ -1257,16 +1221,6 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^8.0.1: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - ansi-colors@4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" @@ -1338,25 +1292,6 @@ assertion-error@^1.1.0: resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -axios@^1.3.4: - version "1.4.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f" - integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" @@ -1592,13 +1527,6 @@ catering@^2.1.0, catering@^2.1.1: resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== -cbor@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" - integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== - dependencies: - nofilter "^3.1.0" - chai@^4.2.0: version "4.3.3" resolved "https://registry.npmjs.org/chai/-/chai-4.3.3.tgz" @@ -1738,13 +1666,6 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - command-exists@^1.2.8: version "1.2.9" resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" @@ -1864,11 +1785,6 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -2119,11 +2035,6 @@ evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -2151,20 +2062,11 @@ flat@^5.0.2: resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -follow-redirects@^1.12.1, follow-redirects@^1.15.0: +follow-redirects@^1.12.1: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - fp-ts@1.19.3: version "1.19.3" resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f" @@ -2577,11 +2479,6 @@ jsbi@^3.1.4: resolved "https://registry.npmjs.org/jsbi/-/jsbi-3.1.4.tgz" integrity sha512-52QRRFSsi9impURE8ZUbzAMCLjPm4THO7H2fcuIvaaeFTbSysvkodbQQXIVsNgq/ypDbq6dJiuGKL0vZ/i9hUg== -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -2653,11 +2550,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - lodash@^4.17.11: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -2723,18 +2615,6 @@ memorystream@^0.3.1: resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" @@ -2900,11 +2780,6 @@ node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz" integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== -nofilter@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" - integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -2929,7 +2804,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: "openzeppelin-solidity@https://github.com/AntonD3/openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era": version "3.4.1-solc-0.7-2" - resolved "https://github.com/AntonD3/openzeppelin-contracts.git#9afed897b7fb41f862acaa2143e99696bc855851" + resolved "https://github.com/AntonD3/openzeppelin-contracts.git#e13aea3a30419bb0e8643c97f6aa1e808b4f159a" os-tmpdir@~1.0.2: version "1.0.2" @@ -3027,11 +2902,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - pump@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" @@ -3048,11 +2918,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - qs@^6.7.0: version "6.11.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" @@ -3142,7 +3007,7 @@ require-directory@^2.1.1: resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-from-string@^2.0.0, require-from-string@^2.0.2: +require-from-string@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== @@ -3268,15 +3133,6 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - solc@0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" @@ -3346,7 +3202,7 @@ streamsearch@^1.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -3421,17 +3277,6 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -table@^6.8.0: - version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" - integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - tar-fs@~1.16.3: version "1.16.3" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" @@ -3604,13 +3449,6 @@ unpipe@1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" From e9a7b33432ec20a484bf702ca0676e6e0443f7a8 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Fri, 30 Jun 2023 03:25:30 +0200 Subject: [PATCH 11/20] zksolc 1.3.13 --- hardhat.config.ts | 2 +- yarn.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/hardhat.config.ts b/hardhat.config.ts index f9bc0a6..2719c79 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -36,7 +36,7 @@ export default { }, }, zksolc: { - version: "1.3.12", + version: "1.3.13", compilerSource: "binary", settings: { metadata: { diff --git a/yarn.lock b/yarn.lock index a28fdd5..57e0984 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1107,7 +1107,7 @@ "@uniswap/swap-router-contracts@https://github.com/AntonD3/swap-router-contracts.git#v1.1.0-zksync-era": version "1.1.0" - resolved "https://github.com/AntonD3/swap-router-contracts.git#6364993ed1bfa161aab0e42a2682e9d1337597fe" + resolved "https://github.com/AntonD3/swap-router-contracts.git#79e4fba0e5f1e371a98e9270dca7081467ae104b" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/v2-core" "https://github.com/AntonD3/v2-core.git#v1.0.1-zksync-era" @@ -1117,15 +1117,15 @@ "@uniswap/v2-core@https://github.com/AntonD3/v2-core.git#v1.0.1-zksync-era": version "1.0.1" - resolved "https://github.com/AntonD3/v2-core.git#0ce72c31df25108e7301536085eca9f00460301e" + resolved "https://github.com/AntonD3/v2-core.git#bf8f5db636135f4fd11edc439d39acc60042c553" "@uniswap/v3-core@https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era": version "1.0.0" - resolved "https://github.com/AntonD3/v3-core.git#32a847aba1aa842012b11491a65cac86bef1b7a8" + resolved "https://github.com/AntonD3/v3-core.git#ad482a4cb91c86c97c63d99caa9c6267403e5d38" "@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.0.1-zksync-era": version "1.0.1" - resolved "https://github.com/AntonD3/v3-periphery.git#91785066548d5bcd854e927b5675a9920ca3b206" + resolved "https://github.com/AntonD3/v3-periphery.git#1371437511a2b2731e6bfd2a49bea816cb630860" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" @@ -1135,7 +1135,7 @@ "@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era": version "1.1.1" - resolved "https://github.com/AntonD3/v3-periphery.git#a3f1812de05fdce95b3bbdb864ace02ed1316799" + resolved "https://github.com/AntonD3/v3-periphery.git#d3b9add20017042174e5703668a0157a245f97cd" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" @@ -1146,7 +1146,7 @@ "@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era", "v3-periphery-1_3_0@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era": version "1.3.0" - resolved "https://github.com/AntonD3/v3-periphery.git#be9380ab4bdac90b376fdee155d08a530b84f87b" + resolved "https://github.com/AntonD3/v3-periphery.git#25519e9ac02170cdb488c7d80313364008c2cb7c" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" @@ -1157,7 +1157,7 @@ "@uniswap/v3-staker@https://github.com/AntonD3/v3-staker.git#v1.0.2-zksync-era": version "1.0.2" - resolved "https://github.com/AntonD3/v3-staker.git#b9b30e4743f008240678db31765cc831ac52c7a3" + resolved "https://github.com/AntonD3/v3-staker.git#70340e41b9ec451bc9e3a6ab3bda74e959f0ca5f" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" @@ -2804,7 +2804,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: "openzeppelin-solidity@https://github.com/AntonD3/openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era": version "3.4.1-solc-0.7-2" - resolved "https://github.com/AntonD3/openzeppelin-contracts.git#e13aea3a30419bb0e8643c97f6aa1e808b4f159a" + resolved "https://github.com/AntonD3/openzeppelin-contracts.git#109acc0b754fc4f34bd2981b82d8642a63f84946" os-tmpdir@~1.0.2: version "1.0.2" From 7ff00492b69901d12e35546fe99314954da4dd88 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Mon, 14 Aug 2023 13:12:53 +0200 Subject: [PATCH 12/20] in-memory node for tests, refactoring --- .gitignore | 3 - contracts/README.md | 1 + hardhat.config.ts | 9 ++- index.ts | 26 ++++---- package.json | 31 +++------ scripts/start-local-setup.sh | 13 ---- src/steps/deploy-multicall2.ts | 4 +- .../deploy-nft-position-descriptor-v1_3_0.ts | 2 +- .../deploy-nonfungible-position-manager.ts | 2 +- src/steps/deploy-proxy-admin.ts | 2 +- src/steps/deploy-quoter-v2.ts | 2 +- src/steps/deploy-tick-lens.ts | 2 +- .../deploy-transparent-proxy-descriptor.ts | 2 +- src/steps/deploy-v3-core-factory.ts | 4 +- src/steps/deploy-v3-migrator.ts | 2 +- src/steps/deploy-v3-staker.ts | 2 +- src/steps/deploy-v3-swap-router-02.ts | 2 +- src/steps/meta/createDeployContractStep.ts | 35 +++++----- src/steps/meta/createDeployLibraryStep.ts | 6 +- test/deploy-v3-core-factory.spec.ts | 13 ++-- yarn.lock | 64 ++++++++----------- 21 files changed, 94 insertions(+), 133 deletions(-) create mode 100644 contracts/README.md delete mode 100755 scripts/start-local-setup.sh diff --git a/.gitignore b/.gitignore index 1be318a..f3abb48 100644 --- a/.gitignore +++ b/.gitignore @@ -110,6 +110,3 @@ dist # hardhat artifacts-zk/ cache-zk/ - -# zksync local setup -local-setup/ diff --git a/contracts/README.md b/contracts/README.md new file mode 100644 index 0000000..f4ed003 --- /dev/null +++ b/contracts/README.md @@ -0,0 +1 @@ +This directory will be used by the hardhat dependency compiler diff --git a/hardhat.config.ts b/hardhat.config.ts index 2719c79..5e99a8c 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -17,6 +17,7 @@ task('deploy-v3') await deployV3(taskArgs) }) +// This config will be used to compile the `v3-periphery-1_3_0/contracts/NonfungibleTokenPositionDescriptor.sol` contract export default { networks: { hardhat: { @@ -36,8 +37,8 @@ export default { }, }, zksolc: { - version: "1.3.13", - compilerSource: "binary", + version: '1.3.13', + compilerSource: 'binary', settings: { metadata: { bytecodeHash: 'none', @@ -45,8 +46,6 @@ export default { }, }, dependencyCompiler: { - paths: [ - 'v3-periphery-1_3_0/contracts/NonfungibleTokenPositionDescriptor.sol', - ], + paths: ['v3-periphery-1_3_0/contracts/NonfungibleTokenPositionDescriptor.sol'], }, } diff --git a/index.ts b/index.ts index ae47c89..d6d417e 100644 --- a/index.ts +++ b/index.ts @@ -4,7 +4,7 @@ import { AddressZero } from '@ethersproject/constants' import { getAddress } from '@ethersproject/address' import fs from 'fs' import deploy from './src/deploy' -import {MigrationState, StepOutput} from './src/migrations' +import { MigrationState, StepOutput } from './src/migrations' import { asciiStringToBytes32 } from './src/util/asciiStringToBytes32' export async function deployV3(args: any) { @@ -73,12 +73,12 @@ export async function deployV3(args: any) { process.exit(1) } - const wallet = new Wallet(args.privateKey, new Provider({url: url.href})) + const wallet = new Wallet(args.privateKey, new Provider({ url: url.href })) let state: MigrationState if (fs.existsSync(args.state)) { try { - state = JSON.parse(fs.readFileSync(args.state, {encoding: 'utf8'})) + state = JSON.parse(fs.readFileSync(args.state, { encoding: 'utf8' })) } catch (error) { console.error('Failed to load and parse migration state file', (error as Error).message) process.exit(1) @@ -113,15 +113,15 @@ export async function deployV3(args: any) { // wait 15 minutes for any transactions sent in the step await Promise.all( - result.map( - (stepResult): Promise => { - if (stepResult.hash) { - return wallet.provider.waitForTransaction(stepResult.hash, confirmations, /* 15 minutes */ 1000 * 60 * 15) - } else { - return Promise.resolve(true) - } - } - ) + result.map( + (stepResult): Promise => { + if (stepResult.hash) { + return wallet.provider.waitForTransaction(stepResult.hash, confirmations, /* 15 minutes */ 1000 * 60 * 15) + } else { + return Promise.resolve(true) + } + } + ) ) } @@ -143,4 +143,4 @@ export async function deployV3(args: any) { console.log('Final state') console.log(JSON.stringify(finalState!)) process.exit(0) -} \ No newline at end of file +} diff --git a/package.json b/package.json index 90d1c0b..198a110 100644 --- a/package.json +++ b/package.json @@ -1,30 +1,21 @@ { "name": "@uniswap/deploy-v3", "version": "1.0.4", - "description": "Deploy Uniswap V3 smart contracts", - "bin": "dist/index.js", + "description": "Deploy Uniswap V3 smart contracts on zkSyncEra", "publishConfig": { "access": "restricted" }, "main": "dist/index.js", "scripts": { "test": "mocha", - "build": "ncc build index.ts -o dist -m", - "postbuild": "cat shebang.txt dist/index.js > dist/index.cmd.js && mv dist/index.cmd.js dist/index.js", - "prestart": "yarn build", - "start": "yarn hardhat deploy-v3", - "prepublishOnly": "yarn build", - "local-setup": "./scripts/start-local-setup.sh" + "start": "yarn hardhat deploy-v3" }, - "files": [ - "dist/" - ], "engines": { "node": ">=12.18.3" }, "repository": { "type": "git", - "url": "git+https://github.com/Uniswap/deploy-v3.git" + "url": "git+https://github.com/matter-labs/deploy-v3.git" }, "author": { "email": "contact@uniswap.org", @@ -33,7 +24,7 @@ }, "license": "GPL-3.0-or-later", "bugs": { - "url": "https://github.com/Uniswap/deploy-v3/issues" + "url": "https://github.com/matter-labs/deploy-v3/issues" }, "homepage": "https://uniswap.org", "devDependencies": { @@ -50,23 +41,21 @@ "@types/mocha": "^8.0.3", "@types/node": "^14.6.3", "@uniswap/sdk-core": "^1.0.8", - "@uniswap/swap-router-contracts": "https://github.com/AntonD3/swap-router-contracts.git#v1.1.0-zksync-era", - "@uniswap/v3-core": "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era", - "@uniswap/v3-periphery": "https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era", - "@uniswap/v3-staker": "https://github.com/AntonD3/v3-staker.git#v1.0.2-zksync-era", - "@vercel/ncc": "^0.33.1", + "@uniswap/swap-router-contracts": "https://github.com/matter-labs/swap-router-contracts.git#v1.1.0-zksync-era", + "@uniswap/v3-core": "https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era", + "@uniswap/v3-periphery": "https://github.com/matter-labs/v3-periphery.git#v1.1.1-zksync-era", + "@uniswap/v3-staker": "https://github.com/matter-labs/v3-staker.git#v1.0.2-zksync-era", "chai": "^4.2.0", - "commander": "^6.1.0", "ethers": "5.7.0", "hardhat": "^2.14.0", "hardhat-dependency-compiler": "^1.1.3", "immer": "^7.0.8", "mocha": "^8.1.3", - "openzeppelin-solidity": "https://github.com/AntonD3/openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era", + "openzeppelin-solidity": "https://github.com/matter-labs/era-openzeppelin.git#v3.4.1-solc-0.7-2", "prettier": "^2.1.1", "ts-node": "^9.0.0", "typescript": "^4.0.2", - "v3-periphery-1_3_0": "https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era", + "v3-periphery-1_3_0": "https://github.com/matter-labs/v3-periphery.git#v1.3.0-zksync-era", "zksync-web3": "^0.14.3" } } diff --git a/scripts/start-local-setup.sh b/scripts/start-local-setup.sh deleted file mode 100755 index 31cca1a..0000000 --- a/scripts/start-local-setup.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -git clone https://github.com/matter-labs/local-setup.git -cd local-setup -git checkout 1c016dcd143c42c2ecf696209155bb1efee842ef - -rm -rf ./volumes -mkdir -p ./volumes -mkdir -p ./volumes/postgres ./volumes/geth ./volumes/zksync/env/dev ./volumes/zksync/data -touch ./volumes/zksync/env.env - -docker-compose down -v -docker-compose pull -docker-compose up -d \ No newline at end of file diff --git a/src/steps/deploy-multicall2.ts b/src/steps/deploy-multicall2.ts index 263cb06..cfac973 100644 --- a/src/steps/deploy-multicall2.ts +++ b/src/steps/deploy-multicall2.ts @@ -6,7 +6,7 @@ export const DEPLOY_MULTICALL2 = createDeployContractStep({ key: 'multicall2Address', async computeArtifact() { return { - artifact: UniswapInterfaceMulticall as ZkSyncArtifact + artifact: UniswapInterfaceMulticall as ZkSyncArtifact, } - } + }, }) diff --git a/src/steps/deploy-nft-position-descriptor-v1_3_0.ts b/src/steps/deploy-nft-position-descriptor-v1_3_0.ts index 377120a..47ba4ad 100644 --- a/src/steps/deploy-nft-position-descriptor-v1_3_0.ts +++ b/src/steps/deploy-nft-position-descriptor-v1_3_0.ts @@ -14,7 +14,7 @@ export const DEPLOY_NFT_POSITION_DESCRIPTOR_V1_3_0 = createDeployContractStep({ } await hre.run('compile') return { - artifact: hre.artifacts.readArtifactSync('NonfungibleTokenPositionDescriptor') + artifact: hre.artifacts.readArtifactSync('NonfungibleTokenPositionDescriptor'), } }, computeArguments(_, { weth9Address, nativeCurrencyLabelBytes }) { diff --git a/src/steps/deploy-nonfungible-position-manager.ts b/src/steps/deploy-nonfungible-position-manager.ts index 6d2d4e4..66f48e4 100644 --- a/src/steps/deploy-nonfungible-position-manager.ts +++ b/src/steps/deploy-nonfungible-position-manager.ts @@ -6,7 +6,7 @@ export const DEPLOY_NONFUNGIBLE_POSITION_MANAGER = createDeployContractStep({ key: 'nonfungibleTokenPositionManagerAddress', async computeArtifact() { return { - artifact: NonfungiblePositionManager as ZkSyncArtifact + artifact: NonfungiblePositionManager as ZkSyncArtifact, } }, computeArguments(state, config) { diff --git a/src/steps/deploy-proxy-admin.ts b/src/steps/deploy-proxy-admin.ts index 7ba6bd4..adc24ef 100644 --- a/src/steps/deploy-proxy-admin.ts +++ b/src/steps/deploy-proxy-admin.ts @@ -6,7 +6,7 @@ export const DEPLOY_PROXY_ADMIN = createDeployContractStep({ key: 'proxyAdminAddress', async computeArtifact() { return { - artifact: ProxyAdmin as ZkSyncArtifact + artifact: ProxyAdmin as ZkSyncArtifact, } }, }) diff --git a/src/steps/deploy-quoter-v2.ts b/src/steps/deploy-quoter-v2.ts index 3a9d04f..7acb8fa 100644 --- a/src/steps/deploy-quoter-v2.ts +++ b/src/steps/deploy-quoter-v2.ts @@ -6,7 +6,7 @@ export const DEPLOY_QUOTER_V2 = createDeployContractStep({ key: 'quoterV2Address', async computeArtifact() { return { - artifact: QuoterV2 as ZkSyncArtifact + artifact: QuoterV2 as ZkSyncArtifact, } }, computeArguments(state, config) { diff --git a/src/steps/deploy-tick-lens.ts b/src/steps/deploy-tick-lens.ts index 5d3e61e..c4814ba 100644 --- a/src/steps/deploy-tick-lens.ts +++ b/src/steps/deploy-tick-lens.ts @@ -6,7 +6,7 @@ export const DEPLOY_TICK_LENS = createDeployContractStep({ key: 'tickLensAddress', async computeArtifact() { return { - artifact: TickLens as ZkSyncArtifact + artifact: TickLens as ZkSyncArtifact, } }, }) diff --git a/src/steps/deploy-transparent-proxy-descriptor.ts b/src/steps/deploy-transparent-proxy-descriptor.ts index 4abdfa6..38c10ac 100644 --- a/src/steps/deploy-transparent-proxy-descriptor.ts +++ b/src/steps/deploy-transparent-proxy-descriptor.ts @@ -6,7 +6,7 @@ export const DEPLOY_TRANSPARENT_PROXY_DESCRIPTOR = createDeployContractStep({ key: 'descriptorProxyAddress', async computeArtifact() { return { - artifact: TransparentUpgradeableProxy as ZkSyncArtifact + artifact: TransparentUpgradeableProxy as ZkSyncArtifact, } }, computeArguments(state) { diff --git a/src/steps/deploy-v3-core-factory.ts b/src/steps/deploy-v3-core-factory.ts index 03453e9..a0a16f8 100644 --- a/src/steps/deploy-v3-core-factory.ts +++ b/src/steps/deploy-v3-core-factory.ts @@ -8,9 +8,7 @@ export const DEPLOY_V3_CORE_FACTORY = createDeployContractStep({ async computeArtifact() { return { artifact: UniswapV3Factory as any, - factoryDepsArtifacts: [ - UniswapV3Pool as ZkSyncArtifact - ] + factoryDepsArtifacts: [UniswapV3Pool as ZkSyncArtifact], } }, }) diff --git a/src/steps/deploy-v3-migrator.ts b/src/steps/deploy-v3-migrator.ts index c47f4e2..d2f34cc 100644 --- a/src/steps/deploy-v3-migrator.ts +++ b/src/steps/deploy-v3-migrator.ts @@ -6,7 +6,7 @@ export const DEPLOY_V3_MIGRATOR = createDeployContractStep({ key: 'v3MigratorAddress', async computeArtifact() { return { - artifact: V3Migrator as ZkSyncArtifact + artifact: V3Migrator as ZkSyncArtifact, } }, computeArguments(state, config) { diff --git a/src/steps/deploy-v3-staker.ts b/src/steps/deploy-v3-staker.ts index 26ce630..abbabce 100644 --- a/src/steps/deploy-v3-staker.ts +++ b/src/steps/deploy-v3-staker.ts @@ -17,7 +17,7 @@ export const DEPLOY_V3_STAKER = createDeployContractStep({ key: 'v3StakerAddress', async computeArtifact() { return { - artifact: UniswapV3Staker as ZkSyncArtifact + artifact: UniswapV3Staker as ZkSyncArtifact, } }, computeArguments(state) { diff --git a/src/steps/deploy-v3-swap-router-02.ts b/src/steps/deploy-v3-swap-router-02.ts index 957ba90..6f846ea 100644 --- a/src/steps/deploy-v3-swap-router-02.ts +++ b/src/steps/deploy-v3-swap-router-02.ts @@ -6,7 +6,7 @@ export const DEPLOY_V3_SWAP_ROUTER_02 = createDeployContractStep({ key: 'swapRouter02', async computeArtifact() { return { - artifact: SwapRouter02 as ZkSyncArtifact + artifact: SwapRouter02 as ZkSyncArtifact, } }, computeArguments(state, config) { diff --git a/src/steps/meta/createDeployContractStep.ts b/src/steps/meta/createDeployContractStep.ts index 68c6628..e487ac8 100644 --- a/src/steps/meta/createDeployContractStep.ts +++ b/src/steps/meta/createDeployContractStep.ts @@ -1,6 +1,6 @@ import * as zk from 'zksync-web3' import * as ethers from 'ethers' -import { ZkSyncArtifact} from '@matterlabs/hardhat-zksync-deploy/src/types' +import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' import { MigrationConfig, MigrationState, MigrationStep } from '../../migrations' type ConstructorArgs = (string | number | string[] | number[])[] @@ -11,15 +11,17 @@ export default function createDeployContractStep({ computeArguments, }: { key: keyof MigrationState - computeArtifact: (state: Readonly, config: MigrationConfig) => Promise<{ - artifact: ZkSyncArtifact, + computeArtifact: ( + state: Readonly, + config: MigrationConfig + ) => Promise<{ + artifact: ZkSyncArtifact factoryDepsArtifacts?: ZkSyncArtifact[] }> computeArguments?: (state: Readonly, config: MigrationConfig) => ConstructorArgs }): MigrationStep { - return async (state, config) => { - let {artifact, factoryDepsArtifacts} = await computeArtifact(state, config) + let { artifact, factoryDepsArtifacts } = await computeArtifact(state, config) factoryDepsArtifacts = factoryDepsArtifacts ? factoryDepsArtifacts : [] if (state[key] === undefined) { @@ -32,11 +34,7 @@ export default function createDeployContractStep({ visited.add(`${artifact.sourceName}:${artifact.contractName}`) let factoryDeps: string[] = extractFactoryDeps(artifact, factoryDepsArtifacts, visited) - const factory = new zk.ContractFactory( - artifact.abi, - artifact.bytecode, - config.signer - ) + const factory = new zk.ContractFactory(artifact.abi, artifact.bytecode, config.signer) let contract: zk.Contract try { @@ -56,8 +54,9 @@ export default function createDeployContractStep({ return [ { - message: `Contract ${artifact.contractName} deployed, constructor args: ${constructorArgs}`, + message: `Contract ${artifact.contractName} deployed`, address: contract.address, + constructorArgs: constructorArgs, hash: contract.deployTransaction.hash, }, ] @@ -67,16 +66,22 @@ export default function createDeployContractStep({ } } -function extractFactoryDeps(artifact: ZkSyncArtifact, knownArtifacts: ZkSyncArtifact[], visited: Set): string[] { +function extractFactoryDeps( + artifact: ZkSyncArtifact, + knownArtifacts: ZkSyncArtifact[], + visited: Set +): string[] { const factoryDeps: string[] = [] for (const dependencyHash in artifact.factoryDeps) { const dependencyContract = artifact.factoryDeps[dependencyHash] if (!visited.has(dependencyContract)) { - const dependencyArtifact = knownArtifacts.find(dependencyArtifact => { - return dependencyArtifact.sourceName + ':' + dependencyArtifact.contractName === dependencyContract && + const dependencyArtifact = knownArtifacts.find((dependencyArtifact) => { + return ( + dependencyArtifact.sourceName + ':' + dependencyArtifact.contractName === dependencyContract && ethers.utils.hexlify(zk.utils.hashBytecode(dependencyArtifact.bytecode)) === dependencyHash + ) }) if (dependencyArtifact === undefined) { throw new Error('Dependency: `' + dependencyContract + '` is not found') @@ -90,4 +95,4 @@ function extractFactoryDeps(artifact: ZkSyncArtifact, knownArtifacts: ZkSyncArti } return factoryDeps -} \ No newline at end of file +} diff --git a/src/steps/meta/createDeployLibraryStep.ts b/src/steps/meta/createDeployLibraryStep.ts index f719528..b206180 100644 --- a/src/steps/meta/createDeployLibraryStep.ts +++ b/src/steps/meta/createDeployLibraryStep.ts @@ -15,11 +15,7 @@ export default function createDeployLibraryStep({ throw new Error('Factory deps for the library: `' + artifact.contractName + '` is not empty') } - const factory = new ContractFactory( - artifact.abi, - artifact.bytecode, - signer - ) + const factory = new ContractFactory(artifact.abi, artifact.bytecode, signer) const library = await factory.deploy({ maxFeePerGas: gasPrice, diff --git a/test/deploy-v3-core-factory.spec.ts b/test/deploy-v3-core-factory.spec.ts index 2215f9f..01c4dc1 100644 --- a/test/deploy-v3-core-factory.spec.ts +++ b/test/deploy-v3-core-factory.spec.ts @@ -7,17 +7,16 @@ import { expect } from 'chai' import { DEPLOY_V3_CORE_FACTORY } from '../src/steps/deploy-v3-core-factory' import { asciiStringToBytes32 } from '../src/util/asciiStringToBytes32' -import * as fs from 'fs' - +const ERA_TEST_NODE_IP = 'http://localhost:8011' const DUMMY_ADDRESS = '0x9999999999999999999999999999999999999999' -const RICH_WALLET_PRIVATE_KEY = JSON.parse(fs.readFileSync(`./local-setup/rich-wallets.json`, "utf8"))[0]; +const RICH_WALLET_PRIVATE_KEY = '0x7726827caac94a7f9e1b160f7ea819f172f7b6f9d2a97f992c38edeab82d4110' describe('deploy-v3-core-factory', () => { let provider: Provider let signer: Wallet before('create provider', () => { - provider = Provider.getDefaultProvider() + provider = new Provider(ERA_TEST_NODE_IP) signer = new Wallet(RICH_WALLET_PRIVATE_KEY, provider) }) @@ -32,7 +31,7 @@ describe('deploy-v3-core-factory', () => { {}, { signer, - gasPrice: BigNumber.from(1), + gasPrice: BigNumber.from(250_000_000), ownerAddress: DUMMY_ADDRESS, v2CoreFactoryAddress: DUMMY_ADDRESS, weth9Address: DUMMY_ADDRESS, @@ -49,7 +48,7 @@ describe('deploy-v3-core-factory', () => { { v3CoreFactoryAddress: DUMMY_ADDRESS }, { signer, - gasPrice: BigNumber.from(1), + gasPrice: BigNumber.from(250_000_000), ownerAddress: DUMMY_ADDRESS, v2CoreFactoryAddress: DUMMY_ADDRESS, weth9Address: DUMMY_ADDRESS, @@ -69,7 +68,7 @@ describe('deploy-v3-core-factory', () => { {}, { signer, - gasPrice: BigNumber.from(1), + gasPrice: BigNumber.from(250_000_000), ownerAddress: DUMMY_ADDRESS, v2CoreFactoryAddress: DUMMY_ADDRESS, weth9Address: DUMMY_ADDRESS, diff --git a/yarn.lock b/yarn.lock index 57e0984..7880243 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1105,68 +1105,63 @@ tiny-warning "^1.0.3" toformat "^2.0.0" -"@uniswap/swap-router-contracts@https://github.com/AntonD3/swap-router-contracts.git#v1.1.0-zksync-era": +"@uniswap/swap-router-contracts@https://github.com/matter-labs/swap-router-contracts.git#v1.1.0-zksync-era": version "1.1.0" - resolved "https://github.com/AntonD3/swap-router-contracts.git#79e4fba0e5f1e371a98e9270dca7081467ae104b" + resolved "https://github.com/matter-labs/swap-router-contracts.git#055c7b9ddcbc0b4bde15fa8bdd1acd8b40e3b5bb" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/v2-core" "https://github.com/AntonD3/v2-core.git#v1.0.1-zksync-era" - "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" - "@uniswap/v3-periphery" "https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era" + "@uniswap/v2-core" "https://github.com/matter-labs/v2-core.git#v1.0.1-zksync-era" + "@uniswap/v3-core" "https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era" + "@uniswap/v3-periphery" "https://github.com/matter-labs/v3-periphery.git#v1.3.0-zksync-era" hardhat-watcher "^2.1.1" -"@uniswap/v2-core@https://github.com/AntonD3/v2-core.git#v1.0.1-zksync-era": +"@uniswap/v2-core@https://github.com/matter-labs/v2-core.git#v1.0.1-zksync-era": version "1.0.1" - resolved "https://github.com/AntonD3/v2-core.git#bf8f5db636135f4fd11edc439d39acc60042c553" + resolved "https://github.com/matter-labs/v2-core.git#8d4de891341d2a234f598403c6e3b0cc69af58ea" -"@uniswap/v3-core@https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era": +"@uniswap/v3-core@https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era": version "1.0.0" - resolved "https://github.com/AntonD3/v3-core.git#ad482a4cb91c86c97c63d99caa9c6267403e5d38" + resolved "https://github.com/matter-labs/v3-core.git#04edd15144fdb9a54c44fd2c7efb5735e26f9106" -"@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.0.1-zksync-era": +"@uniswap/v3-periphery@https://github.com/matter-labs/v3-periphery.git#v1.0.1-zksync-era": version "1.0.1" - resolved "https://github.com/AntonD3/v3-periphery.git#1371437511a2b2731e6bfd2a49bea816cb630860" + resolved "https://github.com/matter-labs/v3-periphery.git#12e0a85045600dac4def059b00c8b5fb4ba0eb60" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "https://github.com/AntonD3/v2-core.git#v1.0.1-zksync-era" - "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" + "@uniswap/v2-core" "https://github.com/matter-labs/v2-core.git#v1.0.1-zksync-era" + "@uniswap/v3-core" "https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era" base64-sol "1.0.1" -"@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.1.1-zksync-era": +"@uniswap/v3-periphery@https://github.com/matter-labs/v3-periphery.git#v1.1.1-zksync-era": version "1.1.1" - resolved "https://github.com/AntonD3/v3-periphery.git#d3b9add20017042174e5703668a0157a245f97cd" + resolved "https://github.com/matter-labs/v3-periphery.git#bbc590002601dda3cb1854631c3bded133e42fe1" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "https://github.com/AntonD3/v2-core.git#v1.0.1-zksync-era" - "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" + "@uniswap/v2-core" "https://github.com/matter-labs/v2-core.git#v1.0.1-zksync-era" + "@uniswap/v3-core" "https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era" base64-sol "1.0.1" hardhat-watcher "^2.1.1" -"@uniswap/v3-periphery@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era", "v3-periphery-1_3_0@https://github.com/AntonD3/v3-periphery.git#v1.3.0-zksync-era": +"@uniswap/v3-periphery@https://github.com/matter-labs/v3-periphery.git#v1.3.0-zksync-era", "v3-periphery-1_3_0@https://github.com/matter-labs/v3-periphery.git#v1.3.0-zksync-era": version "1.3.0" - resolved "https://github.com/AntonD3/v3-periphery.git#25519e9ac02170cdb488c7d80313364008c2cb7c" + resolved "https://github.com/matter-labs/v3-periphery.git#86c2da9e78fd4d536437689acbff60c27adec046" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "https://github.com/AntonD3/v2-core.git#v1.0.1-zksync-era" - "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" + "@uniswap/v2-core" "https://github.com/matter-labs/v2-core.git#v1.0.1-zksync-era" + "@uniswap/v3-core" "https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era" base64-sol "1.0.1" hardhat-watcher "^2.1.1" -"@uniswap/v3-staker@https://github.com/AntonD3/v3-staker.git#v1.0.2-zksync-era": +"@uniswap/v3-staker@https://github.com/matter-labs/v3-staker.git#v1.0.2-zksync-era": version "1.0.2" - resolved "https://github.com/AntonD3/v3-staker.git#70340e41b9ec451bc9e3a6ab3bda74e959f0ca5f" + resolved "https://github.com/matter-labs/v3-staker.git#114a30d37fe2b6f5d63c295ac4302f814ea12ff9" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/v3-core" "https://github.com/AntonD3/v3-core.git#v1.0.0-zksync-era" - "@uniswap/v3-periphery" "https://github.com/AntonD3/v3-periphery.git#v1.0.1-zksync-era" - -"@vercel/ncc@^0.33.1": - version "0.33.1" - resolved "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.33.1.tgz" - integrity sha512-Mlsps/P0PLZwsCFtSol23FGqT3FhBGb4B1AuGQ52JTAtXhak+b0Fh/4T55r0/SVQPeRiX9pNItOEHwakGPmZYA== + "@uniswap/v3-core" "https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era" + "@uniswap/v3-periphery" "https://github.com/matter-labs/v3-periphery.git#v1.0.1-zksync-era" JSONStream@1.3.2: version "1.3.2" @@ -1676,11 +1671,6 @@ commander@3.0.2: resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -commander@^6.1.0: - version "6.2.1" - resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" @@ -2802,9 +2792,9 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -"openzeppelin-solidity@https://github.com/AntonD3/openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era": +"openzeppelin-solidity@https://github.com/matter-labs/era-openzeppelin.git#v3.4.1-solc-0.7-2": version "3.4.1-solc-0.7-2" - resolved "https://github.com/AntonD3/openzeppelin-contracts.git#109acc0b754fc4f34bd2981b82d8642a63f84946" + resolved "https://github.com/matter-labs/era-openzeppelin.git#ac816067010378b877cf147477c2b7cd93fec3c1" os-tmpdir@~1.0.2: version "1.0.2" From 9e1e3cfb8fba1da2cc66e90d8822aa34259a5d27 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Fri, 18 Aug 2023 13:37:48 +0200 Subject: [PATCH 13/20] Update deps and readme --- README.md | 44 ++++++-------- package.json | 16 ++--- src/steps/deploy-proxy-admin.ts | 2 +- .../deploy-transparent-proxy-descriptor.ts | 2 +- src/steps/transfer-proxy-admin.ts | 2 +- yarn.lock | 58 +++++++++---------- 6 files changed, 57 insertions(+), 67 deletions(-) diff --git a/README.md b/README.md index f70f0ad..524fcf9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Deploy Uniswap V3 Script -This package includes a CLI script for deploying the latest Uniswap V3 smart contracts to any EVM (Ethereum Virtual Machine) compatible network. +This package includes a CLI script for deploying the latest Uniswap V3 smart contracts to zkSync Era. ## Licensing @@ -29,26 +29,24 @@ These contract function calls should ultimately be encoded into a governance pro ## Usage This package vends a CLI for executing a deployment script that results in a full deployment of Uniswap Protocol v3. -Get the arguments for running the latest version of the script via `npx @uniswap/deploy-v3 --help`. +Get the arguments for running the latest version of the script via `yarn start --help`. -As of `v1.0.3` the arguments are: +As of `v1.0.4` the arguments are: ```text -> npx @uniswap/deploy-v3 --help -Usage: npx @uniswap/deploy-v3 [options] - -Options: - -pk, --private-key Private key used to deploy all contracts - -j, --json-rpc JSON RPC URL where the program should be deployed - -w9, --weth9-address
Address of the WETH9 contract on this chain - -ncl, --native-currency-label Native currency label, e.g. ETH - -o, --owner-address
Contract address that will own the deployed artifacts after the script runs - -s, --state Path to the JSON file containing the migrations state (optional) (default: "./state.json") - -v2, --v2-core-factory-address
The V2 core factory address used in the swap router (optional) - -g, --gas-price The gas price to pay in GWEI for each transaction (optional) - -c, --confirmations How many confirmations to wait for after each transaction (optional) (default: "2") - -V, --version output the version number - -h, --help display help for command +Usage: hardhat [GLOBAL OPTIONS] deploy-v3 [--confirmations ] [--gas-price ] --json-rpc --native-currency-label --owner-address --private-key [--state ] [--v2-core-factory-address ] --weth9-address + +OPTIONS: + + --confirmations How many confirmations to wait for after each transaction (optional) (default: "2") + --gas-price The gas price to pay in GWEI for each transaction (optional) + --json-rpc JSON RPC URL where the program should be deployed + --native-currency-label Native currency label, e.g. ETH + --owner-address Contract address that will own the deployed artifacts after the script runs + --private-key Private key used to deploy all contracts + --state Path to the JSON file containing the migrations state (optional) (default: "./state.json") + --v2-core-factory-address The V2 core factory address used in the swap router (optional) + --weth9-address Address of the WETH9 contract on this chain ``` The script runs a set of migrations, each migration deploying a contract or executing a transaction. Migration state is @@ -57,8 +55,7 @@ saved in a JSON file at the supplied path (by default `./state.json`). To use the script, you must fund an address, and pass the private key of that address to the script so that it can construct and broadcast the deployment transactions. -The block explorer verification process (e.g. Etherscan) is specific to the network. For the existing deployments, -we have used the `@nomiclabs/hardhat-etherscan` hardhat plugin in the individual repositories to verify the deployment addresses. +For the existing deployments, we have used the `@matterlabs/hardhat-zksync-verify` hardhat plugin in the individual repositories to verify the deployment addresses. Note that in between deployment steps, the script waits for confirmations. By default, this is set to `2`. If the network only mines blocks when the transactions is queued (e.g. a local testnet), you must set confirmations to `0`. @@ -69,15 +66,8 @@ To run unit tests, run `yarn test`. For testing the script, run `yarn start`. -To publish the script, first create a version: `npm version `, then publish via `npm publish`. -Don't forget to push your tagged commit! - ## FAQs -### How much gas should I expect to use for full completion? - -We estimate 30M - 40M gas needed to run the full deploy script. - ### When I run the script, it says "Contract was already deployed..." Delete `state.json` before a fresh deploy. `state.json` tracks which steps have already occurred. If there are any entries, the deploy script will attempt to pick up from the last step in `state.json`. diff --git a/package.json b/package.json index 198a110..a31d311 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/matter-labs/deploy-v3.git" + "url": "git+https://github.com/uniswap-zksync/era-uniswap-deploy-v3.git" }, "author": { "email": "contact@uniswap.org", @@ -24,7 +24,7 @@ }, "license": "GPL-3.0-or-later", "bugs": { - "url": "https://github.com/matter-labs/deploy-v3/issues" + "url": "https://github.com/uniswap-zksync/era-uniswap-deploy-v3/issues" }, "homepage": "https://uniswap.org", "devDependencies": { @@ -41,21 +41,21 @@ "@types/mocha": "^8.0.3", "@types/node": "^14.6.3", "@uniswap/sdk-core": "^1.0.8", - "@uniswap/swap-router-contracts": "https://github.com/matter-labs/swap-router-contracts.git#v1.1.0-zksync-era", - "@uniswap/v3-core": "https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era", - "@uniswap/v3-periphery": "https://github.com/matter-labs/v3-periphery.git#v1.1.1-zksync-era", - "@uniswap/v3-staker": "https://github.com/matter-labs/v3-staker.git#v1.0.2-zksync-era", + "@uniswap/swap-router-contracts": "https://github.com/uniswap-zksync/era-uniswap-swap-router-contracts.git#v1.1.0-zksync-era", + "@uniswap/v3-core": "https://github.com/uniswap-zksync/era-uniswap-v3-core.git#v1.0.0-zksync-era", + "@uniswap/v3-periphery": "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.1.1-zksync-era", + "@uniswap/v3-staker": "https://github.com/uniswap-zksync/era-uniswap-v3-staker.git#v1.0.2-zksync-era", "chai": "^4.2.0", "ethers": "5.7.0", "hardhat": "^2.14.0", "hardhat-dependency-compiler": "^1.1.3", "immer": "^7.0.8", "mocha": "^8.1.3", - "openzeppelin-solidity": "https://github.com/matter-labs/era-openzeppelin.git#v3.4.1-solc-0.7-2", + "@openzeppelin/contracts": "https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era", "prettier": "^2.1.1", "ts-node": "^9.0.0", "typescript": "^4.0.2", - "v3-periphery-1_3_0": "https://github.com/matter-labs/v3-periphery.git#v1.3.0-zksync-era", + "v3-periphery-1_3_0": "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.3.0-zksync-era", "zksync-web3": "^0.14.3" } } diff --git a/src/steps/deploy-proxy-admin.ts b/src/steps/deploy-proxy-admin.ts index adc24ef..4faee2f 100644 --- a/src/steps/deploy-proxy-admin.ts +++ b/src/steps/deploy-proxy-admin.ts @@ -1,4 +1,4 @@ -import ProxyAdmin from 'openzeppelin-solidity/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' +import ProxyAdmin from '@openzeppelin/contracts/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/deploy-transparent-proxy-descriptor.ts b/src/steps/deploy-transparent-proxy-descriptor.ts index 38c10ac..4f1783e 100644 --- a/src/steps/deploy-transparent-proxy-descriptor.ts +++ b/src/steps/deploy-transparent-proxy-descriptor.ts @@ -1,4 +1,4 @@ -import TransparentUpgradeableProxy from 'openzeppelin-solidity/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json' +import TransparentUpgradeableProxy from '@openzeppelin/contracts/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/transfer-proxy-admin.ts b/src/steps/transfer-proxy-admin.ts index 3f52370..95b9570 100644 --- a/src/steps/transfer-proxy-admin.ts +++ b/src/steps/transfer-proxy-admin.ts @@ -1,4 +1,4 @@ -import ProxyAdmin from 'openzeppelin-solidity/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' +import ProxyAdmin from '@openzeppelin/contracts/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' import { Contract } from 'zksync-web3' import { MigrationStep } from '../migrations' diff --git a/yarn.lock b/yarn.lock index 7880243..06eca5c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -936,6 +936,10 @@ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-3.4.1-solc-0.7-2.tgz#371c67ebffe50f551c3146a9eec5fe6ffe862e92" integrity sha512-tAG9LWg8+M2CMu7hIsqHPaTyG4uDzjr6mhvH96LvOpLZZj6tgzTluBt+LsCf1/QaYrlis6pITvpIaIhE+iZB+Q== +"@openzeppelin/contracts@https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era": + version "3.4.1-solc-0.7-2" + resolved "https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#ac816067010378b877cf147477c2b7cd93fec3c1" + "@scure/base@~1.1.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" @@ -1105,63 +1109,63 @@ tiny-warning "^1.0.3" toformat "^2.0.0" -"@uniswap/swap-router-contracts@https://github.com/matter-labs/swap-router-contracts.git#v1.1.0-zksync-era": +"@uniswap/swap-router-contracts@https://github.com/uniswap-zksync/era-uniswap-swap-router-contracts.git#v1.1.0-zksync-era": version "1.1.0" - resolved "https://github.com/matter-labs/swap-router-contracts.git#055c7b9ddcbc0b4bde15fa8bdd1acd8b40e3b5bb" + resolved "https://github.com/uniswap-zksync/era-uniswap-swap-router-contracts.git#0519cadb15c49e2aef839fc604862239f9093e26" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/v2-core" "https://github.com/matter-labs/v2-core.git#v1.0.1-zksync-era" - "@uniswap/v3-core" "https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era" - "@uniswap/v3-periphery" "https://github.com/matter-labs/v3-periphery.git#v1.3.0-zksync-era" + "@uniswap/v2-core" "https://github.com/uniswap-zksync/era-uniswap-v2-core.git#v1.0.1-zksync-era" + "@uniswap/v3-core" "https://github.com/uniswap-zksync/era-uniswap-v3-core.git#v1.0.0-zksync-era" + "@uniswap/v3-periphery" "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.3.0-zksync-era" hardhat-watcher "^2.1.1" -"@uniswap/v2-core@https://github.com/matter-labs/v2-core.git#v1.0.1-zksync-era": +"@uniswap/v2-core@https://github.com/uniswap-zksync/era-uniswap-v2-core.git#v1.0.1-zksync-era": version "1.0.1" - resolved "https://github.com/matter-labs/v2-core.git#8d4de891341d2a234f598403c6e3b0cc69af58ea" + resolved "https://github.com/uniswap-zksync/era-uniswap-v2-core.git#0ae8c6ae315c1efa77c2831da15553ef9fda4a5f" -"@uniswap/v3-core@https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era": +"@uniswap/v3-core@https://github.com/uniswap-zksync/era-uniswap-v3-core.git#v1.0.0-zksync-era": version "1.0.0" - resolved "https://github.com/matter-labs/v3-core.git#04edd15144fdb9a54c44fd2c7efb5735e26f9106" + resolved "https://github.com/uniswap-zksync/era-uniswap-v3-core.git#bba8fa7fc6f24810dea7384a4d8ca4e550e6f386" -"@uniswap/v3-periphery@https://github.com/matter-labs/v3-periphery.git#v1.0.1-zksync-era": +"@uniswap/v3-periphery@https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.0.1-zksync-era": version "1.0.1" - resolved "https://github.com/matter-labs/v3-periphery.git#12e0a85045600dac4def059b00c8b5fb4ba0eb60" + resolved "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#a5cc08cd99ef4d0cad1123e6cb3d351486c94c3e" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "https://github.com/matter-labs/v2-core.git#v1.0.1-zksync-era" - "@uniswap/v3-core" "https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era" + "@uniswap/v2-core" "https://github.com/uniswap-zksync/era-uniswap-v2-core.git#v1.0.1-zksync-era" + "@uniswap/v3-core" "https://github.com/uniswap-zksync/era-uniswap-v3-core.git#v1.0.0-zksync-era" base64-sol "1.0.1" -"@uniswap/v3-periphery@https://github.com/matter-labs/v3-periphery.git#v1.1.1-zksync-era": +"@uniswap/v3-periphery@https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.1.1-zksync-era": version "1.1.1" - resolved "https://github.com/matter-labs/v3-periphery.git#bbc590002601dda3cb1854631c3bded133e42fe1" + resolved "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#ad17e886ef3aca862fc4859da325e99eab09cde3" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "https://github.com/matter-labs/v2-core.git#v1.0.1-zksync-era" - "@uniswap/v3-core" "https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era" + "@uniswap/v2-core" "https://github.com/uniswap-zksync/era-uniswap-v2-core.git#v1.0.1-zksync-era" + "@uniswap/v3-core" "https://github.com/uniswap-zksync/era-uniswap-v3-core.git#v1.0.0-zksync-era" base64-sol "1.0.1" hardhat-watcher "^2.1.1" -"@uniswap/v3-periphery@https://github.com/matter-labs/v3-periphery.git#v1.3.0-zksync-era", "v3-periphery-1_3_0@https://github.com/matter-labs/v3-periphery.git#v1.3.0-zksync-era": +"@uniswap/v3-periphery@https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.3.0-zksync-era", "v3-periphery-1_3_0@https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.3.0-zksync-era": version "1.3.0" - resolved "https://github.com/matter-labs/v3-periphery.git#86c2da9e78fd4d536437689acbff60c27adec046" + resolved "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#8267ba044feb2d0323e34de8540959342fa03aa0" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" - "@uniswap/v2-core" "https://github.com/matter-labs/v2-core.git#v1.0.1-zksync-era" - "@uniswap/v3-core" "https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era" + "@uniswap/v2-core" "https://github.com/uniswap-zksync/era-uniswap-v2-core.git#v1.0.1-zksync-era" + "@uniswap/v3-core" "https://github.com/uniswap-zksync/era-uniswap-v3-core.git#v1.0.0-zksync-era" base64-sol "1.0.1" hardhat-watcher "^2.1.1" -"@uniswap/v3-staker@https://github.com/matter-labs/v3-staker.git#v1.0.2-zksync-era": +"@uniswap/v3-staker@https://github.com/uniswap-zksync/era-uniswap-v3-staker.git#v1.0.2-zksync-era": version "1.0.2" - resolved "https://github.com/matter-labs/v3-staker.git#114a30d37fe2b6f5d63c295ac4302f814ea12ff9" + resolved "https://github.com/uniswap-zksync/era-uniswap-v3-staker.git#2068aa8de78de40b1fdb5f861e7eb0254a6b45b8" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" - "@uniswap/v3-core" "https://github.com/matter-labs/v3-core.git#v1.0.0-zksync-era" - "@uniswap/v3-periphery" "https://github.com/matter-labs/v3-periphery.git#v1.0.1-zksync-era" + "@uniswap/v3-core" "https://github.com/uniswap-zksync/era-uniswap-v3-core.git#v1.0.0-zksync-era" + "@uniswap/v3-periphery" "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.0.1-zksync-era" JSONStream@1.3.2: version "1.3.2" @@ -2792,10 +2796,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -"openzeppelin-solidity@https://github.com/matter-labs/era-openzeppelin.git#v3.4.1-solc-0.7-2": - version "3.4.1-solc-0.7-2" - resolved "https://github.com/matter-labs/era-openzeppelin.git#ac816067010378b877cf147477c2b7cd93fec3c1" - os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" From a514e6c8981687e1c5074105064b61000438aadd Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Fri, 18 Aug 2023 13:48:42 +0200 Subject: [PATCH 14/20] Rename openzeppelin dependency to fix conflicts --- package.json | 2 +- src/steps/deploy-proxy-admin.ts | 2 +- src/steps/deploy-transparent-proxy-descriptor.ts | 2 +- src/steps/transfer-proxy-admin.ts | 2 +- yarn.lock | 8 ++++---- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index a31d311..a02ddf0 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "hardhat-dependency-compiler": "^1.1.3", "immer": "^7.0.8", "mocha": "^8.1.3", - "@openzeppelin/contracts": "https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era", + "openzeppelin-solidity": "https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era", "prettier": "^2.1.1", "ts-node": "^9.0.0", "typescript": "^4.0.2", diff --git a/src/steps/deploy-proxy-admin.ts b/src/steps/deploy-proxy-admin.ts index 4faee2f..adc24ef 100644 --- a/src/steps/deploy-proxy-admin.ts +++ b/src/steps/deploy-proxy-admin.ts @@ -1,4 +1,4 @@ -import ProxyAdmin from '@openzeppelin/contracts/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' +import ProxyAdmin from 'openzeppelin-solidity/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/deploy-transparent-proxy-descriptor.ts b/src/steps/deploy-transparent-proxy-descriptor.ts index 4f1783e..38c10ac 100644 --- a/src/steps/deploy-transparent-proxy-descriptor.ts +++ b/src/steps/deploy-transparent-proxy-descriptor.ts @@ -1,4 +1,4 @@ -import TransparentUpgradeableProxy from '@openzeppelin/contracts/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json' +import TransparentUpgradeableProxy from 'openzeppelin-solidity/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/transfer-proxy-admin.ts b/src/steps/transfer-proxy-admin.ts index 95b9570..3f52370 100644 --- a/src/steps/transfer-proxy-admin.ts +++ b/src/steps/transfer-proxy-admin.ts @@ -1,4 +1,4 @@ -import ProxyAdmin from '@openzeppelin/contracts/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' +import ProxyAdmin from 'openzeppelin-solidity/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' import { Contract } from 'zksync-web3' import { MigrationStep } from '../migrations' diff --git a/yarn.lock b/yarn.lock index 06eca5c..5324245 100644 --- a/yarn.lock +++ b/yarn.lock @@ -936,10 +936,6 @@ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-3.4.1-solc-0.7-2.tgz#371c67ebffe50f551c3146a9eec5fe6ffe862e92" integrity sha512-tAG9LWg8+M2CMu7hIsqHPaTyG4uDzjr6mhvH96LvOpLZZj6tgzTluBt+LsCf1/QaYrlis6pITvpIaIhE+iZB+Q== -"@openzeppelin/contracts@https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era": - version "3.4.1-solc-0.7-2" - resolved "https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#ac816067010378b877cf147477c2b7cd93fec3c1" - "@scure/base@~1.1.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" @@ -2796,6 +2792,10 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +"openzeppelin-solidity@https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era": + version "3.4.1-solc-0.7-2" + resolved "https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#ac816067010378b877cf147477c2b7cd93fec3c1" + os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" From 72ad228bd1a582cf18affacf1447eba6f26e34bd Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Fri, 18 Aug 2023 14:15:21 +0200 Subject: [PATCH 15/20] Update hardhat-zksync-solc --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a02ddf0..42a4146 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "@ethersproject/providers": "^5.5.1", "@ethersproject/wallet": "^5.5.0", "@matterlabs/hardhat-zksync-deploy": "^0.6.3", - "@matterlabs/hardhat-zksync-solc": "^0.3.16", + "@matterlabs/hardhat-zksync-solc": "^0.3.17", "@types/chai": "^4.2.12", "@types/mocha": "^8.0.3", "@types/node": "^14.6.3", diff --git a/yarn.lock b/yarn.lock index 5324245..62e0246 100644 --- a/yarn.lock +++ b/yarn.lock @@ -692,10 +692,10 @@ dependencies: chalk "4.1.2" -"@matterlabs/hardhat-zksync-solc@^0.3.16": - version "0.3.16" - resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.3.16.tgz#dd8ed44f1a580f282794a15fee995f418b040158" - integrity sha512-gw46yyiCfj49I/nbUcOlnF5xE80WyeW/i8i9ouHom4KWJNt1kioQIwOPkN7aJURhXpJJxKSdeWBrQHLWTZDnTA== +"@matterlabs/hardhat-zksync-solc@^0.3.17": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.3.17.tgz#72f199544dc89b268d7bfc06d022a311042752fd" + integrity sha512-aZgQ0yfXW5xPkfuEH1d44ncWV4T2LzKZd0VVPo4PL5cUrYs2/II1FaEDp5zsf3FxOR1xT3mBsjuSrtJkk4AL8Q== dependencies: "@nomiclabs/hardhat-docker" "^2.0.0" chalk "4.1.2" From ab308f0377a0994be3c370169c565683ebae3247 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Mon, 28 Aug 2023 11:58:29 +0200 Subject: [PATCH 16/20] Integrate CI, update license, cleanup repository --- .github/workflows/lint.yml | 2 +- .github/workflows/tests.yml | 19 ++- LICENSE | 12 ++ ...portNonfungibleTokenPositionDescriptor.sol | 5 + contracts/README.md | 1 - hardhat.config.ts | 13 -- package.json | 15 +-- src/steps/deploy-proxy-admin.ts | 2 +- .../deploy-transparent-proxy-descriptor.ts | 2 +- src/steps/transfer-proxy-admin.ts | 2 +- yarn.lock | 118 +++--------------- 11 files changed, 64 insertions(+), 127 deletions(-) create mode 100644 contracts/ImportNonfungibleTokenPositionDescriptor.sol delete mode 100644 contracts/README.md diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 946672b..7d00813 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: - name: Set up node uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 16 registry-url: https://registry.npmjs.org - name: Set output of cache diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8118b3d..e854879 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,9 +18,22 @@ jobs: - name: Set up node uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 16 registry-url: https://registry.npmjs.org + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + + - name: Install test node dependencies + run: | + sudo apt-get update && sudo apt-get install -y \ + cmake pkg-config libssl-dev clang + + - name: Install test node + run: | + cargo install --git https://github.com/matter-labs/era-test-node.git --locked + - name: Set output of cache id: yarn-cache run: echo "::set-output name=dir::$(yarn cache dir)" @@ -36,5 +49,9 @@ jobs: - name: Install dependencies run: yarn --frozen-lockfile + - name: Run test node + run: | + era_test_node run & + - name: Run unit tests run: yarn test diff --git a/LICENSE b/LICENSE index e72bfdd..f37c3da 100644 --- a/LICENSE +++ b/LICENSE @@ -1,3 +1,15 @@ +Deploy script for zkSync Uniswap v3 +Copyright (C) 2023 GFX Labs, Inc. +Licensed under GNU GPL v3 or later +This software incorporates: +deploy-v3 +Copyright (C) 2021 Uniswap Labs +Licensed under GNU GPL v3 +See https://github.com/Uniswap/deploy-v3 +This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +You should have received a copy of the GNU General Public License along with this program. If not, see . + GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 diff --git a/contracts/ImportNonfungibleTokenPositionDescriptor.sol b/contracts/ImportNonfungibleTokenPositionDescriptor.sol new file mode 100644 index 0000000..f605d80 --- /dev/null +++ b/contracts/ImportNonfungibleTokenPositionDescriptor.sol @@ -0,0 +1,5 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +pragma solidity =0.7.6; + +import "v3-periphery-1_3_0/contracts/NonfungibleTokenPositionDescriptor.sol"; diff --git a/contracts/README.md b/contracts/README.md deleted file mode 100644 index f4ed003..0000000 --- a/contracts/README.md +++ /dev/null @@ -1 +0,0 @@ -This directory will be used by the hardhat dependency compiler diff --git a/hardhat.config.ts b/hardhat.config.ts index 5e99a8c..fef666a 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,5 +1,4 @@ import '@matterlabs/hardhat-zksync-solc' -import 'hardhat-dependency-compiler' import { task } from 'hardhat/config' import { deployV3 } from './index' @@ -26,15 +25,6 @@ export default { }, solidity: { version: '0.7.6', - settings: { - optimizer: { - enabled: true, - runs: 1_000_000, - }, - metadata: { - bytecodeHash: 'none', - }, - }, }, zksolc: { version: '1.3.13', @@ -45,7 +35,4 @@ export default { }, }, }, - dependencyCompiler: { - paths: ['v3-periphery-1_3_0/contracts/NonfungibleTokenPositionDescriptor.sol'], - }, } diff --git a/package.json b/package.json index 42a4146..efe9fea 100644 --- a/package.json +++ b/package.json @@ -5,28 +5,26 @@ "publishConfig": { "access": "restricted" }, - "main": "dist/index.js", "scripts": { "test": "mocha", "start": "yarn hardhat deploy-v3" }, "engines": { - "node": ">=12.18.3" + "node": ">=14" }, "repository": { "type": "git", "url": "git+https://github.com/uniswap-zksync/era-uniswap-deploy-v3.git" }, "author": { - "email": "contact@uniswap.org", - "name": "Uniswap Labs", - "url": "https://uniswap.org" + "email": "hello@gfxlabs.io", + "name": "GFX Labs", + "url": "https://gfx.xyz" }, "license": "GPL-3.0-or-later", "bugs": { "url": "https://github.com/uniswap-zksync/era-uniswap-deploy-v3/issues" }, - "homepage": "https://uniswap.org", "devDependencies": { "@ethersproject/abstract-signer": "^5.5.0", "@ethersproject/address": "^5.5.0", @@ -46,12 +44,11 @@ "@uniswap/v3-periphery": "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.1.1-zksync-era", "@uniswap/v3-staker": "https://github.com/uniswap-zksync/era-uniswap-v3-staker.git#v1.0.2-zksync-era", "chai": "^4.2.0", - "ethers": "5.7.0", + "era-openzeppelin-contracts": "https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era", + "ethers": "^5.7.0", "hardhat": "^2.14.0", - "hardhat-dependency-compiler": "^1.1.3", "immer": "^7.0.8", "mocha": "^8.1.3", - "openzeppelin-solidity": "https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era", "prettier": "^2.1.1", "ts-node": "^9.0.0", "typescript": "^4.0.2", diff --git a/src/steps/deploy-proxy-admin.ts b/src/steps/deploy-proxy-admin.ts index adc24ef..bd0aa48 100644 --- a/src/steps/deploy-proxy-admin.ts +++ b/src/steps/deploy-proxy-admin.ts @@ -1,4 +1,4 @@ -import ProxyAdmin from 'openzeppelin-solidity/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' +import ProxyAdmin from 'era-openzeppelin-contracts/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/deploy-transparent-proxy-descriptor.ts b/src/steps/deploy-transparent-proxy-descriptor.ts index 38c10ac..739e0af 100644 --- a/src/steps/deploy-transparent-proxy-descriptor.ts +++ b/src/steps/deploy-transparent-proxy-descriptor.ts @@ -1,4 +1,4 @@ -import TransparentUpgradeableProxy from 'openzeppelin-solidity/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json' +import TransparentUpgradeableProxy from 'era-openzeppelin-contracts/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json' import createDeployContractStep from './meta/createDeployContractStep' import { ZkSyncArtifact } from '@matterlabs/hardhat-zksync-deploy/src/types' diff --git a/src/steps/transfer-proxy-admin.ts b/src/steps/transfer-proxy-admin.ts index 3f52370..09f9b28 100644 --- a/src/steps/transfer-proxy-admin.ts +++ b/src/steps/transfer-proxy-admin.ts @@ -1,4 +1,4 @@ -import ProxyAdmin from 'openzeppelin-solidity/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' +import ProxyAdmin from 'era-openzeppelin-contracts/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' import { Contract } from 'zksync-web3' import { MigrationStep } from '../migrations' diff --git a/yarn.lock b/yarn.lock index 62e0246..24a3f2a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -342,13 +342,6 @@ resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.5.0.tgz" integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== -"@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/networks@5.7.1", "@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" @@ -393,32 +386,6 @@ dependencies: "@ethersproject/logger" "^5.5.0" -"@ethersproject/providers@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.0.tgz#a885cfc7650a64385e7b03ac86fe9c2d4a9c2c63" - integrity sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/base64" "^5.7.0" - "@ethersproject/basex" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/networks" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/web" "^5.7.0" - bech32 "1.1.4" - ws "7.4.6" - "@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.5.1", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2": version "5.7.2" resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" @@ -630,17 +597,6 @@ "@ethersproject/transactions" "^5.5.0" "@ethersproject/wordlists" "^5.5.0" -"@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/web@5.7.1", "@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" @@ -1107,7 +1063,7 @@ "@uniswap/swap-router-contracts@https://github.com/uniswap-zksync/era-uniswap-swap-router-contracts.git#v1.1.0-zksync-era": version "1.1.0" - resolved "https://github.com/uniswap-zksync/era-uniswap-swap-router-contracts.git#0519cadb15c49e2aef839fc604862239f9093e26" + resolved "https://github.com/uniswap-zksync/era-uniswap-swap-router-contracts.git#d1bf27625df57c0a1281f9c25b05099bb1c03fcf" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/v2-core" "https://github.com/uniswap-zksync/era-uniswap-v2-core.git#v1.0.1-zksync-era" @@ -1117,15 +1073,15 @@ "@uniswap/v2-core@https://github.com/uniswap-zksync/era-uniswap-v2-core.git#v1.0.1-zksync-era": version "1.0.1" - resolved "https://github.com/uniswap-zksync/era-uniswap-v2-core.git#0ae8c6ae315c1efa77c2831da15553ef9fda4a5f" + resolved "https://github.com/uniswap-zksync/era-uniswap-v2-core.git#052cc8b612b49fed4fb388586b63eaed2b80d936" "@uniswap/v3-core@https://github.com/uniswap-zksync/era-uniswap-v3-core.git#v1.0.0-zksync-era": version "1.0.0" - resolved "https://github.com/uniswap-zksync/era-uniswap-v3-core.git#bba8fa7fc6f24810dea7384a4d8ca4e550e6f386" + resolved "https://github.com/uniswap-zksync/era-uniswap-v3-core.git#9ba7b052ab83b6a2a7120eeff04e6efe050e881d" "@uniswap/v3-periphery@https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.0.1-zksync-era": version "1.0.1" - resolved "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#a5cc08cd99ef4d0cad1123e6cb3d351486c94c3e" + resolved "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#d3d4acfe534e395e7158e4a431d87dace8a341ba" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" @@ -1135,7 +1091,7 @@ "@uniswap/v3-periphery@https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.1.1-zksync-era": version "1.1.1" - resolved "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#ad17e886ef3aca862fc4859da325e99eab09cde3" + resolved "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#834f719079621ba7a7d5955a12cf88f44e19d7ec" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" @@ -1146,7 +1102,7 @@ "@uniswap/v3-periphery@https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.3.0-zksync-era", "v3-periphery-1_3_0@https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#v1.3.0-zksync-era": version "1.3.0" - resolved "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#8267ba044feb2d0323e34de8540959342fa03aa0" + resolved "https://github.com/uniswap-zksync/era-uniswap-v3-periphery.git#2622d3f5a8db2ea876537d8ff7b428ab59ce436e" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/lib" "^4.0.1-alpha" @@ -1157,7 +1113,7 @@ "@uniswap/v3-staker@https://github.com/uniswap-zksync/era-uniswap-v3-staker.git#v1.0.2-zksync-era": version "1.0.2" - resolved "https://github.com/uniswap-zksync/era-uniswap-v3-staker.git#2068aa8de78de40b1fdb5f861e7eb0254a6b45b8" + resolved "https://github.com/uniswap-zksync/era-uniswap-v3-staker.git#5c5f8b96182447c630e85aeaaa9698a7e1898b68" dependencies: "@openzeppelin/contracts" "3.4.1-solc-0.7-2" "@uniswap/v3-core" "https://github.com/uniswap-zksync/era-uniswap-v3-core.git#v1.0.0-zksync-era" @@ -1865,6 +1821,10 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== +"era-openzeppelin-contracts@https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era": + version "3.4.1-solc-0.7-2" + resolved "https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#4d55329a379b0c2845214d4b66228d23562e6636" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" @@ -1932,45 +1892,9 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethers@5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.0.tgz#0055da174b9e076b242b8282638bc94e04b39835" - integrity sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA== - dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.0" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.0" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.0" - "@ethersproject/wordlists" "5.7.0" - -ethers@^5.7.1: +ethers@^5.7.0, ethers@^5.7.1: version "5.7.2" - resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== dependencies: "@ethersproject/abi" "5.7.0" @@ -2097,11 +2021,16 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@~2.3.1, fsevents@~2.3.2: +fsevents@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -2184,11 +2113,6 @@ growl@1.10.5: resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== -hardhat-dependency-compiler@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hardhat-dependency-compiler/-/hardhat-dependency-compiler-1.1.3.tgz#1e49e23f68878bd713f860c66648a711bc4a4a79" - integrity sha512-bCDqsOxGST6WkbMvj4lPchYWidNSSBm5CFnkyAex1T11cGmr9otZTGl81W6f9pmrtBXbKCvr3OSuNJ6Q394sAw== - hardhat-watcher@^2.1.1: version "2.5.0" resolved "https://registry.yarnpkg.com/hardhat-watcher/-/hardhat-watcher-2.5.0.tgz#3ee76c3cb5b99f2875b78d176207745aa484ed4a" @@ -2792,10 +2716,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -"openzeppelin-solidity@https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#v3.4.1-solc-0.7-2-zksync-era": - version "3.4.1-solc-0.7-2" - resolved "https://github.com/uniswap-zksync/era-openzeppelin-contracts.git#ac816067010378b877cf147477c2b7cd93fec3c1" - os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" From 4b92c1f612d2d96719661daa46c68776e8127207 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Mon, 28 Aug 2023 12:19:32 +0200 Subject: [PATCH 17/20] Update package name --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index efe9fea..6edbc99 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@uniswap/deploy-v3", + "name": "era-uniswap-deploy-v3", "version": "1.0.4", "description": "Deploy Uniswap V3 smart contracts on zkSyncEra", "publishConfig": { From 2eaabffbc920299d9243de1c01ada1c73f89ade8 Mon Sep 17 00:00:00 2001 From: AntonD3 <74021421+AntonD3@users.noreply.github.com> Date: Wed, 30 Aug 2023 14:28:07 +0200 Subject: [PATCH 18/20] License formatting (#2) * License formatting * Fix code style issues with Prettier * yarn start in readme --- LICENSE | 17 ++++++++++++++--- README.md | 16 ++++++++-------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/LICENSE b/LICENSE index f37c3da..3ff9017 100644 --- a/LICENSE +++ b/LICENSE @@ -1,14 +1,25 @@ Deploy script for zkSync Uniswap v3 Copyright (C) 2023 GFX Labs, Inc. Licensed under GNU GPL v3 or later + This software incorporates: deploy-v3 Copyright (C) 2021 Uniswap Labs Licensed under GNU GPL v3 See https://github.com/Uniswap/deploy-v3 -This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. -This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License along with this program. If not, see . + + This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by the +Free Software Foundation, either version 3 of the License, or (at your +option) any later version. + + This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +Public License for more details. + + You should have received a copy of the GNU General Public License +along with this program. If not, see . GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 diff --git a/README.md b/README.md index 524fcf9..0596250 100644 --- a/README.md +++ b/README.md @@ -34,19 +34,19 @@ Get the arguments for running the latest version of the script via `yarn start - As of `v1.0.4` the arguments are: ```text -Usage: hardhat [GLOBAL OPTIONS] deploy-v3 [--confirmations ] [--gas-price ] --json-rpc --native-currency-label --owner-address --private-key [--state ] [--v2-core-factory-address ] --weth9-address +Usage: yarn start [--confirmations ] [--gas-price ] --json-rpc --native-currency-label --owner-address --private-key [--state ] [--v2-core-factory-address ] --weth9-address OPTIONS: --confirmations How many confirmations to wait for after each transaction (optional) (default: "2") - --gas-price The gas price to pay in GWEI for each transaction (optional) - --json-rpc JSON RPC URL where the program should be deployed - --native-currency-label Native currency label, e.g. ETH - --owner-address Contract address that will own the deployed artifacts after the script runs - --private-key Private key used to deploy all contracts + --gas-price The gas price to pay in GWEI for each transaction (optional) + --json-rpc JSON RPC URL where the program should be deployed + --native-currency-label Native currency label, e.g. ETH + --owner-address Contract address that will own the deployed artifacts after the script runs + --private-key Private key used to deploy all contracts --state Path to the JSON file containing the migrations state (optional) (default: "./state.json") - --v2-core-factory-address The V2 core factory address used in the swap router (optional) - --weth9-address Address of the WETH9 contract on this chain + --v2-core-factory-address The V2 core factory address used in the swap router (optional) + --weth9-address Address of the WETH9 contract on this chain ``` The script runs a set of migrations, each migration deploying a contract or executing a transaction. Migration state is From 0cf5d2679b17eca7c3519bb48ee6734dca95c77e Mon Sep 17 00:00:00 2001 From: AntonD3 <74021421+AntonD3@users.noreply.github.com> Date: Thu, 31 Aug 2023 00:49:38 +0200 Subject: [PATCH 19/20] Fix typo in package.json Co-authored-by: Vlad Bochok <41153528+vladbochok@users.noreply.github.com> --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6edbc99..8b0e76f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "era-uniswap-deploy-v3", "version": "1.0.4", - "description": "Deploy Uniswap V3 smart contracts on zkSyncEra", + "description": "Deploy Uniswap V3 smart contracts on zkSync Era", "publishConfig": { "access": "restricted" }, From 971066ae4eee7e9c6679dd9bcb76cec73ba02d54 Mon Sep 17 00:00:00 2001 From: AntonD3 Date: Thu, 31 Aug 2023 00:50:55 +0200 Subject: [PATCH 20/20] Fix CI --- .github/workflows/lint.yml | 2 +- .github/workflows/tests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7d00813..ac6fa2b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -34,7 +34,7 @@ jobs: yarn- - name: Install dependencies - run: yarn --frozen-lockfile + run: yarn --frozen-lockfile --network-concurrency 1 - name: Run linters uses: wearerequired/lint-action@v1 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e854879..e252def 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -47,7 +47,7 @@ jobs: yarn- - name: Install dependencies - run: yarn --frozen-lockfile + run: yarn --frozen-lockfile --network-concurrency 1 - name: Run test node run: |