syntax = "proto3";
package osmosis.gamm.v2;

import "gogoproto/gogo.proto";
import "osmosis/gamm/v1beta1/tx.proto";

import "cosmos/base/v1beta1/coin.proto";
import "cosmos/base/query/v1beta1/pagination.proto";
import "google/api/annotations.proto";
import "google/protobuf/any.proto";
import "cosmos_proto/cosmos.proto";

option go_package = "github.com/osmosis-labs/osmosis/v13/x/gamm/v2types";

service Query {
  // SpotPrice defines a gRPC query handler that returns the spot price given
  // a base denomination and a quote denomination.
  rpc SpotPrice(QuerySpotPriceRequest) returns (QuerySpotPriceResponse) {
    option (google.api.http).get = "/osmosis/gamm/v2/pools/{pool_id}/prices";
  }
}

// QuerySpotPriceRequest defines the gRPC request structure for a SpotPrice
// query.
message QuerySpotPriceRequest {
  uint64 pool_id = 1 [ (gogoproto.moretags) = "yaml:\"pool_id\"" ];
  string base_asset_denom = 2
      [ (gogoproto.moretags) = "yaml:\"base_asset_denom\"" ];
  string quote_asset_denom = 3
      [ (gogoproto.moretags) = "yaml:\"quote_asset_denom\"" ];
}

// QuerySpotPriceResponse defines the gRPC response structure for a SpotPrice
// query.
message QuerySpotPriceResponse {
  // String of the Dec. Ex) 10.203uatom
  string spot_price = 1 [ (gogoproto.moretags) = "yaml:\"spot_price\"" ];
}
