You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Spawn host function was implemented (#75) without a return value. The assumption was that the spawn would either fail, in which case the call would revert, or it would succeed, in which case the newly-created program address would be returned in ExecutionResult.create_address.
However, it's possible for a single execution thread to call spawn multiple times, and in this case, the address of the programs created by all but the final spawn would be lost. I'm pretty sure we instead need the spawn call to return the newly-created program address. This also simplifies a few things.
Look into the EVM dynamics to understand how it's done there:
In EVM, the spawn opcodes simply put the newly-created contract address onto the stack. We should probably have the spawn host call return it in like fashion.
Spawn host function was implemented (#75) without a return value. The assumption was that the spawn would either fail, in which case the call would revert, or it would succeed, in which case the newly-created program address would be returned in
ExecutionResult.create_address
.However, it's possible for a single execution thread to call spawn multiple times, and in this case, the address of the programs created by all but the final spawn would be lost. I'm pretty sure we instead need the spawn call to return the newly-created program address. This also simplifies a few things.
Look into the EVM dynamics to understand how it's done there:
This may depend on #81.
The text was updated successfully, but these errors were encountered: