types

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2025 License: Apache-2.0 Imports: 28 Imported by: 9

Documentation

Overview

Package types is a reverse proxy.

It translates gRPC into RESTful JSON APIs.

Index

Constants

View Source
const (
	// ModuleName name that will be used throughout the module
	ModuleName = "precisebank"

	StoreKey = ModuleName

	// RouterKey Top level router key
	RouterKey = ModuleName
)

Variables

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 (
	FractionalBalancePrefix = []byte{0x01} // address -> fractional balance
)

key prefixes for store

View Source
var (
	RemainderBalanceKey = []byte{0x02} // fractional balance remainder
)

Keys for store that are not prefixed

Functions

func ConversionFactor

func ConversionFactor() sdkmath.Int

ConversionFactor returns a copy of the conversionFactor used to convert the fractional balance to integer balances. This is also 1 greater than the max valid fractional amount (999_999_999_999): 0 < FractionalBalance < conversionFactor

func ExtendedCoinDenom

func ExtendedCoinDenom() string

ExtendedCoinDenom is the denomination for the extended IntegerCoinDenom. This not only represents the fractional balance, but the total balance of integer + fractional balances.

func FractionalBalanceKey

func FractionalBalanceKey(address sdk.AccAddress) []byte

FractionalBalanceKey returns a key from an address

func IntegerCoinDenom

func IntegerCoinDenom() string

IntegerCoinDenom is the denomination for integer coins that are managed by x/bank. This is the "true" denomination of the coin, and is also used for the reserve to back all fractional coins.

func RegisterInterfaces

func RegisterInterfaces(registry cdctypes.InterfaceRegistry)

func RegisterLegacyAminoCodec

func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino)

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

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)

func SumExtendedCoin

func SumExtendedCoin(amt sdk.Coins) sdk.Coin

SumExtendedCoin returns a sdk.Coin of extended coin denomination with all integer and fractional amounts combined. e.g. if amount contains both coins of integer denom and extended denom, this will return the total amount in extended coins. This is intended to get the full value to emit in events.

func ValidateFractionalAmount

func ValidateFractionalAmount(amt sdkmath.Int) error

ValidateFractionalAmount checks if an sdkmath.Int is a valid fractional amount, ensuring it is positive and less than or equal to the maximum fractional amount.

Types

type AccountKeeper

type AccountKeeper interface {
	AddressCodec() address.Codec
	GetModuleAccount(ctx context.Context, moduleName string) sdk.ModuleAccountI
	GetModuleAddress(moduleName string) sdk.AccAddress
	GetSequence(context.Context, sdk.AccAddress) (uint64, error)
}

AccountKeeper defines the expected account keeper interface

type BankKeeper

