uibc

package
v6.5.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2024 License: Apache-2.0 Imports: 39 Imported by: 0

README

IBC Transfer and Rate Limits for IBC Denoms

Abstract

The x/uibc is a Cosmos Module providing:

  • IBC Quota is an ICS-4 middleware for the ICS-20 token transfer app to apply quota mechanism.

Content

IBC ICS20 Hooks

The IBC ICS20 hooks are part of our ICS20 middleware that enables ICS-20 token transfers to trigger message execution. This functionality allows cross-chain calls that involve token movement. IBC hooks enable powerful use cases such as cross-chain lending and leverage.

Hooks: Concepts

Users can define ICS20 hook instructions in the ICS20 transfer Memo field, that will trigger a procedure call once the transfer is successfully recorded in the UX Chain.

Hooks: Design

The ICS20 packet data Memo field (introduced in IBC v3.4.0) allows attaching arbitrary data to a token transfer. The hook execution will be triggered if and only if:

  • The packet data memo field can be JSON deserialized into the umee/uibc/v1/ICS20Memo. This means that the JSON serialized object into the memo string must extend the ICS20Memo struct.
  • ICS20Memo.fallback_addr if defined, must be a correct bech32 Umee address.

The fallback address is optional. It is used when the memo is valid, but the hook execution (messages) fails. We strongly recommend to always use it. Otherwise, the funds can be stuck in the chain if the hook execution fails. If memo has a correct structure, and fallback addr is defined but malformed, we cancel the transfer (otherwise we would not be able to use it correctly).

The hooks processing has the following flow:

  • Check ICS20 Quota. If quota exceeds, the transfer is cancelled.
  • Deserialize Memo into ICS20Memo. If fails, assume the memo doesn't have hook instructions and continue with a normal transfer.
  • Validate ICS20Memo.fallback_addr. If fails, the transfer is cancelled.
  • Unpack and validate ICS20Memo.messsages (procedures). If fails, continue with the transfer, and overwrite the recipient with the fallback_addr if it is defined.
  • Execute the transfer.
  • Execute the hooks messages. If they fail and fallback_addr is defined, then revert the transfer (and all related state changes and events) and use send the tokens to the fallback_addr instead.
Proto
message ICS20Memo {
  // messages is a list of `sdk.Msg`s that will be executed when handling ICS20 transfer.
  repeated google.protobuf.Any messages = 1;
  // fallback_addr [optional] is a bech23 account address used to overwrite the original ICS20
  // recipient as described in the Design section above.
  string fallback_addr = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
}
Supported Messages

The ICS20Memo is a list of native sdk.Message. Only the following combinations are supported currently:

  • [MsgSupply]
  • [MsgSupplyCollateral]
  • [MsgLiquidate]

Validation:

  • The operator (defined as the message signer) in each message, must be the same as the ICS20 transfer recipient,
  • messages must only use the subset of the transferred tokens.

NOTE: because the received amount of tokens may be different from the amount originally sent (relayers or hop chains may charge transfer fees), if the amount of tokens in each message exceeds the amount received, we adjust the token amount in the messages.

Example

Example 1: valid Memo Hook. Send 400 ibc/C0737D24596F82E8BD5471426ED00BDB5DA34FF13BE2DC0B23F7B35EA992B5CD (here, the denom is an IBC denom of remote chain representing uumee). Execute a hook procedure to supply and collateralize 312uumee and the reminder amount will be credited to the recipient balance.

{
  "fallback_addr": "umee10h9stc5v6ntgeygf5xf945njqq5h32r5r2argu",
  "messages": [
    {
      "@type": "/umee.leverage.v1.MsgSupplyCollateral",
      "supplier": "umee1y6xz2ggfc0pcsmyjlekh0j9pxh6hk87ymc9due",
      "asset": { "denom": "uumee", "amount": "312" }
    }
  ]
}

Command to make a transaction:

umeed tx ibc-transfer transfer transfer channel-1 umee1y6xz2ggfc0pcsmyjlekh0j9pxh6hk87ymc9due  \
  400ibc/C0737D24596F82E8BD5471426ED00BDB5DA34FF13BE2DC0B23F7B35EA992B5CD \
  --from umee1y6xz2ggfc0pcsmyjlekh0j9pxh6hk87ymc9due \
  --memo '{"fallback_addr":"umee10h9stc5v6ntgeygf5xf945njqq5h32r5r2argu","messages":[{"@type":"/umee.leverage.v1.MsgSupplyCollateral","supplier":"umee1y6xz2ggfc0pcsmyjlekh0j9pxh6hk87ymc9due","asset":{"denom":"uumee","amount":"312"}}]}'

Example 2: memo struct is correct, struct is correct, but it doesn't pass the validation. The procedure wants to use uother denom, but the transfer sends uumee coins. Since the fallback_addr is correctly defined, all coins will go to the fallback_addr.

{
  "fallback_addr": "umee10h9stc5v6ntgeygf5xf945njqq5h32r5r2argu",
  "messages": [
    {
      "@type": "/umee.leverage.v1.MsgSupplyCollateral",
      "supplier": "umee1y6xz2ggfc0pcsmyjlekh0j9pxh6hk87ymc9due",
      "asset": { "denom": "uother", "amount": "312" }
    }
  ]
}

Command to make a transaction:

$ umeed tx ibc-transfer transfer transfer channel-1 umee1y6xz2ggfc0pcsmyjlekh0j9pxh6hk87ymc9due \
  400ibc/C0737D24596F82E8BD5471426ED00BDB5DA34FF13BE2DC0B23F7B35EA992B5CD \
  --from umee1y6xz2ggfc0pcsmyjlekh0j9pxh6hk87ymc9due \
  --memo '{"fallback_addr":"umee10h9stc5v6ntgeygf5xf945njqq5h32r5r2argu","messages":[{"@type":"/umee.leverage.v1.MsgSupplyCollateral","supplier":"umee1y6xz2ggfc0pcsmyjlekh0j9pxh6hk87ymc9due","asset":{"denom":"uother","amount":"312"}}]}'
Compatibility with IBC Apps Hooks

The IBC Apps repo has ibc-hooks middleware, which has similar functionality and the Memo structure is compatible with the one defined here. IBC App hooks support only CosmWasm procedures, with instructions defined in the Memo.wasm field and fallback fully managed by the CW contract. This implementation is compatible with IBC Apps: in the future we can support IBC Apps wasm hooks, without breaking our Memo struct.

Limitations

The current protocol requires that the IBC receiver is the same as the "operator" (supplier, liquidator) in the Memo.messages. Authz is not supported in the hook execution context.

IBC ICS20 Quota

Hack or lending abuse is impossible to stop once the funds leave the chain. One mitigation is to limit the IBC inflows and outflows and be able to stop a chain and recover the funds with a migration.

Quota: Concept

Inflow is an ICS-20 transaction of sending tokens to the Umee chain. Outflow is an ICS-20 transaction sending tokens out of the Umee chain.

IBC Quota is an upper limit in USD amount.

Quota: Design

All inflows and outflows are measured in token average USD value using our x/oracle AvgKeeper. The AvgKeeper aggregates TVWAP prices over a 16h window.

We are tracking inflows and outflows for tokens which are registered in x/leverage Token Registry. NOTE: we measure per token as defined in the x/leverage, not the IBC Denom Path (there can be multiple paths). Since creating a channel is permission less, we want to use the same quota token. For inflows:

  • inflows: metric per token.
  • inflow_sum : sum of all inflows from the previous point.

Similarly to inflows, we measure outflows per token and aggregates (sum):

  • outflows: metric per token.
  • outflow_sum: sum of outflows from the previous point.

The metrics above are reset every params.quota_duration in Begin Blocker. Example: if the reset was done at 14:00 UTC, then the next reset will be done quota_duration later. You can observe the reset with /umee/uibc/v1/EventQuotaReset event, which will contain next_expire attribute.

Outflow Quota

Inflows and outflows metrics above are used to limit ICS-20 transfers of tokens in the x/leverage Token Registry. The outflow transfer of token X is possible when:

  1. Outflow quota after the transfer is not suppressed:
  2. outflow_sum <= params.total_quota. For example if it's set to 1.6M USD then IBC outflows reaching the total quota will be 600k USD worth of ATOM, 500k USD worth of STATOM, 250k USD worth of UMEE and 250k USD worth JUNO.
  3. token_quota[X] <= params.token_quota - the token X quota is not suppressed.
  4. OR Outflow quota lifted by inflows is not reached:
  5. outflow_sum <= params.inflow_outflow_quota_base + params.inflow_outflow_quota_rate * inflow_sum
  6. token_quota[X] <= params.inflow_outflow_token_quota_base + params.inflow_outflow_token_quota_rate * inflows[X]

See ../../proto/umee/uibc/v1/quota.proto for the list of all params.

If any total_quota or token_quota parameter is set to zero then we consider it as unlimited.

Transfer is reverted whenever it breaks any quota.

Transfer of tokens, which are not registered in the x/leverage Token Registry are not subject to the quota limit.

ICS-20 Quota control

The ICS-20 quota mechanism is controlled by the Params.IbcStatus, which can have the following values:

  • DISABLED: inflow and quota outflow checks are disabled, essentially allowing all ics-20 transfers.
  • ENABLED: inflow and quota outflow checks are enabled (default value).
  • TRANSFERS_PAUSED: all ICS-20 transfers are disabled.
State

In the state we store:

  • Module parameters.
  • Running sum of total outflow values, serialized as sdk.Dec.
  • Running sum of per token outflow values, serialized as sdk.Dec.
  • Next quota expire time (after which the quota reset happens).
  • Running sum of total inflow values, serialized as sdk.Dec.
  • Running sum of per token inflow values, serialized as sdk.Dec.
