types

package
v0.15.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Aug 20, 2021 License: Apache-2.0 Imports: 19 Imported by: 13

Documentation

Index

Constants

View Source
const (
	EventTypeCreateAtomicSwap = "create_atomic_swap"
	EventTypeClaimAtomicSwap  = "claim_atomic_swap"
	EventTypeRefundAtomicSwap = "refund_atomic_swap"
	EventTypeSwapsExpired     = "swaps_expired"

	AttributeValueCategory       = ModuleName
	AttributeKeySender           = "sender"
	AttributeKeyRecipient        = "recipient"
	AttributeKeyAtomicSwapID     = "atomic_swap_id"
	AttributeKeyRandomNumberHash = "random_number_hash"
	AttributeKeyTimestamp        = "timestamp"
	AttributeKeySenderOtherChain = "sender_other_chain"
	AttributeKeyExpireHeight     = "expire_height"
	AttributeKeyAmount           = "amount"
	AttributeKeyDirection        = "direction"
	AttributeKeyClaimSender      = "claim_sender"
	AttributeKeyRandomNumber     = "random_number"
	AttributeKeyRefundSender     = "refund_sender"
	AttributeKeyAtomicSwapIDs    = "atomic_swap_ids"
	AttributeExpirationBlock     = "expiration_block"
)

Events for bep3 module

View Source
const (
	// ModuleName is the name of the module
	ModuleName = "bep3"

	// StoreKey to be used when creating the KVStore
	StoreKey = ModuleName

	// RouterKey to be used for routing msgs
	RouterKey = ModuleName

	// QuerierRoute is the querier route for bep3
	QuerierRoute = ModuleName

	// DefaultParamspace default namestore
	DefaultParamspace = ModuleName

	// DefaultLongtermStorageDuration is 1 week (assuming a block time of 7 seconds)
	DefaultLongtermStorageDuration uint64 = 86400
)
View Source
const (
	CreateAtomicSwap = "createAtomicSwap"
	ClaimAtomicSwap  = "claimAtomicSwap"
	RefundAtomicSwap = "refundAtomicSwap"
	CalcSwapID       = "calcSwapID"

	Int64Size               = 8
	RandomNumberHashLength  = 32
	RandomNumberLength      = 32
	AddrByteCount           = 20
	MaxOtherChainAddrLength = 64
	SwapIDLength            = 32
	MaxExpectedIncomeLength = 64
)
View Source
const (
	// QueryGetAssetSupply command for getting info about an asset's supply
	QueryGetAssetSupply = "supply"
	// QueryGetAssetSupplies command for getting a list of asset supplies
	QueryGetAssetSupplies = "supplies"
	// QueryGetAtomicSwap command for getting info about an atomic swap
	QueryGetAtomicSwap = "swap"
	// QueryGetAtomicSwaps command for getting a list of atomic swaps
	QueryGetAtomicSwaps = "swaps"
	// QueryGetParams command for getting module params
	QueryGetParams = "parameters"
)

Variables

View Source
var (
	// ErrInvalidTimestamp error for when an timestamp is outside of bounds. Assumes block time of 10 seconds.
	ErrInvalidTimestamp = sdkerrors.Register(ModuleName, 2, "timestamp can neither be 15 minutes ahead of the current time, nor 30 minutes later")
	// ErrInvalidHeightSpan error for when a proposed height span is outside of lock time range
	ErrInvalidHeightSpan = sdkerrors.Register(ModuleName, 3, "height span is outside acceptable range")
	// ErrInsufficientAmount error for when a swap's amount cannot cover the deputy's fixed fee
	ErrInsufficientAmount = sdkerrors.Register(ModuleName, 4, "amount cannot cover the deputy fixed fee")
	// ErrAssetNotSupported error for when an asset is not supported
	ErrAssetNotSupported = sdkerrors.Register(ModuleName, 5, "asset not found")
	// ErrAssetNotActive error for when an asset is currently inactive
	ErrAssetNotActive = sdkerrors.Register(ModuleName, 6, "asset is currently inactive")
	// ErrAssetSupplyNotFound error for when an asset's supply is not found in the store
	ErrAssetSupplyNotFound = sdkerrors.Register(ModuleName, 7, "asset supply not found in store")
	// ErrExceedsSupplyLimit error for when the proposed supply increase would put the supply above limit
	ErrExceedsSupplyLimit = sdkerrors.Register(ModuleName, 8, "asset supply over limit")
	// ErrExceedsAvailableSupply error for when the proposed outgoing amount exceeds the total available supply
	ErrExceedsAvailableSupply = sdkerrors.Register(ModuleName, 9, "outgoing swap exceeds total available supply")
	// ErrInvalidCurrentSupply error for when the proposed decrease would result in a negative current supplyx
	ErrInvalidCurrentSupply = sdkerrors.Register(ModuleName, 10, "supply decrease puts current asset supply below 0")
	// ErrInvalidIncomingSupply error for when the proposed decrease would result in a negative incoming supply
	ErrInvalidIncomingSupply = sdkerrors.Register(ModuleName, 11, "supply decrease puts incoming asset supply below 0")
	// ErrInvalidOutgoingSupply error for when the proposed decrease would result in a negative outgoing supply
	ErrInvalidOutgoingSupply = sdkerrors.Register(ModuleName, 12, "supply decrease puts outgoing asset supply below 0")
	// ErrInvalidClaimSecret error when a submitted secret doesn't match an AtomicSwap's swapID
	ErrInvalidClaimSecret = sdkerrors.Register(ModuleName, 13, "hashed claim attempt does not match")
	// ErrAtomicSwapAlreadyExists error for when an AtomicSwap with this swapID already exists
	ErrAtomicSwapAlreadyExists = sdkerrors.Register(ModuleName, 14, "atomic swap already exists")
	// ErrAtomicSwapNotFound error for when an atomic swap is not found
	ErrAtomicSwapNotFound = sdkerrors.Register(ModuleName, 15, "atomic swap not found")
	// ErrSwapNotRefundable error for when an AtomicSwap has not expired and cannot be refunded
	ErrSwapNotRefundable = sdkerrors.Register(ModuleName, 16, "atomic swap is still active and cannot be refunded")
	// ErrSwapNotClaimable error for when an atomic swap is not open and cannot be claimed
	ErrSwapNotClaimable = sdkerrors.Register(ModuleName, 17, "atomic swap is not claimable")
	// ErrInvalidAmount error for when a swap's amount is outside acceptable range
	ErrInvalidAmount = sdkerrors.Register(ModuleName, 18, "amount is outside acceptable range")
	// ErrInvalidSwapAccount error for when a swap involves an invalid account
	ErrInvalidSwapAccount = sdkerrors.Register(ModuleName, 19, "atomic swap has invalid account")
	// ErrExceedsTimeBasedSupplyLimit error for when the proposed supply increase would put the supply above limit for the current time period
	ErrExceedsTimeBasedSupplyLimit = sdkerrors.Register(ModuleName, 20, "asset supply over limit for current time period")
)
View Source
var (
	// ModulePermissionsUpgradeTime is the block time after which the bep3 module account's permissions are synced with the supply module.
	ModulePermissionsUpgradeTime time.Time = time.Date(2020, 11, 3, 10, 0, 0, 0, time.UTC)

	AtomicSwapKeyPrefix             = []byte{0x00} // prefix for keys that store AtomicSwaps
	AtomicSwapByBlockPrefix         = []byte{0x01} // prefix for keys of the AtomicSwapsByBlock index
	AtomicSwapLongtermStoragePrefix = []byte{0x02} // prefix for keys of the AtomicSwapLongtermStorage index
	AssetSupplyPrefix               = []byte{0x03}
	PreviousBlockTimeKey            = []byte{0x04}
)

Key prefixes

