Repository navigation
Conversation
…579) Also dedupe the three account_put_transaction error mappings into one helper. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CasperClient reuses a fetched state root hash for up to 5 seconds and forgets it after every transaction it sends, so its own writes are visible to the next read. erc20_on_livenet: 18 -> 2 chain_get_state_root_hash calls out of 39 RPC calls total. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Nodes and sidecars answer HTTP 429 or a -32018 'throttled by the node' JSON-RPC error under a burst of reads; the client now retries such calls with exponential backoff (5 attempts). query_global_state_maybe used to turn every error into None, which surfaced as a misleading 'Couldn't query for entity address' panic; transport/HTTP failures are logged as warnings now, a missing value at debug level. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CasperClient keeps global state and dictionary responses for the state root hash they were read at; a query at a fixed root is deterministic, so this is equivalent to asking the node, and the cache is dropped when the root moves on (TTL or own transaction). A burst of 31 getter calls goes from 64 node queries to 6. get_value / get_named_value / get_dictionary_value / events_count return Result<Option<_>> instead of Option: a node that cannot be asked is no longer reported as a missing value. The livenet host and contract env stop with 'Livenet: reading <what> of <address> failed: <reason>'; the internal 'Couldn't query for entity address value' panics are gone. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
wasm-bindgen rejects empty enums, which broke generate-client for every contract without user errors (the whole workspace template). The template CI now runs generate-client too and also triggers on changes to the wasm client crates. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…orkflows Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Closed
kubaplas
added this pull request to stack #674
September 18, 2026 08:24
kubaplas
removed this pull request from stack #674
September 18, 2026 08:57
Contributor
Author
|
Closing: the 3.0.0 party goes back to a single pull request, #664. The commits here are the same work, so nothing is lost. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Layer 2 of 6 of the 3.0.0 party stack (bottom-up: 1 → 2 → 3 → 4 → 5 → 6, bottom is #668). Each layer targets the branch below; merge from the bottom. The top of the stack is the tree verified on OdraVM, CasperVM and NCTL; docs are in odradev/odradev.github.io#58 and #59, the migration guide covers every breaking change.
Closes #579, closes #472, closes #665.
Livenet: reading <x> of <contract> failed: ..) instead of the misleading "Couldn't query for entity address" panic.CasperClientread methods returnResult<Option<_>>(breaking for rpc-client integrations).<Contract>Errorsenum, which wasm-bindgen rejected; the template CI runsgenerate-client(wasm client codegen emits an empty<Contract>Errorsenum, which wasm-bindgen rejects #665).rust-toolchain.🤖 Generated with Claude Code