35
35
namespace solidity ::test
36
36
{
37
37
using Address = util::h160;
38
+ using StorageMap = std::map<evmc::bytes32, evmc::storage_value>;
38
39
39
40
class EVMHost : public evmc ::MockedHost
40
41
{
@@ -55,9 +56,10 @@ class EVMHost: public evmc::MockedHost
55
56
56
57
explicit EVMHost (langutil::EVMVersion _evmVersion, evmc::VM& _vm);
57
58
59
+ // / Reset entire state (including accounts).
58
60
void reset ();
59
- // / Clears EIP-2929 account and storage access indicator
60
- void resetWarmAccess ();
61
+
62
+ // / Start new block.
61
63
void newBlock ()
62
64
{
63
65
tx_context.block_number ++;
@@ -67,7 +69,7 @@ class EVMHost: public evmc::MockedHost
67
69
}
68
70
69
71
// / @returns contents of storage at @param _addr.
70
- std::map<evmc::bytes32, evmc::storage_value> const & get_address_storage (evmc::address const & _addr);
72
+ StorageMap const & get_address_storage (evmc::address const & _addr);
71
73
72
74
bool account_exists (evmc::address const & _addr) const noexcept final
73
75
{
@@ -94,8 +96,12 @@ class EVMHost: public evmc::MockedHost
94
96
private:
95
97
evmc::address m_currentAddress = {};
96
98
99
+ // / Transfer value between accounts. Checks for sufficient balance.
97
100
void transfer (evmc::MockedAccount& _sender, evmc::MockedAccount& _recipient, u256 const & _value) noexcept ;
98
101
102
+ // / Clears EIP-2929 account and storage access indicator
103
+ void resetWarmAccess ();
104
+
99
105
// / Records calls made via @param _message.
100
106
void recordCalls (evmc_message const & _message) noexcept ;
101
107
@@ -113,9 +119,9 @@ class EVMHost: public evmc::MockedHost
113
119
static evmc::result resultWithGas (evmc_message const & _message, bytes const & _data) noexcept ;
114
120
115
121
evmc::VM& m_vm;
116
- // EVM version requested by the testing tool
122
+ // / EVM version requested by the testing tool
117
123
langutil::EVMVersion m_evmVersion;
118
- // EVM version requested from EVMC (matches the above)
124
+ // / EVM version requested from EVMC (matches the above)
119
125
evmc_revision m_evmRevision;
120
126
};
121
127
0 commit comments