View Source
var (
	KeyAssetParams = []byte("AssetParams")

	DefaultBnbDeputyFixedFee sdk.Int = sdk.NewInt(1000) // 0.00001 BNB
	DefaultMinAmount         sdk.Int = sdk.ZeroInt()
	DefaultMaxAmount         sdk.Int = sdk.NewInt(1000000000000) // 10,000 BNB
	DefaultMinBlockLock      uint64  = 220
	DefaultMaxBlockLock      uint64  = 270
	DefaultPreviousBlockTime         = tmtime.Canonical(time.Unix(1, 0))
)

Parameter keys

View Source
var (
	AtomicSwapCoinsAccAddr = sdk.AccAddress(crypto.AddressHash([]byte("KavaAtomicSwapCoins")))
)

ensure Msg interface compliance at compile time

View Source
var ModuleCdc = codec.New()

Functions

func CalculateRandomHash

func CalculateRandomHash(randomNumber []byte, timestamp int64) []byte

CalculateRandomHash calculates the hash of a number and timestamp

func CalculateSwapID

func CalculateSwapID(randomNumberHash []byte, sender sdk.AccAddress, senderOtherChain string) []byte

CalculateSwapID calculates the hash of a RandomNumberHash, sdk.AccAddress, and string

func GenerateSecureRandomNumber

func GenerateSecureRandomNumber() ([]byte, error)

GenerateSecureRandomNumber generates cryptographically strong pseudo-random number

func GetAtomicSwapByHeightKey

func GetAtomicSwapByHeightKey(height uint64, swapID []byte) []byte

GetAtomicSwapByHeightKey is used by the AtomicSwapByBlock index and AtomicSwapLongtermStorage index

func ParamKeyTable

func ParamKeyTable() params.KeyTable

ParamKeyTable Key declaration for parameters

func RegisterCodec

func RegisterCodec(cdc *codec.Codec)

RegisterCodec registers concrete types on amino

Types

type AccountKeeper added in v0.8.0

type AccountKeeper interface {
	GetAccount(ctx sdk.Context, addr sdk.AccAddress) authexported.Account
	NewAccountWithAddress(ctx sdk.Context, addr sdk.AccAddress) authexported.Account
	SetAccount(ctx sdk.Context, acc authexported.Account)
}

AccountKeeper defines the expected account keeper (noalias)

type AssetParam

type AssetParam struct {
	Denom         string         `json:"denom" yaml:"denom"`                     // name of the asset
	CoinID        int            `json:"coin_id" yaml:"coin_id"`                 // SLIP-0044 registered coin type - see https://github.com/satoshilabs/slips/blob/master/slip-0044.md
	SupplyLimit   SupplyLimit    `json:"supply_limit" yaml:"supply_limit"`       // asset supply limit
	Active        bool           `json:"active" yaml:"active"`                   // denotes if asset is available or paused
	DeputyAddress sdk.AccAddress `json:"deputy_address" yaml:"deputy_address"`   // the address of the relayer process
	FixedFee      sdk.Int        `json:"fixed_fee" yaml:"fixed_fee"`             // the fixed fee charged by the relayer process for outgoing swaps
	MinSwapAmount sdk.Int        `json:"min_swap_amount" yaml:"min_swap_amount"` // Minimum swap amount
	MaxSwapAmount sdk.Int        `json:"max_swap_amount" yaml:"max_swap_amount"` // Maximum swap amount
	MinBlockLock  uint64         `json:"min_block_lock" yaml:"min_block_lock"`   // Minimum swap block lock
	MaxBlockLock  uint64         `json:"max_block_lock" yaml:"max_block_lock"`   // Maximum swap block lock
}

AssetParam parameters that must be specified for each bep3 asset

func NewAssetParam added in v0.11.0

func NewAssetParam(
	denom string, coinID int, limit SupplyLimit, active bool,
	deputyAddr sdk.AccAddress, fixedFee sdk.Int, minSwapAmount sdk.Int,
	maxSwapAmount sdk.Int, minBlockLock uint64, maxBlockLock uint64,
) AssetParam

NewAssetParam returns a new AssetParam

func (AssetParam) String

