1
- import type { Bytecode } from "./model" ;
2
1
import type {
3
- CallOutput ,
4
- CreateOutput ,
5
- HaltResult ,
6
- RevertResult ,
7
- SuccessResult ,
8
2
PrecompileMessageTrace ,
9
3
CreateMessageTrace ,
10
4
CallMessageTrace ,
@@ -16,86 +10,3 @@ export type MessageTrace =
16
10
| CreateMessageTrace
17
11
| CallMessageTrace
18
12
| PrecompileMessageTrace ;
19
-
20
- export type EvmMessageTrace = CreateMessageTrace | CallMessageTrace ;
21
-
22
- export type DecodedEvmMessageTrace =
23
- | DecodedCreateMessageTrace
24
- | DecodedCallMessageTrace ;
25
-
26
- export interface DecodedCreateMessageTrace extends CreateMessageTrace {
27
- bytecode : Bytecode ;
28
- }
29
-
30
- export interface DecodedCallMessageTrace extends CallMessageTrace {
31
- bytecode : Bytecode ;
32
- }
33
-
34
- export function isPrecompileTrace (
35
- trace : MessageTrace
36
- ) : trace is PrecompileMessageTrace {
37
- return "precompile" in trace ;
38
- }
39
-
40
- export function isCreateTrace (
41
- trace : MessageTrace
42
- ) : trace is CreateMessageTrace {
43
- return "code" in trace && ! isCallTrace ( trace ) ;
44
- }
45
-
46
- export function isDecodedCreateTrace (
47
- trace : MessageTrace
48
- ) : trace is DecodedCreateMessageTrace {
49
- return isCreateTrace ( trace ) && trace . bytecode !== undefined ;
50
- }
51
-
52
- export function isCallTrace ( trace : MessageTrace ) : trace is CallMessageTrace {
53
- return "code" in trace && "calldata" in trace ;
54
- }
55
-
56
- export function isDecodedCallTrace (
57
- trace : MessageTrace
58
- ) : trace is DecodedCallMessageTrace {
59
- return isCallTrace ( trace ) && trace . bytecode !== undefined ;
60
- }
61
-
62
- export function isEvmStep ( step : MessageTraceStep ) : step is EvmStep {
63
- return "pc" in step && step . pc !== undefined ;
64
- }
65
-
66
- export type MessageTraceStep = MessageTrace | EvmStep ;
67
-
68
- export interface EvmStep {
69
- pc : number ;
70
- }
71
-
72
- export function isCallOutput (
73
- output : CallOutput | CreateOutput
74
- ) : output is CallOutput {
75
- return ! isCreateOutput ( output ) ;
76
- }
77
-
78
- export function isCreateOutput (
79
- output : CallOutput | CreateOutput
80
- ) : output is CreateOutput {
81
- return "address" in output ;
82
- }
83
-
84
- export function isSuccessResult (
85
- result : SuccessResult | RevertResult | HaltResult
86
- ) : result is SuccessResult {
87
- // Only need to check for one unique field
88
- return "gasRefunded" in result ;
89
- }
90
-
91
- export function isRevertResult (
92
- result : SuccessResult | RevertResult | HaltResult
93
- ) : result is RevertResult {
94
- return ! ( "reason" in result ) ;
95
- }
96
-
97
- export function isHaltResult (
98
- result : SuccessResult | RevertResult | HaltResult
99
- ) : result is HaltResult {
100
- return ! ( "output" in result ) ;
101
- }
0 commit comments