import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
import { ModuleRoute, ModuleRouteAmino, ModuleRouteSDKType } from "./module_route";
import { DenomPairTakerFee, DenomPairTakerFeeAmino, DenomPairTakerFeeSDKType } from "./tx";
import { BinaryReader, BinaryWriter } from "../../../binary";
/** Params holds parameters for the poolmanager module */
export interface Params {
poolCreationFee: Coin[];
/** taker_fee_params is the container of taker fee parameters. */
takerFeeParams: TakerFeeParams;
/**
* authorized_quote_denoms is a list of quote denoms that can be used as
* token1 when creating a concentrated pool. We limit the quote assets to a
* small set for the purposes of having convenient price increments stemming
* from tick to price conversion. These increments are in a human readable
* magnitude only for token1 as a quote. For limit orders in the future, this
* will be a desirable property in terms of UX as to allow users to set limit
* orders at prices in terms of token1 (quote asset) that are easy to reason
* about.
*/
authorizedQuoteDenoms: string[];
}
export interface ParamsProtoMsg {
typeUrl: "/osmosis.poolmanager.v1beta1.Params";
value: Uint8Array;
}
/** Params holds parameters for the poolmanager module */
export interface ParamsAmino {
pool_creation_fee?: CoinAmino[];
/** taker_fee_params is the container of taker fee parameters. */
taker_fee_params?: TakerFeeParamsAmino;
/**
* authorized_quote_denoms is a list of quote denoms that can be used as
* token1 when creating a concentrated pool. We limit the quote assets to a
* small set for the purposes of having convenient price increments stemming
* from tick to price conversion. These increments are in a human readable
* magnitude only for token1 as a quote. For limit orders in the future, this
* will be a desirable property in terms of UX as to allow users to set limit
* orders at prices in terms of token1 (quote asset) that are easy to reason
* about.
*/
authorized_quote_denoms?: string[];
}
export interface ParamsAminoMsg {
type: "osmosis/poolmanager/params";
value: ParamsAmino;
}
/** Params holds parameters for the poolmanager module */
export interface ParamsSDKType {
pool_creation_fee: CoinSDKType[];
taker_fee_params: TakerFeeParamsSDKType;
authorized_quote_denoms: string[];
}
/** GenesisState defines the poolmanager module's genesis state. */
export interface GenesisState {
/** the next_pool_id */
nextPoolId: bigint;
/** params is the container of poolmanager parameters. */
params: Params;
/** pool_routes is the container of the mappings from pool id to pool type. */
poolRoutes: ModuleRoute[];
/** KVStore state */
takerFeesTracker?: TakerFeesTracker;
poolVolumes: PoolVolume[];
denomPairTakerFeeStore: DenomPairTakerFee[];
}
export interface GenesisStateProtoMsg {
typeUrl: "/osmosis.poolmanager.v1beta1.GenesisState";
value: Uint8Array;
}
/** GenesisState defines the poolmanager module's genesis state. */
export interface GenesisStateAmino {
/** the next_pool_id */
next_pool_id?: string;
/** params is the container of poolmanager parameters. */
params?: ParamsAmino;
/** pool_routes is the container of the mappings from pool id to pool type. */
pool_routes?: ModuleRouteAmino[];
/** KVStore state */
taker_fees_tracker?: TakerFeesTrackerAmino;
pool_volumes?: PoolVolumeAmino[];
denom_pair_taker_fee_store?: DenomPairTakerFeeAmino[];
}
export interface GenesisStateAminoMsg {
type: "osmosis/poolmanager/genesis-state";
value: GenesisStateAmino;
}
/** GenesisState defines the poolmanager module's genesis state. */
export interface GenesisStateSDKType {
next_pool_id: bigint;
params: ParamsSDKType;
pool_routes: ModuleRouteSDKType[];
taker_fees_tracker?: TakerFeesTrackerSDKType;
pool_volumes: PoolVolumeSDKType[];
denom_pair_taker_fee_store: DenomPairTakerFeeSDKType[];
}
/** TakerFeeParams consolidates the taker fee parameters for the poolmanager. */
export interface TakerFeeParams {
/**
* default_taker_fee is the fee used when creating a new pool that doesn't
* fall under a custom pool taker fee or stableswap taker fee category.
*/
defaultTakerFee: string;
/**
* osmo_taker_fee_distribution defines the distribution of taker fees
* generated in OSMO. As of this writing, it has two categories:
* - staking_rewards: the percent of the taker fee that gets distributed to
* stakers.
* - community_pool: the percent of the taker fee that gets sent to the
* community pool.
*/
osmoTakerFeeDistribution: TakerFeeDistributionPercentage;
/**
* non_osmo_taker_fee_distribution defines the distribution of taker fees
* generated in non-OSMO. As of this writing, it has two categories:
* - staking_rewards: the percent of the taker fee that gets swapped to OSMO
* and then distributed to stakers.
* - community_pool: the percent of the taker fee that gets sent to the
* community pool. Note: If the non-OSMO asset is an authorized_quote_denom,
* that denom is sent directly to the community pool. Otherwise, it is
* swapped to the community_pool_denom_to_swap_non_whitelisted_assets_to and
* then sent to the community pool as that denom.
*/
nonOsmoTakerFeeDistribution: TakerFeeDistributionPercentage;
/**
* admin_addresses is a list of addresses that are allowed to set and remove
* custom taker fees for denom pairs. Governance also has the ability to set
* and remove custom taker fees for denom pairs, but with the normal
* governance delay.
*/
adminAddresses: string[];
/**
* community_pool_denom_to_swap_non_whitelisted_assets_to is the denom that
* non-whitelisted taker fees will be swapped to before being sent to
* the community pool.
*/
communityPoolDenomToSwapNonWhitelistedAssetsTo: string;
/**
* reduced_fee_whitelist is a list of addresses that are
* allowed to pay a reduce taker fee when performing a swap
* (i.e. swap without paying the taker fee).
* It is intended to be used for integrators who meet qualifying factors
* that are approved by governance.
* Initially, the taker fee is allowed to be bypassed completely. However
* In the future, we will charge a reduced taker fee instead of no fee at all.
*/
reducedFeeWhitelist: string[];
}
export interface TakerFeeParamsProtoMsg {
typeUrl: "/osmosis.poolmanager.v1beta1.TakerFeeParams";
value: Uint8Array;
}
/** TakerFeeParams consolidates the taker fee parameters for the poolmanager. */
export interface TakerFeeParamsAmino {
/**
* default_taker_fee is the fee used when creating a new pool that doesn't
* fall under a custom pool taker fee or stableswap taker fee category.
*/
default_taker_fee?: string;
/**
* osmo_taker_fee_distribution defines the distribution of taker fees
* generated in OSMO. As of this writing, it has two categories:
* - staking_rewards: the percent of the taker fee that gets distributed to
* stakers.
* - community_pool: the percent of the taker fee that gets sent to the
* community pool.
*/
osmo_taker_fee_distribution?: TakerFeeDistributionPercentageAmino;
/**
* non_osmo_taker_fee_distribution defines the distribution of taker fees
* generated in non-OSMO. As of this writing, it has two categories:
* - staking_rewards: the percent of the taker fee that gets swapped to OSMO
* and then distributed to stakers.
* - community_pool: the percent of the taker fee that gets sent to the
* community pool. Note: If the non-OSMO asset is an authorized_quote_denom,
* that denom is sent directly to the community pool. Otherwise, it is
* swapped to the community_pool_denom_to_swap_non_whitelisted_assets_to and
* then sent to the community pool as that denom.
*/
non_osmo_taker_fee_distribution?: TakerFeeDistributionPercentageAmino;
/**
* admin_addresses is a list of addresses that are allowed to set and remove
* custom taker fees for denom pairs. Governance also has the ability to set
* and remove custom taker fees for denom pairs, but with the normal
* governance delay.
*/
admin_addresses?: string[];
/**
* community_pool_denom_to_swap_non_whitelisted_assets_to is the denom that
* non-whitelisted taker fees will be swapped to before being sent to
* the community pool.
*/
community_pool_denom_to_swap_non_whitelisted_assets_to?: string;
/**
* reduced_fee_whitelist is a list of addresses that are
* allowed to pay a reduce taker fee when performing a swap
* (i.e. swap without paying the taker fee).
* It is intended to be used for integrators who meet qualifying factors
* that are approved by governance.
* Initially, the taker fee is allowed to be bypassed completely. However
* In the future, we will charge a reduced taker fee instead of no fee at all.
*/
reduced_fee_whitelist?: string[];
}
export interface TakerFeeParamsAminoMsg {
type: "osmosis/poolmanager/taker-fee-params";
value: TakerFeeParamsAmino;
}
/** TakerFeeParams consolidates the taker fee parameters for the poolmanager. */
export interface TakerFeeParamsSDKType {
default_taker_fee: string;
osmo_taker_fee_distribution: TakerFeeDistributionPercentageSDKType;
non_osmo_taker_fee_distribution: TakerFeeDistributionPercentageSDKType;
admin_addresses: string[];
community_pool_denom_to_swap_non_whitelisted_assets_to: string;
reduced_fee_whitelist: string[];
}
/**
* TakerFeeDistributionPercentage defines what percent of the taker fee category
* gets distributed to the available categories.
*/
export interface TakerFeeDistributionPercentage {
stakingRewards: string;
communityPool: string;
}
export interface TakerFeeDistributionPercentageProtoMsg {
typeUrl: "/osmosis.poolmanager.v1beta1.TakerFeeDistributionPercentage";
value: Uint8Array;
}
/**
* TakerFeeDistributionPercentage defines what percent of the taker fee category
* gets distributed to the available categories.
*/
export interface TakerFeeDistributionPercentageAmino {
staking_rewards?: string;
community_pool?: string;
}
export interface TakerFeeDistributionPercentageAminoMsg {
type: "osmosis/poolmanager/taker-fee-distribution-percentage";
value: TakerFeeDistributionPercentageAmino;
}
/**
* TakerFeeDistributionPercentage defines what percent of the taker fee category
* gets distributed to the available categories.
*/
export interface TakerFeeDistributionPercentageSDKType {
staking_rewards: string;
community_pool: string;
}
export interface TakerFeesTracker {
takerFeesToStakers: Coin[];
takerFeesToCommunityPool: Coin[];
heightAccountingStartsFrom: bigint;
}
export interface TakerFeesTrackerProtoMsg {
typeUrl: "/osmosis.poolmanager.v1beta1.TakerFeesTracker";
value: Uint8Array;
}
export interface TakerFeesTrackerAmino {
taker_fees_to_stakers?: CoinAmino[];
taker_fees_to_community_pool?: CoinAmino[];
height_accounting_starts_from?: string;
}
export interface TakerFeesTrackerAminoMsg {
type: "osmosis/poolmanager/taker-fees-tracker";
value: TakerFeesTrackerAmino;
}
export interface TakerFeesTrackerSDKType {
taker_fees_to_stakers: CoinSDKType[];
taker_fees_to_community_pool: CoinSDKType[];
height_accounting_starts_from: bigint;
}
/**
* PoolVolume stores the KVStore entries for each pool's volume, which
* is used in export/import genesis.
*/
export interface PoolVolume {
/** pool_id is the id of the pool. */
poolId: bigint;
/** pool_volume is the cumulative volume of the pool. */
poolVolume: Coin[];
}
export interface PoolVolumeProtoMsg {
typeUrl: "/osmosis.poolmanager.v1beta1.PoolVolume";
value: Uint8Array;
}
/**
* PoolVolume stores the KVStore entries for each pool's volume, which
* is used in export/import genesis.
*/
export interface PoolVolumeAmino {
/** pool_id is the id of the pool. */
pool_id?: string;
/** pool_volume is the cumulative volume of the pool. */
pool_volume?: CoinAmino[];
}
export interface PoolVolumeAminoMsg {
type: "osmosis/poolmanager/pool-volume";
value: PoolVolumeAmino;
}
/**
* PoolVolume stores the KVStore entries for each pool's volume, which
* is used in export/import genesis.
*/
export interface PoolVolumeSDKType {
pool_id: bigint;
pool_volume: CoinSDKType[];
}
export declare const Params: {
typeUrl: string;
aminoType: string;
is(o: any): o is Params;
isSDK(o: any): o is ParamsSDKType;
isAmino(o: any): o is ParamsAmino;
encode(message: Params, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): Params;
fromPartial(object: Partial<Params>): Params;
fromAmino(object: ParamsAmino): Params;
toAmino(message: Params): ParamsAmino;
fromAminoMsg(object: ParamsAminoMsg): Params;
toAminoMsg(message: Params): ParamsAminoMsg;
fromProtoMsg(message: ParamsProtoMsg): Params;
toProto(message: Params): Uint8Array;
toProtoMsg(message: Params): ParamsProtoMsg;
};
export declare const GenesisState: {
typeUrl: string;
aminoType: string;
is(o: any): o is GenesisState;
isSDK(o: any): o is GenesisStateSDKType;
isAmino(o: any): o is GenesisStateAmino;
encode(message: GenesisState, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): GenesisState;
fromPartial(object: Partial<GenesisState>): GenesisState;
fromAmino(object: GenesisStateAmino): GenesisState;
toAmino(message: GenesisState): GenesisStateAmino;
fromAminoMsg(object: GenesisStateAminoMsg): GenesisState;
toAminoMsg(message: GenesisState): GenesisStateAminoMsg;
fromProtoMsg(message: GenesisStateProtoMsg): GenesisState;
toProto(message: GenesisState): Uint8Array;
toProtoMsg(message: GenesisState): GenesisStateProtoMsg;
};
export declare const TakerFeeParams: {
typeUrl: string;
aminoType: string;
is(o: any): o is TakerFeeParams;
isSDK(o: any): o is TakerFeeParamsSDKType;
isAmino(o: any): o is TakerFeeParamsAmino;
encode(message: TakerFeeParams, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): TakerFeeParams;
fromPartial(object: Partial<TakerFeeParams>): TakerFeeParams;
fromAmino(object: TakerFeeParamsAmino): TakerFeeParams;
toAmino(message: TakerFeeParams): TakerFeeParamsAmino;
fromAminoMsg(object: TakerFeeParamsAminoMsg): TakerFeeParams;
toAminoMsg(message: TakerFeeParams): TakerFeeParamsAminoMsg;
fromProtoMsg(message: TakerFeeParamsProtoMsg): TakerFeeParams;
toProto(message: TakerFeeParams): Uint8Array;
toProtoMsg(message: TakerFeeParams): TakerFeeParamsProtoMsg;
};
export declare const TakerFeeDistributionPercentage: {
typeUrl: string;
aminoType: string;
is(o: any): o is TakerFeeDistributionPercentage;
isSDK(o: any): o is TakerFeeDistributionPercentageSDKType;
isAmino(o: any): o is TakerFeeDistributionPercentageAmino;
encode(message: TakerFeeDistributionPercentage, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): TakerFeeDistributionPercentage;
fromPartial(object: Partial<TakerFeeDistributionPercentage>): TakerFeeDistributionPercentage;
fromAmino(object: TakerFeeDistributionPercentageAmino): TakerFeeDistributionPercentage;
toAmino(message: TakerFeeDistributionPercentage): TakerFeeDistributionPercentageAmino;
fromAminoMsg(object: TakerFeeDistributionPercentageAminoMsg): TakerFeeDistributionPercentage;
toAminoMsg(message: TakerFeeDistributionPercentage): TakerFeeDistributionPercentageAminoMsg;
fromProtoMsg(message: TakerFeeDistributionPercentageProtoMsg): TakerFeeDistributionPercentage;
toProto(message: TakerFeeDistributionPercentage): Uint8Array;
toProtoMsg(message: TakerFeeDistributionPercentage): TakerFeeDistributionPercentageProtoMsg;
};
export declare const TakerFeesTracker: {
typeUrl: string;
aminoType: string;
is(o: any): o is TakerFeesTracker;
isSDK(o: any): o is TakerFeesTrackerSDKType;
isAmino(o: any): o is TakerFeesTrackerAmino;
encode(message: TakerFeesTracker, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): TakerFeesTracker;
fromPartial(object: Partial<TakerFeesTracker>): TakerFeesTracker;
fromAmino(object: TakerFeesTrackerAmino): TakerFeesTracker;
toAmino(message: TakerFeesTracker): TakerFeesTrackerAmino;
fromAminoMsg(object: TakerFeesTrackerAminoMsg): TakerFeesTracker;
toAminoMsg(message: TakerFeesTracker): TakerFeesTrackerAminoMsg;
fromProtoMsg(message: TakerFeesTrackerProtoMsg): TakerFeesTracker;
toProto(message: TakerFeesTracker): Uint8Array;
toProtoMsg(message: TakerFeesTracker): TakerFeesTrackerProtoMsg;
};
export declare const PoolVolume: {
typeUrl: string;
aminoType: string;
is(o: any): o is PoolVolume;
isSDK(o: any): o is PoolVolumeSDKType;
isAmino(o: any): o is PoolVolumeAmino;
encode(message: PoolVolume, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): PoolVolume;
fromPartial(object: Partial<PoolVolume>): PoolVolume;
fromAmino(object: PoolVolumeAmino): PoolVolume;
toAmino(message: PoolVolume): PoolVolumeAmino;
fromAminoMsg(object: PoolVolumeAminoMsg): PoolVolume;
toAminoMsg(message: PoolVolume): PoolVolumeAminoMsg;
fromProtoMsg(message: PoolVolumeProtoMsg): PoolVolume;
toProto(message: PoolVolume): Uint8Array;
toProtoMsg(message: PoolVolume): PoolVolumeProtoMsg;
};