func (ap AssetParam) String() string

String implements fmt.Stringer

type AssetParams

type AssetParams []AssetParam

AssetParams array of AssetParam

func (AssetParams) String

func (aps AssetParams) String() string

String implements fmt.Stringer

type AssetSupplies

type AssetSupplies []AssetSupply

AssetSupplies is a slice of AssetSupply

type AssetSupply

type AssetSupply struct {
	IncomingSupply           sdk.Coin      `json:"incoming_supply"  yaml:"incoming_supply"`
	OutgoingSupply           sdk.Coin      `json:"outgoing_supply"  yaml:"outgoing_supply"`
	CurrentSupply            sdk.Coin      `json:"current_supply"  yaml:"current_supply"`
	TimeLimitedCurrentSupply sdk.Coin      `json:"time_limited_current_supply" yaml:"time_limited_current_supply"`
	TimeElapsed              time.Duration `json:"time_elapsed" yaml:"time_elapsed"`
}

AssetSupply contains information about an asset's supply

func NewAssetSupply

func NewAssetSupply(incomingSupply, outgoingSupply, currentSupply, timeLimitedSupply sdk.Coin, timeElapsed time.Duration) AssetSupply

NewAssetSupply initializes a new AssetSupply

func (AssetSupply) Equal added in v0.11.0

func (a AssetSupply) Equal(b AssetSupply) bool

Equal returns if two asset supplies are equal

func (AssetSupply) GetDenom added in v0.11.0

func (a AssetSupply) GetDenom() string

GetDenom getter method for the denom of the asset supply

func (AssetSupply) String

func (a AssetSupply) String() string

String implements stringer

func (AssetSupply) Validate added in v0.8.0

func (a AssetSupply) Validate() error

Validate performs a basic validation of an asset supply fields.

type AtomicSwap

type AtomicSwap struct {
	Amount              sdk.Coins        `json:"amount"  yaml:"amount"`
	RandomNumberHash    tmbytes.HexBytes `json:"random_number_hash"  yaml:"random_number_hash"`
	ExpireHeight        uint64           `json:"expire_height"  yaml:"expire_height"`
	Timestamp           int64            `json:"timestamp"  yaml:"timestamp"`
	Sender              sdk.AccAddress   `json:"sender"  yaml:"sender"`
	Recipient           sdk.AccAddress   `json:"recipient"  yaml:"recipient"`
	SenderOtherChain    string           `json:"sender_other_chain"  yaml:"sender_other_chain"`
	RecipientOtherChain string           `json:"recipient_other_chain"  yaml:"recipient_other_chain"`
	ClosedBlock         int64            `json:"closed_block"  yaml:"closed_block"`
	Status              SwapStatus       `json:"status"  yaml:"status"`
	CrossChain          bool             `json:"cross_chain"  yaml:"cross_chain"`
	Direction           SwapDirection    `json:"direction"  yaml:"direction"`
}

AtomicSwap contains the information for an atomic swap

func NewAtomicSwap

func NewAtomicSwap(amount sdk.Coins, randomNumberHash tmbytes.HexBytes, expireHeight uint64, timestamp int64,
	sender, recipient sdk.AccAddress, senderOtherChain string, recipientOtherChain string, closedBlock int64,
	status SwapStatus, crossChain bool, direction SwapDirection) AtomicSwap

NewAtomicSwap returns a new AtomicSwap

func (AtomicSwap) GetCoins added in v0.8.0

func (a AtomicSwap) GetCoins() sdk.Coins

GetCoins returns the swap's amount as sdk.Coins

func (AtomicSwap) GetSwapID

func (a AtomicSwap) GetSwapID() tmbytes.HexBytes

GetSwapID calculates the ID of an atomic swap

func (AtomicSwap) String

func (a AtomicSwap) String() string

String implements stringer

func (AtomicSwap) Validate

func (a AtomicSwap) Validate() error

Validate performs a basic validation of an atomic swap fields.

type AtomicSwaps

type AtomicSwaps []AtomicSwap

