syntax = "proto3"; import "google/protobuf/empty.proto"; package adapter; service Transactions { rpc Mine(MineRequest) returns (MineReply); rpc RequestRandomness(RequestRandomnessRequest) returns (google.protobuf.Empty); rpc FulfillRandomness(FulfillRandomnessRequest) returns (google.protobuf.Empty); } message MineRequest { uint32 block_number_increment = 1; } message MineReply { uint32 block_number = 1; } message RequestRandomnessRequest { bytes seed = 1; } message FulfillRandomnessRequest { string id_address = 1; uint32 group_index = 2; bytes request_id = 3; bytes signature = 4; map partial_signatures = 5; } service Views { rpc GetGroup(GetGroupRequest) returns (GroupReply); rpc GetLastOutput(google.protobuf.Empty) returns (LastOutputReply); rpc EmitSignatureTask(google.protobuf.Empty) returns (SignatureTaskReply); rpc IsTaskPending(IsTaskPendingRequest) returns (IsTaskPendingReply); } message GetGroupRequest { uint32 index = 1; } message GroupReply { uint32 index = 1; uint32 epoch = 2; uint32 capacity = 3; uint32 size = 4; uint32 threshold = 5; bool state = 6; bytes public_key = 7; map members = 8; repeated string committers = 9; } message Member { uint32 index = 1; string id_address = 2; bytes partial_public_key = 3; } message SignatureTaskReply { bytes request_id = 1; bytes seed = 2; uint32 group_index = 3; uint32 assignment_block_height = 4; } message LastOutputReply { bytes last_output = 1; } message IsTaskPendingRequest { bytes request_id = 1; } message IsTaskPendingReply { bool state = 1; }