Skip to content

Commit

Permalink
feat: fork tests for previous mainnet batches
Browse files Browse the repository at this point in the history
zimpha committed Jul 4, 2024
1 parent 48eaab0 commit 178b902
Showing 6 changed files with 2,216 additions and 66 deletions.
1 change: 1 addition & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
### NOTE: DO NOT USE THIS FILE IF USING TESTNET'S .ENV
ETHERSCAN_API_KEY=ABC123ABC123ABC123ABC123ABC123ABC1

MAINNET_FORK_RPC=
RINKEBY_RPC=https://eth-rinkeby.alchemyapi.io/v2/<YOUR ALCHEMY KEY>
SCROLL_L1_RPC=https://prealpha.scroll.io/l1
SCROLL_L2_RPC=https://prealpha.scroll.io/l2
228 changes: 228 additions & 0 deletions hardhat-test/ScrollChainV3CodecUpgrade.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,228 @@
/* eslint-disable node/no-missing-import */
/* eslint-disable node/no-unpublished-import */
import * as fs from "fs";
import { expect } from "chai";
import { ZeroAddress, toQuantity } from "ethers";
import { ethers, network } from "hardhat";

const Deployer = "0x0A47CeC6657570831AE93db36367656e5597C310";
const ScrollOwner = "0x798576400F7D662961BA15C6b3F3d813447a26a6";
const MESSENGER = "0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367";
const MESSAGE_QUEUE = "0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B";
const SCROLL_CHAIN = "0xa13BAF47339d63B743e7Da8741db5456DAc1E556";
const COMMITTER = "0xcF2898225ED05Be911D3709d9417e86E0b4Cfc8f";
const FINALIZER = "0x356483dC32B004f32Ea0Ce58F7F88879886e9074";

// random real mainnet batches to test compatibility of committing and finalizing
// to run this tests, you need to config `MAINNET_FORK_RPC` in `.env` file and change `it.skip` to `it`.
describe("ScrollChainV3CodecUpgrade.spec", async () => {
const mockETHBalance = async (account: string, balance: bigint) => {
await network.provider.send("hardhat_setBalance", [account, toQuantity(balance)]);
expect(await ethers.provider.getBalance(account)).to.eq(balance);
};

const genCommit = async (batch: { index: number; batch_hash: string; commit_tx: string }) => {
it.skip("should succeed to commit batch: " + batch.index, async () => {
const provider = new ethers.JsonRpcProvider("https://rpc.ankr.com/eth");
const originalTx = await provider.getTransaction(batch.commit_tx);
const originalReceipt = await provider.getTransactionReceipt(batch.commit_tx);

await network.provider.request({
method: "hardhat_reset",
params: [
{
forking: {
jsonRpcUrl: process.env.MAINNET_FORK_RPC!,
blockNumber: originalReceipt!.blockNumber - 1,
},
},
],
});
await network.provider.request({
method: "hardhat_impersonateAccount",
params: [Deployer],
});
await network.provider.request({
method: "hardhat_impersonateAccount",
params: [ScrollOwner],
});
await network.provider.request({
method: "hardhat_impersonateAccount",
params: [COMMITTER],
});

const deployer = await ethers.getSigner(Deployer);
const owner = await ethers.getSigner(ScrollOwner);
const committer = await ethers.getSigner(COMMITTER);
await mockETHBalance(committer.address, ethers.parseEther("100"));
await mockETHBalance(deployer.address, ethers.parseEther("100"));
await mockETHBalance(owner.address, ethers.parseEther("100"));

const ScrollChainMockBlob = await ethers.getContractFactory("ScrollChainMockBlob", deployer);
const L1MessageQueueWithGasPriceOracle = await ethers.getContractFactory(
"L1MessageQueueWithGasPriceOracle",
deployer
);
const MultipleVersionRollupVerifier = await ethers.getContractFactory("MultipleVersionRollupVerifier", deployer);

const verifier = await MultipleVersionRollupVerifier.deploy(
[0, 1, 2],
[
"0x585DfaD7bF4099E011D185E266907A8ab60DAD2D",
"0x4b289E4A5331bAFBc6cCb2F10C39B8EDceCDb247",
"0x63FB51C55d9605a75F8872C80De260a00fACfaA2",
]
);
const queueImpl = await L1MessageQueueWithGasPriceOracle.deploy(
MESSENGER,
SCROLL_CHAIN,
"0x72CAcBcfDe2d1e19122F8A36a4d6676cd39d7A5d"
);
const chainImpl = await ScrollChainMockBlob.deploy(534352, MESSAGE_QUEUE, verifier.getAddress());

const admin = await ethers.getContractAt("ProxyAdmin", "0xEB803eb3F501998126bf37bB823646Ed3D59d072", deployer);
await admin.connect(owner).upgrade(SCROLL_CHAIN, chainImpl.getAddress());
await admin.connect(owner).upgrade(MESSAGE_QUEUE, queueImpl.getAddress());

const queue = await ethers.getContractAt("L1MessageQueueWithGasPriceOracle", MESSAGE_QUEUE, deployer);
if ((await queue.whitelistChecker()) === ZeroAddress) {
await queue.initializeV2();
}
await queue.initializeV3();
const chain = await ethers.getContractAt("ScrollChainMockBlob", SCROLL_CHAIN, deployer);

if (originalTx!.blobVersionedHashes) {
await chain.setBlobVersionedHash(originalTx!.blobVersionedHashes[0]);
}

const tx = await committer.sendTransaction({
to: SCROLL_CHAIN,
data: originalTx!.data,
});
await expect(tx).emit(chain, "CommitBatch").withArgs(batch.index, batch.batch_hash);
expect(await chain.committedBatches(batch.index)).to.eq(batch.batch_hash);
const r = await tx.wait();
console.log(
"Fork At Block:",
originalReceipt!.blockNumber - 1,
`OriginalGasUsed[${originalReceipt?.gasUsed}]`,
`NowGasUsed[${r?.gasUsed}]`
);
});
};

const genFinalize = async (batch: { index: number; batch_hash: string; finalize_tx: string }) => {
it.skip("should succeed to finalize batch: " + batch.index, async () => {
const provider = new ethers.JsonRpcProvider("https://rpc.ankr.com/eth");
const originalTx = await provider.getTransaction(batch.finalize_tx);
const originalReceipt = await provider.getTransactionReceipt(batch.finalize_tx);

await network.provider.request({
method: "hardhat_reset",
params: [
{
forking: {
jsonRpcUrl: process.env.MAINNET_FORK_RPC!,
blockNumber: originalReceipt!.blockNumber - 1,
},
},
],
});
await network.provider.request({
method: "hardhat_impersonateAccount",
params: [Deployer],
});
await network.provider.request({
method: "hardhat_impersonateAccount",
params: [ScrollOwner],
});
await network.provider.request({
method: "hardhat_impersonateAccount",
params: [FINALIZER],
});

const deployer = await ethers.getSigner(Deployer);
const owner = await ethers.getSigner(ScrollOwner);
const finalizer = await ethers.getSigner(FINALIZER);
await mockETHBalance(finalizer.address, ethers.parseEther("100"));
await mockETHBalance(deployer.address, ethers.parseEther("100"));
await mockETHBalance(owner.address, ethers.parseEther("100"));

const ScrollChainMockBlob = await ethers.getContractFactory("ScrollChainMockBlob", deployer);
const L1MessageQueueWithGasPriceOracle = await ethers.getContractFactory(
"L1MessageQueueWithGasPriceOracle",
deployer
);
const MultipleVersionRollupVerifier = await ethers.getContractFactory("MultipleVersionRollupVerifier", deployer);

const verifier = await MultipleVersionRollupVerifier.deploy(
[0, 1, 2],
[
"0x585DfaD7bF4099E011D185E266907A8ab60DAD2D",
"0x4b289E4A5331bAFBc6cCb2F10C39B8EDceCDb247",
"0x63FB51C55d9605a75F8872C80De260a00fACfaA2",
]
);
const queueImpl = await L1MessageQueueWithGasPriceOracle.deploy(
MESSENGER,
SCROLL_CHAIN,
"0x72CAcBcfDe2d1e19122F8A36a4d6676cd39d7A5d"
);
const chainImpl = await ScrollChainMockBlob.deploy(534352, MESSAGE_QUEUE, verifier.getAddress());

const admin = await ethers.getContractAt("ProxyAdmin", "0xEB803eb3F501998126bf37bB823646Ed3D59d072", deployer);
await admin.connect(owner).upgrade(SCROLL_CHAIN, chainImpl.getAddress());
await admin.connect(owner).upgrade(MESSAGE_QUEUE, queueImpl.getAddress());

const queue = await ethers.getContractAt("L1MessageQueueWithGasPriceOracle", MESSAGE_QUEUE, deployer);
if ((await queue.whitelistChecker()) === ZeroAddress) {
await queue.initializeV2();
}
await queue.initializeV3();
const chain = await ethers.getContractAt("ScrollChainMockBlob", SCROLL_CHAIN, deployer);

if (originalTx!.blobVersionedHashes) {
await chain.setBlobVersionedHash(originalTx!.blobVersionedHashes[0]);
}

expect(await chain.lastFinalizedBatchIndex()).to.eq(batch.index - 1);
const tx = await finalizer.sendTransaction({
to: SCROLL_CHAIN,
data: originalTx!.data,
});
await expect(tx).emit(chain, "FinalizeBatch");
expect(await chain.lastFinalizedBatchIndex()).to.eq(batch.index);
const r = await tx.wait();
console.log(
"Fork At Block:",
originalReceipt!.blockNumber - 1,
`OriginalGasUsed[${originalReceipt?.gasUsed}]`,
`NowGasUsed[${r?.gasUsed}]`
);
});
};

context("commit batches", async () => {
const batches = fs.readFileSync("./hardhat-test/testdata/batch.commit.txt").toString().split("\n");
for (const batchStr of batches) {
const batch: {
index: number;
batch_hash: string;
commit_tx: string;
} = JSON.parse(batchStr);
genCommit(batch);
}
});

context("finalize batches", async () => {
const batches = fs.readFileSync("./hardhat-test/testdata/batch.finalize.txt").toString().split("\n");
for (const batchStr of batches) {
const batch: {
index: number;
batch_hash: string;
finalize_tx: string;
} = JSON.parse(batchStr);
genFinalize(batch);
}
});
});
932 changes: 932 additions & 0 deletions hardhat-test/testdata/batch.commit.txt