Messages

The Messages RPC provides access to the x/gov to change the module parameters.

Queries

The Queries RPC allows querying module parameters and current outflow sums.

Events

All events with description are listed in the events.proto file.

Documentation

Overview

Package uibc is a reverse proxy.

It translates gRPC into RESTful JSON APIs.

Index

Constants

View Source
const (
	// ModuleName defines the module name
	ModuleName = "uibc"

	// StoreKey defines the primary module store key
	StoreKey = ModuleName
)

Variables

View Source
var (
	ErrQuotaExceeded      = errors.Register(ModuleName, 1, "quota transfer exceeded")
	ErrNoQuotaForIBCDenom = errors.Register(ModuleName, 2, "no quota for ibc denom")
)
View Source
var (
	ErrInvalidLengthEvents        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowEvents          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupEvents = fmt.Errorf("proto: unexpected end of group")
)
View Source
var (
	ErrInvalidLengthGenesis        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowGenesis          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupGenesis = fmt.Errorf("proto: unexpected end of group")
)
View Source
var (
	ErrInvalidLengthQuery        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowQuery          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupQuery = fmt.Errorf("proto: unexpected end of group")
)
View Source
var (
	ErrInvalidLengthQuota        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowQuota          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupQuota = fmt.Errorf("proto: unexpected end of group")
)
View Source
var (
	ErrInvalidLengthTx        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowTx          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupTx = fmt.Errorf("proto: unexpected end of group")
)
View Source
var (
	ErrInvalidLengthUibc        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowUibc          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupUibc = fmt.Errorf("proto: unexpected end of group")
)
View Source
var IBCTransferStatus_name = map[int32]string{
	0: "IBC_TRANSFER_STATUS_UNSPECIFIED",
	1: "IBC_TRANSFER_STATUS_QUOTA_DISABLED",
	2: "IBC_TRANSFER_STATUS_QUOTA_ENABLED",
	3: "IBC_TRANSFER_STATUS_QUOTA_OUT_DISABLED",
	4: "IBC_TRANSFER_STATUS_QUOTA_IN_DISABLED",
	5: "IBC_TRANSFER_STATUS_TRANSFERS_PAUSED",
}
View Source
var IBCTransferStatus_value = map[string]int32{
	"IBC_TRANSFER_STATUS_UNSPECIFIED":        0,
	"IBC_TRANSFER_STATUS_QUOTA_DISABLED":     1,
	"IBC_TRANSFER_STATUS_QUOTA_ENABLED":      2,
	"IBC_TRANSFER_STATUS_QUOTA_OUT_DISABLED": 3,
	"IBC_TRANSFER_STATUS_QUOTA_IN_DISABLED":  4,
	"IBC_TRANSFER_STATUS_TRANSFERS_PAUSED":   5,
}
View Source
var (

	// ModuleCdc references the global x/uibc module codec. Note, the codec
	// should ONLY be used in certain instances of tests and for JSON encoding as
	// Amino is still used for that purpose.
	ModuleCdc = codec.NewAminoCodec(amino)
)

Functions

func ExtractDenomFromPacketOnRecv added in v6.4.0

func ExtractDenomFromPacketOnRecv(packet ibcexported.PacketI, denom string) string

ExtractDenomFromPacketOnRecv takes a packet with a valid ICS20 token data in the Data field and returns the denom as represented in the local chain.

func RegisterInterfaces

func RegisterInterfaces(registry cdctypes.InterfaceRegistry)

func RegisterLegacyAminoCodec

func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino)

RegisterLegacyAminoCodec registers the necessary x/uibc interfaces and concrete types on the provided LegacyAmino codec. These types are used for Amino JSON serialization.

func RegisterMsgServer

func RegisterMsgServer(s grpc1.Server, srv MsgServer)

func RegisterQueryHandler

func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error

RegisterQueryHandler registers the http handlers for service Query to "mux". The handlers forward requests to the grpc endpoint over "conn".

func RegisterQueryHandlerClient

func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, client QueryClient) error

RegisterQueryHandlerClient registers the http handlers for service Query to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "QueryClient". Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "QueryClient" doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in "QueryClient" to call the correct interceptors.

func RegisterQueryHandlerFromEndpoint

func RegisterQueryHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)

RegisterQueryHandlerFromEndpoint is same as RegisterQueryHandler but automatically dials to "endpoint" and closes the connection when "ctx" gets done.

func RegisterQueryHandlerServer

func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error

RegisterQueryHandlerServer registers the http handlers for service Query to "mux". UnaryRPC :call QueryServer directly. StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead.

func RegisterQueryServer

func RegisterQueryServer(s grpc1.Server, srv QueryServer)

Types

type BankKeeper

type BankKeeper interface {
	GetDenomMetaData(ctx sdk.Context, denom string) (types.Metadata, bool)
	SetDenomMetaData(ctx sdk.Context, denomMetaData types.Metadata)
	IterateAllDenomMetaData(ctx sdk.Context, cb func(types.Metadata) bool)
}

BankKeeper defines the expected x/bank keeper interface.

type DecCoinSymbol added in v6.3.0

type DecCoinSymbol struct {
	Denom  string                                 `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"`
	Amount github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=amount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"amount"`
	// token symbol name
	Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"`
}

DecCoinSymbol extends the Cosmos SDK DecCoin type and adds symbol name.

func (*DecCoinSymbol) Descriptor added in v6.3.0

func (*DecCoinSymbol) Descriptor() ([]byte, []int)

func (*DecCoinSymbol) Marshal added in v6.3.0

func (m *DecCoinSymbol) Marshal() (dAtA []byte, err error)

func (*DecCoinSymbol) MarshalTo added in v6.3.0

func (m *DecCoinSymbol) MarshalTo(dAtA []byte) (int, error)

func (*DecCoinSymbol) MarshalToSizedBuffer added in v6.3.0

func (m *DecCoinSymbol) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*DecCoinSymbol) ProtoMessage added in v6.3.0

func (*DecCoinSymbol) ProtoMessage()

func (*DecCoinSymbol) Reset added in v6.3.0

func (m *DecCoinSymbol) Reset()

func (*DecCoinSymbol) Size added in v6.3.0

func (m *DecCoinSymbol) Size() (n int)

func (*DecCoinSymbol) String added in v6.3.0

func (m *DecCoinSymbol) String() string

func (*DecCoinSymbol) Unmarshal added in v6.3.0

func (m *DecCoinSymbol) Unmarshal(dAtA []byte) error

func (*DecCoinSymbol) XXX_DiscardUnknown added in v6.3.0

func (m *DecCoinSymbol) XXX_DiscardUnknown()

func (*DecCoinSymbol) XXX_Marshal added in v6.3.0

func (m *DecCoinSymbol) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*DecCoinSymbol) XXX_Merge added in v6.3.0

func (m *DecCoinSymbol) XXX_Merge(src proto.Message)

func (*DecCoinSymbol) XXX_MessageName added in v6.3.0

func (*DecCoinSymbol) XXX_MessageName() string

func (*DecCoinSymbol) XXX_Size added in v6.3.0

func (m *DecCoinSymbol) XXX_Size() int

func (*DecCoinSymbol) XXX_Unmarshal added in v6.3.0

func (m *DecCoinSymbol) XXX_Unmarshal(b []byte) error

type EventBadRevert

type EventBadRevert struct {
	// failure event type
	FailureType string `protobuf:"bytes,1,opt,name=failure_type,json=failureType,proto3" json:"failure_type,omitempty"`
	// ibc packet data
	Packet string `protobuf:"bytes,2,opt,name=packet,proto3" json:"packet,omitempty"`
}

EventBadRevert is emitted on failure of ibc-transfer quota.

func (*EventBadRevert) Descriptor

func (*EventBadRevert) Descriptor() ([]byte, []int)

func (*EventBadRevert) Marshal

func (m *EventBadRevert) Marshal() (dAtA []byte, err error)

func (*EventBadRevert) MarshalTo

func (m *EventBadRevert) MarshalTo(dAtA []byte) (int, error)

func (*EventBadRevert) MarshalToSizedBuffer

func (m *EventBadRevert) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*EventBadRevert) ProtoMessage

func (*EventBadRevert) ProtoMessage()

func (*EventBadRevert) Reset

func (m *EventBadRevert) Reset()

func (*EventBadRevert) Size

func (m *EventBadRevert) Size() (n int)

func (*EventBadRevert) String

func (m *EventBadRevert) String() string

func (*EventBadRevert) Unmarshal

func (m *EventBadRevert) Unmarshal(dAtA []byte) error

func (*EventBadRevert) XXX_DiscardUnknown

func (m *EventBadRevert) XXX_DiscardUnknown()

func (*EventBadRevert) XXX_Marshal

func (m *EventBadRevert) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*EventBadRevert) XXX_Merge

func (m *EventBadRevert) XXX_Merge(src proto.Message)

func (*EventBadRevert) XXX_Size

func (m *EventBadRevert) XXX_Size() int

func (*EventBadRevert) XXX_Unmarshal

func (m *EventBadRevert) XXX_Unmarshal(b []byte) error

type EventIBCTransferStatus

type EventIBCTransferStatus struct {
	Status IBCTransferStatus `protobuf:"varint,1,opt,name=status,proto3,enum=umee.uibc.v1.IBCTransferStatus" json:"status,omitempty"`
}

EventIBCTransferStatus is emitted on quota tracking pause status change.

func (*EventIBCTransferStatus) Descriptor

