From 8491f676039e2467cfb20274847406507646f2a4 Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Sat, 7 Jan 2023 22:48:54 +0800 Subject: [PATCH 1/5] Fix bug in getProposedBlock --- packages/protocol/contracts/L1/TaikoL1.sol | 3 ++- packages/protocol/contracts/L1/libs/LibProposing.sol | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/protocol/contracts/L1/TaikoL1.sol b/packages/protocol/contracts/L1/TaikoL1.sol index 04d5981535..580137155e 100644 --- a/packages/protocol/contracts/L1/TaikoL1.sol +++ b/packages/protocol/contracts/L1/TaikoL1.sol @@ -237,7 +237,8 @@ contract TaikoL1 is EssentialContract, IHeaderSync, TaikoEvents { function getProposedBlock( uint256 id ) public view returns (TaikoData.ProposedBlock memory) { - return state.getProposedBlock(getConfig().maxNumBlocks, id); + return + LibProposing.getProposedBlock(state, getConfig().maxNumBlocks, id); } function getSyncedHeader( diff --git a/packages/protocol/contracts/L1/libs/LibProposing.sol b/packages/protocol/contracts/L1/libs/LibProposing.sol index 8525da7828..7a5e082736 100644 --- a/packages/protocol/contracts/L1/libs/LibProposing.sol +++ b/packages/protocol/contracts/L1/libs/LibProposing.sol @@ -140,6 +140,15 @@ library LibProposing { emit BlockProposed(state.nextBlockId++, meta); } + function getProposedBlock( + TaikoData.State storage state, + uint256 maxNumBlocks, + uint256 id + ) internal view returns (TaikoData.ProposedBlock storage) { + require(id > state.latestVerifiedId && id < state.nextBlockId, "L1:id"); + return LibUtils.getProposedBlock(state, maxNumBlocks, id); + } + function getBlockFee( TaikoData.State storage state, TaikoData.Config memory config From ae30f76af39ac114217617edf922afa73bd63e5b Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Sat, 7 Jan 2023 22:59:35 +0800 Subject: [PATCH 2/5] Update solidity.yml --- .github/workflows/solidity.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/solidity.yml b/.github/workflows/solidity.yml index 0def4e9166..a4ddee0cbb 100644 --- a/.github/workflows/solidity.yml +++ b/.github/workflows/solidity.yml @@ -55,33 +55,33 @@ jobs: access_token: ${{ github.token }} - name: protocol - Unit Tests - working-directory: ./packages/protocol + working-directory: packages/protocol run: pnpm clean && pnpm test - name: protocol - Integration Tests - working-directory: ./packages/protocol + working-directory: packages/protocol run: pnpm test:integration - name: protocol - Test Coverage - working-directory: ./packages/protocol + working-directory: packages/protocol run: pnpm test:coverage - name: protocol - Generate Genesis - working-directory: ./packages/protocol + working-directory: packages/protocol run: pnpm test:genesis - name: protocol - Export ABIs - working-directory: ./packages/protocol + working-directory: packages/protocol run: pnpm export:abi - name: protocol - Deploy L1 Contracts - working-directory: ./packages/protocol + working-directory: packages/protocol run: pnpm deploy:hardhat - name: protocol - Upload coverage to Codecov uses: codecov/codecov-action@v3 with: - directory: ./packages/protocol/coverage + directory: packages/protocol/coverage flags: protocol post-merge: From 2bb6e8a0528643f3866bd405dae908b86187c68c Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Sat, 7 Jan 2023 23:01:53 +0800 Subject: [PATCH 3/5] Revert "Update solidity.yml" This reverts commit ae30f76af39ac114217617edf922afa73bd63e5b. --- .github/workflows/solidity.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/solidity.yml b/.github/workflows/solidity.yml index a4ddee0cbb..0def4e9166 100644 --- a/.github/workflows/solidity.yml +++ b/.github/workflows/solidity.yml @@ -55,33 +55,33 @@ jobs: access_token: ${{ github.token }} - name: protocol - Unit Tests - working-directory: packages/protocol + working-directory: ./packages/protocol run: pnpm clean && pnpm test - name: protocol - Integration Tests - working-directory: packages/protocol + working-directory: ./packages/protocol run: pnpm test:integration - name: protocol - Test Coverage - working-directory: packages/protocol + working-directory: ./packages/protocol run: pnpm test:coverage - name: protocol - Generate Genesis - working-directory: packages/protocol + working-directory: ./packages/protocol run: pnpm test:genesis - name: protocol - Export ABIs - working-directory: packages/protocol + working-directory: ./packages/protocol run: pnpm export:abi - name: protocol - Deploy L1 Contracts - working-directory: packages/protocol + working-directory: ./packages/protocol run: pnpm deploy:hardhat - name: protocol - Upload coverage to Codecov uses: codecov/codecov-action@v3 with: - directory: packages/protocol/coverage + directory: ./packages/protocol/coverage flags: protocol post-merge: From 94387b2a9366dbf3a655479bbd81c04528794e17 Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Sat, 7 Jan 2023 23:04:43 +0800 Subject: [PATCH 4/5] Update LibProposing.sol --- packages/protocol/contracts/L1/libs/LibProposing.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/protocol/contracts/L1/libs/LibProposing.sol b/packages/protocol/contracts/L1/libs/LibProposing.sol index 7a5e082736..58879b3d5e 100644 --- a/packages/protocol/contracts/L1/libs/LibProposing.sol +++ b/packages/protocol/contracts/L1/libs/LibProposing.sol @@ -146,7 +146,7 @@ library LibProposing { uint256 id ) internal view returns (TaikoData.ProposedBlock storage) { require(id > state.latestVerifiedId && id < state.nextBlockId, "L1:id"); - return LibUtils.getProposedBlock(state, maxNumBlocks, id); + return state.getProposedBlock(maxNumBlocks, id); } function getBlockFee( From e8ada7bf7939a8adf8d5a31185530a24dbf28932 Mon Sep 17 00:00:00 2001 From: Jeffery Walsh Date: Mon, 9 Jan 2023 16:27:10 -0800 Subject: [PATCH 5/5] fix test that breaks now that we check id --- packages/protocol/test/L1/TaikoL1.test.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/protocol/test/L1/TaikoL1.test.ts b/packages/protocol/test/L1/TaikoL1.test.ts index 5b25613a33..5a1d23f7fe 100644 --- a/packages/protocol/test/L1/TaikoL1.test.ts +++ b/packages/protocol/test/L1/TaikoL1.test.ts @@ -169,7 +169,9 @@ describe("integration:TaikoL1", function () { ); l2Signer = await l2Provider.getSigner( - (await l2Provider.listAccounts())[0] + ( + await l2Provider.listAccounts() + )[0] ); const addressManager = await ( @@ -267,11 +269,10 @@ describe("integration:TaikoL1", function () { }); describe("getProposedBlock()", function () { - it("proposed block does not exist", async function () { - const block = await taikoL1.getProposedBlock(123); - expect(block[0]).to.be.eq(ethers.constants.HashZero); - expect(block[1]).to.be.eq(ethers.constants.AddressZero); - expect(block[2]).to.be.eq(BigNumber.from(0)); + it("reverts when id is not a valid proposed block in range", async function () { + await expect(taikoL1.getProposedBlock(123)).to.be.revertedWith( + "L1:id" + ); }); }); describe("commitBlock() -> proposeBlock() integration", async function () {