Large diffs are not rendered by default.

998 changes: 998 additions & 0 deletions hardhat-test/testdata/batch.finalize.txt

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -42,7 +42,7 @@
"eslint-plugin-promise": "^6.1.1",
"ethereum-waffle": "^3.0.0",
"ethers": "^6.11.1",
"hardhat": "^2.22.0",
"hardhat": "^2.22.6",
"hardhat-gas-reporter": "^1.0.4",
"husky": "^8.0.1",
"lint-staged": "^13.0.3",
121 changes: 56 additions & 65 deletions yarn.lock
Original file line number Diff line number Diff line change
@@ -787,65 +787,53 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"

"@nomicfoundation/edr-darwin-arm64@0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.3.1.tgz#386cbb7dd8ba70659d76d6ce5e8b06242fac6c8c"
integrity sha512-qsdGS1Kfp6bVH4fk4hUzbsEm0fH7hGurraKk+IWby7Ecv+u7BuNaLVqeoYauYRFLYnGg8XZmcKOJ9BW35Y96Jg==

"@nomicfoundation/edr-darwin-x64@0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.3.1.tgz#809ebd68127fb7b4219c5ddc8ef65b38bc88312b"
integrity sha512-vtS2yuXIgjte42KEg/Aw/xmLRneVrIaDFhFMk578zg3m1UjNP+a29Lirw5fRXaqaL8aPyhRFmUy+1/V4MGaH+g==

"@nomicfoundation/edr-linux-arm64-gnu@0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.3.1.tgz#897bf524e88d6a07a2b39c5a9c5d94eaeee6ec20"
integrity sha512-GrbQcrVjTFLm/x8HdUzmJ1F8Juau9UEZM/YNr4sAxxTGvBHJlq73VaDZfArxj9Anq/u6aImPbs1ksu28D6XC3A==
"@nomicfoundation/edr-darwin-arm64@0.4.1":
version "0.4.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.4.1.tgz#210e6b5eaff9278814e8f19800182d1071554855"
integrity sha512-XuiUUnWAVNw7JYv7nRqDWfpBm21HOxCRBQ8lQnRnmiets9Ss2X5Ul9mvBheIPh/D0wBzwJ8TRtsSrorpwE79cA==

"@nomicfoundation/edr-linux-arm64-musl@0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.3.1.tgz#726d57edee1adcd4844aaf31ec80063f1c44616b"
integrity sha512-wOqugcbugmbZkh58PcIC5naT0ilwkZ0/qH86AniENxsviOaPSrL4aMYhtfypQ3MNxlfrlgLZFCC+D5eJTsNsgQ==
"@nomicfoundation/edr-darwin-x64@0.4.1":
version "0.4.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.4.1.tgz#81e660de77d1d73317c9a5140349d1197cddef9a"
integrity sha512-N1MfJqEX5ixaXlyyrHnaYxzwIT27Nc/jUgLI7ts4/9kRvPTvyZRYmXS1ciKhmUFr/WvFckTCix2RJbZoGGtX7g==

