Add EIP: Revamped CALL instructions#7069
Conversation
|
✅ All reviewers have approved. |
|
The commit bc83e6f (as a parent of c9d3ac9) contains errors. |
EIPS/eip-7069.md
Outdated
|
|
||
| The new instructions do not allow specifying a gas limit, but rather rely on the "63/64th rule" ([EIP-150](./eip-150.md)) to limit gas. An important improvement is the rules around the "stipend" are simplified, and callers do not need to perform special calculation whether the value is sent or not. | ||
|
|
||
| Furthermore, the obsolete functionality of specifying output buffer address is removed, because it is predominantly unused and implementers prefer to use `RETURNDATACOPY` instead. One exception is the case when the expected return size is known (i.e. non-dynamic return values), Solidity still uses the output buffer. |
There was a problem hiding this comment.
vyper always uses the output buffer, and only uses returndatacopy to bubble up revert data. removing the output buffer parameters would result in slightly more (1-2 bytes) bytecode per external call. however, if this proposal also introduced a RETURNDATALOAD instruction it could be a net savings because we could perform ABI decoding directly from returndata, and therefore skip certain returndatasize checks due to returndatacopy oob semantics.
There was a problem hiding this comment.
This was moved to rationale and included Vyper's case.
|
|
||
| Lastly, instead of returning a boolean for execution status, an extensible list of status codes is returned: `0` for success, `1` for revert, `2` for failure. | ||
|
|
||
| We expect most new contracts to rely on the new instructions (for simplicity and in order to save gas), and some specific contracts where gas limiting is required to keep using the old instructions (e.g. [ERC-4337](./eip-4337.md)). |
There was a problem hiding this comment.
| We expect most new contracts to rely on the new instructions (for simplicity and in order to save gas), and some specific contracts where gas limiting is required to keep using the old instructions (e.g. [ERC-4337](./eip-4337.md)). |
should also be moved to motivation/rationale
There was a problem hiding this comment.
Ok perhaps fine to move to motivation, but rationale? The reason it was put into the abstract to raise awareness, since 4337 is a hot topic.
|
@g11tech @SamWilsn @lightclient is this closer to merging now? |
eth-bot
left a comment
There was a problem hiding this comment.
All Reviewers Have Approved; Performing Automatic Merge...
No description provided.