mukan-ignite/ignite/pkg/protoanalysis/testdata/liquidity/liquidity.proto
Mukan Erkin Törük 26b204bd04
Some checks are pending
Docs Deploy / build_and_deploy (push) Waiting to run
Generate Docs / cli (push) Waiting to run
Generate Config Doc / cli (push) Waiting to run
Go formatting / go-formatting (push) Waiting to run
Check links / markdown-link-check (push) Waiting to run
Integration / pre-test (push) Waiting to run
Integration / test on (push) Blocked by required conditions
Integration / status (push) Blocked by required conditions
Lint / Lint Go code (push) Waiting to run
Test / test (ubuntu-latest) (push) Waiting to run
feat: fork Ignite CLI v29 as Mukan Ignite — remove cosmos-sdk restrictions
2026-05-11 03:31:37 +03:00

485 lines
19 KiB
Protocol Buffer

syntax = "proto3";
package tendermint.liquidity;
import "tx.proto";
import "gogoproto/gogo.proto";
import "cosmos_proto/coin.proto";
import "protoc-gen-openapiv2/options/annotations.proto";
option go_package = "github.com/tendermint/liquidity/x/liquidity/types";
option (gogoproto.goproto_getters_all) = false;
message PoolType {
option (gogoproto.equal) = true;
// id of target pool type, only 1 is allowed on this version.
uint32 id = 1 [(gogoproto.moretags) = "yaml:\"id\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint32"
}];
// name of the pool type
string name = 2 [(gogoproto.moretags) = "yaml:\"name\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"ConstantProductLiquidityPool\"",
}];
// min number of reserveCoins for LiquidityPoolType only 2 is allowed on this spec
uint32 min_reserve_coin_num = 3 [(gogoproto.moretags) = "yaml:\"min_reserve_coin_num\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"2\"",
format: "uint32"
}];
// max number of reserveCoins for LiquidityPoolType only 2 is allowed on this spec
uint32 max_reserve_coin_num = 4 [(gogoproto.moretags) = "yaml:\"max_reserve_coin_num\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"2\"",
format: "uint32"
}];
// description of the pool type
string description = 5 [(gogoproto.moretags) = "yaml:\"description\""];
}
message Params {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
// list of available pool types
repeated PoolType pool_types = 1 [
(gogoproto.moretags) = "yaml:\"pool_types\"",
(gogoproto.nullable) = false
];
// Minimum number of coins to be deposited to the liquidity pool upon pool creation
string min_init_deposit_amount = 2 [
(gogoproto.moretags) = "yaml:\"min_init_deposit_amount\"",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.nullable) = false,
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1000000\"",
format: "sdk.Int"
}];
// Initial mint amount of pool coin upon pool creation
string init_pool_coin_mint_amount = 3 [
(gogoproto.moretags) = "yaml:\"init_pool_coin_mint_amount\"",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.nullable) = false,
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1000000\"",
format: "sdk.Int"
}];
// Limit the size of each liquidity pool in the beginning phase of Liquidity Module adoption to minimize risk, 0 means no limit
string max_reserve_coin_amount = 4 [
(gogoproto.moretags) = "yaml:\"max_reserve_coin_amount\"",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.nullable) = false,
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1000000000000\"",
format: "sdk.Int"
}];
// Fee paid for new Liquidity Pool creation to prevent spamming
repeated cosmos.base.v1beta1.Coin pool_creation_fee = 5 [
(gogoproto.moretags) = "yaml:\"pool_creation_fee\"",
(gogoproto.nullable) = false,
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "[{\"denom\": \"uatom\", \"amount\": \"100000000\"}]",
format: "sdk.Coins"
}
];
// Swap fee rate for every executed swap
bytes swap_fee_rate = 6 [
(gogoproto.moretags) = "yaml:\"swap_fee_rate\"",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
(gogoproto.nullable) = false,
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"0.003\"",
format: "sdk.Dec"
}];
// Reserve coin withdrawal with less proportion by withdrawFeeRate
bytes withdraw_fee_rate = 7 [
(gogoproto.moretags) = "yaml:\"withdraw_fee_rate\"",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
(gogoproto.nullable) = false,
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"0.003\"",
format: "sdk.Dec"
}];
// Maximum ratio of reserve coins that can be ordered at a swap order
bytes max_order_amount_ratio = 8 [
(gogoproto.moretags) = "yaml:\"max_order_amount_ratio\"",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
(gogoproto.nullable) = false,
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"0.003\"",
format: "sdk.Dec"
}];
// The smallest unit batch height for every liquidity pool
uint32 unit_batch_height = 9 [
(gogoproto.moretags) = "yaml:\"unit_batch_height\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint32"
}];
// // fees paid for each batch messages, to be added v2
// repeated cosmos.base.v1beta1.Coin liquidity_msg_fee = 5 [
// (gogoproto.moretags) = "yaml:\"liquidity_msg_fee\"",
// (gogoproto.nullable) = false,
// (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
// (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
// example: "[{\"denom\": \"uatom\", \"amount\": \"50000\"}]",
// format: "sdk.Coins"
// }];
}
message Pool {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = true;
// id of the pool
uint64 id = 1 [(gogoproto.moretags) = "yaml:\"id\"", (gogoproto.jsontag) = "id",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// id of the pool type
uint32 type_id = 2 [(gogoproto.moretags) = "yaml:\"type_id\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint32"
}];
// denoms of reserve coin pair of the pool
repeated string reserve_coin_denoms = 3 [(gogoproto.moretags) = "yaml:\"reserve_coin_denoms\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "[\"denomX\",\"denomY\"]"
}];
// reserve account address of the pool
string reserve_account_address = 4 [(gogoproto.moretags) = "yaml:\"reserve_account_address\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"cosmos16ddqestwukv0jzcyfn3fdfq9h2wrs83cr4rfm3\"",
format: "sdk.AccAddress"
}];
// denom of pool coin of the pool
string pool_coin_denom = 5 [(gogoproto.moretags) = "yaml:\"pool_coin_denom\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"poolD35A0CC16EE598F90B044CE296A405BA9C381E38837599D96F2F70C2F02A23A4\"",
}];
}
message PoolMetadata {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = true;
// id of the pool
uint64 pool_id = 1 [(gogoproto.moretags) = "yaml:\"pool_id\"", (gogoproto.jsontag) = "pool_id",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// pool coin issued at the pool
cosmos.base.v1beta1.Coin pool_coin_total_supply = 2 [
(gogoproto.moretags) = "yaml:\"pool_coin_total_supply\"",
(gogoproto.nullable) = false,
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "{\"denom\": \"poolD35A0CC16EE598F90B044CE296A405BA9C381E38837599D96F2F70C2F02A23A4\", \"amount\": \"1000000\"}",
format: "sdk.Coin"
}];
// reserve coins deposited in the pool
repeated cosmos.base.v1beta1.Coin reserve_coins = 3 [
(gogoproto.moretags) = "yaml:\"reserve_coins\"",
(gogoproto.nullable) = false,
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "[{\"denom\": \"denomX\", \"amount\": \"1000000\"}, {\"denom\": \"denomY\", \"amount\": \"2000000\"}]",
format: "sdk.Coins"
}];
}
message PoolMetadataResponse {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = true;
// pool coin issued at the pool
cosmos.base.v1beta1.Coin pool_coin_total_supply = 1 [
(gogoproto.moretags) = "yaml:\"pool_coin_total_supply\"",
(gogoproto.nullable) = false,
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "{\"denom\": \"poolD35A0CC16EE598F90B044CE296A405BA9C381E38837599D96F2F70C2F02A23A4\", \"amount\": \"1000000\"}",
format: "sdk.Coin"
}];
// reserve coins deposited in the pool
repeated cosmos.base.v1beta1.Coin reserve_coins = 2 [
(gogoproto.moretags) = "yaml:\"reserve_coins\"",
(gogoproto.nullable) = false,
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "[{\"denom\": \"denomX\", \"amount\": \"1000000\"}, {\"denom\": \"denomY\", \"amount\": \"2000000\"}]",
format: "sdk.Coins"
}];
}
message PoolBatch {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = true;
// id of the pool
uint64 pool_id = 1 [(gogoproto.moretags) = "yaml:\"pool_id\"", (gogoproto.jsontag) = "pool_id",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// index of this batch
uint64 index = 2 [(gogoproto.moretags) = "yaml:\"index\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// height where this batch is begun
int64 begin_height = 3 [(gogoproto.moretags) = "yaml:\"begin_height\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1000\"",
format: "int64"
}];
// last index of DepositMsgStates
uint64 deposit_msg_index = 4 [(gogoproto.moretags) = "yaml:\"deposit_msg_index\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// last index of WithdrawMsgStates
uint64 withdraw_msg_index = 5 [(gogoproto.moretags) = "yaml:\"withdraw_msg_index\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// last index of SwapMsgStates
uint64 swap_msg_index = 6 [(gogoproto.moretags) = "yaml:\"swap_msg_index\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// true if executed, false if not executed yet
bool executed = 7 [(gogoproto.moretags) = "yaml:\"executed\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "true",
}];
}
message PoolBatchResponse {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = true;
// index of this batch
uint64 index = 1 [(gogoproto.moretags) = "yaml:\"index\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// height where this batch is begun
int64 begin_height = 2 [(gogoproto.moretags) = "yaml:\"begin_height\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1000\"",
format: "int64"
}];
// last index of DepositMsgStates
uint64 deposit_msg_index = 3 [(gogoproto.moretags) = "yaml:\"deposit_msg_index\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// last index of WithdrawMsgStates
uint64 withdraw_msg_index = 4 [(gogoproto.moretags) = "yaml:\"withdraw_msg_index\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// last index of SwapMsgStates
uint64 swap_msg_index = 5 [(gogoproto.moretags) = "yaml:\"swap_msg_index\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// true if executed, false if not executed yet
bool executed = 6 [(gogoproto.moretags) = "yaml:\"executed\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "true",
}];
}
message DepositMsgState {
// height where this message is appended to the batch
int64 msg_height = 1 [(gogoproto.moretags) = "yaml:\"msg_height\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1000\"",
format: "int64"
}];
// index of this deposit message in this liquidity pool
uint64 msg_index = 2 [(gogoproto.moretags) = "yaml:\"msg_index\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// true if executed on this batch, false if not executed yet
bool executed = 3 [(gogoproto.moretags) = "yaml:\"executed\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "true",
}];
// true if executed successfully on this batch, false if failed
bool succeeded = 4 [(gogoproto.moretags) = "yaml:\"succeeded\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "true",
}];
// true if ready to be deleted on kvstore, false if not ready to be deleted
bool to_be_deleted = 5 [(gogoproto.moretags) = "yaml:\"to_be_deleted\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "true",
}];
// MsgDepositWithinBatch
MsgDepositWithinBatch msg = 6 [(gogoproto.moretags) = "yaml:\"msg\""];
}
message WithdrawMsgState {
// height where this message is appended to the batch
int64 msg_height = 1 [(gogoproto.moretags) = "yaml:\"msg_height\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1000\"",
format: "int64"
}];
// index of this withdraw message in this liquidity pool
uint64 msg_index = 2 [(gogoproto.moretags) = "yaml:\"msg_index\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// true if executed on this batch, false if not executed yet
bool executed = 3 [(gogoproto.moretags) = "yaml:\"executed\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "true",
}];
// true if executed successfully on this batch, false if failed
bool succeeded = 4 [(gogoproto.moretags) = "yaml:\"succeeded\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "true",
}];
// true if ready to be deleted on kvstore, false if not ready to be deleted
bool to_be_deleted = 5 [(gogoproto.moretags) = "yaml:\"to_be_deleted\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "true",
}];
// MsgWithdrawWithinBatch
MsgWithdrawWithinBatch msg = 6 [(gogoproto.moretags) = "yaml:\"msg\""];
}
message SwapMsgState {
// height where this message is appended to the batch
int64 msg_height = 1 [(gogoproto.moretags) = "yaml:\"msg_height\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1000\"",
format: "int64"
}];
// index of this swap message in this liquidity pool
uint64 msg_index = 2 [(gogoproto.moretags) = "yaml:\"msg_index\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1\"",
format: "uint64"
}];
// true if executed on this batch, false if not executed yet
bool executed = 3 [(gogoproto.moretags) = "yaml:\"executed\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "true",
}];
// true if executed successfully on this batch, false if failed
bool succeeded = 4 [(gogoproto.moretags) = "yaml:\"succeeded\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "true",
}];
// true if ready to be deleted on kvstore, false if not ready to be deleted
bool to_be_deleted = 5 [(gogoproto.moretags) = "yaml:\"to_be_deleted\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "true",
}];
// swap orders are cancelled when current height is equal or higher than ExpiryHeight
int64 order_expiry_height = 6 [(gogoproto.moretags) = "yaml:\"order_expiry_height\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "\"1000\"",
format: "int64"
}];
// offer coin exchanged until now
cosmos.base.v1beta1.Coin exchanged_offer_coin = 7 [
(gogoproto.nullable) = false,
(gogoproto.moretags) = "yaml:\"exchanged_offer_coin\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "{\"denom\": \"denomX\", \"amount\": \"600000\"}",
format: "sdk.Coin"
}];
// offer coin currently remaining to be exchanged
cosmos.base.v1beta1.Coin remaining_offer_coin = 8 [
(gogoproto.nullable) = false,
(gogoproto.moretags) = "yaml:\"remaining_offer_coin\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "{\"denom\": \"denomX\", \"amount\": \"400000\"}",
format: "sdk.Coin"
}];
// reserve fee for pays fee in half offer coin
cosmos.base.v1beta1.Coin reserved_offer_coin_fee = 9 [
(gogoproto.nullable) = false,
(gogoproto.moretags) = "yaml:\"reserved_offer_coin_fee\"",
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
example: "{\"denom\": \"denomX\", \"amount\": \"5000\"}",
format: "sdk.Coin"
}
];
// MsgSwapWithinBatch
MsgSwapWithinBatch msg = 10 [(gogoproto.moretags) = "yaml:\"msg\""];
}