"@nomicfoundation/edr-linux-x64-gnu@0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.3.1.tgz#d45ca451a30d429ed4ea97982879bf65842385f8"
integrity sha512-V+kyUVqbt52dQRgaZK+EWuPWJ5h/PsCYZmiK18A+DQynZvird7jrTsDppcTvlv1Dvny8UAAP0q/ue7G67OoLJQ==
"@nomicfoundation/edr-linux-arm64-gnu@0.4.1":
version "0.4.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.4.1.tgz#6e1ce12080a35505c7f3eaf772f4e171db8b7f9a"
integrity sha512-bSPOfmcFjJwDgWOV5kgZHeqg2OWu1cINrHSGjig0aVHehjcoX4Sgayrj6fyAxcOV5NQKA6WcyTFll6NrCxzWRA==

"@nomicfoundation/edr-linux-x64-musl@0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.3.1.tgz#ee1d01135654124c0f22ae0c3e7d62388a41e595"
integrity sha512-vwrzLW40jQBDZVYmoJUBMwl36i7muB9AfT4F2fMRsb1JoOMgoeOBp8R+IAxbA6mjIJGwAClkRz5W5hCb3zMtMQ==
"@nomicfoundation/edr-linux-arm64-musl@0.4.1":
version "0.4.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.4.1.tgz#a467a6c8631053d10a8641f67618b9bdf057c636"
integrity sha512-F/+DgOdeBFQDrk+SX4aFffJFBgJfd75ZtE2mjcWNAh/qWiS7NfUxdQX/5OvNo/H6EY4a+3bZH6Bgzqg4mEWvMw==

"@nomicfoundation/edr-win32-arm64-msvc@0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-arm64-msvc/-/edr-win32-arm64-msvc-0.3.1.tgz#e89c6e2c7a4458a6fd1de3ef3f57f915b771579e"
integrity sha512-7G29vUGrkwfbJqxo1V+QTxD976gVHx3Z0P5kwb1bErLmlP89cRNX3UN3/dzXpbKH9mp8ZcAjIcIbRUd4C+vH/A==
"@nomicfoundation/edr-linux-x64-gnu@0.4.1":
version "0.4.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.4.1.tgz#63753d05767b4bc0d4f9f9be8399928c790c931e"
integrity sha512-POHhTWczIXCPhzKtY0Vt/l+VCqqCx5gNR5ErwSrNnLz/arfQobZFAU+nc61BX3Jch82TW8b3AbfGI73Kh7gO0w==

"@nomicfoundation/edr-win32-ia32-msvc@0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-ia32-msvc/-/edr-win32-ia32-msvc-0.3.1.tgz#8f05be496c18eff37e3a95628ed8265a03824df0"
integrity sha512-Q39eAkk/j1ZlvHcxQRTAzdY9qlckDNfiuJDgLYTlxdubpmX6KZucuUin/1A5NVhhCToTxw7aFwSglUROY3ejJw==
"@nomicfoundation/edr-linux-x64-musl@0.4.1":
version "0.4.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.4.1.tgz#44d128b9a09e3f61b08617213a58cd84dd15c418"
integrity sha512-uu8oNp4Ozg3H1x1We0FF+rwXfFiAvsOm5GQ+OBx9YYOXnfDPWqguQfGIkhrti9GD0iYhfQ/WOG5wvp0IzzgGSg==

"@nomicfoundation/edr-win32-x64-msvc@0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.3.1.tgz#942c2b1490194d70d67c38b702a56e5603db19c7"
integrity sha512-8WzEzWUshw28xowVBhEyu4EQpx0TqNmDa70C3L1MWl5waym4U/VwbijFrI0Sb6Y1kdoNCdBTMvfr8OJNF2qJ/A==
"@nomicfoundation/edr-win32-x64-msvc@0.4.1":
version "0.4.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.4.1.tgz#1667b725337ca6f27ec58c63337b6a62a0d7ed09"
integrity sha512-PaZHFw455z89ZiKYNTnKu+/TiVZVRI+mRJsbRTe2N0VlYfUBS1o2gdXBM12oP1t198HR7xQwEPPAslTFxGBqHA==

