mirror of
https://github.com/status-im/evmc.git
synced 2025-02-22 07:58:19 +00:00
202 lines
120 KiB
HTML
202 lines
120 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>EVMC: include/evmc/evmc.h Source File</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript">
|
|
$(document).ready(initResizable);
|
|
</script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">EVMC
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.13 -->
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
initMenu('',false,false,'search.php','Search');
|
|
});
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
$(document).ready(function(){initNavTree('evmc_8h_source.html','');});
|
|
</script>
|
|
<div id="doc-content">
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<div class="title">evmc.h</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="evmc_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#ifndef EVMC_H</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#define EVMC_H</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#if defined(__clang__) || (defined(__GNUC__) && __GNUC__ >= 6)</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#define EVMC_DEPRECATED __attribute__((deprecated))</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#define EVMC_DEPRECATED</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stdbool.h></span> <span class="comment">/* Definition of bool, true and false. */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stddef.h></span> <span class="comment">/* Definition of size_t. */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <stdint.h></span> <span class="comment">/* Definition of int64_t, uint64_t. */</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">/* BEGIN Python CFFI declarations */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">enum</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga06fc87d81c62e9abb8790b6e5713c55ba1db9144f8af4e62865f0c003c07a02bc"> 47</a></span>  <a class="code" href="group__EVMC.html#gga06fc87d81c62e9abb8790b6e5713c55ba1db9144f8af4e62865f0c003c07a02bc">EVMC_ABI_VERSION</a> = 7</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> };</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structevmc__bytes32.html"> 56</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structevmc__bytes32.html">evmc_bytes32</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="structevmc__bytes32.html#a695eaf3c428daee54ce15c8252edc133"> 59</a></span>  uint8_t <a class="code" href="structevmc__bytes32.html#a695eaf3c428daee54ce15c8252edc133">bytes</a>[32];</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> } <a class="code" href="group__EVMC.html#ga67a54f0ca13bf83f59845e13e0caa3de">evmc_bytes32</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga260738d59f9a23d039dc7a290e0c0a3b"> 65</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structevmc__bytes32.html">evmc_bytes32</a> <a class="code" href="structevmc__bytes32.html">evmc_uint256be</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structevmc__address.html"> 68</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structevmc__address.html">evmc_address</a></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> {</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structevmc__address.html#ab43a790ce0efb282b7ed7eafff8ed614"> 71</a></span>  uint8_t <a class="code" href="structevmc__bytes32.html#a695eaf3c428daee54ce15c8252edc133">bytes</a>[20];</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> } <a class="code" href="group__EVMC.html#gaa6ab398cceb37b9c5a24be4d3a1b27e4">evmc_address</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="group__EVMC.html#gab2fa68a92a6828064a61e46060abc634"> 75</a></span> <span class="keyword">enum</span> <a class="code" href="group__EVMC.html#gab2fa68a92a6828064a61e46060abc634">evmc_call_kind</a></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> {</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634abcf3ae29d9a88ff70b98374fc665694a"> 77</a></span>  <a class="code" href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634abcf3ae29d9a88ff70b98374fc665694a">EVMC_CALL</a> = 0, </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634a6face22070bace91b429297e88d3ab1a"> 78</a></span>  <a class="code" href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634a6face22070bace91b429297e88d3ab1a">EVMC_DELEGATECALL</a> = 1, </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634ae9c5b431a0c823f368341c9f026642ef"> 80</a></span>  <a class="code" href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634ae9c5b431a0c823f368341c9f026642ef">EVMC_CALLCODE</a> = 2, </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634a1d15450429f540677caea05143344d33"> 81</a></span>  <a class="code" href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634a1d15450429f540677caea05143344d33">EVMC_CREATE</a> = 3, </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634a9ec7e0da8dde8e9bc420d806c621b418"> 82</a></span>  <a class="code" href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634a9ec7e0da8dde8e9bc420d806c621b418">EVMC_CREATE2</a> = 4 </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> };</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga187a3a658849da19a0c4e8f7b51fa70d"> 86</a></span> <span class="keyword">enum</span> <a class="code" href="group__EVMC.html#ga187a3a658849da19a0c4e8f7b51fa70d">evmc_flags</a></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> {</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga187a3a658849da19a0c4e8f7b51fa70da1d8bef8b2bd39a6bd1936e87b18e95bf"> 88</a></span>  <a class="code" href="group__EVMC.html#gga187a3a658849da19a0c4e8f7b51fa70da1d8bef8b2bd39a6bd1936e87b18e95bf">EVMC_STATIC</a> = 1 </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> };</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="structevmc__message.html"> 95</a></span> <span class="keyword">struct </span><a class="code" href="structevmc__message.html">evmc_message</a></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> {</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="structevmc__message.html#a691cb93e81d6dfd4fd7e2fa3d06a6bfa"> 98</a></span>  <span class="keyword">enum</span> <a class="code" href="group__EVMC.html#gab2fa68a92a6828064a61e46060abc634">evmc_call_kind</a> kind;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structevmc__message.html#aae59f288163f3d3b2da2b5fdeb29512a"> 104</a></span>  uint32_t <a class="code" href="structevmc__message.html#aae59f288163f3d3b2da2b5fdeb29512a">flags</a>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="structevmc__message.html#a75ea15f85573ea3638e8625bbba54d3a"> 107</a></span>  int32_t <a class="code" href="structevmc__message.html#a75ea15f85573ea3638e8625bbba54d3a">depth</a>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="structevmc__message.html#ae8deff46588584fa27890e74c82db5e7"> 110</a></span>  int64_t <a class="code" href="structevmc__message.html#ae8deff46588584fa27890e74c82db5e7">gas</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structevmc__message.html#a88ecfaa03a85a31c6da36fa043b98cea"> 113</a></span>  <a class="code" href="structevmc__address.html">evmc_address</a> <a class="code" href="structevmc__message.html#a88ecfaa03a85a31c6da36fa043b98cea">destination</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="structevmc__message.html#ae7f64ab994f49d9a5f028d56e80fd468"> 116</a></span>  <a class="code" href="structevmc__address.html">evmc_address</a> <a class="code" href="structevmc__message.html#ae7f64ab994f49d9a5f028d56e80fd468">sender</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="structevmc__message.html#a1adee3454b105eb29cd659ee0cf65c77"> 123</a></span>  <span class="keyword">const</span> uint8_t* <a class="code" href="structevmc__message.html#a1adee3454b105eb29cd659ee0cf65c77">input_data</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="structevmc__message.html#a2cf1deebd0dbbb20f25ecdfa299f4b5d"> 130</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structevmc__message.html#a2cf1deebd0dbbb20f25ecdfa299f4b5d">input_size</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structevmc__message.html#adc7e2442cb362417931524ee904ecb33"> 135</a></span>  <a class="code" href="structevmc__bytes32.html">evmc_uint256be</a> <a class="code" href="structevmc__message.html#adc7e2442cb362417931524ee904ecb33">value</a>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="structevmc__message.html#a20cb5b3664de79d11159e4099b80747f"> 142</a></span>  <a class="code" href="structevmc__bytes32.html">evmc_bytes32</a> <a class="code" href="structevmc__message.html#a20cb5b3664de79d11159e4099b80747f">create2_salt</a>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> };</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="structevmc__tx__context.html"> 147</a></span> <span class="keyword">struct </span><a class="code" href="structevmc__tx__context.html">evmc_tx_context</a></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> {</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="structevmc__tx__context.html#a4858c73d21efbd267ca4c2b084c9e8c0"> 149</a></span>  <a class="code" href="structevmc__bytes32.html">evmc_uint256be</a> <a class="code" href="structevmc__tx__context.html#a4858c73d21efbd267ca4c2b084c9e8c0">tx_gas_price</a>; </div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="structevmc__tx__context.html#a13072643da6e167daa209a305cd996db"> 150</a></span>  <a class="code" href="structevmc__address.html">evmc_address</a> <a class="code" href="structevmc__tx__context.html#a13072643da6e167daa209a305cd996db">tx_origin</a>; </div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="structevmc__tx__context.html#acdb1c3a579bcf1578bff68d1f88f18a4"> 151</a></span>  <a class="code" href="structevmc__address.html">evmc_address</a> <a class="code" href="structevmc__tx__context.html#acdb1c3a579bcf1578bff68d1f88f18a4">block_coinbase</a>; </div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="structevmc__tx__context.html#a1c3c0552db49b91358256c25643ba44a"> 152</a></span>  int64_t <a class="code" href="structevmc__tx__context.html#a1c3c0552db49b91358256c25643ba44a">block_number</a>; </div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="structevmc__tx__context.html#a2391863eab970821d67a08341d9d3440"> 153</a></span>  int64_t <a class="code" href="structevmc__tx__context.html#a2391863eab970821d67a08341d9d3440">block_timestamp</a>; </div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="structevmc__tx__context.html#af51d0246df23060d5e958ada3f25a676"> 154</a></span>  int64_t <a class="code" href="structevmc__tx__context.html#af51d0246df23060d5e958ada3f25a676">block_gas_limit</a>; </div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="structevmc__tx__context.html#afacc9f907dd24a60a74f26c3fd0ded20"> 155</a></span>  <a class="code" href="structevmc__bytes32.html">evmc_uint256be</a> <a class="code" href="structevmc__tx__context.html#afacc9f907dd24a60a74f26c3fd0ded20">block_difficulty</a>; </div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="structevmc__tx__context.html#ac68b370866987a1a1785751e4c76702a"> 156</a></span>  <a class="code" href="structevmc__bytes32.html">evmc_uint256be</a> <a class="code" href="structevmc__tx__context.html#ac68b370866987a1a1785751e4c76702a">chain_id</a>; </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> };</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">struct </span><a class="code" href="structevmc__host__context.html">evmc_host_context</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga7b403c029b5b9ad627ffafb8c41ac84b"> 175</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structevmc__tx__context.html">evmc_tx_context</a> (*<a class="code" href="group__EVMC.html#ga7b403c029b5b9ad627ffafb8c41ac84b">evmc_get_tx_context_fn</a>)(<span class="keyword">struct</span> <a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga97c2981658d797d3031720a54740a4b3"> 189</a></span> <span class="keyword">typedef</span> <a class="code" href="group__EVMC.html#ga67a54f0ca13bf83f59845e13e0caa3de">evmc_bytes32</a> (*<a class="code" href="group__EVMC.html#ga97c2981658d797d3031720a54740a4b3">evmc_get_block_hash_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context, int64_t number);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga4c0be97f333c050ff45321fcaa34d920"> 211</a></span> <span class="keyword">enum</span> <a class="code" href="group__EVMC.html#ga4c0be97f333c050ff45321fcaa34d920">evmc_status_code</a></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> {</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a4bc3069fec2bab2a55355a72b7db68b7"> 214</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a4bc3069fec2bab2a55355a72b7db68b7">EVMC_SUCCESS</a> = 0,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920aed5b2a4afa5a47af732569445920a4a9"> 217</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920aed5b2a4afa5a47af732569445920a4a9">EVMC_FAILURE</a> = 1,</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920aed708e84d49cc1270e54ec20b0ca0a05"> 225</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920aed708e84d49cc1270e54ec20b0ca0a05">EVMC_REVERT</a> = 2,</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920abfc47f75656c996c0b29c0553c00fc18"> 228</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920abfc47f75656c996c0b29c0553c00fc18">EVMC_OUT_OF_GAS</a> = 3,</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a8ea4f35a269f5fd3a722f2054c993637"> 238</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a8ea4f35a269f5fd3a722f2054c993637">EVMC_INVALID_INSTRUCTION</a> = 4,</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a443084a263a2325f1e4c629e97685367"> 241</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a443084a263a2325f1e4c629e97685367">EVMC_UNDEFINED_INSTRUCTION</a> = 5,</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ae1a613949fe1c994a36488b0bc4c86c4"> 247</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ae1a613949fe1c994a36488b0bc4c86c4">EVMC_STACK_OVERFLOW</a> = 6,</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a640106fdec78d04a1098c512898d4efc"> 250</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a640106fdec78d04a1098c512898d4efc">EVMC_STACK_UNDERFLOW</a> = 7,</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a6acf000dfa802a949063a87046f4bb26"> 253</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a6acf000dfa802a949063a87046f4bb26">EVMC_BAD_JUMP_DESTINATION</a> = 8,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a2981ec30896486ac69bab7c0a1be591b"> 260</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a2981ec30896486ac69bab7c0a1be591b">EVMC_INVALID_MEMORY_ACCESS</a> = 9,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ac139d631ff852379d566c8a60f86ddc0"> 263</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ac139d631ff852379d566c8a60f86ddc0">EVMC_CALL_DEPTH_EXCEEDED</a> = 10,</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a92ccaaeb3fd1ee5aa1ad022678c13bac"> 266</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a92ccaaeb3fd1ee5aa1ad022678c13bac">EVMC_STATIC_MODE_VIOLATION</a> = 11,</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ab960d50047f87925e540bee6230aafb7"> 273</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ab960d50047f87925e540bee6230aafb7">EVMC_PRECOMPILE_FAILURE</a> = 12,</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ac0e1bf525f51da5b3d34d4f67ca549e1"> 279</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ac0e1bf525f51da5b3d34d4f67ca549e1">EVMC_CONTRACT_VALIDATION_FAILURE</a> = 13,</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a1cc537c5875de1b42aa5d556f33223d8"> 285</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a1cc537c5875de1b42aa5d556f33223d8">EVMC_ARGUMENT_OUT_OF_RANGE</a> = 14,</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ac99fbd9645011663df070ae3c367eb4e"> 290</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ac99fbd9645011663df070ae3c367eb4e">EVMC_WASM_UNREACHABLE_INSTRUCTION</a> = 15,</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920aaf0c6c7a736ec498bd390884f143e57b"> 296</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920aaf0c6c7a736ec498bd390884f143e57b">EVMC_WASM_TRAP</a> = 16,</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920abb1dcac202eac2ed8fd3025645a2fb28"> 299</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920abb1dcac202eac2ed8fd3025645a2fb28">EVMC_INTERNAL_ERROR</a> = -1,</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a2f3e0d8777f8d974ead27ae2a6eb2005"> 312</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a2f3e0d8777f8d974ead27ae2a6eb2005">EVMC_REJECTED</a> = -2,</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a63aa9b3ac3af61c39c20562509347b86"> 315</a></span>  <a class="code" href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a63aa9b3ac3af61c39c20562509347b86">EVMC_OUT_OF_MEMORY</a> = -3</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> };</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment">/* Forward declaration. */</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="keyword">struct </span><a class="code" href="structevmc__result.html">evmc_result</a>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga297c7c7ca966c82296a54683143157b1"> 337</a></span> <span class="keyword">typedef</span> void (*<a class="code" href="group__EVMC.html#ga297c7c7ca966c82296a54683143157b1">evmc_release_result_fn</a>)(<span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structevmc__result.html">evmc_result</a>* result);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="structevmc__result.html"> 340</a></span> <span class="keyword">struct </span><a class="code" href="structevmc__result.html">evmc_result</a></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> {</div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="structevmc__result.html#a759c4aaa4a1c002f5a8be09ccb0b6a1c"> 343</a></span>  <span class="keyword">enum</span> <a class="code" href="group__EVMC.html#ga4c0be97f333c050ff45321fcaa34d920">evmc_status_code</a> status_code;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="structevmc__result.html#af8478c93dbcc3cb2876037c5a5afd4c0"> 351</a></span>  int64_t <a class="code" href="structevmc__result.html#af8478c93dbcc3cb2876037c5a5afd4c0">gas_left</a>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="structevmc__result.html#a61978e85f9d795a7b9695b9cbf1748d6"> 364</a></span>  <span class="keyword">const</span> uint8_t* <a class="code" href="structevmc__result.html#a61978e85f9d795a7b9695b9cbf1748d6">output_data</a>;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="structevmc__result.html#a93bb7419aff492cdef754421c6d74e26"> 371</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structevmc__result.html#a93bb7419aff492cdef754421c6d74e26">output_size</a>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div><div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="structevmc__result.html#a8727ff83d372ab0067bcf6656d30b0ed"> 392</a></span>  <a class="code" href="group__EVMC.html#ga297c7c7ca966c82296a54683143157b1">evmc_release_result_fn</a> <a class="code" href="structevmc__result.html#a8727ff83d372ab0067bcf6656d30b0ed">release</a>;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div><div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="structevmc__result.html#ae7f37ff7c9cfa3b58af2c89f4d610522"> 403</a></span>  <a class="code" href="structevmc__address.html">evmc_address</a> <a class="code" href="structevmc__result.html#ae7f37ff7c9cfa3b58af2c89f4d610522">create_address</a>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="structevmc__result.html#aa321f15701e9df26a9f58d60dcbd0ef9"> 416</a></span>  uint8_t padding[4];</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> };</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga4c5464305402bf2a10d94bf2d828d82b"> 429</a></span> <span class="keyword">typedef</span> bool (*<a class="code" href="group__EVMC.html#ga4c5464305402bf2a10d94bf2d828d82b">evmc_account_exists_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context,</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keyword">const</span> <a class="code" href="structevmc__address.html">evmc_address</a>* address);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div><div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga7aff77bf67e8fad5819807b8aafff7cb"> 443</a></span> <span class="keyword">typedef</span> <a class="code" href="group__EVMC.html#ga67a54f0ca13bf83f59845e13e0caa3de">evmc_bytes32</a> (*<a class="code" href="group__EVMC.html#ga7aff77bf67e8fad5819807b8aafff7cb">evmc_get_storage_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context,</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keyword">const</span> <a class="code" href="structevmc__address.html">evmc_address</a>* address,</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keyword">const</span> <a class="code" href="structevmc__bytes32.html">evmc_bytes32</a>* key);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div><div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="group__EVMC.html#gae012fd6b8e5c23806b507c2d3e9fb1aa"> 459</a></span> <span class="keyword">enum</span> <a class="code" href="group__EVMC.html#gae012fd6b8e5c23806b507c2d3e9fb1aa">evmc_storage_status</a></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> {</div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaad6d527edcbe8a63edad5be80f252330c"> 464</a></span>  <a class="code" href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaad6d527edcbe8a63edad5be80f252330c">EVMC_STORAGE_UNCHANGED</a> = 0,</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span> </div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaaf102ce749767d5277923c221089da2c6"> 469</a></span>  <a class="code" href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaaf102ce749767d5277923c221089da2c6">EVMC_STORAGE_MODIFIED</a> = 1,</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaa072394aca7925f8de8facf8f8a5e477c"> 474</a></span>  <a class="code" href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaa072394aca7925f8de8facf8f8a5e477c">EVMC_STORAGE_MODIFIED_AGAIN</a> = 2,</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div><div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaa8afd1741edf799d44264654d9f04a5a9"> 479</a></span>  <a class="code" href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaa8afd1741edf799d44264654d9f04a5a9">EVMC_STORAGE_ADDED</a> = 3,</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaae5b6ea5ec988f3b3ceb323ce3c0fa53f"> 484</a></span>  <a class="code" href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaae5b6ea5ec988f3b3ceb323ce3c0fa53f">EVMC_STORAGE_DELETED</a> = 4</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> };</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="group__EVMC.html#gaf7481ac7c3f1071d5d4d8256d0687e83"> 502</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__EVMC.html#gae012fd6b8e5c23806b507c2d3e9fb1aa">evmc_storage_status</a> (*<a class="code" href="group__EVMC.html#gaf7481ac7c3f1071d5d4d8256d0687e83">evmc_set_storage_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context,</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keyword">const</span> <a class="code" href="structevmc__address.html">evmc_address</a>* address,</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keyword">const</span> <a class="code" href="structevmc__bytes32.html">evmc_bytes32</a>* key,</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keyword">const</span> <a class="code" href="structevmc__bytes32.html">evmc_bytes32</a>* value);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span> </div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga5208ee08734b69bb0a28793f0ecfbc48"> 516</a></span> <span class="keyword">typedef</span> <a class="code" href="group__EVMC.html#ga260738d59f9a23d039dc7a290e0c0a3b">evmc_uint256be</a> (*<a class="code" href="group__EVMC.html#ga5208ee08734b69bb0a28793f0ecfbc48">evmc_get_balance_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context,</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keyword">const</span> <a class="code" href="structevmc__address.html">evmc_address</a>* address);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div><div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga38e37a3a70dec828829cccb461e99de2"> 529</a></span> <span class="keyword">typedef</span> size_t (*<a class="code" href="group__EVMC.html#ga38e37a3a70dec828829cccb461e99de2">evmc_get_code_size_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context,</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keyword">const</span> <a class="code" href="structevmc__address.html">evmc_address</a>* address);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div><div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga7971754ea6e237ffb9e9b7ab102fa16e"> 543</a></span> <span class="keyword">typedef</span> <a class="code" href="group__EVMC.html#ga67a54f0ca13bf83f59845e13e0caa3de">evmc_bytes32</a> (*<a class="code" href="group__EVMC.html#ga7971754ea6e237ffb9e9b7ab102fa16e">evmc_get_code_hash_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context,</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keyword">const</span> <a class="code" href="structevmc__address.html">evmc_address</a>* address);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div><div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga7dc696d1491951200ac5dc4f852a4499"> 563</a></span> <span class="keyword">typedef</span> size_t (*<a class="code" href="group__EVMC.html#ga7dc696d1491951200ac5dc4f852a4499">evmc_copy_code_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context,</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keyword">const</span> <a class="code" href="structevmc__address.html">evmc_address</a>* address,</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordtype">size_t</span> code_offset,</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  uint8_t* buffer_data,</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordtype">size_t</span> buffer_size);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span> </div><div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga72021774388d535436b0c532f8c6de6c"> 579</a></span> <span class="keyword">typedef</span> void (*<a class="code" href="group__EVMC.html#ga72021774388d535436b0c532f8c6de6c">evmc_selfdestruct_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context,</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keyword">const</span> <a class="code" href="structevmc__address.html">evmc_address</a>* address,</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keyword">const</span> <a class="code" href="structevmc__address.html">evmc_address</a>* beneficiary);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span> </div><div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="group__EVMC.html#gaab96621b67d653758b3da15c2b596938"> 596</a></span> <span class="keyword">typedef</span> void (*<a class="code" href="group__EVMC.html#gaab96621b67d653758b3da15c2b596938">evmc_emit_log_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context,</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keyword">const</span> <a class="code" href="structevmc__address.html">evmc_address</a>* address,</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keyword">const</span> uint8_t* data,</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keywordtype">size_t</span> data_size,</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keyword">const</span> <a class="code" href="structevmc__bytes32.html">evmc_bytes32</a> topics[],</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordtype">size_t</span> topics_count);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga54f569386b52be6eee15ca9e14ed1ef8"> 610</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structevmc__result.html">evmc_result</a> (*<a class="code" href="group__EVMC.html#ga54f569386b52be6eee15ca9e14ed1ef8">evmc_call_fn</a>)(<span class="keyword">struct</span> <a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context,</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structevmc__message.html">evmc_message</a>* msg);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div><div class="line"><a name="l00621"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html"> 621</a></span> <span class="keyword">struct </span><a class="code" href="structevmc__host__interface.html">evmc_host_interface</a></div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span> {</div><div class="line"><a name="l00624"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html#ac3b71b9670621dd55e8bc047cd289e1a"> 624</a></span>  <a class="code" href="group__EVMC.html#ga4c5464305402bf2a10d94bf2d828d82b">evmc_account_exists_fn</a> <a class="code" href="structevmc__host__interface.html#ac3b71b9670621dd55e8bc047cd289e1a">account_exists</a>;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span> </div><div class="line"><a name="l00627"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html#a1cfd339e26ceaba522aece2e1a06c6ef"> 627</a></span>  <a class="code" href="group__EVMC.html#ga7aff77bf67e8fad5819807b8aafff7cb">evmc_get_storage_fn</a> <a class="code" href="structevmc__host__interface.html#a1cfd339e26ceaba522aece2e1a06c6ef">get_storage</a>;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span> </div><div class="line"><a name="l00630"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html#ad24670503f09df720cc008e361a91277"> 630</a></span>  <a class="code" href="group__EVMC.html#gaf7481ac7c3f1071d5d4d8256d0687e83">evmc_set_storage_fn</a> <a class="code" href="structevmc__host__interface.html#ad24670503f09df720cc008e361a91277">set_storage</a>;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span> </div><div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html#acfb80d38a19c3c5a267a68520dae8020"> 633</a></span>  <a class="code" href="group__EVMC.html#ga5208ee08734b69bb0a28793f0ecfbc48">evmc_get_balance_fn</a> <a class="code" href="structevmc__host__interface.html#acfb80d38a19c3c5a267a68520dae8020">get_balance</a>;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span> </div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html#a35897228fa9270f59b7fca4bc373e860"> 636</a></span>  <a class="code" href="group__EVMC.html#ga38e37a3a70dec828829cccb461e99de2">evmc_get_code_size_fn</a> <a class="code" href="structevmc__host__interface.html#a35897228fa9270f59b7fca4bc373e860">get_code_size</a>;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div><div class="line"><a name="l00639"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html#a058d2f129c4f4e840258127137801eaf"> 639</a></span>  <a class="code" href="group__EVMC.html#ga7971754ea6e237ffb9e9b7ab102fa16e">evmc_get_code_hash_fn</a> <a class="code" href="structevmc__host__interface.html#a058d2f129c4f4e840258127137801eaf">get_code_hash</a>;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span> </div><div class="line"><a name="l00642"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html#a21b53f1aea01f97eeb29ff5d3b5910ea"> 642</a></span>  <a class="code" href="group__EVMC.html#ga7dc696d1491951200ac5dc4f852a4499">evmc_copy_code_fn</a> <a class="code" href="structevmc__host__interface.html#a21b53f1aea01f97eeb29ff5d3b5910ea">copy_code</a>;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html#a189b040cb7db22778e81d4eb19e87849"> 645</a></span>  <a class="code" href="group__EVMC.html#ga72021774388d535436b0c532f8c6de6c">evmc_selfdestruct_fn</a> <a class="code" href="structevmc__host__interface.html#a189b040cb7db22778e81d4eb19e87849">selfdestruct</a>;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div><div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html#a0acd6def9c08159acccfba9f9cbf9ca9"> 648</a></span>  <a class="code" href="group__EVMC.html#ga54f569386b52be6eee15ca9e14ed1ef8">evmc_call_fn</a> <a class="code" href="structevmc__host__interface.html#a0acd6def9c08159acccfba9f9cbf9ca9">call</a>;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span> </div><div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html#aecdea81d0643b6988e2dc6f57c936ffe"> 651</a></span>  <a class="code" href="group__EVMC.html#ga7b403c029b5b9ad627ffafb8c41ac84b">evmc_get_tx_context_fn</a> <a class="code" href="structevmc__host__interface.html#aecdea81d0643b6988e2dc6f57c936ffe">get_tx_context</a>;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div><div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html#a9cdde67ef20f42f60d3b8949230e8852"> 654</a></span>  <a class="code" href="group__EVMC.html#ga97c2981658d797d3031720a54740a4b3">evmc_get_block_hash_fn</a> <a class="code" href="structevmc__host__interface.html#a9cdde67ef20f42f60d3b8949230e8852">get_block_hash</a>;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span> </div><div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="structevmc__host__interface.html#aaa3feda20b9b50381a359b2d4f591f0c"> 657</a></span>  <a class="code" href="group__EVMC.html#gaab96621b67d653758b3da15c2b596938">evmc_emit_log_fn</a> <a class="code" href="structevmc__host__interface.html#aaa3feda20b9b50381a359b2d4f591f0c">emit_log</a>;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span> };</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span> </div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="comment">/* Forward declaration. */</span></div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="keyword">struct </span><a class="code" href="structevmc__vm.html">evmc_vm</a>;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span> </div><div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga1f54475fc7dc20a0c4d370272e39d755"> 669</a></span> <span class="keyword">typedef</span> void (*<a class="code" href="group__EVMC.html#ga1f54475fc7dc20a0c4d370272e39d755">evmc_destroy_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__vm.html">evmc_vm</a>* vm);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span> </div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga28d9f527bda67277bccccc100e32260a"> 674</a></span> <span class="keyword">enum</span> <a class="code" href="group__EVMC.html#ga28d9f527bda67277bccccc100e32260a">evmc_set_option_result</a></div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span> {</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  EVMC_SET_OPTION_SUCCESS = 0,</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  EVMC_SET_OPTION_INVALID_NAME = 1,</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  EVMC_SET_OPTION_INVALID_VALUE = 2</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span> };</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span> </div><div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga5531cee5b83d76c71b06475454f4633b"> 694</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__EVMC.html#ga28d9f527bda67277bccccc100e32260a">evmc_set_option_result</a> (*<a class="code" href="group__EVMC.html#ga5531cee5b83d76c71b06475454f4633b">evmc_set_option_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__vm.html">evmc_vm</a>* vm,</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keywordtype">char</span> <span class="keyword">const</span>* <a class="code" href="structevmc__vm.html#ac29ccc98e89c8cab3ffc5bd51a2afaa8">name</a>,</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keywordtype">char</span> <span class="keyword">const</span>* value);</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span> </div><div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="group__EVMC.html#gae5759b1590071966ccf6a505b52a0ef7"> 705</a></span> <span class="keyword">enum</span> <a class="code" href="group__EVMC.html#gae5759b1590071966ccf6a505b52a0ef7">evmc_revision</a></div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span> {</div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a622480509359764aa2a258b074812a5f"> 712</a></span>  <a class="code" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a622480509359764aa2a258b074812a5f">EVMC_FRONTIER</a> = 0,</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span> </div><div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a04f0bf686d2b1c50612f9a96480f70a9"> 719</a></span>  <a class="code" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a04f0bf686d2b1c50612f9a96480f70a9">EVMC_HOMESTEAD</a> = 1,</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span> </div><div class="line"><a name="l00726"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a8305858ab32b80a6eced7bf177d6dee2"> 726</a></span>  <a class="code" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a8305858ab32b80a6eced7bf177d6dee2">EVMC_TANGERINE_WHISTLE</a> = 2,</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span> </div><div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7abbbcae1af73ad1efc570b40bb0363879"> 733</a></span>  <a class="code" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7abbbcae1af73ad1efc570b40bb0363879">EVMC_SPURIOUS_DRAGON</a> = 3,</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span> </div><div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7ac4b0c9cfb5d408f17255a15e26938ea6"> 740</a></span>  <a class="code" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7ac4b0c9cfb5d408f17255a15e26938ea6">EVMC_BYZANTIUM</a> = 4,</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span> </div><div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a7a2ed5cf3d25c8c4a68691721bb969fc"> 747</a></span>  <a class="code" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a7a2ed5cf3d25c8c4a68691721bb969fc">EVMC_CONSTANTINOPLE</a> = 5,</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span> </div><div class="line"><a name="l00756"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a6d913d4917e87b1fc798b450735acdeb"> 756</a></span>  <a class="code" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a6d913d4917e87b1fc798b450735acdeb">EVMC_PETERSBURG</a> = 6,</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span> </div><div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a5f0e287935fd0afd65afea34b51dcf8c"> 763</a></span>  <a class="code" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a5f0e287935fd0afd65afea34b51dcf8c">EVMC_ISTANBUL</a> = 7,</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span> </div><div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7af53e0cb0d793d60b5fb07c6b4c3c6ab7"> 770</a></span>  <a class="code" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7af53e0cb0d793d60b5fb07c6b4c3c6ab7">EVMC_BERLIN</a> = 8,</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span> </div><div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a8b67f41f15bc079b8ad40dcd7156f576"> 773</a></span>  <a class="code" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a8b67f41f15bc079b8ad40dcd7156f576">EVMC_MAX_REVISION</a> = <a class="code" href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7af53e0cb0d793d60b5fb07c6b4c3c6ab7">EVMC_BERLIN</a></div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span> };</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span> </div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span> </div><div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="group__EVMC.html#gaed9a4ab5609b55c5e3272d6d37d84ff7"> 795</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structevmc__result.html">evmc_result</a> (*<a class="code" href="group__EVMC.html#gaed9a4ab5609b55c5e3272d6d37d84ff7">evmc_execute_fn</a>)(<span class="keyword">struct</span> <a class="code" href="structevmc__vm.html">evmc_vm</a>* vm,</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structevmc__host__interface.html">evmc_host_interface</a>* host,</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keyword">struct</span> <a class="code" href="structevmc__host__context.html">evmc_host_context</a>* context,</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="keyword">enum</span> <a class="code" href="group__EVMC.html#gae5759b1590071966ccf6a505b52a0ef7">evmc_revision</a> rev,</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structevmc__message.html">evmc_message</a>* msg,</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  uint8_t <span class="keyword">const</span>* code,</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordtype">size_t</span> code_size);</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span> </div><div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga44f9ecb88cf6422a0072936494fd6ac7"> 806</a></span> <span class="keyword">enum</span> <a class="code" href="group__EVMC.html#ga44f9ecb88cf6422a0072936494fd6ac7">evmc_capabilities</a></div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span> {</div><div class="line"><a name="l00811"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga44f9ecb88cf6422a0072936494fd6ac7a36fd3cfe936b9525eed7f88a7b43a2a8"> 811</a></span>  <a class="code" href="group__EVMC.html#gga44f9ecb88cf6422a0072936494fd6ac7a36fd3cfe936b9525eed7f88a7b43a2a8">EVMC_CAPABILITY_EVM1</a> = (1u << 0),</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span> </div><div class="line"><a name="l00816"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga44f9ecb88cf6422a0072936494fd6ac7af1240f950b5b9ca4369bcac424443e54"> 816</a></span>  <a class="code" href="group__EVMC.html#gga44f9ecb88cf6422a0072936494fd6ac7af1240f950b5b9ca4369bcac424443e54">EVMC_CAPABILITY_EWASM</a> = (1u << 1),</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span> </div><div class="line"><a name="l00828"></a><span class="lineno"><a class="line" href="group__EVMC.html#gga44f9ecb88cf6422a0072936494fd6ac7a43ea2aa7b099a2d67bc53c118ff3683d"> 828</a></span>  <a class="code" href="group__EVMC.html#gga44f9ecb88cf6422a0072936494fd6ac7a43ea2aa7b099a2d67bc53c118ff3683d">EVMC_CAPABILITY_PRECOMPILES</a> = (1u << 2)</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span> };</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span> </div><div class="line"><a name="l00836"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga714bc8ca946adc759403fe072bdd2aa0"> 836</a></span> <span class="keyword">typedef</span> uint32_t <a class="code" href="group__EVMC.html#ga714bc8ca946adc759403fe072bdd2aa0">evmc_capabilities_flagset</a>;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span> </div><div class="line"><a name="l00847"></a><span class="lineno"><a class="line" href="group__EVMC.html#ga9bac25459c5a09d42606e7bd9320445c"> 847</a></span> <span class="keyword">typedef</span> <a class="code" href="group__EVMC.html#ga714bc8ca946adc759403fe072bdd2aa0">evmc_capabilities_flagset</a> (*<a class="code" href="group__EVMC.html#ga9bac25459c5a09d42606e7bd9320445c">evmc_get_capabilities_fn</a>)(<span class="keyword">struct </span><a class="code" href="structevmc__vm.html">evmc_vm</a>* vm);</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span> </div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span> </div><div class="line"><a name="l00855"></a><span class="lineno"><a class="line" href="structevmc__vm.html"> 855</a></span> <span class="keyword">struct </span><a class="code" href="structevmc__vm.html">evmc_vm</a></div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span> {</div><div class="line"><a name="l00863"></a><span class="lineno"><a class="line" href="structevmc__vm.html#acccbdf95110faffb4dc85624bb1d99b6"> 863</a></span>  <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="structevmc__vm.html#acccbdf95110faffb4dc85624bb1d99b6">abi_version</a>;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span> </div><div class="line"><a name="l00871"></a><span class="lineno"><a class="line" href="structevmc__vm.html#ac29ccc98e89c8cab3ffc5bd51a2afaa8"> 871</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structevmc__vm.html#ac29ccc98e89c8cab3ffc5bd51a2afaa8">name</a>;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span> </div><div class="line"><a name="l00879"></a><span class="lineno"><a class="line" href="structevmc__vm.html#af98936c214ed16f5da05ba3d6a619faa"> 879</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structevmc__vm.html#af98936c214ed16f5da05ba3d6a619faa">version</a>;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span> </div><div class="line"><a name="l00886"></a><span class="lineno"><a class="line" href="structevmc__vm.html#ac78933134b4e14ca3dd4139ee061cc6b"> 886</a></span>  <a class="code" href="group__EVMC.html#ga1f54475fc7dc20a0c4d370272e39d755">evmc_destroy_fn</a> <a class="code" href="structevmc__vm.html#ac78933134b4e14ca3dd4139ee061cc6b">destroy</a>;</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span> </div><div class="line"><a name="l00893"></a><span class="lineno"><a class="line" href="structevmc__vm.html#a8384d28338f2287a9f9e1508699c53f0"> 893</a></span>  <a class="code" href="group__EVMC.html#gaed9a4ab5609b55c5e3272d6d37d84ff7">evmc_execute_fn</a> <a class="code" href="structevmc__vm.html#a8384d28338f2287a9f9e1508699c53f0">execute</a>;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span> </div><div class="line"><a name="l00905"></a><span class="lineno"><a class="line" href="structevmc__vm.html#a505d4e584a858c2eea7a026f3a94188b"> 905</a></span>  <a class="code" href="group__EVMC.html#ga9bac25459c5a09d42606e7bd9320445c">evmc_get_capabilities_fn</a> <a class="code" href="structevmc__vm.html#a505d4e584a858c2eea7a026f3a94188b">get_capabilities</a>;</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span> </div><div class="line"><a name="l00912"></a><span class="lineno"><a class="line" href="structevmc__vm.html#a20fd85c822ba5f3296206fc8fe3e90b2"> 912</a></span>  <a class="code" href="group__EVMC.html#ga5531cee5b83d76c71b06475454f4633b">evmc_set_option_fn</a> <a class="code" href="structevmc__vm.html#a20fd85c822ba5f3296206fc8fe3e90b2">set_option</a>;</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span> };</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span> </div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span> <span class="comment">/* END Python CFFI declarations */</span></div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span> </div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <span class="preprocessor">#if EVMC_DOCUMENTATION</span></div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span> </div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span> <span class="keyword">struct </span><a class="code" href="structevmc__vm.html">evmc_vm</a>* <a class="code" href="group__EVMC.html#gad7290bda71455f4a7175589b05945adf">evmc_create_example_vm</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span> </div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span> <span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span> }</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span> </div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span> </div><div class="ttc" id="structevmc__host__interface_html_ad24670503f09df720cc008e361a91277"><div class="ttname"><a href="structevmc__host__interface.html#ad24670503f09df720cc008e361a91277">evmc_host_interface::set_storage</a></div><div class="ttdeci">evmc_set_storage_fn set_storage</div><div class="ttdoc">Set storage callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00630">evmc.h:630</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga7971754ea6e237ffb9e9b7ab102fa16e"><div class="ttname"><a href="group__EVMC.html#ga7971754ea6e237ffb9e9b7ab102fa16e">evmc_get_code_hash_fn</a></div><div class="ttdeci">evmc_bytes32(* evmc_get_code_hash_fn)(struct evmc_host_context *context, const evmc_address *address)</div><div class="ttdoc">Get code hash callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00543">evmc.h:543</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gad7290bda71455f4a7175589b05945adf"><div class="ttname"><a href="group__EVMC.html#gad7290bda71455f4a7175589b05945adf">evmc_create_example_vm</a></div><div class="ttdeci">struct evmc_vm * evmc_create_example_vm(void)</div><div class="ttdoc">Example of a function creating an instance of an example EVM implementation. </div><div class="ttdef"><b>Definition:</b> <a href="example__vm_8c_source.html#l00219">example_vm.c:219</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae5759b1590071966ccf6a505b52a0ef7a8305858ab32b80a6eced7bf177d6dee2"><div class="ttname"><a href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a8305858ab32b80a6eced7bf177d6dee2">EVMC_TANGERINE_WHISTLE</a></div><div class="ttdoc">The Tangerine Whistle revision. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00726">evmc.h:726</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga1f54475fc7dc20a0c4d370272e39d755"><div class="ttname"><a href="group__EVMC.html#ga1f54475fc7dc20a0c4d370272e39d755">evmc_destroy_fn</a></div><div class="ttdeci">void(* evmc_destroy_fn)(struct evmc_vm *vm)</div><div class="ttdoc">Destroys the VM instance. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00669">evmc.h:669</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae5759b1590071966ccf6a505b52a0ef7af53e0cb0d793d60b5fb07c6b4c3c6ab7"><div class="ttname"><a href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7af53e0cb0d793d60b5fb07c6b4c3c6ab7">EVMC_BERLIN</a></div><div class="ttdoc">The Berlin revision. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00770">evmc.h:770</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae012fd6b8e5c23806b507c2d3e9fb1aaae5b6ea5ec988f3b3ceb323ce3c0fa53f"><div class="ttname"><a href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaae5b6ea5ec988f3b3ceb323ce3c0fa53f">EVMC_STORAGE_DELETED</a></div><div class="ttdoc">A storage item has been deleted: X -> 0. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00484">evmc.h:484</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae5759b1590071966ccf6a505b52a0ef7a5f0e287935fd0afd65afea34b51dcf8c"><div class="ttname"><a href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a5f0e287935fd0afd65afea34b51dcf8c">EVMC_ISTANBUL</a></div><div class="ttdoc">The Istanbul revision. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00763">evmc.h:763</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gaa6ab398cceb37b9c5a24be4d3a1b27e4"><div class="ttname"><a href="group__EVMC.html#gaa6ab398cceb37b9c5a24be4d3a1b27e4">evmc_address</a></div><div class="ttdeci">struct evmc_address evmc_address</div><div class="ttdoc">Big-endian 160-bit hash suitable for keeping an Ethereum address. </div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga187a3a658849da19a0c4e8f7b51fa70d"><div class="ttname"><a href="group__EVMC.html#ga187a3a658849da19a0c4e8f7b51fa70d">evmc_flags</a></div><div class="ttdeci">evmc_flags</div><div class="ttdoc">The flags for evmc_message. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00086">evmc.h:86</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga7aff77bf67e8fad5819807b8aafff7cb"><div class="ttname"><a href="group__EVMC.html#ga7aff77bf67e8fad5819807b8aafff7cb">evmc_get_storage_fn</a></div><div class="ttdeci">evmc_bytes32(* evmc_get_storage_fn)(struct evmc_host_context *context, const evmc_address *address, const evmc_bytes32 *key)</div><div class="ttdoc">Get storage callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00443">evmc.h:443</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga9bac25459c5a09d42606e7bd9320445c"><div class="ttname"><a href="group__EVMC.html#ga9bac25459c5a09d42606e7bd9320445c">evmc_get_capabilities_fn</a></div><div class="ttdeci">evmc_capabilities_flagset(* evmc_get_capabilities_fn)(struct evmc_vm *vm)</div><div class="ttdoc">Return the supported capabilities of the VM instance. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00847">evmc.h:847</a></div></div>
|
|
<div class="ttc" id="structevmc__host__interface_html_a189b040cb7db22778e81d4eb19e87849"><div class="ttname"><a href="structevmc__host__interface.html#a189b040cb7db22778e81d4eb19e87849">evmc_host_interface::selfdestruct</a></div><div class="ttdeci">evmc_selfdestruct_fn selfdestruct</div><div class="ttdoc">Selfdestruct callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00645">evmc.h:645</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga4c0be97f333c050ff45321fcaa34d920"><div class="ttname"><a href="group__EVMC.html#ga4c0be97f333c050ff45321fcaa34d920">evmc_status_code</a></div><div class="ttdeci">evmc_status_code</div><div class="ttdoc">The execution status code. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00211">evmc.h:211</a></div></div>
|
|
<div class="ttc" id="structevmc__message_html_a88ecfaa03a85a31c6da36fa043b98cea"><div class="ttname"><a href="structevmc__message.html#a88ecfaa03a85a31c6da36fa043b98cea">evmc_message::destination</a></div><div class="ttdeci">evmc_address destination</div><div class="ttdoc">The destination of the message. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00113">evmc.h:113</a></div></div>
|
|
<div class="ttc" id="structevmc__vm_html_ac29ccc98e89c8cab3ffc5bd51a2afaa8"><div class="ttname"><a href="structevmc__vm.html#ac29ccc98e89c8cab3ffc5bd51a2afaa8">evmc_vm::name</a></div><div class="ttdeci">const char * name</div><div class="ttdoc">The name of the EVMC VM implementation. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00871">evmc.h:871</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga97c2981658d797d3031720a54740a4b3"><div class="ttname"><a href="group__EVMC.html#ga97c2981658d797d3031720a54740a4b3">evmc_get_block_hash_fn</a></div><div class="ttdeci">evmc_bytes32(* evmc_get_block_hash_fn)(struct evmc_host_context *context, int64_t number)</div><div class="ttdoc">Get block hash callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00189">evmc.h:189</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920a63aa9b3ac3af61c39c20562509347b86"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a63aa9b3ac3af61c39c20562509347b86">EVMC_OUT_OF_MEMORY</a></div><div class="ttdoc">The VM failed to allocate the amount of memory needed for execution. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00315">evmc.h:315</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gab2fa68a92a6828064a61e46060abc634"><div class="ttname"><a href="group__EVMC.html#gab2fa68a92a6828064a61e46060abc634">evmc_call_kind</a></div><div class="ttdeci">evmc_call_kind</div><div class="ttdoc">The kind of call-like instruction. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00075">evmc.h:75</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920a92ccaaeb3fd1ee5aa1ad022678c13bac"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a92ccaaeb3fd1ee5aa1ad022678c13bac">EVMC_STATIC_MODE_VIOLATION</a></div><div class="ttdoc">Tried to execute an operation which is restricted in static mode. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00266">evmc.h:266</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga72021774388d535436b0c532f8c6de6c"><div class="ttname"><a href="group__EVMC.html#ga72021774388d535436b0c532f8c6de6c">evmc_selfdestruct_fn</a></div><div class="ttdeci">void(* evmc_selfdestruct_fn)(struct evmc_host_context *context, const evmc_address *address, const evmc_address *beneficiary)</div><div class="ttdoc">Selfdestruct callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00579">evmc.h:579</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gae012fd6b8e5c23806b507c2d3e9fb1aa"><div class="ttname"><a href="group__EVMC.html#gae012fd6b8e5c23806b507c2d3e9fb1aa">evmc_storage_status</a></div><div class="ttdeci">evmc_storage_status</div><div class="ttdoc">The effect of an attempt to modify a contract storage item. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00459">evmc.h:459</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga38e37a3a70dec828829cccb461e99de2"><div class="ttname"><a href="group__EVMC.html#ga38e37a3a70dec828829cccb461e99de2">evmc_get_code_size_fn</a></div><div class="ttdeci">size_t(* evmc_get_code_size_fn)(struct evmc_host_context *context, const evmc_address *address)</div><div class="ttdoc">Get code size callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00529">evmc.h:529</a></div></div>
|
|
<div class="ttc" id="structevmc__message_html_aae59f288163f3d3b2da2b5fdeb29512a"><div class="ttname"><a href="structevmc__message.html#aae59f288163f3d3b2da2b5fdeb29512a">evmc_message::flags</a></div><div class="ttdeci">uint32_t flags</div><div class="ttdoc">Additional flags modifying the call execution behavior. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00104">evmc.h:104</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga4c5464305402bf2a10d94bf2d828d82b"><div class="ttname"><a href="group__EVMC.html#ga4c5464305402bf2a10d94bf2d828d82b">evmc_account_exists_fn</a></div><div class="ttdeci">bool(* evmc_account_exists_fn)(struct evmc_host_context *context, const evmc_address *address)</div><div class="ttdoc">Check account existence callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00429">evmc.h:429</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920ae1a613949fe1c994a36488b0bc4c86c4"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ae1a613949fe1c994a36488b0bc4c86c4">EVMC_STACK_OVERFLOW</a></div><div class="ttdoc">The execution has attempted to put more items on the EVM stack than the specified limit...</div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00247">evmc.h:247</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920a640106fdec78d04a1098c512898d4efc"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a640106fdec78d04a1098c512898d4efc">EVMC_STACK_UNDERFLOW</a></div><div class="ttdoc">Execution of an opcode has required more items on the EVM stack. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00250">evmc.h:250</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920ac139d631ff852379d566c8a60f86ddc0"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ac139d631ff852379d566c8a60f86ddc0">EVMC_CALL_DEPTH_EXCEEDED</a></div><div class="ttdoc">Call depth has exceeded the limit (if any) </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00263">evmc.h:263</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga44f9ecb88cf6422a0072936494fd6ac7af1240f950b5b9ca4369bcac424443e54"><div class="ttname"><a href="group__EVMC.html#gga44f9ecb88cf6422a0072936494fd6ac7af1240f950b5b9ca4369bcac424443e54">EVMC_CAPABILITY_EWASM</a></div><div class="ttdoc">The VM is capable of executing ewasm bytecode. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00816">evmc.h:816</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga7dc696d1491951200ac5dc4f852a4499"><div class="ttname"><a href="group__EVMC.html#ga7dc696d1491951200ac5dc4f852a4499">evmc_copy_code_fn</a></div><div class="ttdeci">size_t(* evmc_copy_code_fn)(struct evmc_host_context *context, const evmc_address *address, size_t code_offset, uint8_t *buffer_data, size_t buffer_size)</div><div class="ttdoc">Copy code callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00563">evmc.h:563</a></div></div>
|
|
<div class="ttc" id="structevmc__vm_html_acccbdf95110faffb4dc85624bb1d99b6"><div class="ttname"><a href="structevmc__vm.html#acccbdf95110faffb4dc85624bb1d99b6">evmc_vm::abi_version</a></div><div class="ttdeci">const int abi_version</div><div class="ttdoc">EVMC ABI version implemented by the VM instance. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00863">evmc.h:863</a></div></div>
|
|
<div class="ttc" id="structevmc__vm_html_af98936c214ed16f5da05ba3d6a619faa"><div class="ttname"><a href="structevmc__vm.html#af98936c214ed16f5da05ba3d6a619faa">evmc_vm::version</a></div><div class="ttdeci">const char * version</div><div class="ttdoc">The version of the EVMC VM implementation, e.g. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00879">evmc.h:879</a></div></div>
|
|
<div class="ttc" id="structevmc__tx__context_html_af51d0246df23060d5e958ada3f25a676"><div class="ttname"><a href="structevmc__tx__context.html#af51d0246df23060d5e958ada3f25a676">evmc_tx_context::block_gas_limit</a></div><div class="ttdeci">int64_t block_gas_limit</div><div class="ttdoc">The block gas limit. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00154">evmc.h:154</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae5759b1590071966ccf6a505b52a0ef7a7a2ed5cf3d25c8c4a68691721bb969fc"><div class="ttname"><a href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a7a2ed5cf3d25c8c4a68691721bb969fc">EVMC_CONSTANTINOPLE</a></div><div class="ttdoc">The Constantinople revision. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00747">evmc.h:747</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga297c7c7ca966c82296a54683143157b1"><div class="ttname"><a href="group__EVMC.html#ga297c7c7ca966c82296a54683143157b1">evmc_release_result_fn</a></div><div class="ttdeci">void(* evmc_release_result_fn)(const struct evmc_result *result)</div><div class="ttdoc">Releases resources assigned to an execution result. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00337">evmc.h:337</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920a2f3e0d8777f8d974ead27ae2a6eb2005"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a2f3e0d8777f8d974ead27ae2a6eb2005">EVMC_REJECTED</a></div><div class="ttdoc">The execution of the given code and/or message has been rejected by the EVM implementation. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00312">evmc.h:312</a></div></div>
|
|
<div class="ttc" id="structevmc__result_html_a8727ff83d372ab0067bcf6656d30b0ed"><div class="ttname"><a href="structevmc__result.html#a8727ff83d372ab0067bcf6656d30b0ed">evmc_result::release</a></div><div class="ttdeci">evmc_release_result_fn release</div><div class="ttdoc">The method releasing all resources associated with the result object. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00392">evmc.h:392</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920a1cc537c5875de1b42aa5d556f33223d8"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a1cc537c5875de1b42aa5d556f33223d8">EVMC_ARGUMENT_OUT_OF_RANGE</a></div><div class="ttdoc">An argument to a state accessing method has a value outside of the accepted range of values...</div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00285">evmc.h:285</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga7b403c029b5b9ad627ffafb8c41ac84b"><div class="ttname"><a href="group__EVMC.html#ga7b403c029b5b9ad627ffafb8c41ac84b">evmc_get_tx_context_fn</a></div><div class="ttdeci">struct evmc_tx_context(* evmc_get_tx_context_fn)(struct evmc_host_context *context)</div><div class="ttdoc">Get transaction context callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00175">evmc.h:175</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggab2fa68a92a6828064a61e46060abc634a1d15450429f540677caea05143344d33"><div class="ttname"><a href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634a1d15450429f540677caea05143344d33">EVMC_CREATE</a></div><div class="ttdoc">Request CREATE. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00081">evmc.h:81</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae5759b1590071966ccf6a505b52a0ef7a6d913d4917e87b1fc798b450735acdeb"><div class="ttname"><a href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a6d913d4917e87b1fc798b450735acdeb">EVMC_PETERSBURG</a></div><div class="ttdoc">The Petersburg revision. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00756">evmc.h:756</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga44f9ecb88cf6422a0072936494fd6ac7a36fd3cfe936b9525eed7f88a7b43a2a8"><div class="ttname"><a href="group__EVMC.html#gga44f9ecb88cf6422a0072936494fd6ac7a36fd3cfe936b9525eed7f88a7b43a2a8">EVMC_CAPABILITY_EVM1</a></div><div class="ttdoc">The VM is capable of executing EVM1 bytecode. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00811">evmc.h:811</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920ac99fbd9645011663df070ae3c367eb4e"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ac99fbd9645011663df070ae3c367eb4e">EVMC_WASM_UNREACHABLE_INSTRUCTION</a></div><div class="ttdoc">A WebAssembly unreachable instruction has been hit during execution. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00290">evmc.h:290</a></div></div>
|
|
<div class="ttc" id="structevmc__tx__context_html_a13072643da6e167daa209a305cd996db"><div class="ttname"><a href="structevmc__tx__context.html#a13072643da6e167daa209a305cd996db">evmc_tx_context::tx_origin</a></div><div class="ttdeci">evmc_address tx_origin</div><div class="ttdoc">The transaction origin account. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00150">evmc.h:150</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920aaf0c6c7a736ec498bd390884f143e57b"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920aaf0c6c7a736ec498bd390884f143e57b">EVMC_WASM_TRAP</a></div><div class="ttdoc">A WebAssembly trap has been hit during execution. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00296">evmc.h:296</a></div></div>
|
|
<div class="ttc" id="structevmc__tx__context_html_a4858c73d21efbd267ca4c2b084c9e8c0"><div class="ttname"><a href="structevmc__tx__context.html#a4858c73d21efbd267ca4c2b084c9e8c0">evmc_tx_context::tx_gas_price</a></div><div class="ttdeci">evmc_uint256be tx_gas_price</div><div class="ttdoc">The transaction gas price. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00149">evmc.h:149</a></div></div>
|
|
<div class="ttc" id="structevmc__host__interface_html_a21b53f1aea01f97eeb29ff5d3b5910ea"><div class="ttname"><a href="structevmc__host__interface.html#a21b53f1aea01f97eeb29ff5d3b5910ea">evmc_host_interface::copy_code</a></div><div class="ttdeci">evmc_copy_code_fn copy_code</div><div class="ttdoc">Copy code callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00642">evmc.h:642</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae012fd6b8e5c23806b507c2d3e9fb1aaaf102ce749767d5277923c221089da2c6"><div class="ttname"><a href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaaf102ce749767d5277923c221089da2c6">EVMC_STORAGE_MODIFIED</a></div><div class="ttdoc">The value of a storage item has been modified: X -> Y. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00469">evmc.h:469</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920a2981ec30896486ac69bab7c0a1be591b"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a2981ec30896486ac69bab7c0a1be591b">EVMC_INVALID_MEMORY_ACCESS</a></div><div class="ttdoc">Tried to read outside memory bounds. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00260">evmc.h:260</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920a443084a263a2325f1e4c629e97685367"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a443084a263a2325f1e4c629e97685367">EVMC_UNDEFINED_INSTRUCTION</a></div><div class="ttdoc">An undefined instruction has been encountered. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00241">evmc.h:241</a></div></div>
|
|
<div class="ttc" id="structevmc__host__interface_html_a9cdde67ef20f42f60d3b8949230e8852"><div class="ttname"><a href="structevmc__host__interface.html#a9cdde67ef20f42f60d3b8949230e8852">evmc_host_interface::get_block_hash</a></div><div class="ttdeci">evmc_get_block_hash_fn get_block_hash</div><div class="ttdoc">Get block hash callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00654">evmc.h:654</a></div></div>
|
|
<div class="ttc" id="structevmc__bytes32_html_a695eaf3c428daee54ce15c8252edc133"><div class="ttname"><a href="structevmc__bytes32.html#a695eaf3c428daee54ce15c8252edc133">evmc_bytes32::bytes</a></div><div class="ttdeci">uint8_t bytes[32]</div><div class="ttdoc">The 32 bytes. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00059">evmc.h:59</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga44f9ecb88cf6422a0072936494fd6ac7a43ea2aa7b099a2d67bc53c118ff3683d"><div class="ttname"><a href="group__EVMC.html#gga44f9ecb88cf6422a0072936494fd6ac7a43ea2aa7b099a2d67bc53c118ff3683d">EVMC_CAPABILITY_PRECOMPILES</a></div><div class="ttdoc">The VM is capable of executing the precompiled contracts defined for the range of destination address...</div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00828">evmc.h:828</a></div></div>
|
|
<div class="ttc" id="structevmc__result_html_a93bb7419aff492cdef754421c6d74e26"><div class="ttname"><a href="structevmc__result.html#a93bb7419aff492cdef754421c6d74e26">evmc_result::output_size</a></div><div class="ttdeci">size_t output_size</div><div class="ttdoc">The size of the output data. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00371">evmc.h:371</a></div></div>
|
|
<div class="ttc" id="structevmc__message_html_a2cf1deebd0dbbb20f25ecdfa299f4b5d"><div class="ttname"><a href="structevmc__message.html#a2cf1deebd0dbbb20f25ecdfa299f4b5d">evmc_message::input_size</a></div><div class="ttdeci">size_t input_size</div><div class="ttdoc">The size of the message input data. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00130">evmc.h:130</a></div></div>
|
|
<div class="ttc" id="structevmc__result_html_af8478c93dbcc3cb2876037c5a5afd4c0"><div class="ttname"><a href="structevmc__result.html#af8478c93dbcc3cb2876037c5a5afd4c0">evmc_result::gas_left</a></div><div class="ttdeci">int64_t gas_left</div><div class="ttdoc">The amount of gas left after the execution. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00351">evmc.h:351</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae5759b1590071966ccf6a505b52a0ef7a04f0bf686d2b1c50612f9a96480f70a9"><div class="ttname"><a href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a04f0bf686d2b1c50612f9a96480f70a9">EVMC_HOMESTEAD</a></div><div class="ttdoc">The Homestead revision. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00719">evmc.h:719</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga06fc87d81c62e9abb8790b6e5713c55ba1db9144f8af4e62865f0c003c07a02bc"><div class="ttname"><a href="group__EVMC.html#gga06fc87d81c62e9abb8790b6e5713c55ba1db9144f8af4e62865f0c003c07a02bc">EVMC_ABI_VERSION</a></div><div class="ttdoc">The EVMC ABI version number of the interface declared in this file. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00047">evmc.h:47</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gaf7481ac7c3f1071d5d4d8256d0687e83"><div class="ttname"><a href="group__EVMC.html#gaf7481ac7c3f1071d5d4d8256d0687e83">evmc_set_storage_fn</a></div><div class="ttdeci">enum evmc_storage_status(* evmc_set_storage_fn)(struct evmc_host_context *context, const evmc_address *address, const evmc_bytes32 *key, const evmc_bytes32 *value)</div><div class="ttdoc">Set storage callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00502">evmc.h:502</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920abb1dcac202eac2ed8fd3025645a2fb28"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920abb1dcac202eac2ed8fd3025645a2fb28">EVMC_INTERNAL_ERROR</a></div><div class="ttdoc">EVM implementation generic internal error. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00299">evmc.h:299</a></div></div>
|
|
<div class="ttc" id="structevmc__result_html_ae7f37ff7c9cfa3b58af2c89f4d610522"><div class="ttname"><a href="structevmc__result.html#ae7f37ff7c9cfa3b58af2c89f4d610522">evmc_result::create_address</a></div><div class="ttdeci">evmc_address create_address</div><div class="ttdoc">The address of the contract created by create instructions. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00403">evmc.h:403</a></div></div>
|
|
<div class="ttc" id="structevmc__host__interface_html"><div class="ttname"><a href="structevmc__host__interface.html">evmc_host_interface</a></div><div class="ttdoc">The Host interface. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00621">evmc.h:621</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga67a54f0ca13bf83f59845e13e0caa3de"><div class="ttname"><a href="group__EVMC.html#ga67a54f0ca13bf83f59845e13e0caa3de">evmc_bytes32</a></div><div class="ttdeci">struct evmc_bytes32 evmc_bytes32</div><div class="ttdoc">The fixed size array of 32 bytes. </div></div>
|
|
<div class="ttc" id="structevmc__host__interface_html_a35897228fa9270f59b7fca4bc373e860"><div class="ttname"><a href="structevmc__host__interface.html#a35897228fa9270f59b7fca4bc373e860">evmc_host_interface::get_code_size</a></div><div class="ttdeci">evmc_get_code_size_fn get_code_size</div><div class="ttdoc">Get code size callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00636">evmc.h:636</a></div></div>
|
|
<div class="ttc" id="structevmc__host__interface_html_a1cfd339e26ceaba522aece2e1a06c6ef"><div class="ttname"><a href="structevmc__host__interface.html#a1cfd339e26ceaba522aece2e1a06c6ef">evmc_host_interface::get_storage</a></div><div class="ttdeci">evmc_get_storage_fn get_storage</div><div class="ttdoc">Get storage callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00627">evmc.h:627</a></div></div>
|
|
<div class="ttc" id="structevmc__vm_html"><div class="ttname"><a href="structevmc__vm.html">evmc_vm</a></div><div class="ttdoc">The VM instance. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00855">evmc.h:855</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga714bc8ca946adc759403fe072bdd2aa0"><div class="ttname"><a href="group__EVMC.html#ga714bc8ca946adc759403fe072bdd2aa0">evmc_capabilities_flagset</a></div><div class="ttdeci">uint32_t evmc_capabilities_flagset</div><div class="ttdoc">Alias for unsigned integer representing a set of bit flags of EVMC capabilities. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00836">evmc.h:836</a></div></div>
|
|
<div class="ttc" id="structevmc__host__context_html"><div class="ttname"><a href="structevmc__host__context.html">evmc_host_context</a></div><div class="ttdoc">The opaque data type representing the Host execution context. </div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga5531cee5b83d76c71b06475454f4633b"><div class="ttname"><a href="group__EVMC.html#ga5531cee5b83d76c71b06475454f4633b">evmc_set_option_fn</a></div><div class="ttdeci">enum evmc_set_option_result(* evmc_set_option_fn)(struct evmc_vm *vm, char const *name, char const *value)</div><div class="ttdoc">Configures the VM instance. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00694">evmc.h:694</a></div></div>
|
|
<div class="ttc" id="structevmc__message_html_a75ea15f85573ea3638e8625bbba54d3a"><div class="ttname"><a href="structevmc__message.html#a75ea15f85573ea3638e8625bbba54d3a">evmc_message::depth</a></div><div class="ttdeci">int32_t depth</div><div class="ttdoc">The call depth. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00107">evmc.h:107</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae5759b1590071966ccf6a505b52a0ef7a622480509359764aa2a258b074812a5f"><div class="ttname"><a href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a622480509359764aa2a258b074812a5f">EVMC_FRONTIER</a></div><div class="ttdoc">The Frontier revision. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00712">evmc.h:712</a></div></div>
|
|
<div class="ttc" id="structevmc__tx__context_html_afacc9f907dd24a60a74f26c3fd0ded20"><div class="ttname"><a href="structevmc__tx__context.html#afacc9f907dd24a60a74f26c3fd0ded20">evmc_tx_context::block_difficulty</a></div><div class="ttdeci">evmc_uint256be block_difficulty</div><div class="ttdoc">The block difficulty. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00155">evmc.h:155</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae5759b1590071966ccf6a505b52a0ef7abbbcae1af73ad1efc570b40bb0363879"><div class="ttname"><a href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7abbbcae1af73ad1efc570b40bb0363879">EVMC_SPURIOUS_DRAGON</a></div><div class="ttdoc">The Spurious Dragon revision. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00733">evmc.h:733</a></div></div>
|
|
<div class="ttc" id="structevmc__host__interface_html_aecdea81d0643b6988e2dc6f57c936ffe"><div class="ttname"><a href="structevmc__host__interface.html#aecdea81d0643b6988e2dc6f57c936ffe">evmc_host_interface::get_tx_context</a></div><div class="ttdeci">evmc_get_tx_context_fn get_tx_context</div><div class="ttdoc">Get transaction context callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00651">evmc.h:651</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga5208ee08734b69bb0a28793f0ecfbc48"><div class="ttname"><a href="group__EVMC.html#ga5208ee08734b69bb0a28793f0ecfbc48">evmc_get_balance_fn</a></div><div class="ttdeci">evmc_uint256be(* evmc_get_balance_fn)(struct evmc_host_context *context, const evmc_address *address)</div><div class="ttdoc">Get balance callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00516">evmc.h:516</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920a8ea4f35a269f5fd3a722f2054c993637"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a8ea4f35a269f5fd3a722f2054c993637">EVMC_INVALID_INSTRUCTION</a></div><div class="ttdoc">The designated INVALID instruction has been hit during execution. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00238">evmc.h:238</a></div></div>
|
|
<div class="ttc" id="structevmc__message_html"><div class="ttname"><a href="structevmc__message.html">evmc_message</a></div><div class="ttdoc">The message describing an EVM call, including a zero-depth calls from a transaction origin...</div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00095">evmc.h:95</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920aed708e84d49cc1270e54ec20b0ca0a05"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920aed708e84d49cc1270e54ec20b0ca0a05">EVMC_REVERT</a></div><div class="ttdoc">Execution terminated with REVERT opcode. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00225">evmc.h:225</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga260738d59f9a23d039dc7a290e0c0a3b"><div class="ttname"><a href="group__EVMC.html#ga260738d59f9a23d039dc7a290e0c0a3b">evmc_uint256be</a></div><div class="ttdeci">struct evmc_bytes32 evmc_uint256be</div><div class="ttdoc">The alias for evmc_bytes32 to represent a big-endian 256-bit integer. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00065">evmc.h:65</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga28d9f527bda67277bccccc100e32260a"><div class="ttname"><a href="group__EVMC.html#ga28d9f527bda67277bccccc100e32260a">evmc_set_option_result</a></div><div class="ttdeci">evmc_set_option_result</div><div class="ttdoc">Possible outcomes of evmc_set_option. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00674">evmc.h:674</a></div></div>
|
|
<div class="ttc" id="structevmc__vm_html_a20fd85c822ba5f3296206fc8fe3e90b2"><div class="ttname"><a href="structevmc__vm.html#a20fd85c822ba5f3296206fc8fe3e90b2">evmc_vm::set_option</a></div><div class="ttdeci">evmc_set_option_fn set_option</div><div class="ttdoc">Optional pointer to function modifying VM&#39;s options. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00912">evmc.h:912</a></div></div>
|
|
<div class="ttc" id="structevmc__address_html"><div class="ttname"><a href="structevmc__address.html">evmc_address</a></div><div class="ttdoc">Big-endian 160-bit hash suitable for keeping an Ethereum address. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00068">evmc.h:68</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga54f569386b52be6eee15ca9e14ed1ef8"><div class="ttname"><a href="group__EVMC.html#ga54f569386b52be6eee15ca9e14ed1ef8">evmc_call_fn</a></div><div class="ttdeci">struct evmc_result(* evmc_call_fn)(struct evmc_host_context *context, const struct evmc_message *msg)</div><div class="ttdoc">Pointer to the callback function supporting EVM calls. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00610">evmc.h:610</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920a6acf000dfa802a949063a87046f4bb26"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a6acf000dfa802a949063a87046f4bb26">EVMC_BAD_JUMP_DESTINATION</a></div><div class="ttdoc">Execution has violated the jump destination restrictions. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00253">evmc.h:253</a></div></div>
|
|
<div class="ttc" id="structevmc__host__interface_html_aaa3feda20b9b50381a359b2d4f591f0c"><div class="ttname"><a href="structevmc__host__interface.html#aaa3feda20b9b50381a359b2d4f591f0c">evmc_host_interface::emit_log</a></div><div class="ttdeci">evmc_emit_log_fn emit_log</div><div class="ttdoc">Emit log callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00657">evmc.h:657</a></div></div>
|
|
<div class="ttc" id="structevmc__tx__context_html_a1c3c0552db49b91358256c25643ba44a"><div class="ttname"><a href="structevmc__tx__context.html#a1c3c0552db49b91358256c25643ba44a">evmc_tx_context::block_number</a></div><div class="ttdeci">int64_t block_number</div><div class="ttdoc">The block number. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00152">evmc.h:152</a></div></div>
|
|
<div class="ttc" id="structevmc__host__interface_html_acfb80d38a19c3c5a267a68520dae8020"><div class="ttname"><a href="structevmc__host__interface.html#acfb80d38a19c3c5a267a68520dae8020">evmc_host_interface::get_balance</a></div><div class="ttdeci">evmc_get_balance_fn get_balance</div><div class="ttdoc">Get balance callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00633">evmc.h:633</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggab2fa68a92a6828064a61e46060abc634a9ec7e0da8dde8e9bc420d806c621b418"><div class="ttname"><a href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634a9ec7e0da8dde8e9bc420d806c621b418">EVMC_CREATE2</a></div><div class="ttdoc">Request CREATE2. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00082">evmc.h:82</a></div></div>
|
|
<div class="ttc" id="structevmc__message_html_a20cb5b3664de79d11159e4099b80747f"><div class="ttname"><a href="structevmc__message.html#a20cb5b3664de79d11159e4099b80747f">evmc_message::create2_salt</a></div><div class="ttdeci">evmc_bytes32 create2_salt</div><div class="ttdoc">The optional value used in new contract address construction. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00142">evmc.h:142</a></div></div>
|
|
<div class="ttc" id="structevmc__host__interface_html_a0acd6def9c08159acccfba9f9cbf9ca9"><div class="ttname"><a href="structevmc__host__interface.html#a0acd6def9c08159acccfba9f9cbf9ca9">evmc_host_interface::call</a></div><div class="ttdeci">evmc_call_fn call</div><div class="ttdoc">Call callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00648">evmc.h:648</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920ab960d50047f87925e540bee6230aafb7"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ab960d50047f87925e540bee6230aafb7">EVMC_PRECOMPILE_FAILURE</a></div><div class="ttdoc">A call to a precompiled or system contract has ended with a failure. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00273">evmc.h:273</a></div></div>
|
|
<div class="ttc" id="structevmc__tx__context_html_ac68b370866987a1a1785751e4c76702a"><div class="ttname"><a href="structevmc__tx__context.html#ac68b370866987a1a1785751e4c76702a">evmc_tx_context::chain_id</a></div><div class="ttdeci">evmc_uint256be chain_id</div><div class="ttdoc">The blockchain&#39;s ChainID. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00156">evmc.h:156</a></div></div>
|
|
<div class="ttc" id="structevmc__message_html_ae8deff46588584fa27890e74c82db5e7"><div class="ttname"><a href="structevmc__message.html#ae8deff46588584fa27890e74c82db5e7">evmc_message::gas</a></div><div class="ttdeci">int64_t gas</div><div class="ttdoc">The amount of gas for message execution. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00110">evmc.h:110</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae012fd6b8e5c23806b507c2d3e9fb1aaa072394aca7925f8de8facf8f8a5e477c"><div class="ttname"><a href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaa072394aca7925f8de8facf8f8a5e477c">EVMC_STORAGE_MODIFIED_AGAIN</a></div><div class="ttdoc">A storage item has been modified after being modified before: X -> Y -> Z. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00474">evmc.h:474</a></div></div>
|
|
<div class="ttc" id="structevmc__result_html"><div class="ttname"><a href="structevmc__result.html">evmc_result</a></div><div class="ttdoc">The EVM code execution result. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00340">evmc.h:340</a></div></div>
|
|
<div class="ttc" id="structevmc__tx__context_html_a2391863eab970821d67a08341d9d3440"><div class="ttname"><a href="structevmc__tx__context.html#a2391863eab970821d67a08341d9d3440">evmc_tx_context::block_timestamp</a></div><div class="ttdeci">int64_t block_timestamp</div><div class="ttdoc">The block timestamp. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00153">evmc.h:153</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gaab96621b67d653758b3da15c2b596938"><div class="ttname"><a href="group__EVMC.html#gaab96621b67d653758b3da15c2b596938">evmc_emit_log_fn</a></div><div class="ttdeci">void(* evmc_emit_log_fn)(struct evmc_host_context *context, const evmc_address *address, const uint8_t *data, size_t data_size, const evmc_bytes32 topics[], size_t topics_count)</div><div class="ttdoc">Log callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00596">evmc.h:596</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae5759b1590071966ccf6a505b52a0ef7a8b67f41f15bc079b8ad40dcd7156f576"><div class="ttname"><a href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7a8b67f41f15bc079b8ad40dcd7156f576">EVMC_MAX_REVISION</a></div><div class="ttdoc">The maximum EVM revision supported. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00773">evmc.h:773</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae012fd6b8e5c23806b507c2d3e9fb1aaad6d527edcbe8a63edad5be80f252330c"><div class="ttname"><a href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaad6d527edcbe8a63edad5be80f252330c">EVMC_STORAGE_UNCHANGED</a></div><div class="ttdoc">The value of a storage item has been left unchanged: 0 -> 0 and X -> X. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00464">evmc.h:464</a></div></div>
|
|
<div class="ttc" id="structevmc__vm_html_ac78933134b4e14ca3dd4139ee061cc6b"><div class="ttname"><a href="structevmc__vm.html#ac78933134b4e14ca3dd4139ee061cc6b">evmc_vm::destroy</a></div><div class="ttdeci">evmc_destroy_fn destroy</div><div class="ttdoc">Pointer to function destroying the VM instance. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00886">evmc.h:886</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggab2fa68a92a6828064a61e46060abc634ae9c5b431a0c823f368341c9f026642ef"><div class="ttname"><a href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634ae9c5b431a0c823f368341c9f026642ef">EVMC_CALLCODE</a></div><div class="ttdoc">Request CALLCODE. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00080">evmc.h:80</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920ac0e1bf525f51da5b3d34d4f67ca549e1"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920ac0e1bf525f51da5b3d34d4f67ca549e1">EVMC_CONTRACT_VALIDATION_FAILURE</a></div><div class="ttdoc">Contract validation has failed (e.g. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00279">evmc.h:279</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga187a3a658849da19a0c4e8f7b51fa70da1d8bef8b2bd39a6bd1936e87b18e95bf"><div class="ttname"><a href="group__EVMC.html#gga187a3a658849da19a0c4e8f7b51fa70da1d8bef8b2bd39a6bd1936e87b18e95bf">EVMC_STATIC</a></div><div class="ttdoc">Static call mode. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00088">evmc.h:88</a></div></div>
|
|
<div class="ttc" id="structevmc__message_html_adc7e2442cb362417931524ee904ecb33"><div class="ttname"><a href="structevmc__message.html#adc7e2442cb362417931524ee904ecb33">evmc_message::value</a></div><div class="ttdeci">evmc_uint256be value</div><div class="ttdoc">The amount of Ether transferred with the message. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00135">evmc.h:135</a></div></div>
|
|
<div class="ttc" id="structevmc__host__interface_html_ac3b71b9670621dd55e8bc047cd289e1a"><div class="ttname"><a href="structevmc__host__interface.html#ac3b71b9670621dd55e8bc047cd289e1a">evmc_host_interface::account_exists</a></div><div class="ttdeci">evmc_account_exists_fn account_exists</div><div class="ttdoc">Check account existence callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00624">evmc.h:624</a></div></div>
|
|
<div class="ttc" id="structevmc__bytes32_html"><div class="ttname"><a href="structevmc__bytes32.html">evmc_bytes32</a></div><div class="ttdoc">The fixed size array of 32 bytes. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00056">evmc.h:56</a></div></div>
|
|
<div class="ttc" id="structevmc__message_html_ae7f64ab994f49d9a5f028d56e80fd468"><div class="ttname"><a href="structevmc__message.html#ae7f64ab994f49d9a5f028d56e80fd468">evmc_message::sender</a></div><div class="ttdeci">evmc_address sender</div><div class="ttdoc">The sender of the message. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00116">evmc.h:116</a></div></div>
|
|
<div class="ttc" id="structevmc__vm_html_a8384d28338f2287a9f9e1508699c53f0"><div class="ttname"><a href="structevmc__vm.html#a8384d28338f2287a9f9e1508699c53f0">evmc_vm::execute</a></div><div class="ttdeci">evmc_execute_fn execute</div><div class="ttdoc">Pointer to function executing a code by the VM instance. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00893">evmc.h:893</a></div></div>
|
|
<div class="ttc" id="structevmc__result_html_a61978e85f9d795a7b9695b9cbf1748d6"><div class="ttname"><a href="structevmc__result.html#a61978e85f9d795a7b9695b9cbf1748d6">evmc_result::output_data</a></div><div class="ttdeci">const uint8_t * output_data</div><div class="ttdoc">The reference to output data. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00364">evmc.h:364</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920abfc47f75656c996c0b29c0553c00fc18"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920abfc47f75656c996c0b29c0553c00fc18">EVMC_OUT_OF_GAS</a></div><div class="ttdoc">The execution has run out of gas. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00228">evmc.h:228</a></div></div>
|
|
<div class="ttc" id="structevmc__host__interface_html_a058d2f129c4f4e840258127137801eaf"><div class="ttname"><a href="structevmc__host__interface.html#a058d2f129c4f4e840258127137801eaf">evmc_host_interface::get_code_hash</a></div><div class="ttdeci">evmc_get_code_hash_fn get_code_hash</div><div class="ttdoc">Get code hash callback function. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00639">evmc.h:639</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae012fd6b8e5c23806b507c2d3e9fb1aaa8afd1741edf799d44264654d9f04a5a9"><div class="ttname"><a href="group__EVMC.html#ggae012fd6b8e5c23806b507c2d3e9fb1aaa8afd1741edf799d44264654d9f04a5a9">EVMC_STORAGE_ADDED</a></div><div class="ttdoc">A new storage item has been added: 0 -> X. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00479">evmc.h:479</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gaed9a4ab5609b55c5e3272d6d37d84ff7"><div class="ttname"><a href="group__EVMC.html#gaed9a4ab5609b55c5e3272d6d37d84ff7">evmc_execute_fn</a></div><div class="ttdeci">struct evmc_result(* evmc_execute_fn)(struct evmc_vm *vm, const struct evmc_host_interface *host, struct evmc_host_context *context, enum evmc_revision rev, const struct evmc_message *msg, uint8_t const *code, size_t code_size)</div><div class="ttdoc">Executes the given code using the input from the message. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00795">evmc.h:795</a></div></div>
|
|
<div class="ttc" id="structevmc__message_html_a1adee3454b105eb29cd659ee0cf65c77"><div class="ttname"><a href="structevmc__message.html#a1adee3454b105eb29cd659ee0cf65c77">evmc_message::input_data</a></div><div class="ttdeci">const uint8_t * input_data</div><div class="ttdoc">The message input data. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00123">evmc.h:123</a></div></div>
|
|
<div class="ttc" id="structevmc__tx__context_html_acdb1c3a579bcf1578bff68d1f88f18a4"><div class="ttname"><a href="structevmc__tx__context.html#acdb1c3a579bcf1578bff68d1f88f18a4">evmc_tx_context::block_coinbase</a></div><div class="ttdeci">evmc_address block_coinbase</div><div class="ttdoc">The miner of the block. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00151">evmc.h:151</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gae5759b1590071966ccf6a505b52a0ef7"><div class="ttname"><a href="group__EVMC.html#gae5759b1590071966ccf6a505b52a0ef7">evmc_revision</a></div><div class="ttdeci">evmc_revision</div><div class="ttdoc">EVM revision. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00705">evmc.h:705</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggab2fa68a92a6828064a61e46060abc634abcf3ae29d9a88ff70b98374fc665694a"><div class="ttname"><a href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634abcf3ae29d9a88ff70b98374fc665694a">EVMC_CALL</a></div><div class="ttdoc">Request CALL. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00077">evmc.h:77</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggab2fa68a92a6828064a61e46060abc634a6face22070bace91b429297e88d3ab1a"><div class="ttname"><a href="group__EVMC.html#ggab2fa68a92a6828064a61e46060abc634a6face22070bace91b429297e88d3ab1a">EVMC_DELEGATECALL</a></div><div class="ttdoc">Request DELEGATECALL. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00078">evmc.h:78</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920aed5b2a4afa5a47af732569445920a4a9"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920aed5b2a4afa5a47af732569445920a4a9">EVMC_FAILURE</a></div><div class="ttdoc">Generic execution failure. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00217">evmc.h:217</a></div></div>
|
|
<div class="ttc" id="structevmc__vm_html_a505d4e584a858c2eea7a026f3a94188b"><div class="ttname"><a href="structevmc__vm.html#a505d4e584a858c2eea7a026f3a94188b">evmc_vm::get_capabilities</a></div><div class="ttdeci">evmc_get_capabilities_fn get_capabilities</div><div class="ttdoc">A method returning capabilities supported by the VM instance. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00905">evmc.h:905</a></div></div>
|
|
<div class="ttc" id="structevmc__tx__context_html"><div class="ttname"><a href="structevmc__tx__context.html">evmc_tx_context</a></div><div class="ttdoc">The transaction and block data for execution. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00147">evmc.h:147</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_gga4c0be97f333c050ff45321fcaa34d920a4bc3069fec2bab2a55355a72b7db68b7"><div class="ttname"><a href="group__EVMC.html#gga4c0be97f333c050ff45321fcaa34d920a4bc3069fec2bab2a55355a72b7db68b7">EVMC_SUCCESS</a></div><div class="ttdoc">Execution finished with success. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00214">evmc.h:214</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ggae5759b1590071966ccf6a505b52a0ef7ac4b0c9cfb5d408f17255a15e26938ea6"><div class="ttname"><a href="group__EVMC.html#ggae5759b1590071966ccf6a505b52a0ef7ac4b0c9cfb5d408f17255a15e26938ea6">EVMC_BYZANTIUM</a></div><div class="ttdoc">The Byzantium revision. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00740">evmc.h:740</a></div></div>
|
|
<div class="ttc" id="group__EVMC_html_ga44f9ecb88cf6422a0072936494fd6ac7"><div class="ttname"><a href="group__EVMC.html#ga44f9ecb88cf6422a0072936494fd6ac7">evmc_capabilities</a></div><div class="ttdeci">evmc_capabilities</div><div class="ttdoc">Possible capabilities of a VM. </div><div class="ttdef"><b>Definition:</b> <a href="evmc_8h_source.html#l00806">evmc.h:806</a></div></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_5298d49f5985e350bcac49a99c9a871c.html">evmc</a></li><li class="navelem"><a class="el" href="evmc_8h.html">evmc.h</a></li>
|
|
<li class="footer">Generated on Tue Jan 7 2020 15:35:10 for EVMC by
|
|
<a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|