Implement RIP-7560 (revision 2) on top of "release/1.14"#2
Open
Implement RIP-7560 (revision 2) on top of "release/1.14"#2
Conversation
drortirosh
reviewed
May 28, 2024
| _, validatedTxsReceipts, validateTxsLogs, err := HandleRip7560Transactions(tmpTxs[:], 0, statedb, &context.Coinbase, header, gp, p.config, p.bc, cfg) | ||
| receipts = append(receipts, validatedTxsReceipts...) | ||
| allLogs = append(allLogs, validateTxsLogs...) | ||
| if err != nil { |
drortirosh
reviewed
May 28, 2024
core/state_transition.go
Outdated
| initialGas uint64 | ||
| state vm.StateDB | ||
| evm *vm.EVM | ||
| rip7560Frame bool |
There was a problem hiding this comment.
use msg.rip7560Frame instead of new var.
drortirosh
reviewed
May 28, 2024
core/state_processor_rip7560.go
Outdated
|
|
||
| aatx := tx.Rip7560TransactionData() | ||
| statedb.SetTxContext(tx.Hash(), index+i) | ||
| err := BuyGasRip7560Transaction(aatx, statedb) |
There was a problem hiding this comment.
should we abort with error if we can't buy gas?
is msg.isRip7560Frame, which allows usage of plain ApplyMessage
* initial UT for ApplyRip7560ValidationPhases test ./tests/rip7560/ * refactor test context * add some error tests * returnData helper * github actions for rip7560 tests * update path * refactor test utils * refactor textContextBuilder * remove prestate json. * pr comments
ee387d8 to
507f472
Compare
initial test for the full "Process" call, to handle mixed legacy and AA transactions
Merge master jun 4
* remove stub message was created just to create the vm.Txontext * update
(instead of individual validation methods)
…esponse message (#22) * Propagate validation on-chain revert reasons to the RPC response message * Explicit error for missing both deployed code and factory * Bubble up the real 'RevertReason' through the 'TraceRip7560Validation' API
…ptance' (#23) * AA-411: Parse calls to EntryPoint address for account/paymaster 'acceptance' * Extract ABI encoding&decoding into file; use ABI instead of manual bit parsing * Remove rudimentary mentions of "magic" in RIP-7560 related code * Copy the "evm.Config.Tracer" instead of overriding the original object * Remove depth check, compare addresses instead
* Revert excution when postOp reverts * Fixing execution,postOp * Adding statedb access list functions to be able to snapshot/revert
* Add RIP-7712 nonce field to the RIP-7560 transaction type * Do not increment legacy nonce for RIP-7712 transactions * Handle on-chain NonceManager revert
…Data" (#30) * AA-419: "signature" -> "authorizationData", "calldata" -> "executionData"
* AA-419: "signature" -> "authorizationData", "calldata" -> "executionData"
* AA-422: Fix transaction hash function - add all missing fields
… AA-432: Penalization gas postOp observability (#33) * CallFrame * move checkNonce * refactor Nonce handling * execution phase * refactor prepare-msgs * refactor json-abi * fix errors * Make 'sumGas' accept vararg inputs * Extract 'performNonceCheckFrameRip7712' function * Update comment * Remove rudimentary modifications to the original ApplyMessage flow * Account for CallDataGas in 'postOp'; move code to Tx type interface --------- Co-authored-by: Alex Forshtat <forshtat1@gmail.com>
…ns (#35) * AA-344: (WIP) During block building simply skip invalid RIP-7560 transactions * Create 'eth_getRip7560TransactionDebugInfo' API to observe late invalidation * Remove unnecessary override
* WIP: Inject system events * WIP: Encode the event correctly and pass relevant data * Implement revert reason system events * Fix crash * Fix unhandled error * Remove unncecessary gas fields, expose failure type in status * Add 'ExecutionStatusExecutionAndPostOpFailure' status * Add 'RIP7560AccountDeployed' event; add 'nonceKey' event parameter; cleanup
…it' (#36) * AA-402: (WIP) 'CallDataGasCost' is not a separate component of 'TotalGasLimit' * Remove
* Fix 'CumulativeGasUsed' not being calculated correctly * call Prepare to initialize warm addresses * remove prints --------- Co-authored-by: Dror Tirosh <dror.tirosh@gmail.com>
…dGas' as 'PreTransactionGasCost' (#39)
* AA-408 deduct gas, pay coinbase * Fix 'CumulativeGasUsed' not being calculated correctly * call Prepare to initialize warm addresses * remove prints * reformat * PR comments --------- Co-authored-by: Alex Forshtat <forshtat1@gmail.com>
…imit AA-414: Consume block gas limit for RIP-7560 transactions
…eSequence' (#40) * AA-446: Separate 'nonce' into two 256-bit values 'nonceKey' and 'nonceSequence' * Fix nonce manager address * Print nonce manager address --------- Co-authored-by: shahafn <shahaflol@gmail.com>
Remove checking the 'OnlyTopCall' as it doesn't fit the use-case Remove most of the string-based opcode manipulation Fix Construct the correct tracer object Bring in 'OnTxEnd' and 'GetResult' functions Missing 'OnOpcode' hook native bundlerCollectorTracer Rename to erc7562Tracer Fixing tracer wip WIP: Make 'allowed opcodes' a configurable parameter with a hex string input WIP: Remove all inefficient code working with opcodes as strings erc7562 tracer wip Fixing pointer Fixing contract size type Fixing handleExtOpcodes Fixing stack pointers Changing UsedOpcodes type Fixing ignoredOpcodes Adding isCall(), fixing PR comments Remving callTracer, callTracerConfig, adding erc7562TracerConfig Detecting OOG in OnExit instead of OnOpcode Removing unused function Removing unused Changing Keccak member from array to mapping Replacing lastSeenOpcodes for lastOpWithStack
e4ce654 to
27459c9
Compare
shahafn
pushed a commit
that referenced
this pull request
May 19, 2025
This PR is #2 of a 3-part series that implements the new log index intended to replace core/bloombits. Based on ethereum#31079 Replaces ethereum#30370 This part replaces the old bloombits based log search logic in `eth/filters` to use the new `core/filtermaps` logic. FilterMaps data structure explanation: https://gist.github.com/zsfelfoldi/a60795f9da7ae6422f28c7a34e02a07e Log index generator code overview: https://gist.github.com/zsfelfoldi/97105dff0b1a4f5ed557924a24b9b9e7 Search pattern matcher code overview: https://gist.github.com/zsfelfoldi/5981735641c956afb18065e84f8aff34 Note that the possibility of a tree hashing scheme and remote proof protocol are mentioned in the documents above but they are not exactly specified yet. These specs are WIP and will be finalized after the local log indexer/filter code is finalized and merged. --------- Co-authored-by: Felix Lange <fjl@twurst.com>
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.
No description provided.