// Schema definition for light client messages.
syntax = "proto2";
package api.v1.light;
// Enumerate all possible light client request messages.
message Request {
oneof request {
RemoteCallRequest remote_call_request = 1;
RemoteReadRequest remote_read_request = 2;
RemoteReadChildRequest remote_read_child_request = 4;
// Note: ids 3 and 5 were used in the past. It would be preferable to not re-use them.
}
}
// Enumerate all possible light client response messages.
message Response {
oneof response {
RemoteCallResponse remote_call_response = 1;
RemoteReadResponse remote_read_response = 2;
// Note: ids 3 and 4 were used in the past. It would be preferable to not re-use them.
}
}
// Remote call request.
message RemoteCallRequest {
// Block at which to perform call.
required bytes block = 2;
// Method name.
required string method = 3;
// Call data.
required bytes data = 4;
}
// Remote call response.
message RemoteCallResponse {
// Execution proof. If missing, indicates that the remote couldn't answer, for example because
// the block is pruned.
optional bytes proof = 2;
}
// Remote storage read request.
message RemoteReadRequest {
// Block at which to perform call.
required bytes block = 2;
// Storage keys.
repeated bytes keys = 3;
}
// Remote read response.
message RemoteReadResponse {
// Read proof. If missing, indicates that the remote couldn't answer, for example because
// the block is pruned.
optional bytes proof = 2;
}
// Remote storage read child request.
message RemoteReadChildRequest {
// Block at which to perform call.
required bytes block = 2;
// Child Storage key, this is relative
// to the child type storage location.
required bytes storage_key = 3;
// Storage keys.
repeated bytes keys = 6;
}