ipsilon / eof

Validation code for the EOF specification
Apache License 2.0
43 stars 19 forks source link

Creation transaction instead of the irregular state change #78

Closed pdobacz closed 6 months ago

pdobacz commented 7 months ago

A limited #76, where we keep the TXCREATE, but discuss the necessity of having the Createor Contract introduced via an irregular state change.

Instead of the "ISC", we keep the possibility of "legacy-like" creation transaction, where the entire calldata is treated as an initcontainer (and wiped, so that it behaves as empty calldata within the execution frame of the initcontainer).

Can be informally thought of how sending EOF to an "empty address" would have the same effect as an "implicit txcreate" operating on the calldata.

~The lack of ability to put data in the calldata in this first iteration is substituted by putting the data into the data_section of the initcontainer.~ There are alternative ideas to this where "stray data" beyond the end of the declared data_section becomes calldata for the initcode execution frame.

EDIT: I've changed the proposal to the alternative mentioned above, see comments for discussion

Another alternative is to reuse the type 4 InitcodeTransaction zeroth field for fetching the initcontainer in such transactions and keep calldata behaving normally.