AtomicSwaps is a slice of AtomicSwap

func (AtomicSwaps) String

func (swaps AtomicSwaps) String() string

String implements stringer

type AugmentedAtomicSwap added in v0.11.0

type AugmentedAtomicSwap struct {
	ID string `json:"id" yaml:"id"`

	// Embed AtomicSwap fields explicity in order to output as top level JSON fields
	// This prevents breaking changes for clients using REST API
	Amount              sdk.Coins        `json:"amount"  yaml:"amount"`
	RandomNumberHash    tmbytes.HexBytes `json:"random_number_hash"  yaml:"random_number_hash"`
	ExpireHeight        uint64           `json:"expire_height"  yaml:"expire_height"`
	Timestamp           int64            `json:"timestamp"  yaml:"timestamp"`
	Sender              sdk.AccAddress   `json:"sender"  yaml:"sender"`
	Recipient           sdk.AccAddress   `json:"recipient"  yaml:"recipient"`
	SenderOtherChain    string           `json:"sender_other_chain"  yaml:"sender_other_chain"`
	RecipientOtherChain string           `json:"recipient_other_chain"  yaml:"recipient_other_chain"`
	ClosedBlock         int64            `json:"closed_block"  yaml:"closed_block"`
	Status              SwapStatus       `json:"status"  yaml:"status"`
	CrossChain          bool             `json:"cross_chain"  yaml:"cross_chain"`
	Direction           SwapDirection    `json:"direction"  yaml:"direction"`
}

func NewAugmentedAtomicSwap added in v0.11.0

func NewAugmentedAtomicSwap(swap AtomicSwap) AugmentedAtomicSwap

type AugmentedAtomicSwaps added in v0.11.0

type AugmentedAtomicSwaps []AugmentedAtomicSwap

type GenesisState

type GenesisState struct {
	Params            Params        `json:"params" yaml:"params"`
	AtomicSwaps       AtomicSwaps   `json:"atomic_swaps" yaml:"atomic_swaps"`
	Supplies          AssetSupplies `json:"supplies" yaml:"supplies"`
	PreviousBlockTime time.Time     `json:"previous_block_time" yaml:"previous_block_time"`
}

GenesisState - all bep3 state that must be provided at genesis

func DefaultGenesisState

func DefaultGenesisState() GenesisState

DefaultGenesisState - default GenesisState used by Cosmos Hub

func NewGenesisState

func NewGenesisState(params Params, swaps AtomicSwaps, supplies AssetSupplies, previousBlockTime time.Time) GenesisState

NewGenesisState creates a new GenesisState object

func (GenesisState) Equal

func (gs GenesisState) Equal(gs2 GenesisState) bool

Equal checks whether two GenesisState structs are equivalent.

func (GenesisState) IsEmpty

func (gs GenesisState) IsEmpty() bool

IsEmpty returns true if a GenesisState is empty.

func (GenesisState) Validate

func (gs GenesisState) Validate() error

Validate validates genesis inputs. It returns error if validation of any input fails.

type MsgClaimAtomicSwap

type MsgClaimAtomicSwap struct {
	From         sdk.AccAddress   `json:"from"  yaml:"from"`
	SwapID       tmbytes.HexBytes `json:"swap_id"  yaml:"swap_id"`
	RandomNumber tmbytes.HexBytes `json:"random_number"  yaml:"random_number"`
}

MsgClaimAtomicSwap defines a AtomicSwap claim

func NewMsgClaimAtomicSwap

func NewMsgClaimAtomicSwap(from sdk.AccAddress, swapID, randomNumber []byte) MsgClaimAtomicSwap

NewMsgClaimAtomicSwap initializes a new MsgClaimAtomicSwap

func (MsgClaimAtomicSwap) GetInvolvedAddresses

func (msg MsgClaimAtomicSwap) GetInvolvedAddresses() []sdk.AccAddress

GetInvolvedAddresses gets the addresses involved in a MsgClaimAtomicSwap

func (MsgClaimAtomicSwap) GetSignBytes

