File tree Expand file tree Collapse file tree 2 files changed +167
-165
lines changed
crates/evm-tracing-events/src Expand file tree Collapse file tree 2 files changed +167
-165
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,8 @@ use codec::{Decode, Encode};
66use smallvec:: SmallVec ;
77use sp_core:: sp_std:: vec:: Vec ;
88
9+ use crate :: runtime:: opcode_known_name;
10+
911/// Marshalled opcode.
1012///
1113/// 8 cause the longest is 13 and the epmeric estimate of max length
@@ -53,171 +55,6 @@ impl core::fmt::Display for MarshalledOpcode {
5355 }
5456}
5557
56- /// Check whether it's a known opcode or not. In case it's a known one,
57- /// return the name of the opcode then.
58- fn opcode_known_name ( opcode : & evm:: Opcode ) -> Option < & ' static str > {
59- Some ( match opcode. as_u8 ( ) {
60- 0 => "Stop" ,
61- 1 => "Add" ,
62- 2 => "Mul" ,
63- 3 => "Sub" ,
64- 4 => "Div" ,
65- 5 => "SDiv" ,
66- 6 => "Mod" ,
67- 7 => "SMod" ,
68- 8 => "AddMod" ,
69- 9 => "MulMod" ,
70- 10 => "Exp" ,
71- 11 => "SignExtend" ,
72- 16 => "Lt" ,
73- 17 => "Gt" ,
74- 18 => "Slt" ,
75- 19 => "Sgt" ,
76- 20 => "Eq" ,
77- 21 => "IsZero" ,
78- 22 => "And" ,
79- 23 => "Or" ,
80- 24 => "Xor" ,
81- 25 => "Not" ,
82- 26 => "Byte" ,
83- 27 => "Shl" ,
84- 28 => "Shr" ,
85- 29 => "Sar" ,
86- 32 => "Keccak256" ,
87- 48 => "Address" ,
88- 49 => "Balance" ,
89- 50 => "Origin" ,
90- 51 => "Caller" ,
91- 52 => "CallValue" ,
92- 53 => "CallDataLoad" ,
93- 54 => "CallDataSize" ,
94- 55 => "CallDataCopy" ,
95- 56 => "CodeSize" ,
96- 57 => "CodeCopy" ,
97- 58 => "GasPrice" ,
98- 59 => "ExtCodeSize" ,
99- 60 => "ExtCodeCopy" ,
100- 61 => "ReturnDataSize" ,
101- 62 => "ReturnDataCopy" ,
102- 63 => "ExtCodeHash" ,
103- 64 => "BlockHash" ,
104- 65 => "Coinbase" ,
105- 66 => "Timestamp" ,
106- 67 => "Number" ,
107- 68 => "Difficulty" ,
108- 69 => "GasLimit" ,
109- 70 => "ChainId" ,
110- 80 => "Pop" ,
111- 81 => "MLoad" ,
112- 82 => "MStore" ,
113- 83 => "MStore8" ,
114- 84 => "SLoad" ,
115- 85 => "SStore" ,
116- 86 => "Jump" ,
117- 87 => "JumpI" ,
118- 88 => "GetPc" ,
119- 89 => "MSize" ,
120- 90 => "Gas" ,
121- 91 => "JumpDest" ,
122- 92 => "TLoad" ,
123- 93 => "TStore" ,
124- 94 => "MCopy" ,
125- 96 => "Push1" ,
126- 97 => "Push2" ,
127- 98 => "Push3" ,
128- 99 => "Push4" ,
129- 100 => "Push5" ,
130- 101 => "Push6" ,
131- 102 => "Push7" ,
132- 103 => "Push8" ,
133- 104 => "Push9" ,
134- 105 => "Push10" ,
135- 106 => "Push11" ,
136- 107 => "Push12" ,
137- 108 => "Push13" ,
138- 109 => "Push14" ,
139- 110 => "Push15" ,
140- 111 => "Push16" ,
141- 112 => "Push17" ,
142- 113 => "Push18" ,
143- 114 => "Push19" ,
144- 115 => "Push20" ,
145- 116 => "Push21" ,
146- 117 => "Push22" ,
147- 118 => "Push23" ,
148- 119 => "Push24" ,
149- 120 => "Push25" ,
150- 121 => "Push26" ,
151- 122 => "Push27" ,
152- 123 => "Push28" ,
153- 124 => "Push29" ,
154- 125 => "Push30" ,
155- 126 => "Push31" ,
156- 127 => "Push32" ,
157- 128 => "Dup1" ,
158- 129 => "Dup2" ,
159- 130 => "Dup3" ,
160- 131 => "Dup4" ,
161- 132 => "Dup5" ,
162- 133 => "Dup6" ,
163- 134 => "Dup7" ,
164- 135 => "Dup8" ,
165- 136 => "Dup9" ,
166- 137 => "Dup10" ,
167- 138 => "Dup11" ,
168- 139 => "Dup12" ,
169- 140 => "Dup13" ,
170- 141 => "Dup14" ,
171- 142 => "Dup15" ,
172- 143 => "Dup16" ,
173- 144 => "Swap1" ,
174- 145 => "Swap2" ,
175- 146 => "Swap3" ,
176- 147 => "Swap4" ,
177- 148 => "Swap5" ,
178- 149 => "Swap6" ,
179- 150 => "Swap7" ,
180- 151 => "Swap8" ,
181- 152 => "Swap9" ,
182- 153 => "Swap10" ,
183- 154 => "Swap11" ,
184- 155 => "Swap12" ,
185- 156 => "Swap13" ,
186- 157 => "Swap14" ,
187- 158 => "Swap15" ,
188- 159 => "Swap16" ,
189- 160 => "Log0" ,
190- 161 => "Log1" ,
191- 162 => "Log2" ,
192- 163 => "Log3" ,
193- 164 => "Log4" ,
194- 176 => "JumpTo" ,
195- 177 => "JumpIf" ,
196- 178 => "JumpSub" ,
197- 180 => "JumpSubv" ,
198- 181 => "BeginSub" ,
199- 182 => "BeginData" ,
200- 184 => "ReturnSub" ,
201- 185 => "PutLocal" ,
202- 186 => "GetLocal" ,
203- 225 => "SLoadBytes" ,
204- 226 => "SStoreBytes" ,
205- 227 => "SSize" ,
206- 240 => "Create" ,
207- 241 => "Call" ,
208- 242 => "CallCode" ,
209- 243 => "Return" ,
210- 244 => "DelegateCall" ,
211- 245 => "Create2" ,
212- 250 => "StaticCall" ,
213- 252 => "TxExecGas" ,
214- 253 => "Revert" ,
215- 254 => "Invalid" ,
216- 255 => "SelfDestruct" ,
217- _ => return None ,
218- } )
219- }
220-
22158#[ cfg( test) ]
22259mod tests {
22360 use smallvec:: smallvec;
Original file line number Diff line number Diff line change @@ -167,3 +167,168 @@ impl RuntimeEvent {
167167 }
168168 }
169169}
170+
171+ /// Check whether it's a known opcode or not. In case it's a known one,
172+ /// return the name of the opcode then.
173+ pub fn opcode_known_name ( opcode : & evm:: Opcode ) -> Option < & ' static str > {
174+ Some ( match opcode. as_u8 ( ) {
175+ 0 => "Stop" ,
176+ 1 => "Add" ,
177+ 2 => "Mul" ,
178+ 3 => "Sub" ,
179+ 4 => "Div" ,
180+ 5 => "SDiv" ,
181+ 6 => "Mod" ,
182+ 7 => "SMod" ,
183+ 8 => "AddMod" ,
184+ 9 => "MulMod" ,
185+ 10 => "Exp" ,
186+ 11 => "SignExtend" ,
187+ 16 => "Lt" ,
188+ 17 => "Gt" ,
189+ 18 => "Slt" ,
190+ 19 => "Sgt" ,
191+ 20 => "Eq" ,
192+ 21 => "IsZero" ,
193+ 22 => "And" ,
194+ 23 => "Or" ,
195+ 24 => "Xor" ,
196+ 25 => "Not" ,
197+ 26 => "Byte" ,
198+ 27 => "Shl" ,
199+ 28 => "Shr" ,
200+ 29 => "Sar" ,
201+ 32 => "Keccak256" ,
202+ 48 => "Address" ,
203+ 49 => "Balance" ,
204+ 50 => "Origin" ,
205+ 51 => "Caller" ,
206+ 52 => "CallValue" ,
207+ 53 => "CallDataLoad" ,
208+ 54 => "CallDataSize" ,
209+ 55 => "CallDataCopy" ,
210+ 56 => "CodeSize" ,
211+ 57 => "CodeCopy" ,
212+ 58 => "GasPrice" ,
213+ 59 => "ExtCodeSize" ,
214+ 60 => "ExtCodeCopy" ,
215+ 61 => "ReturnDataSize" ,
216+ 62 => "ReturnDataCopy" ,
217+ 63 => "ExtCodeHash" ,
218+ 64 => "BlockHash" ,
219+ 65 => "Coinbase" ,
220+ 66 => "Timestamp" ,
221+ 67 => "Number" ,
222+ 68 => "Difficulty" ,
223+ 69 => "GasLimit" ,
224+ 70 => "ChainId" ,
225+ 80 => "Pop" ,
226+ 81 => "MLoad" ,
227+ 82 => "MStore" ,
228+ 83 => "MStore8" ,
229+ 84 => "SLoad" ,
230+ 85 => "SStore" ,
231+ 86 => "Jump" ,
232+ 87 => "JumpI" ,
233+ 88 => "GetPc" ,
234+ 89 => "MSize" ,
235+ 90 => "Gas" ,
236+ 91 => "JumpDest" ,
237+ 92 => "TLoad" ,
238+ 93 => "TStore" ,
239+ 94 => "MCopy" ,
240+ 96 => "Push1" ,
241+ 97 => "Push2" ,
242+ 98 => "Push3" ,
243+ 99 => "Push4" ,
244+ 100 => "Push5" ,
245+ 101 => "Push6" ,
246+ 102 => "Push7" ,
247+ 103 => "Push8" ,
248+ 104 => "Push9" ,
249+ 105 => "Push10" ,
250+ 106 => "Push11" ,
251+ 107 => "Push12" ,
252+ 108 => "Push13" ,
253+ 109 => "Push14" ,
254+ 110 => "Push15" ,
255+ 111 => "Push16" ,
256+ 112 => "Push17" ,
257+ 113 => "Push18" ,
258+ 114 => "Push19" ,
259+ 115 => "Push20" ,
260+ 116 => "Push21" ,
261+ 117 => "Push22" ,
262+ 118 => "Push23" ,
263+ 119 => "Push24" ,
264+ 120 => "Push25" ,
265+ 121 => "Push26" ,
266+ 122 => "Push27" ,
267+ 123 => "Push28" ,
268+ 124 => "Push29" ,
269+ 125 => "Push30" ,
270+ 126 => "Push31" ,
271+ 127 => "Push32" ,
272+ 128 => "Dup1" ,
273+ 129 => "Dup2" ,
274+ 130 => "Dup3" ,
275+ 131 => "Dup4" ,
276+ 132 => "Dup5" ,
277+ 133 => "Dup6" ,
278+ 134 => "Dup7" ,
279+ 135 => "Dup8" ,
280+ 136 => "Dup9" ,
281+ 137 => "Dup10" ,
282+ 138 => "Dup11" ,
283+ 139 => "Dup12" ,
284+ 140 => "Dup13" ,
285+ 141 => "Dup14" ,
286+ 142 => "Dup15" ,
287+ 143 => "Dup16" ,
288+ 144 => "Swap1" ,
289+ 145 => "Swap2" ,
290+ 146 => "Swap3" ,
291+ 147 => "Swap4" ,
292+ 148 => "Swap5" ,
293+ 149 => "Swap6" ,
294+ 150 => "Swap7" ,
295+ 151 => "Swap8" ,
296+ 152 => "Swap9" ,
297+ 153 => "Swap10" ,
298+ 154 => "Swap11" ,
299+ 155 => "Swap12" ,
300+ 156 => "Swap13" ,
301+ 157 => "Swap14" ,
302+ 158 => "Swap15" ,
303+ 159 => "Swap16" ,
304+ 160 => "Log0" ,
305+ 161 => "Log1" ,
306+ 162 => "Log2" ,
307+ 163 => "Log3" ,
308+ 164 => "Log4" ,
309+ 176 => "JumpTo" ,
310+ 177 => "JumpIf" ,
311+ 178 => "JumpSub" ,
312+ 180 => "JumpSubv" ,
313+ 181 => "BeginSub" ,
314+ 182 => "BeginData" ,
315+ 184 => "ReturnSub" ,
316+ 185 => "PutLocal" ,
317+ 186 => "GetLocal" ,
318+ 225 => "SLoadBytes" ,
319+ 226 => "SStoreBytes" ,
320+ 227 => "SSize" ,
321+ 240 => "Create" ,
322+ 241 => "Call" ,
323+ 242 => "CallCode" ,
324+ 243 => "Return" ,
325+ 244 => "DelegateCall" ,
326+ 245 => "Create2" ,
327+ 250 => "StaticCall" ,
328+ 252 => "TxExecGas" ,
329+ 253 => "Revert" ,
330+ 254 => "Invalid" ,
331+ 255 => "SelfDestruct" ,
332+ _ => return None ,
333+ } )
334+ }
You can’t perform that action at this time.
0 commit comments