Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade/v0.16.2 #10

Open
wants to merge 64 commits into
base: main
Choose a base branch
from
Open

Upgrade/v0.16.2 #10

wants to merge 64 commits into from

Conversation

steebchen
Copy link
Member

Short description of what this PR does.


A longer description, include motivation and intent if possible. Detail any caveats or follow-up steps still required.


Consider motivating any new dependencies.


Delete once completed:

  • link any issues closed by this pull-request
  • add all user-facing changes to CHANGELOG.md
  • new dependencies were added to the workspace toml

kkovaacs and others added 30 commits February 26, 2025 13:34
When determining the max L2 gas amount covered by the account balance we
did not account for the fact that the max gas price specified in the
L2 resource bound can be zero.

This commit fixes the issue by taking the maximum of the max price
specified and 1.
Fee estimation is usually done by specifying zeroes as bounds for the
transaction (since the values to use are not known yet).

However, our code was unconditionally doing a check that failed the
estimation if the actual L2 gas limit we have determined was above
the maximum gas limit in the transaction resource bounds.

This change modifies that check to only fail if we're not skipping
fee transfer (ie. only for `starknet_simulateTransactions` with
the `SKIP_FEE_TRANSFER` flag not set).
…estimation-division-by-zero

fix(executor): fix panic when estimating a transaction with L2 gas `max_price_per_unit` set to zero
The specs state that the class should be returned directly in the `result`.
…compiled-casm-output-schema

fix(rpc/get_compiled_casm): don't wrap CASM class in a `casm` property
If L2 gas accounting is enabled the minimal gas vector has a non-zero
L2 gas component. We should make sure we consider that value when
calculating the fee estimate.
…miminal-gas-vector

fix(executor): consider L2 gas when calculating minimum gas limit
By running `cargo update --recursive hyper-rustls`.
Fixes RUSTSEC-2025-0006.
To avoid using a version that has been yanked.
chore(cargo): update some dependencies
In particular, upgrade to `goose` 0.18.0 that has finally upgraded its
transitive dependencies.
This allows us to get rid of the `openssl` dependency altogether.
feat(storage): add `TrieStorageIndex` custom type
…e-goose

chore(load-test): upgrade dependencies
Codec read response timeout was not properly propagated to the connection
handler, causing the swarm not being notified about the timeout.

This has also caused test flakyness in the respective  test
(`report_outbound_timeout_on_read_response_timeout`) which wasn't really
testing read response timeout, but was timing out because of the stream
timeout.
…unction invocation

Starknet 0.13.4 has added a new `failed` field to function invocations,
causing parsing to fail. This change adds the new field as optional and
also uses that value when converting gateway function invocations to
JSON-RPC function invocations (`is_reverted` property).

This latter conversion is not really used though, as we're not falling
back to the feeder gateway for traces for Starknet 0.13.4 blocks.

Closes: eqlabs#2647
kkovaacs and others added 30 commits March 6, 2025 17:37
…ead-response-timeout

fix(p2p_stream): fix propagation of read response timeout
When subscribing with the `latest` block, we still have to do catch-up.
The JSON-RPC specification says that the starting point for the
subscription should be the block specified by `block_id` in the
subscription request. This means that we have to send a notification for
the `latest` block, irrespective if it was requested explicitly or
implicitly and if we used the `latest` label or its specific block number
or hash.

Closes eqlabs#2642
Otherwise the next test will not be completely independent.
…st-subscription

fix(rpc/subscription): send notifications for `latest` block
Successful subscription requests can still lead to notifications
being received (even though we are unsubscribing immediately after
there's a race condition between sending the notifications and
closing the subscription).

Instead, this change ensures that subscriptions cannot succeeed by
passing an invalid parameter.
…uting-test

fix(rpc/lib/routing_test): fix flaky routing test
This PR adds the ability to send events matching the filter from the
pending block to the client right as they are included in the pending block.
This minimizes the latency it takes for users to receive relevant updates.

One side effect is that since the pending block has no block
hash, we send out emitted events without the block hash as a context.
Since almost all events show up first in the pending block, in practice
this means that we are no longer sending block hashes for the emitted
events...
feat(rpc): add json-rpc e2e tests with fixtures for all supported versions
…e-pending-events

feat(rpc/subscribe_events): send matching events from the pending block
And resubscribe instead of silently ignoring the error.
If fetching the L1 finalized block fails due to a network error, we now
exit from the poll task (instead of leaking it and leaving it retrying
indefinitely). This causes the `finalized_block_rx` channel to be closed,
which we now also handle in the main loop of `sync_and_listen()` by
exiting and returning an error. This in turn leads to sync restarting the
L1 sync process.
fix(ethereum): handle closing of LogStateUpdate subscription
…ade-blockifier

starknet 0.13.5 - upgrade blockifier to v0.14.0-rc3
Pathfinder v0.16.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants