* create a bonsai based reference test worldstate
-> getOrCreate in BonsaiWorldStateUpdateAccumulator - do not throw if we discover an empty account in a non-null BonsaiValue<Account>
-> add curentStateRoot to t8n
-> storageEntriesFrom and streamAccounts implemented in BonsaiWorldStateKeyValueStorage
-> add endKey version of streamFromKey
* bonsai fix for self-destruct and create2 at the same address and same block
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Co-authored-by: Karim TAAM <karim.t2am@gmail.com>
* Add world context to transaction tracing API
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Update changelog with PR ID
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Add the Transaction to traceEndTransaction
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Rebase on main
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Add receipt-linked information to the transaction tracer
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* added test
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
---------
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Merge MutableAccount and EVMAccount functionalities by removing
EVMAccount, all calls to getMutable, and the WrappedEVMAccount that was
wrapping non-EVMAccounts in a mutable fashion. Instead, use a
MutableAccount in all cases an EVMAccount would have been used. This
also tends to reduce a level of layering in many places.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
* Add decode type to TransactionDecoder
* Refactoring TransactionDecoder
* Invert methods order
* Use Transaction encoder instead of writeTo
* Move enter and leave list to inner method as pr suggestion
* Size calculation should use opaque bytes instead of rlp
---------
Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
* removed old artefacts [skip ci]
* works with compileTestJava
* restored metadata needed for codeQL and trusted-artifacts block for javadoc/sources
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
---------
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Implement a method to trace a range of blocks and have access to the worldstate before and after the tracing
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
* fix the bug that creates the ignorable chain pruner segment, add rocks exception parsing to RocksDBColumnarKeyValueStorage subclasses
* parse rocksdb error for unprintable column family id's
Signed-off-by: garyschulte <garyschulte@gmail.com>
* enforce that BlobTransactions have at least one blob
Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
* Add Holešky testnet network name
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* CHANGELOG
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Add a fake KZG setup since Holesky define Cancun as future fork
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Tear down KZG trusted setup after each test
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Fix test
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Prevent another trusted setup already loaded error during tests
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
---------
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
* adds new rpc method for fcu3
* pulls up fork checking for reuse across engine api methods
* more reuse of timestamp/fork checks, getPayload only needs 1 return type
---------
Signed-off-by: Justin Florentine <justin+github@florentine.us>
* Trigger `OperationTracer` on contexts enter & exit
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Update CHANGELOG.md
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Spotless
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Daniel's comments
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Ensure `OperationTracer` is not null before calling it
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Move back hook calls into `process`
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Fix @shemnon comments
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* added test for context enter and context exit
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* spotless
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Trigger `OperationTracer` on contexts enter & exit
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Update CHANGELOG.md
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Spotless
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Daniel's comments
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Ensure `OperationTracer` is not null before calling it
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Move back hook calls into `process`
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* Fix @shemnon comments
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
* added test for context enter and context exit
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* spotless
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* added a test without mocking
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* fixed unit tests
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
---------
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* added missing methods to transaction interface, created new AccessListEntry interface to add it to the transaction interface
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* CHANGELOG.md entry
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* added missing javadoc entry
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Update datatypes/src/main/java/org/hyperledger/besu/datatypes/Transaction.java
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Update datatypes/src/main/java/org/hyperledger/besu/datatypes/Transaction.java
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Make smart contract permissioning features work with london fork (#5727)
* Make smart contract permissioning features work with london fork
Override the transactionSimulator's default TransactionValidationParams with one that allows for exceeding the account balance (which effectively zeros the baseFee).
This mimics the way that eth_estimateGas and eth_call are implemented.
Similar change to #5277
Update ATs to use londonBlock (existing genesis allocs necessitate zeroBaseFee as well)
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
* changelog
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
---------
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Correctly cache the TransactionValidator instance on creation (#5726)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Reference tests 12.3 (#5733)
Update Reference Tests to 12.3
* fix decoding error
* add ignored field
* update module
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Return all not selected transactions, not only invalid ones. (#5711)
This way it is possible for the caller to have more data about the selection
process.
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Address import performance issues (#5734)
* ensure we are on a single tuweni version
* factor out an unneeded concatenate
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Add type to PendingTransactionDetail (#5729)
* add type
* update changelog
---------
Signed-off-by: George Tebrean <george@web3labs.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Migrate to blobGas in execution-spec-tests (#5745)
Execution-spec-tests migrated from DataGas to BlobGas and checks for its
inclusion in tests now. Add needed support.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* remove AccessListEntry interface and move its class to the datatypes module
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* add missing cost methods to interface, add method to get RLP of transaction
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* updating hash with updated reference tests
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* added missing javadocs
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* fixed compiler errors in integration tests
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* retro blobGas name change into Transaction interface
Signed-off-by: garyschulte <garyschulte@gmail.com>
* removed methods from transaction interface which values can be derived through other means. Added new method encoded to return the encoded tx in Bytes instead of RLPOutput
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
---------
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: George Tebrean <george@web3labs.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Co-authored-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Co-authored-by: George Tebrean <99179176+gtebrean@users.noreply.github.com>
Co-authored-by: garyschulte <garyschulte@gmail.com>
Implement EIP 4788
Unit tests need to be added
Implementation is working for test net 8, address of the contract will probably change
EIP 4788 is still not finalized. Some changes might be necessary.
Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
* Make the `MessageFrame.isWarm(...)` method family public
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
---------
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Co-authored-by: matkt <karim.t2am@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Update the worldstate in the same way as the blockchain in order to avoid having inconsistencies between the two and later trigger a big rollforward
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Co-authored-by: Ameziane H <ameziane.hamlat@consensys.net>
* EvmTool fixes
A mixed collection of EVMTool fixes
* Ensure ECDSA algo is pre-configured
* used clamped math in an old gas calculator
* use correct gas calculator in fluent APIs
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
* spotless
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
---------
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>