func (msg MsgClaimAtomicSwap) GetSignBytes() []byte

GetSignBytes gets the sign bytes of a MsgClaimAtomicSwap

func (MsgClaimAtomicSwap) GetSigners

func (msg MsgClaimAtomicSwap) GetSigners() []sdk.AccAddress

GetSigners gets the signers of a MsgClaimAtomicSwap

func (MsgClaimAtomicSwap) Route

func (msg MsgClaimAtomicSwap) Route() string

Route establishes the route for the MsgClaimAtomicSwap

func (MsgClaimAtomicSwap) String

func (msg MsgClaimAtomicSwap) String() string

String prints the MsgClaimAtomicSwap

func (MsgClaimAtomicSwap) Type

func (msg MsgClaimAtomicSwap) Type() string

Type is the name of MsgClaimAtomicSwap

func (MsgClaimAtomicSwap) ValidateBasic

func (msg MsgClaimAtomicSwap) ValidateBasic() error

ValidateBasic validates the MsgClaimAtomicSwap

type MsgCreateAtomicSwap

type MsgCreateAtomicSwap struct {
	From                sdk.AccAddress   `json:"from"  yaml:"from"`
	To                  sdk.AccAddress   `json:"to"  yaml:"to"`
	RecipientOtherChain string           `json:"recipient_other_chain"  yaml:"recipient_other_chain"`
	SenderOtherChain    string           `json:"sender_other_chain"  yaml:"sender_other_chain"`
	RandomNumberHash    tmbytes.HexBytes `json:"random_number_hash"  yaml:"random_number_hash"`
	Timestamp           int64            `json:"timestamp"  yaml:"timestamp"`
	Amount              sdk.Coins        `json:"amount"  yaml:"amount"`
	HeightSpan          uint64           `json:"height_span"  yaml:"height_span"`
}

MsgCreateAtomicSwap contains an AtomicSwap struct

func NewMsgCreateAtomicSwap

func NewMsgCreateAtomicSwap(from sdk.AccAddress, to sdk.AccAddress, recipientOtherChain,
	senderOtherChain string, randomNumberHash tmbytes.HexBytes, timestamp int64,
	amount sdk.Coins, heightSpan uint64) MsgCreateAtomicSwap

NewMsgCreateAtomicSwap initializes a new MsgCreateAtomicSwap

func (MsgCreateAtomicSwap) GetInvolvedAddresses

func (msg MsgCreateAtomicSwap) GetInvolvedAddresses() []sdk.AccAddress

GetInvolvedAddresses gets the addresses involved in a MsgCreateAtomicSwap

func (MsgCreateAtomicSwap) GetSignBytes

func (msg MsgCreateAtomicSwap) GetSignBytes() []byte

GetSignBytes gets the sign bytes of a MsgCreateAtomicSwap

func (MsgCreateAtomicSwap) GetSigners

func (msg MsgCreateAtomicSwap) GetSigners() []sdk.AccAddress

GetSigners gets the signers of a MsgCreateAtomicSwap

func (MsgCreateAtomicSwap) Route

func (msg MsgCreateAtomicSwap) Route() string

Route establishes the route for the MsgCreateAtomicSwap

func (MsgCreateAtomicSwap) String

func (msg MsgCreateAtomicSwap) String() string

String prints the MsgCreateAtomicSwap

func (MsgCreateAtomicSwap) Type

func (msg MsgCreateAtomicSwap) Type() string

Type is the name of MsgCreateAtomicSwap

func (MsgCreateAtomicSwap) ValidateBasic

func (msg MsgCreateAtomicSwap) ValidateBasic() error

ValidateBasic validates the MsgCreateAtomicSwap

type MsgRefundAtomicSwap

type MsgRefundAtomicSwap struct {
	From   sdk.AccAddress   `json:"from" yaml:"from"`
	SwapID tmbytes.HexBytes `json:"swap_id" yaml:"swap_id"`
}

MsgRefundAtomicSwap defines a refund msg

