-
Notifications
You must be signed in to change notification settings - Fork 4
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
base: master
Are you sure you want to change the base?
Conversation
_, 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 { |
There was a problem hiding this comment.
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.
core/state_transition.go
Outdated
@@ -213,6 +217,7 @@ type StateTransition struct { | |||
initialGas uint64 | |||
state vm.StateDB | |||
evm *vm.EVM | |||
rip7560Frame bool |
There was a problem hiding this comment.
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.
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.
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?
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)
* 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]>
…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 <[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]>
No description provided.