func (*EventIBCTransferStatus) Descriptor() ([]byte, []int)

func (*EventIBCTransferStatus) Marshal

func (m *EventIBCTransferStatus) Marshal() (dAtA []byte, err error)

func (*EventIBCTransferStatus) MarshalTo

func (m *EventIBCTransferStatus) MarshalTo(dAtA []byte) (int, error)

func (*EventIBCTransferStatus) MarshalToSizedBuffer

func (m *EventIBCTransferStatus) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*EventIBCTransferStatus) ProtoMessage

func (*EventIBCTransferStatus) ProtoMessage()

func (*EventIBCTransferStatus) Reset

func (m *EventIBCTransferStatus) Reset()

func (*EventIBCTransferStatus) Size

func (m *EventIBCTransferStatus) Size() (n int)

func (*EventIBCTransferStatus) String

func (m *EventIBCTransferStatus) String() string

func (*EventIBCTransferStatus) Unmarshal

func (m *EventIBCTransferStatus) Unmarshal(dAtA []byte) error

func (*EventIBCTransferStatus) XXX_DiscardUnknown

func (m *EventIBCTransferStatus) XXX_DiscardUnknown()

func (*EventIBCTransferStatus) XXX_Marshal

func (m *EventIBCTransferStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*EventIBCTransferStatus) XXX_Merge

func (m *EventIBCTransferStatus) XXX_Merge(src proto.Message)

func (*EventIBCTransferStatus) XXX_Size

func (m *EventIBCTransferStatus) XXX_Size() int

func (*EventIBCTransferStatus) XXX_Unmarshal

func (m *EventIBCTransferStatus) XXX_Unmarshal(b []byte) error

type EventICS20Hooks added in v6.4.0

type EventICS20Hooks struct {
	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

EventICS20Hooks is emitted on MsgGovToggleICS20Hooks.

func (*EventICS20Hooks) Descriptor added in v6.4.0

func (*EventICS20Hooks) Descriptor() ([]byte, []int)

func (*EventICS20Hooks) Marshal added in v6.4.0

func (m *EventICS20Hooks) Marshal() (dAtA []byte, err error)

func (*EventICS20Hooks) MarshalTo added in v6.4.0

func (m *EventICS20Hooks) MarshalTo(dAtA []byte) (int, error)

func (*EventICS20Hooks) MarshalToSizedBuffer added in v6.4.0

func (m *EventICS20Hooks) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*EventICS20Hooks) ProtoMessage added in v6.4.0

func (*EventICS20Hooks) ProtoMessage()

func (*EventICS20Hooks) Reset added in v6.4.0

func (m *EventICS20Hooks) Reset()

func (*EventICS20Hooks) Size added in v6.4.0

func (m *EventICS20Hooks) Size() (n int)

func (*EventICS20Hooks) String added in v6.4.0

func (m *EventICS20Hooks) String() string

func (*EventICS20Hooks) Unmarshal added in v6.4.0

func (m *EventICS20Hooks) Unmarshal(dAtA []byte) error

func (*EventICS20Hooks) XXX_DiscardUnknown added in v6.4.0

func (m *EventICS20Hooks) XXX_DiscardUnknown()

func (*EventICS20Hooks) XXX_Marshal added in v6.4.0

func (m *EventICS20Hooks) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*EventICS20Hooks) XXX_Merge added in v6.4.0

func (m *EventICS20Hooks) XXX_Merge(src proto.Message)

func (*EventICS20Hooks) XXX_Size added in v6.4.0

func (m *EventICS20Hooks) XXX_Size() int

func (*EventICS20Hooks) XXX_Unmarshal added in v6.4.0

func (m *EventICS20Hooks) XXX_Unmarshal(b []byte) error

type GenesisState

type GenesisState struct {
	Params   Params                                      `protobuf:"bytes,1,opt,name=params,proto3" json:"params"`
	Outflows github_com_cosmos_cosmos_sdk_types.DecCoins `protobuf:"bytes,2,rep,name=outflows,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.DecCoins" json:"outflows"`
	// outflow_sum defines the total outflow sum of ibc-transfer in USD.
	OutflowSum github_com_cosmos_cosmos_sdk_types.Dec `` /* 131-byte string literal not displayed */
	// quota_expires defines quota expire time (as unix timestamp) for ibc-transfer denom.
	QuotaExpires time.Time `` /* 127-byte string literal not displayed */
	// inflows tracks IBC inflow transfers (in USD) for each denom during quota period.
	Inflows github_com_cosmos_cosmos_sdk_types.DecCoins `protobuf:"bytes,5,rep,name=inflows,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.DecCoins" json:"inflows"`
	// inflow_sum defines tracks total sum of IBC inflow transfers (in USD) during quota period.
	InflowSum github_com_cosmos_cosmos_sdk_types.Dec `` /* 128-byte string literal not displayed */
}

GenesisState defines the uibc module's genesis state.

func DefaultGenesisState

func DefaultGenesisState() *GenesisState

func NewGenesisState

func NewGenesisState(params Params, outflows sdk.DecCoins, outflowSum sdk.Dec) *GenesisState

func (*GenesisState) Descriptor

func (*GenesisState) Descriptor() ([]byte, []int)

func (*GenesisState) Marshal

func (m *GenesisState) Marshal() (dAtA []byte, err error)

func (*GenesisState) MarshalTo

func (m *GenesisState) MarshalTo(dAtA []byte) (int, error)

func (*GenesisState) MarshalToSizedBuffer

func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*GenesisState) ProtoMessage

func (*GenesisState) ProtoMessage()

func (*GenesisState) Reset

func (m *GenesisState) Reset()

func (*GenesisState) Size

func (m *GenesisState) Size() (n int)

func (*GenesisState) String

func (m *GenesisState) String() string

func (*GenesisState) Unmarshal

func (m *GenesisState) Unmarshal(dAtA []byte) error

func (GenesisState) Validate

func (gs GenesisState) Validate() error

Validate performs basic valida`tion of the interchain accounts GenesisState

func (*GenesisState) XXX_DiscardUnknown

func (m *GenesisState) XXX_DiscardUnknown()

func (*GenesisState) XXX_Marshal

func (m *GenesisState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GenesisState) XXX_Merge

func (m *GenesisState) XXX_Merge(src proto.Message)

func (*GenesisState) XXX_Size

func (m *GenesisState) XXX_Size() int

func (*GenesisState) XXX_Unmarshal

func (m *GenesisState) XXX_Unmarshal(b []byte) error

type IBCTransferStatus

type IBCTransferStatus int32

IBCTransferStatus status of ibc-transfer quota check for inflow and outflow

const (
	// UNSPECIFIED  defines a no-op status.
	IBCTransferStatus_IBC_TRANSFER_STATUS_UNSPECIFIED IBCTransferStatus = 0
	// DISABLED: all inflow and outflow quota checks are disabled.
	IBCTransferStatus_IBC_TRANSFER_STATUS_QUOTA_DISABLED IBCTransferStatus = 1
	// ENABLED: all inflow and outflow quota checks are enabled.
	IBCTransferStatus_IBC_TRANSFER_STATUS_QUOTA_ENABLED IBCTransferStatus = 2
	// DISABLED OUT: outflow quota check is disabled, while the inflow quota check is enabled.
	IBCTransferStatus_IBC_TRANSFER_STATUS_QUOTA_OUT_DISABLED IBCTransferStatus = 3
	// DISABLED IN: inflow quota check is disabled, while the outflow quota check is enabled.
	IBCTransferStatus_IBC_TRANSFER_STATUS_QUOTA_IN_DISABLED IBCTransferStatus = 4
	// PAUSED: all IBC transfers are paused.
	IBCTransferStatus_IBC_TRANSFER_STATUS_TRANSFERS_PAUSED IBCTransferStatus = 5
)

func (IBCTransferStatus) EnumDescriptor

func (IBCTransferStatus) EnumDescriptor() ([]byte, []int)

func (IBCTransferStatus) IBCTransferEnabled

func (status IBCTransferStatus) IBCTransferEnabled() bool

IBCTransferEnabled returns true if the ibc-transfer is enabled for both inflow and outflow."

func (IBCTransferStatus) InflowQuotaEnabled

func (status IBCTransferStatus) InflowQuotaEnabled() bool

InflowQuotaEnabled returns true if inflow quota check is enabled.

func (IBCTransferStatus) OutflowQuotaEnabled

func (status IBCTransferStatus) OutflowQuotaEnabled() bool

OutflowQuotaEnabled returns true if outflow quota check is enabled.

func (IBCTransferStatus) String

func (x IBCTransferStatus) String() string

type ICS20Memo added in v6.3.0

type ICS20Memo struct {
	// messages is a list of `sdk.Msg`s that will be executed when handling ICS20 transfer.
	Messages []*types.Any `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"`
	// fallback_addr [optional] is a bech23 account address used to overwrite the original ICS20
	// recipient when:
	// 1. it is defined
	// 2. and memo is can be properly deserialized into this structure
	// 3. and `messages` processes failed.
	// When memo can't be properly deserialized, then the ICS20 processing will continue to other
	// middlewares.
	FallbackAddr string `protobuf:"bytes,2,opt,name=fallback_addr,json=fallbackAddr,proto3" json:"fallback_addr,omitempty"`
}

ICS20Memo payload for IBC transfer memo field.

func (*ICS20Memo) Descriptor added in v6.3.0

func (*ICS20Memo) Descriptor() ([]byte, []int)

func (ICS20Memo) GetMsgs added in v6.4.0

func (m ICS20Memo) GetMsgs() ([]sdk.Msg, error)