func NewMsgRefundAtomicSwap

func NewMsgRefundAtomicSwap(from sdk.AccAddress, swapID []byte) MsgRefundAtomicSwap

NewMsgRefundAtomicSwap initializes a new MsgRefundAtomicSwap

func (MsgRefundAtomicSwap) GetInvolvedAddresses

func (msg MsgRefundAtomicSwap) GetInvolvedAddresses() []sdk.AccAddress

GetInvolvedAddresses gets the addresses involved in a MsgRefundAtomicSwap

func (MsgRefundAtomicSwap) GetSignBytes

func (msg MsgRefundAtomicSwap) GetSignBytes() []byte

GetSignBytes gets the sign bytes of a MsgRefundAtomicSwap

func (MsgRefundAtomicSwap) GetSigners

func (msg MsgRefundAtomicSwap) GetSigners() []sdk.AccAddress

GetSigners gets the signers of a MsgRefundAtomicSwap

func (MsgRefundAtomicSwap) Route

func (msg MsgRefundAtomicSwap) Route() string

Route establishes the route for the MsgRefundAtomicSwap

func (MsgRefundAtomicSwap) String

func (msg MsgRefundAtomicSwap) String() string

String prints the MsgRefundAtomicSwap

func (MsgRefundAtomicSwap) Type

func (msg MsgRefundAtomicSwap) Type() string

Type is the name of MsgRefundAtomicSwap

func (MsgRefundAtomicSwap) ValidateBasic

func (msg MsgRefundAtomicSwap) ValidateBasic() error

ValidateBasic validates the MsgRefundAtomicSwap

type Params

type Params struct {
	AssetParams AssetParams `json:"asset_params" yaml:"asset_params"`
}

Params governance parameters for bep3 module

func DefaultParams

func DefaultParams() Params

DefaultParams returns default params for bep3 module

func NewParams

func NewParams(ap AssetParams,
) Params

NewParams returns a new params object

func (*Params) ParamSetPairs

func (p *Params) ParamSetPairs() params.ParamSetPairs

ParamSetPairs implements the ParamSet interface and returns all the key/value pairs pairs of bep3 module's parameters. nolint

func (Params) String

func (p Params) String() string

String implements fmt.Stringer

func (Params) Validate

func (p Params) Validate() error

Validate ensure that params have valid values

type QueryAssetSupplies added in v0.8.0

type QueryAssetSupplies struct {
	Page  int `json:"page" yaml:"page"`
	Limit int `json:"limit" yaml:"limit"`
}

QueryAssetSupplies contains the params for an AssetSupplies query

func NewQueryAssetSupplies added in v0.8.0

func NewQueryAssetSupplies(page int, limit int) QueryAssetSupplies

NewQueryAssetSupplies creates a new QueryAssetSupplies

type QueryAssetSupply

type QueryAssetSupply struct {
	Denom string `json:"denom" yaml:"denom"`
}

QueryAssetSupply contains the params for query 'custom/bep3/supply'

func NewQueryAssetSupply

func NewQueryAssetSupply(denom string) QueryAssetSupply

NewQueryAssetSupply creates a new QueryAssetSupply

type QueryAtomicSwapByID

type QueryAtomicSwapByID struct {
	SwapID tmbytes.HexBytes `json:"swap_id" yaml:"swap_id"`
}

QueryAtomicSwapByID contains the params for query 'custom/bep3/swap'

func NewQueryAtomicSwapByID

func NewQueryAtomicSwapByID(swapBytes tmbytes.HexBytes) QueryAtomicSwapByID

NewQueryAtomicSwapByID creates a new QueryAtomicSwapByID

type QueryAtomicSwaps

type QueryAtomicSwaps struct {
	Page       int            `json:"page" yaml:"page"`
	Limit      int            `json:"limit" yaml:"limit"`
	Involve    sdk.AccAddress `json:"involve" yaml:"involve"`
	Expiration uint64         `json:"expiration" yaml:"expiration"`
	Status     SwapStatus     `json:"status" yaml:"status"`
	Direction  SwapDirection  `json:"direction" yaml:"direction"`
}

