syntax = "proto3";

package api;

service ProverService {
    rpc Setup(SetupRequest) returns (SetupResponse) {}
    rpc Ready(ReadyRequest) returns (ReadyResponse) {}
    rpc ProveCore(ProveCoreRequest) returns (ProveCoreResponse) {}
    rpc ProveCoreStateless(ProveCoreRequest) returns (ProveCoreResponse) {}
    rpc Compress(CompressRequest) returns (CompressResponse) {}
    rpc Shrink(ShrinkRequest) returns (ShrinkResponse) {}
    rpc Wrap(WrapRequest) returns (WrapResponse) {}
}

message ReadyRequest {}

message ReadyResponse {
    bool ready = 1;
}

message SetupRequest {
    bytes data = 1;
}

message SetupResponse {
    bytes result = 1;
}

message ProveCoreRequest {
    bytes data = 1;
}

message ProveCoreResponse {
    bytes result = 1;
}

message CompressRequest {
    bytes data = 1;
}

message CompressResponse {
    bytes result = 1;
}

message ShrinkRequest {
    bytes data = 1;
}

message ShrinkResponse {
    bytes result = 1;
}

message WrapRequest {
    bytes data = 1;
}

message WrapResponse {
    bytes result = 1;
}