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

Implement RIP-7560 (revision 2) on top of "release/1.14" #2

Open
wants to merge 80 commits into
base: master
Choose a base branch
from

Conversation

forshtat
Copy link

No description provided.

_, 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 {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move err handling before appends.

@@ -213,6 +217,7 @@ type StateTransition struct {
initialGas uint64
state vm.StateDB
evm *vm.EVM
rip7560Frame bool

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use msg.rip7560Frame instead of new var.


aatx := tx.Rip7560TransactionData()
statedb.SetTxContext(tx.Hash(), index+i)
err := BuyGasRip7560Transaction(aatx, statedb)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we abort with error if we can't buy gas?

initial test for the full "Process" call, to handle mixed legacy and AA
transactions
drortirosh and others added 30 commits July 25, 2024 21:29
* Renaming, Adding tstore/tload support

* Fixing tracer wip

* Adding handling of value, onExit

* Removing method id

* Fix abi encoding of nil fields

* typo

* Removing logs
* handle transaction receipt status
  effectiveGasUsed
  refund excess to account/paymaster
…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 <[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]>
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