QueryAtomicSwaps contains the params for an AtomicSwaps query

func NewQueryAtomicSwaps

func NewQueryAtomicSwaps(page, limit int, involve sdk.AccAddress, expiration uint64,
	status SwapStatus, direction SwapDirection) QueryAtomicSwaps

NewQueryAtomicSwaps creates a new instance of QueryAtomicSwaps

type SupplyKeeper

type SupplyKeeper interface {
	GetModuleAddress(name string) sdk.AccAddress
	GetModuleAccount(ctx sdk.Context, moduleName string) supplyexported.ModuleAccountI
	GetModuleAddressAndPermissions(moduleName string) (sdk.AccAddress, []string)
	SetModuleAccount(ctx sdk.Context, macc supplyexported.ModuleAccountI)

	SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
	SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error
	BurnCoins(ctx sdk.Context, name string, amt sdk.Coins) error
	MintCoins(ctx sdk.Context, name string, amt sdk.Coins) error
}

SupplyKeeper defines the expected supply keeper (noalias)

type SupplyLimit added in v0.11.0

type SupplyLimit struct {
	Limit          sdk.Int       `json:"limit" yaml:"limit"`                       // the absolute supply limit for an asset
	TimeLimited    bool          `json:"time_limited" yaml:"time_limited"`         // boolean for if the supply is also limited by time
	TimePeriod     time.Duration `json:"time_period" yaml:"time_period"`           // the duration for which the supply time limit applies
	TimeBasedLimit sdk.Int       `json:"time_based_limit" yaml:"time_based_limit"` // the supply limit for an asset for each time period
}

SupplyLimit parameters that control the absolute and time-based limits for an assets's supply

func (SupplyLimit) Equals added in v0.11.0

func (sl SupplyLimit) Equals(sl2 SupplyLimit) bool

Equals returns true if two supply limits are equal

func (SupplyLimit) String added in v0.11.0

func (sl SupplyLimit) String() string

String implements fmt.Stringer

type SwapDirection

type SwapDirection byte

SwapDirection is the direction of an AtomicSwap

const (
	INVALID  SwapDirection = 0x00
	Incoming SwapDirection = 0x01
	Outgoing SwapDirection = 0x02
)

func NewSwapDirectionFromString

func NewSwapDirectionFromString(str string) SwapDirection

NewSwapDirectionFromString converts string to SwapDirection type

func (SwapDirection) IsValid added in v0.8.0

func (direction SwapDirection) IsValid() bool

IsValid returns true if the swap direction is valid and false otherwise.

func (SwapDirection) MarshalJSON

func (direction SwapDirection) MarshalJSON() ([]byte, error)

MarshalJSON marshals the SwapDirection

func (SwapDirection) String

func (direction SwapDirection) String() string

String returns the string representation of a SwapDirection

func (*SwapDirection) UnmarshalJSON

func (direction *SwapDirection) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals the SwapDirection

type SwapStatus

type SwapStatus byte

SwapStatus is the status of an AtomicSwap

const (
	NULL      SwapStatus = 0x00
	Open      SwapStatus = 0x01
	Completed SwapStatus = 0x02
	Expired   SwapStatus = 0x03
)

swap statuses

func NewSwapStatusFromString

func NewSwapStatusFromString(str string) SwapStatus

NewSwapStatusFromString converts string to SwapStatus type

func (SwapStatus) IsValid added in v0.8.0

func (status SwapStatus) IsValid() bool

IsValid returns true if the swap status is valid and false otherwise.

func (SwapStatus) MarshalJSON

func (status SwapStatus) MarshalJSON() ([]byte, error)

MarshalJSON marshals the SwapStatus

func (SwapStatus) String

func (status SwapStatus) String() string

String returns the string representation of a SwapStatus

func (*SwapStatus) UnmarshalJSON

func (status *SwapStatus) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals the SwapStatus

Jump to

Keyboard shortcuts

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