GetMsgs unpacks messages into []sdk.Msg

func (*ICS20Memo) Marshal added in v6.3.0

func (m *ICS20Memo) Marshal() (dAtA []byte, err error)

func (*ICS20Memo) MarshalTo added in v6.3.0

func (m *ICS20Memo) MarshalTo(dAtA []byte) (int, error)

func (*ICS20Memo) MarshalToSizedBuffer added in v6.3.0

func (m *ICS20Memo) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*ICS20Memo) ProtoMessage added in v6.3.0

func (*ICS20Memo) ProtoMessage()

func (*ICS20Memo) Reset added in v6.3.0

func (m *ICS20Memo) Reset()

func (*ICS20Memo) Size added in v6.3.0

func (m *ICS20Memo) Size() (n int)

func (*ICS20Memo) String added in v6.3.0

func (m *ICS20Memo) String() string

func (*ICS20Memo) Unmarshal added in v6.3.0

func (m *ICS20Memo) Unmarshal(dAtA []byte) error

func (ICS20Memo) UnpackInterfaces added in v6.3.0

func (m ICS20Memo) UnpackInterfaces(unpacker types.AnyUnpacker) error

UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces

func (*ICS20Memo) XXX_DiscardUnknown added in v6.3.0

func (m *ICS20Memo) XXX_DiscardUnknown()

func (*ICS20Memo) XXX_Marshal added in v6.3.0

func (m *ICS20Memo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ICS20Memo) XXX_Merge added in v6.3.0

func (m *ICS20Memo) XXX_Merge(src proto.Message)

func (*ICS20Memo) XXX_MessageName added in v6.3.0

func (*ICS20Memo) XXX_MessageName() string

func (*ICS20Memo) XXX_Size added in v6.3.0

func (m *ICS20Memo) XXX_Size() int

func (*ICS20Memo) XXX_Unmarshal added in v6.3.0

func (m *ICS20Memo) XXX_Unmarshal(b []byte) error

type Leverage

type Leverage interface {
	GetTokenSettings(ctx sdk.Context, baseDenom string) (ltypes.Token, error)
	GetAllRegisteredTokens(ctx sdk.Context) []ltypes.Token
	ToToken(ctx sdk.Context, uToken sdk.Coin) (sdk.Coin, error)
	DeriveExchangeRate(ctx sdk.Context, denom string) sdk.Dec
}

type MsgClient

type MsgClient interface {
	// GovUpdateQuota adds new quota for ibc denoms or
	// updates the quota for existed ibc denoms.
	GovUpdateQuota(ctx context.Context, in *MsgGovUpdateQuota, opts ...grpc.CallOption) (*MsgGovUpdateQuotaResponse, error)
	// GovSetIBCStatus sets IBC ICS20 status. Must be called by x/gov.
	GovSetIBCStatus(ctx context.Context, in *MsgGovSetIBCStatus, opts ...grpc.CallOption) (*MsgGovSetIBCStatusResponse, error)
	// GovToggleICS20Hooks enables / disables ICS20 hooks support. Must be called by x/gov.
	GovToggleICS20Hooks(ctx context.Context, in *MsgGovToggleICS20Hooks, opts ...grpc.CallOption) (*MsgGovToggleICS20HooksResponse, error)
}

MsgClient is the client API for Msg service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewMsgClient

func NewMsgClient(cc grpc1.ClientConn) MsgClient

type MsgGovSetIBCStatus

type MsgGovSetIBCStatus struct {
	// authority is the address of the governance account or the Emergency Group.
	Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"`
	// description motivating the change. Should be used only when executing by the
	// Emergency Group. Otherwise the x/gov Proposal metadata should be used.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// ibc_status defines status for ibc transfers
	IbcStatus IBCTransferStatus `protobuf:"varint,4,opt,name=ibc_status,json=ibcStatus,proto3,enum=umee.uibc.v1.IBCTransferStatus" json:"ibc_status,omitempty"`
}

MsgGovSetIBCStatus defines the request type for setting the IBC quota status.

func (*MsgGovSetIBCStatus) Descriptor

func (*MsgGovSetIBCStatus) Descriptor() ([]byte, []int)

func (*MsgGovSetIBCStatus) GetSignBytes

func (msg *MsgGovSetIBCStatus) GetSignBytes() []byte

func (*MsgGovSetIBCStatus) GetSigners

func (msg *MsgGovSetIBCStatus) GetSigners() []sdk.AccAddress

GetSigners implements Msg

func (*MsgGovSetIBCStatus) Marshal

func (m *MsgGovSetIBCStatus) Marshal() (dAtA []byte, err error)

func (*MsgGovSetIBCStatus) MarshalTo

func (m *MsgGovSetIBCStatus) MarshalTo(dAtA []byte) (int, error)

func (*MsgGovSetIBCStatus) MarshalToSizedBuffer

func (m *MsgGovSetIBCStatus) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*MsgGovSetIBCStatus) ProtoMessage

func (*MsgGovSetIBCStatus) ProtoMessage()

func (*MsgGovSetIBCStatus) Reset

func (m *MsgGovSetIBCStatus) Reset()

func (MsgGovSetIBCStatus) Route

func (msg MsgGovSetIBCStatus) Route() string

LegacyMsg.Type implementations

func (*MsgGovSetIBCStatus) Size

func (m *MsgGovSetIBCStatus) Size() (n int)

func (*MsgGovSetIBCStatus) String

func (msg *MsgGovSetIBCStatus) String() string

String implements the Stringer interface.

func (MsgGovSetIBCStatus) Type

func (msg MsgGovSetIBCStatus) Type() string

func (*MsgGovSetIBCStatus) Unmarshal

func (m *MsgGovSetIBCStatus) Unmarshal(dAtA []byte) error

func (*MsgGovSetIBCStatus) ValidateBasic

func (msg *MsgGovSetIBCStatus) ValidateBasic() error

ValidateBasic implements Msg

func (*MsgGovSetIBCStatus) XXX_DiscardUnknown

func (m *MsgGovSetIBCStatus) XXX_DiscardUnknown()

func (*MsgGovSetIBCStatus) XXX_Marshal

func (m *MsgGovSetIBCStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MsgGovSetIBCStatus) XXX_Merge

func (m *MsgGovSetIBCStatus) XXX_Merge(src proto.Message)

func (*MsgGovSetIBCStatus) XXX_MessageName

func (*MsgGovSetIBCStatus) XXX_MessageName() string

func (*MsgGovSetIBCStatus) XXX_Size

func (m *MsgGovSetIBCStatus) XXX_Size() int

func (*MsgGovSetIBCStatus) XXX_Unmarshal

func (m *MsgGovSetIBCStatus) XXX_Unmarshal(b []byte) error

type MsgGovSetIBCStatusResponse

type MsgGovSetIBCStatusResponse struct {
}

MsgGovSetIBCStatusResponse is a response type for Msg/GovSetIBCStatus.

func (*MsgGovSetIBCStatusResponse) Descriptor

func (*MsgGovSetIBCStatusResponse) Descriptor() ([]byte, []int)

func (*MsgGovSetIBCStatusResponse) Marshal

func (m *MsgGovSetIBCStatusResponse) Marshal() (dAtA []byte, err error)

func (*MsgGovSetIBCStatusResponse) MarshalTo

func (m *MsgGovSetIBCStatusResponse) MarshalTo(dAtA []byte) (int, error)

func (*MsgGovSetIBCStatusResponse) MarshalToSizedBuffer

func (m *MsgGovSetIBCStatusResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*MsgGovSetIBCStatusResponse) ProtoMessage

func (*MsgGovSetIBCStatusResponse) ProtoMessage()

func (*MsgGovSetIBCStatusResponse) Reset

func (m *MsgGovSetIBCStatusResponse) Reset()

func (*MsgGovSetIBCStatusResponse) Size

func (m *MsgGovSetIBCStatusResponse) Size() (n int)

func (*MsgGovSetIBCStatusResponse) String

func (m *MsgGovSetIBCStatusResponse) String() string

func (*MsgGovSetIBCStatusResponse) Unmarshal

func (m *MsgGovSetIBCStatusResponse) Unmarshal(dAtA []byte) error

func (*MsgGovSetIBCStatusResponse) XXX_DiscardUnknown

func (m *MsgGovSetIBCStatusResponse) XXX_DiscardUnknown()

func (*MsgGovSetIBCStatusResponse) XXX_Marshal

func (m *MsgGovSetIBCStatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MsgGovSetIBCStatusResponse) XXX_Merge

func (m *MsgGovSetIBCStatusResponse) XXX_Merge(src proto.Message)

func (*MsgGovSetIBCStatusResponse) XXX_MessageName

func (*MsgGovSetIBCStatusResponse) XXX_MessageName() string

func (*MsgGovSetIBCStatusResponse) XXX_Size

func (m *MsgGovSetIBCStatusResponse) XXX_Size() int

func (*MsgGovSetIBCStatusResponse) XXX_Unmarshal

func (m *MsgGovSetIBCStatusResponse) XXX_Unmarshal(b []byte) error

type MsgGovToggleICS20Hooks added in v6.4.0

