Skip to content

Commit 6a29411

Browse files
committed
Merge branch 'main' into elmattic/optional-eth-mappings
2 parents 6fd9694 + 2375998 commit 6a29411

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+2145
-1136
lines changed

.clippy.toml

+16
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@ use parking_lot::Mutex instead to silently ignore panics."""
2424
path = "multihash_codetable::Code"
2525
reason = """use `crate::utils::multihash::MultihashCode` instead which has `Identity` code back-filled."""
2626

27+
[[disallowed-types]]
28+
path = "rand::rngs::ThreadRng"
29+
reason = """use `crate::utils::forest_rng` instead."""
30+
31+
[[disallowed-types]]
32+
path = "rand::rngs::OsRng"
33+
reason = """use `crate::utils::forest_os_rng` instead."""
34+
35+
[[disallowed-methods]]
36+
path = "rand::thread_rng"
37+
reason = """use `crate::utils::forest_rng` instead."""
38+
39+
[[disallowed-methods]]
40+
path = "uuid::Uuid::new_v4"
41+
reason = """use `crate::utils::new_uuid_v4` instead."""
42+
2743
[[disallowed-methods]]
2844
path = "tempfile::NamedTempFile::new"
2945
reason = """The temporary files created by this method are not persistable if the temporary directory lives on a different filesystem than the target directory. While it is valid in other contexts (if not persisting files), it was misused many times and so we are banning it. Consider using `tempfile::NamedTempFile::new_in` or `tempfile::NamedTempFile::Builder"""

.github/DOCKER_ISSUE_TEMPLATE.md

+1-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,4 @@ labels: ["Bug"]
55

66
## Description
77

8-
Latest Docker check failed. Please check the logs for more information.
9-
10-
<!-- link will be added here in a follow-up once the corresponding workflow lands on main -->
8+
Latest Docker check failed. Please [check the logs](https://github.com/ChainSafe/forest/actions/workflows/dockerfile-check.yml) for more information.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: "[automated] Snapshot parity test failure"
3+
labels: ["Bug"]
4+
---
5+
6+
## Description
7+
8+
Latest snapshot parity test failed. Please [check the logs](https://github.com/ChainSafe/forest/actions/workflows/snapshot-parity.yml) for more information.

.github/workflows/butterflynet.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- name: Checkout Sources
2222
uses: actions/checkout@v4
2323
- name: Setup sccache
24-
uses: mozilla-actions/sccache-action@v0.0.7
24+
uses: mozilla-actions/sccache-action@v0.0.8
2525
timeout-minutes: "${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }}"
2626
continue-on-error: true
2727
- uses: actions/setup-go@v5

.github/workflows/docker.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
- name: Checkout Sources
5757
uses: actions/checkout@v4
5858
- name: Setup sccache
59-
uses: mozilla-actions/sccache-action@v0.0.7
59+
uses: mozilla-actions/sccache-action@v0.0.8
6060
timeout-minutes: '${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }}'
6161
continue-on-error: true
6262
- uses: actions/setup-go@v5
@@ -100,7 +100,7 @@ jobs:
100100
uses: actions/checkout@v4
101101
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
102102
- name: Setup sccache
103-
uses: mozilla-actions/sccache-action@v0.0.7
103+
uses: mozilla-actions/sccache-action@v0.0.8
104104
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
105105
timeout-minutes: '${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }}'
106106
continue-on-error: true

.github/workflows/forest.yml

+3-29
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
- name: Checkout Sources
4848
uses: actions/checkout@v4
4949
- name: Setup sccache
50-
uses: mozilla-actions/sccache-action@v0.0.7
50+
uses: mozilla-actions/sccache-action@v0.0.8
5151
timeout-minutes: '${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }}'
5252
continue-on-error: true
5353
- uses: actions/setup-go@v5
@@ -74,7 +74,7 @@ jobs:
7474
- name: Checkout Sources
7575
uses: actions/checkout@v4
7676
- name: Setup sccache
77-
uses: mozilla-actions/sccache-action@v0.0.7
77+
uses: mozilla-actions/sccache-action@v0.0.8
7878
timeout-minutes: '${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }}'
7979
continue-on-error: true
8080
- uses: actions/setup-go@v5
@@ -97,7 +97,7 @@ jobs:
9797
- name: Checkout Sources
9898
uses: actions/checkout@v4
9999
- name: Setup sccache
100-
uses: mozilla-actions/sccache-action@v0.0.7
100+
uses: mozilla-actions/sccache-action@v0.0.8
101101
timeout-minutes: '${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }}'
102102
continue-on-error: true
103103
- name: Install Apt Dependencies
@@ -548,32 +548,6 @@ jobs:
548548
- name: Dump docker logs
549549
if: always()
550550
uses: jwalton/gh-docker-logs@v2
551-
snapshot-parity-checks:
552-
needs:
553-
- build-ubuntu
554-
name: Calibnet snapshot parity checks
555-
runs-on: ubuntu-24.04
556-
# Run the job only on main to limit the runner cost.
557-
# The downside is that the offending commit can only be caught after being merged
558-
# and a manual revert is required.
559-
# Note that running this step on non-draft PR does not save the cost as it always re-run
560-
# all the jobs when a PR is moved out of draft. Also this parity test will be stale soon
561-
# once we start including the F3(fast finality) metadata in the Forest snapshots.
562-
if: github.ref == 'refs/heads/main'
563-
env:
564-
# We use a custom Dockerfile for CI to speed up the build process.
565-
FOREST_DOCKERFILE_OVERRIDE: scripts/devnet/forest_ci.dockerfile
566-
steps:
567-
- uses: actions/checkout@v4
568-
- uses: actions/download-artifact@v4
569-
with:
570-
name: 'forest-${{ runner.os }}'
571-
- name: Run snapshot parity tests
572-
run: ./scripts/tests/snapshot_parity/setup.sh
573-
timeout-minutes: '${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }}'
574-
- name: Dump docker logs
575-
if: always()
576-
uses: jwalton/gh-docker-logs@v2
577551
# Umbrella job to aggregate all integration tests and get their status
578552
integration-tests-status:
579553
needs:

.github/workflows/rust-lint.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
- name: Checkout Sources
4848
uses: actions/checkout@v4
4949
- name: Setup sccache
50-
uses: mozilla-actions/sccache-action@v0.0.7
50+
uses: mozilla-actions/sccache-action@v0.0.8
5151
timeout-minutes: ${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }}
5252
continue-on-error: true
5353
- uses: actions/setup-go@v5

.github/workflows/snapshot-parity.yml

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Snapshot parity test
2+
on:
3+
workflow_dispatch:
4+
schedule:
5+
- cron: "0 0 * * 0" # Runs at 00:00, only on Sunday
6+
jobs:
7+
snapshot-parity:
8+
name: Snapshot parity test
9+
runs-on: buildjet-4vcpu-ubuntu-2204
10+
steps:
11+
- name: Checkout Sources
12+
uses: actions/checkout@v4
13+
- name: Run snapshot parity test
14+
run: ./scripts/tests/snapshot_parity/setup.sh
15+
timeout-minutes: 60
16+
- name: Dump docker logs
17+
if: always()
18+
uses: jwalton/gh-docker-logs@v2
19+
- uses: JasonEtco/create-an-issue@v2
20+
if: failure()
21+
env:
22+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23+
with:
24+
filename: .github/SNAPSHOT_PARITY_ISSUE_TEMPLATE.md

.github/workflows/unit-tests.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
- name: Checkout Sources
4444
uses: actions/checkout@v4
4545
- name: Setup sccache
46-
uses: mozilla-actions/sccache-action@v0.0.7
46+
uses: mozilla-actions/sccache-action@v0.0.8
4747
timeout-minutes: ${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }}
4848
continue-on-error: true
4949
- uses: actions/setup-go@v5
@@ -65,7 +65,7 @@ jobs:
6565
- name: Checkout Sources
6666
uses: actions/checkout@v4
6767
- name: Setup sccache
68-
uses: mozilla-actions/sccache-action@v0.0.7
68+
uses: mozilla-actions/sccache-action@v0.0.8
6969
timeout-minutes: ${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }}
7070
continue-on-error: true
7171
- uses: actions/setup-go@v5

CHANGELOG.md

+32-2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,33 @@
2727

2828
### Breaking
2929

30+
### Added
31+
32+
- [#5375](https://github.com/ChainSafe/forest/issues/5375) Add an RNG wrapper that that can be overriden by a reproducible seeded RNG.
33+
34+
- [#5386](https://github.com/ChainSafe/forest/pull/5386) Add support for the `Filecoin.EthTraceTransaction` RPC method.
35+
36+
- [#5383](https://github.com/ChainSafe/forest/pull/5383) Add support for `Filecoin.EthGetFilterChanges` RPC method.
37+
38+
- [#4505](https://github.com/ChainSafe/forest/issues/4505) The Ethereum RPC API indexer now runs as a background task. It is configurable in the `[fevm]` section or via the
39+
`FOREST_FEVM_ENABLE_ETH_RPC` environment variable. Moved `client.eth_mapping_ttl` to `chain_indexer.gc_retention_epochs`, which is now specified as a number of epochs.
40+
41+
### Changed
42+
43+
### Removed
44+
45+
### Fixed
46+
47+
- [#5377](https://github.com/ChainSafe/forest/pull/5377) Fix incorrect handling of `max_height` for `latest` predefined block in `Filecoin.EthGetLogs`.
48+
49+
- [#5356](https://github.com/ChainSafe/forest/issues/5356) Fixed slow (and incorrect!) `Filecoin.EthGasPrice` RPC method. The method now returns the correct gas price of the latest tipset.
50+
51+
## Forest v0.24.0 "Treebeard"
52+
53+
Non-mandatory release without network upgrades. It includes a number of potentially breaking changes (see below), new RPC methods, fixes and other improvements.
54+
55+
### Breaking
56+
3057
- [#5236](https://github.com/ChainSafe/forest/pull/5236) Dropped support for migrating from ancient versions of Forest. The latest supported version for migration is [v0.19.2](https://github.com/ChainSafe/forest/releases/tag/v0.19.2).
3158

3259
- [#4261](https://github.com/ChainSafe/forest/issues/4261) Remove the short flags from `forest-wallet list` and `forest-wallet balance` commands.
@@ -79,6 +106,8 @@
79106

80107
- [#5346](https://github.com/ChainSafe/forest/pull/5346) `Filecoin.EthGetBlockReceipts` and `Filecoin.EthGetBlockReceiptsLimited` now accepts predefined block parameters on top of the block hash, e.g., `latest`, `earliest`, `pending`.
81108

109+
- [#5324](https://github.com/ChainSafe/forest/pull/5324) Add shell completion subcommand in `forest-tool`
110+
82111
### Changed
83112

84113
- [#5237](https://github.com/ChainSafe/forest/pull/5237) Stylistic changes to FIL pretty printing.
@@ -87,8 +116,7 @@
87116

88117
- [#5332](https://github.com/ChainSafe/forest/pull/5332) Adhere to the Ethereum RPC API for `eth_call` by not requiring the `from`, `gas`, `gas_price` and `value` parameters. `data` is still required.
89118

90-
- [#4505](https://github.com/ChainSafe/forest/issues/4505) The Ethereum RPC API indexer now runs as a background task. It is configurable in the `[fevm]` section or via the
91-
`FOREST_FEVM_ENABLE_ETH_RPC` environment variable. Moved `client.eth_mapping_ttl` to `chain_indexer.gc_retention_epochs`, which is now specified as a number of epochs.
119+
- [#5359](https://github.com/ChainSafe/forest/pull/5359) Eth RPC API methods' params are now all in _camelCase_. This aligns with the Ethereum RPC API. Note that this change is only for the OpenRPC documentation and does not affect the actual RPC methods which accepted correct _camelCase_ params before.
92120

93121
### Removed
94122

@@ -111,6 +139,8 @@
111139

112140
- [#5213](https://github.com/ChainSafe/forest/issues/5213) Fix incorrect results for the `Filecoin.EthGetLogs` RPC method on ranges that include null tipsets.
113141

142+
- [#5357](https://github.com/ChainSafe/forest/issues/5357) Make data field in EthCallMessage optional. Affected RPC methods are `Filecoin.EthEstimateGas`(`eth_estimateGas`) and `Filecoin.EthCall`(`eth_call`)
143+
114144
- [#5345](https://github.com/ChainSafe/forest/pull/5345) Fixed handling of odd-length hex strings in some Eth RPC methods. Now, the methods should not return error if provided with, e.g., `0x0` (which would be expanded to `0x00`).
115145

116146
## Forest v.0.23.3 "Plumber"

0 commit comments

Comments
 (0)