* feat: add EIP-7702
* fix goimport
* add unit tests
* add api test
* sync txpool update
* update generated code
* make code readable
* fix goimport
* fix TestAsyncChecker unit test
* add AuthorizationList in fuzz tests for completeness sake
* add EuclidV2 test, EIP-7702 transaction in TestT8n
* clean up logs
* bump version
* fix TestAsyncChecker
* Revert "fix TestAsyncChecker"
This reverts commit 314478303d4a504a3948bd6595568916ba7d82f0.
* accept eip-7702 txns only after enabling eip-7702
* revert IntrinsicGas param name from setCodeAuthorizations to authList
* fix a bug
* align upstream implementation in Encoding Receipts
* fix one test case
* fix tracer
* return precode copy
* support setcode tx in EstimateGas and add unit tests
* add TestValidateAuthorizations
* poseidon hash fix
* migrate a fix before the fix pr is merged
* support setcode type transactions in TransactionData
* chore: auto version bump [bot]
* add a nonce-gapped-auth-does-not-block-pending-tx unit test
* make the auth invalid
* Apply suggestions from code review
* change usedAndLeftSlots and knownConflicts to util functions
* add comments about different return of applyAuthorization
* remove gencodec:required in transaction signatures
* fix goimport
* update StructLogger and AccessListTracer
* fix a bug
* fix flaky test
---------
Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Transaction unindexing will be enabled by default as of 1.10, which causes tx status retrieval will be broken without this PR.
This PR introduces a retry mechanism in TxStatus retrieval.
This change introduces garbage collection for the light client. Historical
chain data is deleted periodically. If you want to disable the GC, use
the --light.nopruning flag.
* les, light: fix CHT trie retrievals
* les, light: minor polishes, test remote CHT retrievals
* les, light: deterministic nodeset rlp, bloombits test skeleton
* les: add an event emission to the les bloombits test
* les: drop dead tester code
This PR implements the new LES protocol version extensions:
* new and more efficient Merkle proofs reply format (when replying to
a multiple Merkle proofs request, we just send a single set of trie
nodes containing all necessary nodes)
* BBT (BloomBitsTrie) works similarly to the existing CHT and contains
the bloombits search data to speed up log searches
* GetTxStatusMsg returns the inclusion position or the
pending/queued/unknown state of a transaction referenced by hash
* an optional signature of new block data (number/hash/td) can be
included in AnnounceMsg to provide an option for "very light
clients" (mobile/embedded devices) to skip expensive Ethash check
and accept multiple signatures of somewhat trusted servers (still a
lot better than trusting a single server completely and retrieving
everything through RPC). The new client mode is not implemented in
this PR, just the protocol extension.
With this commit, core/state's access to the underlying key/value database is
mediated through an interface. Database errors are tracked in StateDB and
returned by CommitTo or the new Error method.
Motivation for this change: We can remove the light client's duplicated copy of
core/state. The light client now supports node iteration, so tracing and storage
enumeration can work with the light client (not implemented in this commit).
There is no need to depend on the old context package now that the
minimum Go version is 1.7. The move to "context" eliminates our weird
vendoring setup. Some vendored code still uses golang.org/x/net/context
and it is now vendored in the normal way.
This change triggered new vet checks around context.WithTimeout which
didn't fire with golang.org/x/net/context.