type MsgGovToggleICS20Hooks struct {
	// authority is the address of the governance account or the Emergency Group.
	Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"`
	// description motivating the change. Should be used only when executing by the
	// Emergency Group. Otherwise the x/gov Proposal metadata should be used.
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// enabled defines if the IBC transfer hooks should be enabled or disabled.
	Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

MsgGovToggleICS20Hooks is a request type for GovToggleICS20Hooks handler.

func (*MsgGovToggleICS20Hooks) Descriptor added in v6.4.0

func (*MsgGovToggleICS20Hooks) Descriptor() ([]byte, []int)

func (*MsgGovToggleICS20Hooks) GetSignBytes added in v6.4.0

func (msg *MsgGovToggleICS20Hooks) GetSignBytes() []byte

func (*MsgGovToggleICS20Hooks) GetSigners added in v6.4.0

func (msg *MsgGovToggleICS20Hooks) GetSigners() []sdk.AccAddress

GetSigners implements Msg

func (*MsgGovToggleICS20Hooks) Marshal added in v6.4.0

func (m *MsgGovToggleICS20Hooks) Marshal() (dAtA []byte, err error)

func (*MsgGovToggleICS20Hooks) MarshalTo added in v6.4.0

func (m *MsgGovToggleICS20Hooks) MarshalTo(dAtA []byte) (int, error)

func (*MsgGovToggleICS20Hooks) MarshalToSizedBuffer added in v6.4.0

func (m *MsgGovToggleICS20Hooks) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*MsgGovToggleICS20Hooks) ProtoMessage added in v6.4.0

func (*MsgGovToggleICS20Hooks) ProtoMessage()

func (*MsgGovToggleICS20Hooks) Reset added in v6.4.0

func (m *MsgGovToggleICS20Hooks) Reset()

func (MsgGovToggleICS20Hooks) Route added in v6.4.0

func (msg MsgGovToggleICS20Hooks) Route() string

LegacyMsg.Type implementations

func (*MsgGovToggleICS20Hooks) Size added in v6.4.0

func (m *MsgGovToggleICS20Hooks) Size() (n int)

func (*MsgGovToggleICS20Hooks) String added in v6.4.0

func (msg *MsgGovToggleICS20Hooks) String() string

String implements the Stringer interface.

func (MsgGovToggleICS20Hooks) Type added in v6.4.0

func (msg MsgGovToggleICS20Hooks) Type() string

func (*MsgGovToggleICS20Hooks) Unmarshal added in v6.4.0

func (m *MsgGovToggleICS20Hooks) Unmarshal(dAtA []byte) error

func (*MsgGovToggleICS20Hooks) ValidateBasic added in v6.4.0

func (msg *MsgGovToggleICS20Hooks) ValidateBasic() error

ValidateBasic implements Msg

func (*MsgGovToggleICS20Hooks) XXX_DiscardUnknown added in v6.4.0

func (m *MsgGovToggleICS20Hooks) XXX_DiscardUnknown()

func (*MsgGovToggleICS20Hooks) XXX_Marshal added in v6.4.0

func (m *MsgGovToggleICS20Hooks) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MsgGovToggleICS20Hooks) XXX_Merge added in v6.4.0

func (m *MsgGovToggleICS20Hooks) XXX_Merge(src proto.Message)

func (*MsgGovToggleICS20Hooks) XXX_MessageName added in v6.4.0

func (*MsgGovToggleICS20Hooks) XXX_MessageName() string

func (*MsgGovToggleICS20Hooks) XXX_Size added in v6.4.0

func (m *MsgGovToggleICS20Hooks) XXX_Size() int

func (*MsgGovToggleICS20Hooks) XXX_Unmarshal added in v6.4.0

func (m *MsgGovToggleICS20Hooks) XXX_Unmarshal(b []byte) error

type MsgGovToggleICS20HooksResponse added in v6.4.0

type MsgGovToggleICS20HooksResponse struct {
}

MsgGovToggleICS20HooksResponse is a response type for Msg/GovToggleICS20Hooks.

func (*MsgGovToggleICS20HooksResponse) Descriptor added in v6.4.0

func (*MsgGovToggleICS20HooksResponse) Descriptor() ([]byte, []int)

func (*MsgGovToggleICS20HooksResponse) Marshal added in v6.4.0

func (m *MsgGovToggleICS20HooksResponse) Marshal() (dAtA []byte, err error)

func (*MsgGovToggleICS20HooksResponse) MarshalTo added in v6.4.0

func (m *MsgGovToggleICS20HooksResponse) MarshalTo(dAtA []byte) (int, error)

func (*MsgGovToggleICS20HooksResponse) MarshalToSizedBuffer added in v6.4.0

func (m *MsgGovToggleICS20HooksResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*MsgGovToggleICS20HooksResponse) ProtoMessage added in v6.4.0

func (*MsgGovToggleICS20HooksResponse) ProtoMessage()

func (*MsgGovToggleICS20HooksResponse) Reset added in v6.4.0

func (m *MsgGovToggleICS20HooksResponse) Reset()

func (*MsgGovToggleICS20HooksResponse) Size added in v6.4.0

func (m *MsgGovToggleICS20HooksResponse) Size() (n int)

func (*MsgGovToggleICS20HooksResponse) String added in v6.4.0

func (*MsgGovToggleICS20HooksResponse) Unmarshal added in v6.4.0

func (m *MsgGovToggleICS20HooksResponse) Unmarshal(dAtA []byte) error

func (*MsgGovToggleICS20HooksResponse) XXX_DiscardUnknown added in v6.4.0

func (m *MsgGovToggleICS20HooksResponse) XXX_DiscardUnknown()

func (*MsgGovToggleICS20HooksResponse) XXX_Marshal added in v6.4.0

func (m *MsgGovToggleICS20HooksResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MsgGovToggleICS20HooksResponse) XXX_Merge added in v6.4.0

func (m *MsgGovToggleICS20HooksResponse) XXX_Merge(src proto.Message)

func (*MsgGovToggleICS20HooksResponse) XXX_MessageName added in v6.4.0

func (*MsgGovToggleICS20HooksResponse) XXX_MessageName() string

func (*MsgGovToggleICS20HooksResponse) XXX_Size added in v6.4.0

func (m *MsgGovToggleICS20HooksResponse) XXX_Size() int

func (*MsgGovToggleICS20HooksResponse) XXX_Unmarshal added in v6.4.0

func (m *MsgGovToggleICS20HooksResponse) XXX_Unmarshal(b []byte) error

type MsgGovUpdateQuota

type MsgGovUpdateQuota struct {
	// authority is the address of the governance account or the Emergency Group.
	Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"`
	// description motivating the change. Should be used only when executing by the
	// Emergency Group. Otherwise the x/gov Proposal metadata should be used.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// total quota defines the total outflow of ibc-transfer in USD
	Total github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=total,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"total"`
	// per_denom quota for outflows per denom. All denoms have the same quota size.
	PerDenom github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=per_denom,json=perDenom,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"per_denom"`
	// quota_duration defines quota expires per denom, All denoms have the same expire time.
	QuotaDuration time.Duration `` /* 134-byte string literal not displayed */
	// Params.inflow_outflow_quota_base
	InflowOutflowQuotaBase github_com_cosmos_cosmos_sdk_types.Dec `` /* 171-byte string literal not displayed */
	// Params.inflow_outflow_quota_rate
	InflowOutflowQuotaRate github_com_cosmos_cosmos_sdk_types.Dec `` /* 171-byte string literal not displayed */
	// Params.inflow_outflow_token_quota_base
	InflowOutflowTokenQuotaBase github_com_cosmos_cosmos_sdk_types.Dec `` /* 188-byte string literal not displayed */
}

MsgGovUpdateQuota defines the Msg/GovUpdateQuota request type.

func (*MsgGovUpdateQuota) Descriptor

func (*MsgGovUpdateQuota) Descriptor() ([]byte, []int)

func (*MsgGovUpdateQuota) GetSignBytes

func (msg *MsgGovUpdateQuota) GetSignBytes() []byte

func (*MsgGovUpdateQuota) GetSigners

func (msg *MsgGovUpdateQuota) GetSigners() []sdk.AccAddress

func (*MsgGovUpdateQuota) Marshal

func (m *MsgGovUpdateQuota) Marshal() (dAtA []byte, err error)

func (*MsgGovUpdateQuota) MarshalTo

func (m *MsgGovUpdateQuota) MarshalTo(dAtA []byte) (int, error)

func (*MsgGovUpdateQuota) MarshalToSizedBuffer

func (m *MsgGovUpdateQuota) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*MsgGovUpdateQuota) ProtoMessage

func (*MsgGovUpdateQuota) ProtoMessage()

func (*MsgGovUpdateQuota) Reset

func (m *MsgGovUpdateQuota) Reset()

func (MsgGovUpdateQuota) Route

func (msg MsgGovUpdateQuota) Route() string

LegacyMsg.Type implementations

func (*MsgGovUpdateQuota) Size

func (m *MsgGovUpdateQuota) Size() (n int)

func (*MsgGovUpdateQuota) String

func (msg *MsgGovUpdateQuota) String() string

String implements the Stringer interface.

func (MsgGovUpdateQuota) Type

func (msg MsgGovUpdateQuota) Type() string

func (*MsgGovUpdateQuota) Unmarshal

func (m *MsgGovUpdateQuota) Unmarshal(dAtA []byte) error

func (*MsgGovUpdateQuota) ValidateBasic

func (msg *MsgGovUpdateQuota) ValidateBasic() error

ValidateBasic implements Msg

func (*MsgGovUpdateQuota) XXX_DiscardUnknown

func (m *MsgGovUpdateQuota) XXX_DiscardUnknown()

func (*MsgGovUpdateQuota) XXX_Marshal

func (m *MsgGovUpdateQuota) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MsgGovUpdateQuota) XXX_Merge

func (m *MsgGovUpdateQuota) XXX_Merge(src proto.Message)

func (*MsgGovUpdateQuota) XXX_MessageName

func (*MsgGovUpdateQuota) XXX_MessageName() string