"@nomicfoundation/edr@^0.3.0":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.3.1.tgz#2a7d4de8d70f63f872f9e86a8487f946cc3d2dcc"
integrity sha512-uPg1/CvIJpsCe7Ipe80bYnC/Q2Bt/O55KB2ssLx7Z0os4jwDvWBZas8tLMopT+hpOQnv8cZkHJap1iNDTwAfQg==
optionalDependencies:
"@nomicfoundation/edr-darwin-arm64" "0.3.1"
"@nomicfoundation/edr-darwin-x64" "0.3.1"
"@nomicfoundation/edr-linux-arm64-gnu" "0.3.1"
"@nomicfoundation/edr-linux-arm64-musl" "0.3.1"
"@nomicfoundation/edr-linux-x64-gnu" "0.3.1"
"@nomicfoundation/edr-linux-x64-musl" "0.3.1"
"@nomicfoundation/edr-win32-arm64-msvc" "0.3.1"
"@nomicfoundation/edr-win32-ia32-msvc" "0.3.1"
"@nomicfoundation/edr-win32-x64-msvc" "0.3.1"
"@nomicfoundation/edr@^0.4.1":
version "0.4.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.4.1.tgz#7d698454d228ffc5399f1c58799104b53e1b60ae"
integrity sha512-NgrMo2rI9r28uidumvd+K2/AJLdxtXsUlJr3hj/pM6S1FCd/HiWaLeLa/cjCVPcE2u1rYAa3W6UFxLCB7S5Dhw==
dependencies:
"@nomicfoundation/edr-darwin-arm64" "0.4.1"
"@nomicfoundation/edr-darwin-x64" "0.4.1"
"@nomicfoundation/edr-linux-arm64-gnu" "0.4.1"
"@nomicfoundation/edr-linux-arm64-musl" "0.4.1"
"@nomicfoundation/edr-linux-x64-gnu" "0.4.1"
"@nomicfoundation/edr-linux-x64-musl" "0.4.1"
"@nomicfoundation/edr-win32-x64-msvc" "0.4.1"

"@nomicfoundation/ethereumjs-common@4.0.4":
version "4.0.4"
@@ -3336,6 +3324,11 @@ commander@3.0.2:
resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e"
integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==

commander@^8.1.0:
version "8.3.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==

commander@^9.3.0:
version "9.3.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-9.3.0.tgz#f619114a5a2d2054e0d9ff1b31d5ccf89255e26b"
@@ -5825,14 +5818,14 @@ hardhat-gas-reporter@^1.0.4:
eth-gas-reporter "^0.2.24"
sha1 "^1.1.1"

hardhat@^2.22.0:
version "2.22.0"
resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.0.tgz#ccb03fbacc2a3c5902a70e0e4df4acd92ee533f0"
integrity sha512-t1J+ThxNYANL6ub6yM5XC84RY38vhfG7ODBtVRNQFQozdALo3qZUjxDzyGQU0U0eswe6orK49hq9UpdB7nPXNQ==
hardhat@^2.22.6:
version "2.22.6"
resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.6.tgz#d73caece246cd8219a1815554dabc31d400fa035"
integrity sha512-abFEnd9QACwEtSvZZGSmzvw7N3zhQN1cDKz5SLHAupfG24qTHofCjqvD5kT5Wwsq5XOL0ON1Mq5rr4v0XX5ciw==
dependencies:
"@ethersproject/abi" "^5.1.2"
"@metamask/eth-sig-util" "^4.0.0"
"@nomicfoundation/edr" "^0.3.0"
"@nomicfoundation/edr" "^0.4.1"
"@nomicfoundation/ethereumjs-common" "4.0.4"
"@nomicfoundation/ethereumjs-tx" "5.0.4"
"@nomicfoundation/ethereumjs-util" "9.0.4"
@@ -5866,7 +5859,7 @@ hardhat@^2.22.0:
raw-body "^2.4.1"
resolve "1.17.0"
semver "^6.3.0"
solc "0.7.3"
solc "0.8.26"
source-map-support "^0.5.13"
stacktrace-parser "^0.1.10"
tsort "0.0.1"
@@ -9535,18 +9528,16 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"

solc@0.7.3:
version "0.7.3"
resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a"
integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==
solc@0.8.26:
version "0.8.26"
resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.26.tgz#afc78078953f6ab3e727c338a2fefcd80dd5b01a"
integrity sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==
dependencies:
command-exists "^1.2.8"
commander "3.0.2"
commander "^8.1.0"
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"

0 comments on commit 178b902

Please sign in to comment.