-
Notifications
You must be signed in to change notification settings - Fork 152
EIP 7702 Implement SetCode transactions #2755
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
base: master
Are you sure you want to change the base?
Conversation
@@ -40,6 +40,7 @@ def _assert_exit_code_zero(pattern: Pattern) -> None: | |||
return | |||
|
|||
pretty = kore_print(pattern, definition_dir=kdist.get('evm-semantics.llvm'), output=PrintOutput.PRETTY) | |||
print(pretty) |
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.
Is this intended or a statement that was added for debugging?
@@ -117,7 +117,7 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a | |||
syntax EthereumCommand ::= loadTx ( Account ) [symbol(loadTx)] | |||
// -------------------------------------------------------------- | |||
rule <k> loadTx(_) => startTx ... </k> | |||
<statusCode> _ => EVMC_OUT_OF_GAS </statusCode> |
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.
This change looks good, but I think this tule was removed in https://github.com/runtimeverification/evm-semantics/pull/2756/files. Which one is the latest version, I think the EIP-7623's one?
Add EIP-7702 SetCode Transaction Type Implementation
Adding support for a new transaction type that can include signed authorizations from various accounts. Each authorization lets you set a special code (
0xEF0100 || address
) for said authorized account, which points to another account/SC. Later, whenever anyone interacts with the authorized account, instead of just sending funds, the system runs the contract code that was pointed to (address
).Changes include:
Key Components:
SetCode
transaction type with prefix0x04
SetCodeTx
data structure with authorization listSetCode
authority lists#isValidDelegation
, and fetch the code of the delegated account.Notable Changes:
#loadAuthorities
and#addAuthority
operations for processingCextra
function when computing the cost of a call to also check if there is a delegation and if the delegated account is warm.TODO:
Need to implement delegation resolution inCALL*
/`operationsRun conformance tests