erigon-pulse/interfaces/web3/trace.proto
2021-09-26 19:47:11 +07:00

63 lines
1.1 KiB
Protocol Buffer

syntax = "proto3";
import "google/protobuf/empty.proto";
import "web3/common.proto";
import "types/types.proto";
package web3;
message CallData {
optional types.H160 from = 1;
uint64 gas = 3;
uint64 gas_price = 4;
types.H256 hash = 5;
bytes input = 6;
optional types.H160 to = 8;
types.H256 value = 9;
}
message CallAction {
Action action = 1;
types.H160 from = 2;
uint64 gas = 3;
bytes input = 4;
types.H160 to = 5;
types.H256 value = 6;
}
message CreateAction {}
message SelfdestructAction {}
message Action {
oneof action {
CallAction call = 1;
CreateAction create = 2;
SelfdestructAction selfdestruct = 3;
}
}
message Trace {
Action action = 1;
TraceResult result = 2;
Subtraces uint64 = 3;
repeated types.H160 trace_address = 4;
}
message TraceResult {}
message Subtraces {}
message StateDiff {}
message VmTrace {}
message FullTrace {
Trace trace = 1;
StateDiff state_diff = 2;
VmTrace vm_trace = 3;
}
message CallRequest { repeated CallData call_data = 1; }
message CallResponse { repeated Trace traces = 1; }
service TraceApi { rpc Call(CallRequest) returns (CallResponse); }