Conversation
gregorydemay
left a comment
There was a problem hiding this comment.
Thanks @lpahlavi for starting this effort! Some high-level comments first.
Co-authored-by: gregorydemay <112856886+gregorydemay@users.noreply.github.com>
|
Thanks a lot for the feedback @gregorydemay! I would have a look at the follow-up PR (#448) that adds the integration tests for a concrete example of how this client is used. That PR is now ready for review. It is a bit of a shame that the changes are split across 2 PRs but as mentioned, otherwise I felt the combined PR would just be too big. |
|
Thanks a lot for the review and feedback @gregorydemay! Should now be ready for another round 🚀 |
gregorydemay
left a comment
There was a problem hiding this comment.
Thanks @lpahlavi for the improvements and adding the docs! The fix for map I would do in a separate PR, otherwise the code LGTM!
|
Once again thanks a lot for the review and feedback @gregorydemay! Should now be ready for another round. |
gregorydemay
left a comment
There was a problem hiding this comment.
Thanks @lpahlavi for the multiple rounds of improvements!
(XC-412) Add a `PocketIcRuntime` implementation and some basic integration tests for the client's `eth_getLogs` method added in #447. Follow-up PRs will include adding more methods to the client and the corresponding integration tests using the infrastructure added in this PR. --------- Co-authored-by: gregorydemay <112856886+gregorydemay@users.noreply.github.com>
## 🤖 New release * `evm_rpc_types`: 2.1.0 -> 3.0.0 (✓ API compatible changes) * `evm_rpc_client`: 0.1.0 * `evm_rpc`: 2.5.0 -> 2.6.0 (✓ API compatible changes) <details><summary><i><b>Changelog</b></i></summary><p> ## `evm_rpc_types` <blockquote> ## [3.0.0] - 2025-10-20 ### Added - Add conversions between several types in this crate and the corresponding `alloy` types. These conversions are only available with the `alloy` feature ([#465](#465), [#466](#466), [#467](#467), [#476](#476)). - **Breaking:** Add `root` and `cumulativeGasUsed` fields to `TransactionsReceipt` type ([#474](#474)) [3.0.0]: https://github.com/dfinity/evm-rpc-canister/compare/evm_rpc_types-v2.1.0..evm_rpc_types-v3.0.0 </blockquote> ## `evm_rpc_client` <blockquote> ## [0.1.0] - 2025-10-20 ### Added - Add methods to modify RPC config to `RequestBuilder` ([#494](#494)) - Add `alloy` feature flag to `evm_rpc_client` ([#484](#484)) - Add new `json_request` endpoint ([#477](#477)) - Add client support for `eth_getTransactionReceipt` ([#476](#476)) - Add `eth_sendRawTransaction` client support ([#467](#467)) - Add client support for `eth_call` ([#466](#466)) - Add client support for `eth_getTransactionCount` ([#465](#465)) - Add support for `eth_feeHistory` to client ([#460](#460)) - Add support for `eth_getBlockByNumber` to client ([#459](#459)) - Add EVM RPC canister client ([#447](#447)) [0.1.0]: https://github.com/dfinity/evm-rpc-canister/releases/tag/evm_rpc_client-v0.1.0 </blockquote> ## `evm_rpc` <blockquote> ## [2.6.0] - 2025-10-20 ### Added - Add support for `root` and `cumulativeGasUsed` fields in `eth_getTransactionReceipt` response ([#474](#474)) - Add new `json_request` endpoint and deprecate existing `request` endpoint ([#477](#477)) ### Changed - Update `ic-cdk` to `v0.18.7` ([#489](#489)) - Update `dfx` to `v0.29.0` ([#490](#490)) - Cleanup unused dependencies ([#491](#491)) ### Removed - **Breaking**: Remove `getMetrics` endpoint, this is acceptable since it was a debugging endpoint ([#479](#479)) ### Fixed - Add `err_max_response_size_exceeded` to Prometheus metrics ([#487](#487)) [2.6.0]: v2.5.0...v2.6.0 </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Louis Pahlavi <louis.pahlavi@dfinity.org>
## 🤖 New release * `evm_rpc_types`: 2.1.0 -> 3.0.0 (✓ API compatible changes) * `evm_rpc_client`: 0.1.0 * `evm_rpc`: 2.5.0 -> 2.6.0 (✓ API compatible changes) <details><summary><i><b>Changelog</b></i></summary><p> ## `evm_rpc_types` <blockquote> ## [3.0.0] - 2025-10-20 ### Added - Add conversions between several types in this crate and the corresponding `alloy` types. These conversions are only available with the `alloy` feature ([#465](dfinity/evm-rpc-canister#465), [#466](dfinity/evm-rpc-canister#466), [#467](dfinity/evm-rpc-canister#467), [#476](dfinity/evm-rpc-canister#476)). - **Breaking:** Add `root` and `cumulativeGasUsed` fields to `TransactionsReceipt` type ([#474](dfinity/evm-rpc-canister#474)) [3.0.0]: https://github.com/dfinity/evm-rpc-canister/compare/evm_rpc_types-v2.1.0..evm_rpc_types-v3.0.0 </blockquote> ## `evm_rpc_client` <blockquote> ## [0.1.0] - 2025-10-20 ### Added - Add methods to modify RPC config to `RequestBuilder` ([#494](dfinity/evm-rpc-canister#494)) - Add `alloy` feature flag to `evm_rpc_client` ([#484](dfinity/evm-rpc-canister#484)) - Add new `json_request` endpoint ([#477](dfinity/evm-rpc-canister#477)) - Add client support for `eth_getTransactionReceipt` ([#476](dfinity/evm-rpc-canister#476)) - Add `eth_sendRawTransaction` client support ([#467](dfinity/evm-rpc-canister#467)) - Add client support for `eth_call` ([#466](dfinity/evm-rpc-canister#466)) - Add client support for `eth_getTransactionCount` ([#465](dfinity/evm-rpc-canister#465)) - Add support for `eth_feeHistory` to client ([#460](dfinity/evm-rpc-canister#460)) - Add support for `eth_getBlockByNumber` to client ([#459](dfinity/evm-rpc-canister#459)) - Add EVM RPC canister client ([#447](dfinity/evm-rpc-canister#447)) [0.1.0]: https://github.com/dfinity/evm-rpc-canister/releases/tag/evm_rpc_client-v0.1.0 </blockquote> ## `evm_rpc` <blockquote> ## [2.6.0] - 2025-10-20 ### Added - Add support for `root` and `cumulativeGasUsed` fields in `eth_getTransactionReceipt` response ([#474](dfinity/evm-rpc-canister#474)) - Add new `json_request` endpoint and deprecate existing `request` endpoint ([#477](dfinity/evm-rpc-canister#477)) ### Changed - Update `ic-cdk` to `v0.18.7` ([#489](dfinity/evm-rpc-canister#489)) - Update `dfx` to `v0.29.0` ([#490](dfinity/evm-rpc-canister#490)) - Cleanup unused dependencies ([#491](dfinity/evm-rpc-canister#491)) ### Removed - **Breaking**: Remove `getMetrics` endpoint, this is acceptable since it was a debugging endpoint ([#479](dfinity/evm-rpc-canister#479)) ### Fixed - Add `err_max_response_size_exceeded` to Prometheus metrics ([#487](dfinity/evm-rpc-canister#487)) [2.6.0]: dfinity/evm-rpc-canister@v2.5.0...v2.6.0 </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Louis Pahlavi <louis.pahlavi@dfinity.org>
(XC-412) This PR is one of multiple to add an
evm_rpc_clientcrate which offers a client for the EVM RPC canister, similar to thesol_rpc_clientfor the SOL RPC canister (see here).This first PR adds a client which for now only supports the
eth_getLogsmethod. In order to keep this PR's size manageable, a follow-up PR (#448) adds integration tests for the client which requires a significant refactoring of the integration tests.