forked from cerc-io/laconicd
4da8dd8d7b
* Add commands to get bonds by id and owner * Add commands to get bond module params and balances * Add commands to refill, withdraw and cancel bond * Add implementations for bond tx commands * Use indexed map to implement command for getting bond by owner * Use collections for bond module params * Clean up
102 lines
3.5 KiB
Protocol Buffer
102 lines
3.5 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package cerc.bond.v1;
|
|
|
|
option go_package = "git.vdb.to/cerc-io/laconic2d/x/bond";
|
|
|
|
import "gogoproto/gogo.proto";
|
|
import "cerc/bond/v1/bond.proto";
|
|
import "google/api/annotations.proto";
|
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
|
import "cosmos/base/v1beta1/coin.proto";
|
|
// import "cosmos/query/v1/query.proto";
|
|
|
|
// Query defines the gRPC querier service for bond module
|
|
service Query {
|
|
// Params queries bonds module params.
|
|
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
|
option (google.api.http).get = "/cerc/bond/v1/params";
|
|
}
|
|
|
|
// Bonds queries bonds list
|
|
rpc Bonds(QueryGetBondsRequest) returns (QueryGetBondsResponse) {
|
|
// Mark query as module_query_safe?
|
|
// option (cosmos.query.v1.module_query_safe) = true;
|
|
option (google.api.http).get = "/cerc/bond/v1/bonds";
|
|
}
|
|
|
|
// GetBondById
|
|
rpc GetBondById(QueryGetBondByIdRequest) returns (QueryGetBondByIdResponse) {
|
|
option (google.api.http).get = "/cerc/bond/v1/bonds/{id}";
|
|
}
|
|
|
|
// Get Bonds list by Owner
|
|
rpc GetBondsByOwner(QueryGetBondsByOwnerRequest) returns (QueryGetBondsByOwnerResponse) {
|
|
option (google.api.http).get = "/cerc/bond/v1/by-owner/{owner}";
|
|
}
|
|
|
|
// Get Bond module balance
|
|
rpc GetBondsModuleBalance(QueryGetBondModuleBalanceRequest) returns (QueryGetBondModuleBalanceResponse) {
|
|
option (google.api.http).get = "/cerc/bond/v1/balance";
|
|
}
|
|
}
|
|
|
|
// QueryParamsRequest is request for query the bond module params
|
|
message QueryParamsRequest {}
|
|
|
|
// QueryParamsResponse returns response type of bond module params
|
|
message QueryParamsResponse {
|
|
Params params = 1 [(gogoproto.moretags) = "json:\"params\" yaml:\"params\""];
|
|
}
|
|
|
|
// QueryGetBondById queries a bonds.
|
|
message QueryGetBondsRequest {
|
|
// pagination defines an optional pagination for the request.
|
|
cosmos.base.query.v1beta1.PageRequest pagination = 1;
|
|
}
|
|
|
|
// QueryGetBondsResponse is response type for get the bonds by bond-id
|
|
message QueryGetBondsResponse {
|
|
repeated Bond bonds = 1 [(gogoproto.moretags) = "json:\"bonds\" yaml:\"bonds\""];
|
|
|
|
// pagination defines the pagination in the response.
|
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
|
}
|
|
|
|
// QueryGetBondById
|
|
message QueryGetBondByIdRequest {
|
|
string id = 1 [(gogoproto.moretags) = "json:\"id\" yaml:\"id\""];
|
|
}
|
|
|
|
// QueryGetBondByIdResponse returns QueryGetBondById query response
|
|
message QueryGetBondByIdResponse {
|
|
Bond bond = 1 [(gogoproto.moretags) = "json:\"bond\" yaml:\"bond\""];
|
|
}
|
|
|
|
// QueryGetBondsByOwnerRequest is request type for Query/GetBondsByOwner RPC Method
|
|
message QueryGetBondsByOwnerRequest {
|
|
string owner = 1;
|
|
// pagination defines the pagination in the response.
|
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
|
}
|
|
|
|
// QueryGetBondsByOwnerResponse is response type for Query/GetBondsByOwner RPC Method
|
|
message QueryGetBondsByOwnerResponse {
|
|
repeated Bond bonds = 1 [(gogoproto.nullable) = false, (gogoproto.moretags) = "json:\"bonds\" yaml:\"bonds\""];
|
|
|
|
// pagination defines the pagination in the response.
|
|
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
|
}
|
|
|
|
// QueryGetBondModuleBalanceRequest is request type for bond module balance rpc method
|
|
message QueryGetBondModuleBalanceRequest {}
|
|
|
|
// QueryGetBondModuleBalanceResponse is the response type for bond module balance rpc method
|
|
message QueryGetBondModuleBalanceResponse {
|
|
repeated cosmos.base.v1beta1.Coin balance = 2 [
|
|
(gogoproto.nullable) = false,
|
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
|
(gogoproto.moretags) = "json:\"coins\" yaml:\"coins\""
|
|
];
|
|
}
|