mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Change the way execution results are collected.
Changes handling ExecutionResult by Executive. From now execution results are collected on if a storage for results (ExecutionResult) is provided to an Executiove instance up front. This change allow better output management for calls - VM interface improved.
This commit is contained in:
parent
d2bc79b9ea
commit
ecd5108afc
@ -135,6 +135,8 @@ protected:
|
|||||||
{
|
{
|
||||||
m_state.addBalance(m_sender, _value); // just in case
|
m_state.addBalance(m_sender, _value); // just in case
|
||||||
eth::Executive executive(m_state, eth::LastHashes(), 0);
|
eth::Executive executive(m_state, eth::LastHashes(), 0);
|
||||||
|
eth::ExecutionResult res;
|
||||||
|
executive.setResultRef(res);
|
||||||
eth::Transaction t = _isCreation ? eth::Transaction(_value, m_gasPrice, m_gas, _data, 0, KeyPair::create().sec())
|
eth::Transaction t = _isCreation ? eth::Transaction(_value, m_gasPrice, m_gas, _data, 0, KeyPair::create().sec())
|
||||||
: eth::Transaction(_value, m_gasPrice, m_gas, m_contractAddress, _data, 0, KeyPair::create().sec());
|
: eth::Transaction(_value, m_gasPrice, m_gas, m_contractAddress, _data, 0, KeyPair::create().sec());
|
||||||
bytes transactionRLP = t.rlp();
|
bytes transactionRLP = t.rlp();
|
||||||
@ -161,7 +163,7 @@ protected:
|
|||||||
m_state.noteSending(m_sender);
|
m_state.noteSending(m_sender);
|
||||||
executive.finalize();
|
executive.finalize();
|
||||||
m_gasUsed = executive.gasUsed();
|
m_gasUsed = executive.gasUsed();
|
||||||
m_output = executive.out().toVector();
|
m_output = std::move(res.output); // FIXME: Looks like Framework needs ExecutiveResult embedded
|
||||||
m_logs = executive.logs();
|
m_logs = executive.logs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user