func (*MsgGovUpdateQuota) XXX_Size

func (m *MsgGovUpdateQuota) XXX_Size() int

func (*MsgGovUpdateQuota) XXX_Unmarshal

func (m *MsgGovUpdateQuota) XXX_Unmarshal(b []byte) error

type MsgGovUpdateQuotaResponse

type MsgGovUpdateQuotaResponse struct {
}

MsgGovUpdateQuotaResponse defines response type for the Msg/GovUpdateQuota for with x/gov proposals.

func (*MsgGovUpdateQuotaResponse) Descriptor

func (*MsgGovUpdateQuotaResponse) Descriptor() ([]byte, []int)

func (*MsgGovUpdateQuotaResponse) Marshal

func (m *MsgGovUpdateQuotaResponse) Marshal() (dAtA []byte, err error)

func (*MsgGovUpdateQuotaResponse) MarshalTo

func (m *MsgGovUpdateQuotaResponse) MarshalTo(dAtA []byte) (int, error)

func (*MsgGovUpdateQuotaResponse) MarshalToSizedBuffer

func (m *MsgGovUpdateQuotaResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*MsgGovUpdateQuotaResponse) ProtoMessage

func (*MsgGovUpdateQuotaResponse) ProtoMessage()

func (*MsgGovUpdateQuotaResponse) Reset

func (m *MsgGovUpdateQuotaResponse) Reset()

func (*MsgGovUpdateQuotaResponse) Size

func (m *MsgGovUpdateQuotaResponse) Size() (n int)

func (*MsgGovUpdateQuotaResponse) String

func (m *MsgGovUpdateQuotaResponse) String() string

func (*MsgGovUpdateQuotaResponse) Unmarshal

func (m *MsgGovUpdateQuotaResponse) Unmarshal(dAtA []byte) error

func (*MsgGovUpdateQuotaResponse) XXX_DiscardUnknown

func (m *MsgGovUpdateQuotaResponse) XXX_DiscardUnknown()

func (*MsgGovUpdateQuotaResponse) XXX_Marshal

func (m *MsgGovUpdateQuotaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MsgGovUpdateQuotaResponse) XXX_Merge

func (m *MsgGovUpdateQuotaResponse) XXX_Merge(src proto.Message)

func (*MsgGovUpdateQuotaResponse) XXX_MessageName

func (*MsgGovUpdateQuotaResponse) XXX_MessageName() string

func (*MsgGovUpdateQuotaResponse) XXX_Size

func (m *MsgGovUpdateQuotaResponse) XXX_Size() int

func (*MsgGovUpdateQuotaResponse) XXX_Unmarshal

func (m *MsgGovUpdateQuotaResponse) XXX_Unmarshal(b []byte) error

type MsgServer

type MsgServer interface {
	// GovUpdateQuota adds new quota for ibc denoms or
	// updates the quota for existed ibc denoms.
	GovUpdateQuota(context.Context, *MsgGovUpdateQuota) (*MsgGovUpdateQuotaResponse, error)
	// GovSetIBCStatus sets IBC ICS20 status. Must be called by x/gov.
	GovSetIBCStatus(context.Context, *MsgGovSetIBCStatus) (*MsgGovSetIBCStatusResponse, error)
	// GovToggleICS20Hooks enables / disables ICS20 hooks support. Must be called by x/gov.
	GovToggleICS20Hooks(context.Context, *MsgGovToggleICS20Hooks) (*MsgGovToggleICS20HooksResponse, error)
}

MsgServer is the server API for Msg service.

type Oracle

type Oracle interface {
	Price(ctx sdk.Context, denom string) (sdk.Dec, error)
}

Oracle interface for price feed. The uibc design doesn't depend on any particular price metric (spot price, avg ...), so it's up to the integration which price should be used.

type Params

type Params struct {
	// ibc_status defines the IBC ICS20 status (transfer quota or transfers disabled).
	IbcStatus IBCTransferStatus `protobuf:"varint,1,opt,name=ibc_status,json=ibcStatus,proto3,enum=umee.uibc.v1.IBCTransferStatus" json:"ibc_status,omitempty"`
	// total_quota defines the total outflow limit of ibc-transfer in USD
	TotalQuota github_com_cosmos_cosmos_sdk_types.Dec `` /* 131-byte string literal not displayed */
	// token_quota defines the outflow limit per token in USD
	TokenQuota github_com_cosmos_cosmos_sdk_types.Dec `` /* 131-byte string literal not displayed */
	// quota_duration defines quota expires for each ibc-transfer denom in seconds
	QuotaDuration time.Duration `` /* 134-byte string literal not displayed */
	// inflow_outflow_quota_base defines the inflow outflow quota base of ibc-transfer in USD
	InflowOutflowQuotaBase github_com_cosmos_cosmos_sdk_types.Dec `` /* 171-byte string literal not displayed */
	// inflow_outflow_quota_rate defines the rate of total inflows
	InflowOutflowQuotaRate github_com_cosmos_cosmos_sdk_types.Dec `` /* 171-byte string literal not displayed */
	// inflow_outflow_token_quota_base defines the inflow outflow quota base for token
	InflowOutflowTokenQuotaBase github_com_cosmos_cosmos_sdk_types.Dec `` /* 188-byte string literal not displayed */
	// ics20_hooks enables or disables the ICS20 transfer hooks.
	Ics20Hooks bool `protobuf:"varint,8,opt,name=ics20_hooks,json=ics20Hooks,proto3" json:"ics20_hooks,omitempty"`
}

Params of x/uibc module

func DefaultParams

func DefaultParams() Params

DefaultParams returns default genesis params

func (*Params) Descriptor

func (*Params) Descriptor() ([]byte, []int)

func (*Params) GetIbcStatus

func (m *Params) GetIbcStatus() IBCTransferStatus

func (*Params) GetIcs20Hooks added in v6.4.0

func (m *Params) GetIcs20Hooks() bool

func (*Params) GetQuotaDuration

func (m *Params) GetQuotaDuration() time.Duration

func (*Params) Marshal

func (m *Params) Marshal() (dAtA []byte, err error)

func (*Params) MarshalTo

func (m *Params) MarshalTo(dAtA []byte) (int, error)

func (*Params) MarshalToSizedBuffer

func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Params) ProtoMessage

func (*Params) ProtoMessage()

func (*Params) Reset

func (m *Params) Reset()

func (*Params) Size

func (m *Params) Size() (n int)

func (*Params) String

func (m *Params) String() string

func (*Params) Unmarshal

func (m *Params) Unmarshal(dAtA []byte) error

func (Params) Validate

func (p Params) Validate() error

func (*Params) XXX_DiscardUnknown

func (m *Params) XXX_DiscardUnknown()

func (*Params) XXX_Marshal

func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Params) XXX_Merge

func (m *Params) XXX_Merge(src proto.Message)

func (*Params) XXX_Size

func (m *Params) XXX_Size() int

func (*Params) XXX_Unmarshal

func (m *Params) XXX_Unmarshal(b []byte) error

type QueryAllOutflows

type QueryAllOutflows struct {
}

QueryOutflow defines request type for query the quota of denoms

func (*QueryAllOutflows) Descriptor

func (*QueryAllOutflows) Descriptor() ([]byte, []int)

func (*QueryAllOutflows) Marshal

func (m *QueryAllOutflows) Marshal() (dAtA []byte, err error)

func (*QueryAllOutflows) MarshalTo

func (m *QueryAllOutflows) MarshalTo(dAtA []byte) (int, error)

func (*QueryAllOutflows) MarshalToSizedBuffer

func (m *QueryAllOutflows) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueryAllOutflows) ProtoMessage

func (*QueryAllOutflows) ProtoMessage()

func (*QueryAllOutflows) Reset

func (m *QueryAllOutflows) Reset()

func (*QueryAllOutflows) Size

func (m *QueryAllOutflows) Size() (n int)

func (*QueryAllOutflows) String

func (m *QueryAllOutflows) String() string

func (*QueryAllOutflows) Unmarshal

func (m *QueryAllOutflows) Unmarshal(dAtA []byte) error

func (*QueryAllOutflows) XXX_DiscardUnknown

func (m *QueryAllOutflows) XXX_DiscardUnknown()

func (*QueryAllOutflows) XXX_Marshal

func (m *QueryAllOutflows) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueryAllOutflows) XXX_Merge

func (m *QueryAllOutflows) XXX_Merge(src proto.Message)

func (*QueryAllOutflows) XXX_Size

func (m *QueryAllOutflows) XXX_Size() int

func (*QueryAllOutflows) XXX_Unmarshal

func (m *QueryAllOutflows) XXX_Unmarshal(b []byte) error

type QueryAllOutflowsResponse

type QueryAllOutflowsResponse struct {
	Outflows []DecCoinSymbol `protobuf:"bytes,1,rep,name=outflows,proto3" json:"outflows"`
}

QueryOutflowResponse defines response type of Query/Outflow

func (*QueryAllOutflowsResponse) Descriptor

func (*QueryAllOutflowsResponse) Descriptor() ([]byte, []int)

func (*QueryAllOutflowsResponse) Marshal

func (m *QueryAllOutflowsResponse) Marshal() (dAtA []byte, err error)

func (*QueryAllOutflowsResponse) MarshalTo

func (m *QueryAllOutflowsResponse) MarshalTo(dAtA []byte) (int, error)

func (*QueryAllOutflowsResponse) MarshalToSizedBuffer

func (m *QueryAllOutflowsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueryAllOutflowsResponse) ProtoMessage

func (*QueryAllOutflowsResponse) ProtoMessage()

func (*QueryAllOutflowsResponse) Reset

func (m *QueryAllOutflowsResponse) Reset()

func (*QueryAllOutflowsResponse) Size

func (m *QueryAllOutflowsResponse) Size() (n int)

func (*QueryAllOutflowsResponse) String

func (m *QueryAllOutflowsResponse) String() string

func (*QueryAllOutflowsResponse) Unmarshal

func (m *QueryAllOutflowsResponse) Unmarshal(dAtA []byte) error

func (*QueryAllOutflowsResponse) XXX_DiscardUnknown

func (m *QueryAllOutflowsResponse) XXX_DiscardUnknown()

func (*QueryAllOutflowsResponse) XXX_Marshal

func (m *QueryAllOutflowsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueryAllOutflowsResponse) XXX_Merge

func (m *QueryAllOutflowsResponse) XXX_Merge(src proto.Message)

func (*QueryAllOutflowsResponse) XXX_Size

func (m *QueryAllOutflowsResponse) XXX_Size() int

func (*QueryAllOutflowsResponse) XXX_Unmarshal

func (m *QueryAllOutflowsResponse) XXX_Unmarshal(b []byte) error

type QueryClient

type QueryClient interface {
	// Params queries the parameters of the x/uibc module.
	Params(ctx context.Context, in *QueryParams, opts ...grpc.CallOption) (*QueryParamsResponse, error)
	// Outflow returns IBC denom outflows in the current quota period.
	// If denom is not specified, returns sum of all registered outflows.
	Outflows(ctx context.Context, in *QueryOutflows, opts ...grpc.CallOption) (*QueryOutflowsResponse, error)
	// AllOutflow returns outflows for each denom in the current quota period.
	AllOutflows(ctx context.Context, in *QueryAllOutflows, opts ...grpc.CallOption) (*QueryAllOutflowsResponse, error)
	// Inflows returns registered IBC denoms inflows in the current quota period.
	// If denom is not specified, returns sum of all registered inflows.
	Inflows(ctx context.Context, in *QueryInflows, opts ...grpc.CallOption) (*QueryInflowsResponse, error)
	// QuotaExpires returns when current ibc quota will end.
	QuotaExpires(ctx context.Context, in *QueryQuotaExpires, opts ...grpc.CallOption) (*QueryQuotaExpiresResponse, error)
}

QueryClient is the client API for Query service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewQueryClient

func NewQueryClient(cc grpc1.ClientConn) QueryClient

type QueryInflows added in v6.3.0

type QueryInflows struct {
	Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"`
}

QueryInflows defines request type for query the inflow quota of denoms

func (*QueryInflows) Descriptor added in v6.3.0

func (*QueryInflows) Descriptor() ([]byte, []int)

func (*QueryInflows) Marshal added in v6.3.0

func (m *QueryInflows) Marshal() (dAtA []byte, err error)

func (*QueryInflows) MarshalTo added in v6.3.0

func (m *QueryInflows) MarshalTo(dAtA []byte) (int, error)

func (*QueryInflows) MarshalToSizedBuffer added in v6.3.0

func (m *QueryInflows) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueryInflows) ProtoMessage added in v6.3.0

func (*QueryInflows) ProtoMessage()

func (*QueryInflows) Reset added in v6.3.0

func (m *QueryInflows) Reset()

func (*QueryInflows) Size added in v6.3.0

func (m *QueryInflows) Size() (n int)

func (*QueryInflows) String added in v6.3.0

func (m *QueryInflows) String() string

func (*QueryInflows) Unmarshal added in v6.3.0

func (m *QueryInflows) Unmarshal(dAtA []byte) error

func (*QueryInflows) XXX_DiscardUnknown added in v6.3.0

func (m *QueryInflows) XXX_DiscardUnknown()

func (*QueryInflows) XXX_Marshal added in v6.3.0

func (m *QueryInflows) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueryInflows) XXX_Merge added in v6.3.0

func (m *QueryInflows) XXX_Merge(src proto.Message)

func (*QueryInflows) XXX_Size added in v6.3.0

func (m *QueryInflows) XXX_Size() int

func (*QueryInflows) XXX_Unmarshal added in v6.3.0

func (m *QueryInflows) XXX_Unmarshal(b []byte) error

type QueryInflowsResponse added in v6.3.0

type QueryInflowsResponse struct {
	Sum     github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=sum,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"sum"`
	Inflows []DecCoinSymbol                        `protobuf:"bytes,2,rep,name=inflows,proto3" json:"inflows"`
}

QueryInflowsResponse defines response type of Query/Inflows

func (*QueryInflowsResponse) Descriptor added in v6.3.0

func (*QueryInflowsResponse) Descriptor() ([]byte, []int)

func (*QueryInflowsResponse) Marshal added in v6.3.0

func (m *QueryInflowsResponse) Marshal() (dAtA []byte, err error)

func (*QueryInflowsResponse) MarshalTo added in v6.3.0

func (m *QueryInflowsResponse) MarshalTo(dAtA []byte) (int, error)

func (*QueryInflowsResponse) MarshalToSizedBuffer added in v6.3.0

func (m *QueryInflowsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueryInflowsResponse) ProtoMessage added in v6.3.0

func (*QueryInflowsResponse) ProtoMessage()

func (*QueryInflowsResponse) Reset added in v6.3.0

func (m *QueryInflowsResponse) Reset()

func (*QueryInflowsResponse) Size added in v6.3.0

func (m *QueryInflowsResponse) Size() (n int)

func (*QueryInflowsResponse) String added in v6.3.0

func (m *QueryInflowsResponse) String() string

func (*QueryInflowsResponse) Unmarshal added in v6.3.0

func (m *QueryInflowsResponse) Unmarshal(dAtA []byte) error

func (*QueryInflowsResponse) XXX_DiscardUnknown added in v6.3.0

func (m *QueryInflowsResponse) XXX_DiscardUnknown()

func (*QueryInflowsResponse) XXX_Marshal added in v6.3.0

func (m *QueryInflowsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueryInflowsResponse) XXX_Merge added in v6.3.0

func (m *QueryInflowsResponse) XXX_Merge(src proto.Message)

func (*QueryInflowsResponse) XXX_Size added in v6.3.0

func (m *QueryInflowsResponse) XXX_Size() int

func (*QueryInflowsResponse) XXX_Unmarshal added in v6.3.0

func (m *QueryInflowsResponse) XXX_Unmarshal(b []byte) error

type QueryOutflows

type QueryOutflows struct {
	Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"`
}

QueryOutflow defines request type for query the quota of denoms

func (*QueryOutflows) Descriptor

func (*QueryOutflows) Descriptor() ([]byte, []int)

func (*QueryOutflows) Marshal

func (m *QueryOutflows) Marshal() (dAtA []byte, err error)

func (*QueryOutflows) MarshalTo

func (m *QueryOutflows) MarshalTo(dAtA []byte) (int, error)

func (*QueryOutflows) MarshalToSizedBuffer

func (m *QueryOutflows) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueryOutflows) ProtoMessage

func (*QueryOutflows) ProtoMessage()

func (*QueryOutflows) Reset

func (m *QueryOutflows) Reset()

func (*QueryOutflows) Size

func (m *QueryOutflows) Size() (n int)

func (*QueryOutflows) String

func (m *QueryOutflows) String() string

func (*QueryOutflows) Unmarshal

func (m *QueryOutflows) Unmarshal(dAtA []byte) error

func (*QueryOutflows) XXX_DiscardUnknown

func (m *QueryOutflows) XXX_DiscardUnknown()

func (*QueryOutflows) XXX_Marshal

func (m *QueryOutflows) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueryOutflows) XXX_Merge

func (m *QueryOutflows) XXX_Merge(src proto.Message)

func (*QueryOutflows) XXX_Size

func (m *QueryOutflows) XXX_Size() int

func (*QueryOutflows) XXX_Unmarshal

func (m *QueryOutflows) XXX_Unmarshal(b []byte) error

type QueryOutflowsResponse

