mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-11-14 03:55:19 +00:00
148 lines
5.0 KiB
Protocol Buffer
148 lines
5.0 KiB
Protocol Buffer
|
syntax = "proto3";
|
||
|
package kava.pricefeed.v1beta1;
|
||
|
|
||
|
import "kava/pricefeed/v1beta1/store.proto";
|
||
|
import "gogoproto/gogo.proto";
|
||
|
import "google/api/annotations.proto";
|
||
|
import "google/protobuf/timestamp.proto";
|
||
|
|
||
|
option go_package = "github.com/kava-labs/kava/x/pricefeed/types";
|
||
|
option (gogoproto.equal_all) = true;
|
||
|
option (gogoproto.verbose_equal_all) = true;
|
||
|
|
||
|
// Query defines the gRPC querier service for pricefeed module
|
||
|
service Query {
|
||
|
// Params queries all parameters of the pricefeed module.
|
||
|
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
||
|
option (google.api.http).get = "/kava/pricefeed/v1beta1/params";
|
||
|
}
|
||
|
|
||
|
// Price queries price details based on a market
|
||
|
rpc Price(QueryPriceRequest) returns (QueryPriceResponse) {
|
||
|
option (google.api.http).get = "/kava/pricefeed/v1beta1/prices/{market_id}";
|
||
|
}
|
||
|
|
||
|
// Prices queries all prices
|
||
|
rpc Prices(QueryPricesRequest) returns (QueryPricesResponse) {
|
||
|
option (google.api.http).get = "/kava/pricefeed/v1beta1/prices";
|
||
|
}
|
||
|
|
||
|
// RawPrices queries all raw prices based on a market
|
||
|
rpc RawPrices(QueryRawPricesRequest) returns (QueryRawPricesResponse) {
|
||
|
option (google.api.http).get = "/kava/pricefeed/v1beta1/rawprices/{market_id}";
|
||
|
}
|
||
|
|
||
|
// Oracles queries all oracles based on a market
|
||
|
rpc Oracles(QueryOraclesRequest) returns (QueryOraclesResponse) {
|
||
|
option (google.api.http).get = "/kava/pricefeed/v1beta1/oracles/{market_id}";
|
||
|
}
|
||
|
|
||
|
// Markets queries all markets
|
||
|
rpc Markets(QueryMarketsRequest) returns (QueryMarketsResponse) {
|
||
|
option (google.api.http).get = "/kava/pricefeed/v1beta1/markets";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// QueryParamsRequest defines the request type for querying x/pricefeed
|
||
|
// parameters.
|
||
|
message QueryParamsRequest {}
|
||
|
|
||
|
// QueryParamsResponse defines the response type for querying x/pricefeed
|
||
|
// parameters.
|
||
|
message QueryParamsResponse {
|
||
|
option (gogoproto.goproto_getters) = false;
|
||
|
|
||
|
Params params = 1 [(gogoproto.nullable) = false];
|
||
|
}
|
||
|
|
||
|
// QueryPriceRequest is the request type for the Query/PriceRequest RPC method.
|
||
|
message QueryPriceRequest {
|
||
|
option (gogoproto.goproto_getters) = false;
|
||
|
|
||
|
string market_id = 1;
|
||
|
}
|
||
|
|
||
|
// QueryPriceResponse is the response type for the Query/Prices RPC method.
|
||
|
message QueryPriceResponse {
|
||
|
option (gogoproto.goproto_getters) = false;
|
||
|
|
||
|
CurrentPriceResponse price = 1 [(gogoproto.nullable) = false];
|
||
|
}
|
||
|
|
||
|
// QueryPricesRequest is the request type for the Query/Prices RPC method.
|
||
|
message QueryPricesRequest {}
|
||
|
|
||
|
// QueryPricesResponse is the response type for the Query/Prices RPC method.
|
||
|
message QueryPricesResponse {
|
||
|
option (gogoproto.goproto_getters) = false;
|
||
|
|
||
|
repeated CurrentPriceResponse prices = 1
|
||
|
[(gogoproto.castrepeated) = "CurrentPriceResponses", (gogoproto.nullable) = false];
|
||
|
}
|
||
|
|
||
|
// QueryRawPricesRequest is the request type for the Query/RawPrices RPC method.
|
||
|
message QueryRawPricesRequest {
|
||
|
option (gogoproto.goproto_getters) = false;
|
||
|
|
||
|
string market_id = 1;
|
||
|
}
|
||
|
|
||
|
// QueryRawPricesResponse is the response type for the Query/RawPrices RPC
|
||
|
// method.
|
||
|
message QueryRawPricesResponse {
|
||
|
option (gogoproto.goproto_getters) = false;
|
||
|
|
||
|
repeated PostedPriceResponse raw_prices = 1
|
||
|
[(gogoproto.castrepeated) = "PostedPriceResponses", (gogoproto.nullable) = false];
|
||
|
}
|
||
|
|
||
|
// QueryOraclesRequest is the request type for the Query/Oracles RPC method.
|
||
|
message QueryOraclesRequest {
|
||
|
option (gogoproto.goproto_getters) = false;
|
||
|
|
||
|
string market_id = 1;
|
||
|
}
|
||
|
|
||
|
// QueryOraclesResponse is the response type for the Query/Oracles RPC method.
|
||
|
message QueryOraclesResponse {
|
||
|
option (gogoproto.goproto_getters) = false;
|
||
|
|
||
|
// List of oracle addresses
|
||
|
repeated string oracles = 1;
|
||
|
}
|
||
|
|
||
|
// QueryMarketsRequest is the request type for the Query/Markets RPC method.
|
||
|
message QueryMarketsRequest {}
|
||
|
|
||
|
// QueryMarketsResponse is the response type for the Query/Markets RPC method.
|
||
|
message QueryMarketsResponse {
|
||
|
option (gogoproto.goproto_getters) = false;
|
||
|
|
||
|
// List of markets
|
||
|
repeated MarketResponse markets = 1 [(gogoproto.castrepeated) = "MarketResponses", (gogoproto.nullable) = false];
|
||
|
}
|
||
|
|
||
|
// PostedPriceResponse defines a price for market posted by a specific oracle.
|
||
|
message PostedPriceResponse {
|
||
|
string market_id = 1 [(gogoproto.customname) = "MarketID"];
|
||
|
string oracle_address = 2;
|
||
|
string price = 3 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
|
||
|
google.protobuf.Timestamp expiry = 4 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
||
|
}
|
||
|
|
||
|
// CurrentPriceResponse defines a current price for a particular market in the pricefeed
|
||
|
// module.
|
||
|
message CurrentPriceResponse {
|
||
|
string market_id = 1 [(gogoproto.customname) = "MarketID"];
|
||
|
string price = 2 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
|
||
|
}
|
||
|
|
||
|
// MarketResponse defines an asset in the pricefeed.
|
||
|
message MarketResponse {
|
||
|
string market_id = 1 [(gogoproto.customname) = "MarketID"];
|
||
|
string base_asset = 2;
|
||
|
string quote_asset = 3;
|
||
|
repeated string oracles = 4;
|
||
|
bool active = 5;
|
||
|
}
|