
// version of prorocol buffer used
syntax = "proto3";

package accountsdb_repl;

message ReplicaSlotConfirmationRequest {
    uint64 last_replicated_slot = 1;
}

message ReplicaSlotConfirmationResponse {
    repeated uint64 updated_slots = 1;
}

message ReplicaAccountsRequest {
    uint64 slot = 1;
}

message ReplicaAccountMeta {
    bytes Pubkey = 1;
    uint64 lamports = 2;
    bytes owner = 3;
    bool executable = 4;
    uint64 rent_epoch = 5;
}

message ReplicaAccountData {
    bytes data = 1;
}

message ReplicaAccountInfo {
    ReplicaAccountMeta account_meta = 1;
    bytes hash = 2;
    ReplicaAccountData data = 3;
}

message ReplicaAccountsResponse {
    repeated ReplicaAccountInfo accounts = 1;
}

service AccountsDbRepl {
    rpc get_confirmed_slots(ReplicaSlotConfirmationRequest) returns (ReplicaSlotConfirmationResponse);
    rpc get_slot_accounts(ReplicaAccountsRequest) returns (ReplicaAccountsResponse);
}