type QueryOutflowsResponse struct {
	Amount github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=amount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"amount"`
}

QueryOutflowResponse defines response type of Query/Outflow

func (*QueryOutflowsResponse) Descriptor

func (*QueryOutflowsResponse) Descriptor() ([]byte, []int)

func (*QueryOutflowsResponse) Marshal

func (m *QueryOutflowsResponse) Marshal() (dAtA []byte, err error)

func (*QueryOutflowsResponse) MarshalTo

func (m *QueryOutflowsResponse) MarshalTo(dAtA []byte) (int, error)

func (*QueryOutflowsResponse) MarshalToSizedBuffer

func (m *QueryOutflowsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueryOutflowsResponse) ProtoMessage

func (*QueryOutflowsResponse) ProtoMessage()

func (*QueryOutflowsResponse) Reset

func (m *QueryOutflowsResponse) Reset()

func (*QueryOutflowsResponse) Size

func (m *QueryOutflowsResponse) Size() (n int)

func (*QueryOutflowsResponse) String

func (m *QueryOutflowsResponse) String() string

func (*QueryOutflowsResponse) Unmarshal

func (m *QueryOutflowsResponse) Unmarshal(dAtA []byte) error

func (*QueryOutflowsResponse) XXX_DiscardUnknown

func (m *QueryOutflowsResponse) XXX_DiscardUnknown()

func (*QueryOutflowsResponse) XXX_Marshal

func (m *QueryOutflowsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueryOutflowsResponse) XXX_Merge

func (m *QueryOutflowsResponse) XXX_Merge(src proto.Message)

func (*QueryOutflowsResponse) XXX_Size

func (m *QueryOutflowsResponse) XXX_Size() int

func (*QueryOutflowsResponse) XXX_Unmarshal

func (m *QueryOutflowsResponse) XXX_Unmarshal(b []byte) error

type QueryParams

type QueryParams struct {
}

QueryParams defines the request structure for the Params gRPC service handler.

func (*QueryParams) Descriptor

func (*QueryParams) Descriptor() ([]byte, []int)

func (*QueryParams) Marshal

func (m *QueryParams) Marshal() (dAtA []byte, err error)

func (*QueryParams) MarshalTo

func (m *QueryParams) MarshalTo(dAtA []byte) (int, error)

func (*QueryParams) MarshalToSizedBuffer

func (m *QueryParams) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueryParams) ProtoMessage

func (*QueryParams) ProtoMessage()

func (*QueryParams) Reset

func (m *QueryParams) Reset()

func (*QueryParams) Size

func (m *QueryParams) Size() (n int)

func (*QueryParams) String

func (m *QueryParams) String() string

func (*QueryParams) Unmarshal

func (m *QueryParams) Unmarshal(dAtA []byte) error

func (*QueryParams) XXX_DiscardUnknown

func (m *QueryParams) XXX_DiscardUnknown()

func (*QueryParams) XXX_Marshal

func (m *QueryParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueryParams) XXX_Merge

func (m *QueryParams) XXX_Merge(src proto.Message)

func (*QueryParams) XXX_Size

func (m *QueryParams) XXX_Size() int

func (*QueryParams) XXX_Unmarshal

func (m *QueryParams) XXX_Unmarshal(b []byte) error

type QueryParamsResponse

type QueryParamsResponse struct {
	Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"`
}

QueryParamsResponse defines the response structure for the Params gRPC service handler.

func (*QueryParamsResponse) Descriptor

func (*QueryParamsResponse) Descriptor() ([]byte, []int)

func (*QueryParamsResponse) Marshal

func (m *QueryParamsResponse) Marshal() (dAtA []byte, err error)

func (*QueryParamsResponse) MarshalTo

func (m *QueryParamsResponse) MarshalTo(dAtA []byte) (int, error)

func (*QueryParamsResponse) MarshalToSizedBuffer

func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueryParamsResponse) ProtoMessage

func (*QueryParamsResponse) ProtoMessage()

func (*QueryParamsResponse) Reset

func (m *QueryParamsResponse) Reset()

func (*QueryParamsResponse) Size

func (m *QueryParamsResponse) Size() (n int)

func (*QueryParamsResponse) String

func (m *QueryParamsResponse) String() string

func (*QueryParamsResponse) Unmarshal

func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error

func (*QueryParamsResponse) XXX_DiscardUnknown

func (m *QueryParamsResponse) XXX_DiscardUnknown()

func (*QueryParamsResponse) XXX_Marshal

func (m *QueryParamsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueryParamsResponse) XXX_Merge

func (m *QueryParamsResponse) XXX_Merge(src proto.Message)

func (*QueryParamsResponse) XXX_Size

func (m *QueryParamsResponse) XXX_Size() int

func (*QueryParamsResponse) XXX_Unmarshal

func (m *QueryParamsResponse) XXX_Unmarshal(b []byte) error

type QueryQuotaExpires added in v6.3.0

type QueryQuotaExpires struct {
}

QueryAllInflows defines request type for query the inflow quota of registered denoms.

func (*QueryQuotaExpires) Descriptor added in v6.3.0

func (*QueryQuotaExpires) Descriptor() ([]byte, []int)

func (*QueryQuotaExpires) Marshal added in v6.3.0

func (m *QueryQuotaExpires) Marshal() (dAtA []byte, err error)

func (*QueryQuotaExpires) MarshalTo added in v6.3.0

func (m *QueryQuotaExpires) MarshalTo(dAtA []byte) (int, error)

func (*QueryQuotaExpires) MarshalToSizedBuffer added in v6.3.0

func (m *QueryQuotaExpires) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueryQuotaExpires) ProtoMessage added in v6.3.0

func (*QueryQuotaExpires) ProtoMessage()

func (*QueryQuotaExpires) Reset added in v6.3.0

func (m *QueryQuotaExpires) Reset()

func (*QueryQuotaExpires) Size added in v6.3.0

func (m *QueryQuotaExpires) Size() (n int)

func (*QueryQuotaExpires) String added in v6.3.0

func (m *QueryQuotaExpires) String() string

func (*QueryQuotaExpires) Unmarshal added in v6.3.0

func (m *QueryQuotaExpires) Unmarshal(dAtA []byte) error

func (*QueryQuotaExpires) XXX_DiscardUnknown added in v6.3.0

func (m *QueryQuotaExpires) XXX_DiscardUnknown()

func (*QueryQuotaExpires) XXX_Marshal added in v6.3.0

func (m *QueryQuotaExpires) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueryQuotaExpires) XXX_Merge added in v6.3.0

func (m *QueryQuotaExpires) XXX_Merge(src proto.Message)

func (*QueryQuotaExpires) XXX_Size added in v6.3.0

func (m *QueryQuotaExpires) XXX_Size() int

func (*QueryQuotaExpires) XXX_Unmarshal added in v6.3.0

func (m *QueryQuotaExpires) XXX_Unmarshal(b []byte) error

type QueryQuotaExpiresResponse added in v6.3.0

type QueryQuotaExpiresResponse struct {
	EndTime time.Time `protobuf:"bytes,4,opt,name=end_time,json=endTime,proto3,stdtime" json:"end_time,omitempty" yaml:"end_time"`
}

QueryAllInflowsResponse defines response type of Query/AllInflows

func (*QueryQuotaExpiresResponse) Descriptor added in v6.3.0

func (*QueryQuotaExpiresResponse) Descriptor() ([]byte, []int)

func (*QueryQuotaExpiresResponse) Marshal added in v6.3.0

func (m *QueryQuotaExpiresResponse) Marshal() (dAtA []byte, err error)

func (*QueryQuotaExpiresResponse) MarshalTo added in v6.3.0

func (m *QueryQuotaExpiresResponse) MarshalTo(dAtA []byte) (int, error)

func (*QueryQuotaExpiresResponse) MarshalToSizedBuffer added in v6.3.0

func (m *QueryQuotaExpiresResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueryQuotaExpiresResponse) ProtoMessage added in v6.3.0

func (*QueryQuotaExpiresResponse) ProtoMessage()

func (*QueryQuotaExpiresResponse) Reset added in v6.3.0

func (m *QueryQuotaExpiresResponse) Reset()

func (*QueryQuotaExpiresResponse) Size added in v6.3.0

func (m *QueryQuotaExpiresResponse) Size() (n int)

func (*QueryQuotaExpiresResponse) String added in v6.3.0

func (m *QueryQuotaExpiresResponse) String() string

func (*QueryQuotaExpiresResponse) Unmarshal added in v6.3.0

func (m *QueryQuotaExpiresResponse) Unmarshal(dAtA []byte) error

func (*QueryQuotaExpiresResponse) XXX_DiscardUnknown added in v6.3.0

func (m *QueryQuotaExpiresResponse) XXX_DiscardUnknown()

func (*QueryQuotaExpiresResponse) XXX_Marshal added in v6.3.0

func (m *QueryQuotaExpiresResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueryQuotaExpiresResponse) XXX_Merge added in v6.3.0

func (m *QueryQuotaExpiresResponse) XXX_Merge(src proto.Message)

func (*QueryQuotaExpiresResponse) XXX_Size added in v6.3.0

func (m *QueryQuotaExpiresResponse) XXX_Size() int

func (*QueryQuotaExpiresResponse) XXX_Unmarshal added in v6.3.0

func (m *QueryQuotaExpiresResponse) XXX_Unmarshal(b []byte) error

type QueryServer

type QueryServer interface {
	// Params queries the parameters of the x/uibc module.
	Params(context.Context, *QueryParams) (*QueryParamsResponse, error)
	// Outflow returns IBC denom outflows in the current quota period.
	// If denom is not specified, returns sum of all registered outflows.
	Outflows(context.Context, *QueryOutflows) (*QueryOutflowsResponse, error)
	// AllOutflow returns outflows for each denom in the current quota period.
	AllOutflows(context.Context, *QueryAllOutflows) (*QueryAllOutflowsResponse, error)
	// Inflows returns registered IBC denoms inflows in the current quota period.
	// If denom is not specified, returns sum of all registered inflows.
	Inflows(context.Context, *QueryInflows) (*QueryInflowsResponse, error)
	// QuotaExpires returns when current ibc quota will end.
	QuotaExpires(context.Context, *QueryQuotaExpires) (*QueryQuotaExpiresResponse, error)
}

QueryServer is the server API for Query service.

type UnimplementedMsgServer

type UnimplementedMsgServer struct {
}

UnimplementedMsgServer can be embedded to have forward compatible implementations.

func (*UnimplementedMsgServer) GovSetIBCStatus

func (*UnimplementedMsgServer) GovToggleICS20Hooks added in v6.4.0

func (*UnimplementedMsgServer) GovUpdateQuota

type UnimplementedQueryServer

type UnimplementedQueryServer struct {
}

UnimplementedQueryServer can be embedded to have forward compatible implementations.

func (*UnimplementedQueryServer) AllOutflows

func (*UnimplementedQueryServer) Inflows added in v6.3.0

func (*UnimplementedQueryServer) Outflows

func (*UnimplementedQueryServer) Params

func (*UnimplementedQueryServer) QuotaExpires added in v6.3.0

Directories

Path Synopsis
client
cli
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL