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

Aa 503 merging latest ethereum/go-ethereum changes including 7702 support #49

Merged
merged 82 commits into from
Jan 7, 2025

Conversation

shahafn
Copy link

@shahafn shahafn commented Jan 6, 2025

No description provided.

forshtat and others added 30 commits June 3, 2024 19:58
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
initial test for the full "Process" call, to handle mixed legacy and AA
transactions
* remove stub message

was created just to create the vm.Txontext

* update
(instead of individual validation methods)
arbitrary-length return or revert
(currently, can't test it, since we check "error", and actual revert
data is hidden. will be probably needed when testing paymaster.)
forshtat and others added 25 commits August 13, 2024 19:47
…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 <[email protected]>
…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 <[email protected]>
* 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 <[email protected]>
…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 <[email protected]>
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
@shahafn shahafn changed the base branch from master to RIP-7560-revision-2 January 6, 2025 20:52
@shahafn shahafn changed the base branch from RIP-7560-revision-2 to master January 6, 2025 23:10
@shahafn shahafn changed the base branch from master to RIP-7560-revision-3 January 7, 2025 11:31
@shahafn shahafn merged commit bd560da into RIP-7560-revision-3 Jan 7, 2025
1 check failed
@shahafn shahafn deleted the AA-503 branch January 7, 2025 11:33
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.

3 participants