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

Arbitrary call return sizes #12

Closed
axic opened this issue Jul 15, 2016 · 2 comments
Closed

Arbitrary call return sizes #12

axic opened this issue Jul 15, 2016 · 2 comments

Comments

@axic
Copy link
Member

axic commented Jul 15, 2016

In EVM the caller must define the available space for return values.

In the current EVM2 design this is carried over, however it could be improved:

  • call doesn't defines the return value space
  • return doesn't writes the value to the caller's memory space (I understand this today can depend on the VM anyway)
  • return places the values into an intermediate, in-memory storage (callstore) and the contract is charged according to the size of this
  • a new opcode, callResultCopy is introduced for copying between callstore and the caller's memory space (and callResultSize to retrieve the total size)
  • the callstore is erased when a call is executed

It is a rough design, but it could be ironed out.

@wanderer
Copy link
Member

I think this is related.

@axic
Copy link
Member Author

axic commented Jan 17, 2018

Solved by ethereum/EIPs#211

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants