syntax = "proto3"; package kava.liquid.v1beta1; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; import "cosmos_proto/cosmos.proto"; option go_package = "github.com/kava-labs/kava/x/liquid/types"; // Msg defines the liquid Msg service. service Msg { // MintDerivative defines a method for converting a delegation into staking deriviatives. rpc MintDerivative(MsgMintDerivative) returns (MsgMintDerivativeResponse); // BurnDerivative defines a method for converting staking deriviatives into a delegation. rpc BurnDerivative(MsgBurnDerivative) returns (MsgBurnDerivativeResponse); } // MsgMintDerivative defines the Msg/MintDerivative request type. message MsgMintDerivative { // sender is the owner of the delegation to be converted string sender = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; // validator is the validator of the delegation to be converted string validator = 2; // amount is the quantity of staked assets to be converted cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; } // MsgMintDerivativeResponse defines the Msg/MintDerivative response type. message MsgMintDerivativeResponse { // received is the amount of staking derivative minted and sent to the sender cosmos.base.v1beta1.Coin received = 1 [(gogoproto.nullable) = false]; } // MsgBurnDerivative defines the Msg/BurnDerivative request type. message MsgBurnDerivative { // sender is the owner of the derivatives to be converted string sender = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; // validator is the validator of the derivatives to be converted string validator = 2; // amount is the quantity of derivatives to be converted cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; } // MsgBurnDerivativeResponse defines the Msg/BurnDerivative response type. message MsgBurnDerivativeResponse { // received is the number of delegation shares sent to the sender string received = 1 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false ]; }