type BankKeeper interface {
	IsSendEnabledCoin(ctx context.Context, coin sdk.Coin) bool
	IsSendEnabledCoins(ctx context.Context, coins ...sdk.Coin) error
	GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins
	GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin
	GetSupply(ctx context.Context, denom string) sdk.Coin
	SpendableCoin(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin

	BlockedAddr(addr sdk.AccAddress) bool

	SendCoins(ctx context.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error
	SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error
	SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
	SendCoinsFromModuleToModule(ctx context.Context, senderModule string, recipientModule string, amt sdk.Coins) error

	MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error
	BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error

	IterateAllBalances(ctx context.Context, cb func(address sdk.AccAddress, coin sdk.Coin) (stop bool))
	IterateAccountBalances(ctx context.Context, account sdk.AccAddress, cb func(coin sdk.Coin) bool)
	IterateTotalSupply(ctx context.Context, cb func(coin sdk.Coin) bool)

	GetDenomMetaData(ctx context.Context, denom string) (banktypes.Metadata, bool)
	SetDenomMetaData(ctx context.Context, denomMetaData banktypes.Metadata)
}

BankKeeper defines the expected bank keeper interface

type FractionalBalance

type FractionalBalance struct {
	// address is the address of the balance holder.
	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	// amount indicates amount of only the fractional balance owned by the
	// address. FractionalBalance currently only supports tracking 1 single asset,
	// e.g. fractional balances of uatom.
	Amount cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"`
}

FractionalBalance defines the fractional portion of an account balance

func NewFractionalBalance

func NewFractionalBalance(address string, amount sdkmath.Int) FractionalBalance

FractionalBalance returns a new FractionalBalance with the given address and amount.

func (*FractionalBalance) Descriptor

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

func (*FractionalBalance) Marshal

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

func (*FractionalBalance) MarshalTo

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

func (*FractionalBalance) MarshalToSizedBuffer

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

func (*FractionalBalance) ProtoMessage

func (*FractionalBalance) ProtoMessage()

func (*FractionalBalance) Reset

func (m *FractionalBalance) Reset()

func (*FractionalBalance) Size

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

func (*FractionalBalance) String

func (m *FractionalBalance) String() string

func (*FractionalBalance) Unmarshal

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

func (FractionalBalance) Validate

func (fb FractionalBalance) Validate() error

Validate returns an error if the FractionalBalance has an invalid address or negative amount.

func (*FractionalBalance) XXX_DiscardUnknown

func (m *FractionalBalance) XXX_DiscardUnknown()

func (*FractionalBalance) XXX_Marshal

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

func (*FractionalBalance) XXX_Merge

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

func (*FractionalBalance) XXX_Size

func (m *FractionalBalance) XXX_Size() int

func (*FractionalBalance) XXX_Unmarshal

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

type FractionalBalances

type FractionalBalances []FractionalBalance

FractionalBalances is a slice of FractionalBalance

func (FractionalBalances) SumAmount

func (fbs FractionalBalances) SumAmount() sdkmath.Int

SumAmount returns the sum of all the amounts in the slice.

func (FractionalBalances) Validate

func (fbs FractionalBalances) Validate() error

Validate returns an error if any FractionalBalance in the slice is invalid.

type GenesisState

type GenesisState struct {
	// balances is a list of all the balances in the precisebank module.
	Balances FractionalBalances `protobuf:"bytes,1,rep,name=balances,proto3,castrepeated=FractionalBalances" json:"balances"`
	// remainder is an internal value of how much extra fractional digits are
	// still backed by the reserve, but not assigned to any account.
	Remainder cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=remainder,proto3,customtype=cosmossdk.io/math.Int" json:"remainder"`
}

GenesisState defines the precisebank module's genesis state.

func DefaultGenesisState

func DefaultGenesisState() *GenesisState

DefaultGenesisState returns a default genesis state.

func NewGenesisState

func NewGenesisState(
	balances FractionalBalances,
	remainder sdkmath.Int,
) *GenesisState

NewGenesisState creates a new genesis state.

func (*GenesisState) Descriptor

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

func (*GenesisState) GetBalances

func (m *GenesisState) GetBalances() FractionalBalances

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) TotalAmountWithRemainder

func (gs *GenesisState) TotalAmountWithRemainder() sdkmath.Int

TotalAmountWithRemainder returns the total amount of all balances in the genesis state, including both fractional balances and the remainder. A bit more verbose WithRemainder to ensure its clearly different from SumAmount().

func (*GenesisState) Unmarshal

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

func (*GenesisState) Validate

func (gs *GenesisState) Validate() error

Validate performs basic validation of genesis data returning an error for any failed validation criteria.

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 QueryClient

type QueryClient interface {
	// Remainder returns the amount backed by the reserve, but not yet owned by
	// any account, i.e. not in circulation.
	Remainder(ctx context.Context, in *QueryRemainderRequest, opts ...grpc.CallOption) (*QueryRemainderResponse, error)
	// FractionalBalance returns only the fractional balance of an address. This
	// does not include any integer balance.
	FractionalBalance(ctx context.Context, in *QueryFractionalBalanceRequest, opts ...grpc.CallOption) (*QueryFractionalBalanceResponse, 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 QueryFractionalBalanceRequest

type QueryFractionalBalanceRequest struct {
	// address is the account address to query  fractional balance for.
	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
}

QueryFractionalBalanceRequest defines the request type for Query/FractionalBalance method.

func (*QueryFractionalBalanceRequest) Descriptor

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

func (*QueryFractionalBalanceRequest) Marshal

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

func (*QueryFractionalBalanceRequest) MarshalTo

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

func (*QueryFractionalBalanceRequest) MarshalToSizedBuffer

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

func (*QueryFractionalBalanceRequest) ProtoMessage

func (*QueryFractionalBalanceRequest) ProtoMessage()

func (*QueryFractionalBalanceRequest) Reset

func (m *QueryFractionalBalanceRequest) Reset()

func (*QueryFractionalBalanceRequest) Size

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

func (*QueryFractionalBalanceRequest) String

func (*QueryFractionalBalanceRequest) Unmarshal

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

func (*QueryFractionalBalanceRequest) XXX_DiscardUnknown

func (m *QueryFractionalBalanceRequest) XXX_DiscardUnknown()

func (*QueryFractionalBalanceRequest) XXX_Marshal

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

func (*QueryFractionalBalanceRequest) XXX_Merge

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

func (*QueryFractionalBalanceRequest) XXX_Size

func (m *QueryFractionalBalanceRequest) XXX_Size() int

func (*QueryFractionalBalanceRequest) XXX_Unmarshal

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

type QueryFractionalBalanceResponse

type QueryFractionalBalanceResponse struct {
	// fractional_balance is the fractional balance of the address.
	FractionalBalance types.Coin `protobuf:"bytes,1,opt,name=fractional_balance,json=fractionalBalance,proto3" json:"fractional_balance"`
}

QueryFractionalBalanceResponse defines the response type for Query/FractionalBalance method.

func (*QueryFractionalBalanceResponse) Descriptor

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

func (*QueryFractionalBalanceResponse) Marshal

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

func (*QueryFractionalBalanceResponse) MarshalTo

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

func (*QueryFractionalBalanceResponse) MarshalToSizedBuffer

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

func (*QueryFractionalBalanceResponse) ProtoMessage

func (*QueryFractionalBalanceResponse) ProtoMessage()

func (*QueryFractionalBalanceResponse) Reset

func (m *QueryFractionalBalanceResponse) Reset()

func (*QueryFractionalBalanceResponse) Size

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

func (*QueryFractionalBalanceResponse) String

func (*QueryFractionalBalanceResponse) Unmarshal

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

func (*QueryFractionalBalanceResponse) XXX_DiscardUnknown

func (m *QueryFractionalBalanceResponse) XXX_DiscardUnknown()

func (*QueryFractionalBalanceResponse) XXX_Marshal

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

func (*QueryFractionalBalanceResponse) XXX_Merge

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

func (*QueryFractionalBalanceResponse) XXX_Size

func (m *QueryFractionalBalanceResponse) XXX_Size() int

func (*QueryFractionalBalanceResponse) XXX_Unmarshal

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

type QueryRemainderRequest

type QueryRemainderRequest struct {
}

QueryRemainderRequest defines the request type for Query/Remainder method.

func (*QueryRemainderRequest) Descriptor

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

func (*QueryRemainderRequest) Marshal

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

func (*QueryRemainderRequest) MarshalTo

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

func (*QueryRemainderRequest) MarshalToSizedBuffer

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

func (*QueryRemainderRequest) ProtoMessage

func (*QueryRemainderRequest) ProtoMessage()

func (*QueryRemainderRequest) Reset

func (m *QueryRemainderRequest) Reset()

func (*QueryRemainderRequest) Size

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

func (*QueryRemainderRequest) String

func (m *QueryRemainderRequest) String() string

func (*QueryRemainderRequest) Unmarshal

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

func (*QueryRemainderRequest) XXX_DiscardUnknown

func (m *QueryRemainderRequest) XXX_DiscardUnknown()

func (*QueryRemainderRequest) XXX_Marshal

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

func (*QueryRemainderRequest) XXX_Merge

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

func (*QueryRemainderRequest) XXX_Size

func (m *QueryRemainderRequest) XXX_Size() int

func (*QueryRemainderRequest) XXX_Unmarshal

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

type QueryRemainderResponse

type QueryRemainderResponse struct {
	// remainder is the amount backed by the reserve, but not yet owned by any
	// account, i.e. not in circulation.
	Remainder types.Coin `protobuf:"bytes,1,opt,name=remainder,proto3" json:"remainder"`
}

QueryRemainderResponse defines the response type for Query/Remainder method.

func (*QueryRemainderResponse) Descriptor

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

func (*QueryRemainderResponse) Marshal

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

func (*QueryRemainderResponse) MarshalTo

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

func (*QueryRemainderResponse) MarshalToSizedBuffer

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

func (*QueryRemainderResponse) ProtoMessage

func (*QueryRemainderResponse) ProtoMessage()

func (*QueryRemainderResponse) Reset

func (m *QueryRemainderResponse) Reset()

func (*QueryRemainderResponse) Size

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

func (*QueryRemainderResponse) String

func (m *QueryRemainderResponse) String() string

func (*QueryRemainderResponse) Unmarshal

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

func (*QueryRemainderResponse) XXX_DiscardUnknown

func (m *QueryRemainderResponse) XXX_DiscardUnknown()

func (*QueryRemainderResponse) XXX_Marshal

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

func (*QueryRemainderResponse) XXX_Merge

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

func (*QueryRemainderResponse) XXX_Size

func (m *QueryRemainderResponse) XXX_Size() int

func (*QueryRemainderResponse) XXX_Unmarshal

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

type QueryServer

type QueryServer interface {
	// Remainder returns the amount backed by the reserve, but not yet owned by
	// any account, i.e. not in circulation.
	Remainder(context.Context, *QueryRemainderRequest) (*QueryRemainderResponse, error)
	// FractionalBalance returns only the fractional balance of an address. This
	// does not include any integer balance.
	FractionalBalance(context.Context, *QueryFractionalBalanceRequest) (*QueryFractionalBalanceResponse, error)
}

QueryServer is the server API for Query service.

type UnimplementedQueryServer

type UnimplementedQueryServer struct {
}

UnimplementedQueryServer can be embedded to have forward compatible implementations.

func (*UnimplementedQueryServer) FractionalBalance

func (*UnimplementedQueryServer) Remainder

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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