diff --git a/.github/workflows/ci-all-via-ir.yml b/.github/workflows/ci-all-via-ir.yml index a8df6e6992..4bf8a063a9 100644 --- a/.github/workflows/ci-all-via-ir.yml +++ b/.github/workflows/ci-all-via-ir.yml @@ -13,7 +13,7 @@ jobs: profile: [via-ir-0,via-ir-1,via-ir-2,via-ir-3] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 diff --git a/.github/workflows/ci-invariant-intense.yml b/.github/workflows/ci-invariant-intense.yml index bad45cba1e..c46c31eb55 100644 --- a/.github/workflows/ci-invariant-intense.yml +++ b/.github/workflows/ci-invariant-intense.yml @@ -13,7 +13,7 @@ jobs: profile: [invariant-intense-0,invariant-intense-1,invariant-intense-2,invariant-intense-3] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 diff --git a/.github/workflows/ci-super-intense.yml b/.github/workflows/ci-super-intense.yml index c124959257..7c38b5fb57 100644 --- a/.github/workflows/ci-super-intense.yml +++ b/.github/workflows/ci-super-intense.yml @@ -13,7 +13,7 @@ jobs: profile: [super-intense-0,super-intense-1] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 diff --git a/.github/workflows/ci-wake.yml b/.github/workflows/ci-wake.yml index 10c1442725..5257c3125f 100644 --- a/.github/workflows/ci-wake.yml +++ b/.github/workflows/ci-wake.yml @@ -13,7 +13,7 @@ jobs: profile: [via-ir-off, via-ir-on] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Wake uses: Ackee-Blockchain/wake-setup-action@0.1.0 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2028c766ea..ab7ab1f376 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: matrix: profile: [post-cancun,post-cancun-via-ir,solc-past-versions-0,solc-past-versions-1,via-ir,min-solc,min-solc-via-ir,intense] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Foundry Stable uses: foundry-rs/foundry-toolchain@v1 with: @@ -78,27 +78,30 @@ jobs: forge test --fuzz-runs 5000 ) - tests-ithaca: - name: Forge Ithaca Testing - runs-on: ubuntu-latest - strategy: - matrix: - profile: [post-cancun,post-cancun-via-ir] - steps: - - uses: actions/checkout@v4 - - name: Install Foundry Nightly - uses: foundry-rs/foundry-toolchain@v1 - with: - version: stable - - name: Install Dependencies - run: forge install - - name: Run Tests with ${{ matrix.profile }} - run: | - if [[ "${{ matrix.profile }}" == "post-cancun" ]]; then - FOUNDRY_PROFILE=ithaca forge test --use 0.8.28 - elif [[ "${{ matrix.profile }}" == "post-cancun-via-ir" ]]; then - FOUNDRY_PROFILE=ithaca forge test --use 0.8.28 --via-ir - fi + # Disable for now until we can use `foundry.toml` setting to override the + # transaction gas limit. See: EIP-7825. + # + # tests-ithaca: + # name: Forge Ithaca Testing + # runs-on: ubuntu-latest + # strategy: + # matrix: + # profile: [post-cancun,post-cancun-via-ir] + # steps: + # - uses: actions/checkout@v5 + # - name: Install Foundry Nightly + # uses: foundry-rs/foundry-toolchain@v1 + # with: + # version: nightly + # - name: Install Dependencies + # run: forge install + # - name: Run Tests with ${{ matrix.profile }} + # run: | + # if [[ "${{ matrix.profile }}" == "post-cancun" ]]; then + # FOUNDRY_PROFILE=ithaca forge test --use 0.8.28 + # elif [[ "${{ matrix.profile }}" == "post-cancun-via-ir" ]]; then + # FOUNDRY_PROFILE=ithaca forge test --use 0.8.28 --via-ir + # fi codespell: runs-on: ${{ matrix.os }} @@ -108,7 +111,7 @@ jobs: - ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run codespell uses: codespell-project/actions-codespell@v2.0 with: @@ -126,7 +129,7 @@ jobs: - ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 with: @@ -150,11 +153,11 @@ jobs: - ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 with: - version: stable + version: nightly - name: Install Dependencies run: forge install - name: Run prep scripts and forge fmt diff --git a/src/utils/MerkleTreeLib.sol b/src/utils/MerkleTreeLib.sol index 6d12bec529..46f352de1b 100644 --- a/src/utils/MerkleTreeLib.sol +++ b/src/utils/MerkleTreeLib.sol @@ -262,8 +262,9 @@ library MerkleTreeLib { mstore(0x00, 0xe7171dc4) // `MerkleTreeLeavesEmpty()`. revert(0x1c, 0x04) } - let p := 1 // Padded length. - for {} lt(p, l) {} { p := add(p, p) } + let p := sub(mload(leaves), 1) + for { let i := 1 } lt(i, 0x80) { i := add(i, i) } { p := or(p, shr(i, p)) } + p := add(p, 1) mstore(result, p) // Store length. mstore(0x40, add(result, add(0x20, shl(5, p)))) // Allocate memory. let d := sub(result, leaves)