types

package
v0.12.2 Latest Latest
Warning

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

Go to latest
Published: Aug 13, 2020 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PowerFunction     = "power_function"
	SigmoidFunction   = "sigmoid_function"
	SwapperFunction   = "swapper_function"
	AugmentedFunction = "augmented_function"

	HatchState  = "HATCH"
	OpenState   = "OPEN"
	SettleState = "SETTLE"

	DoNotModifyField = "[do-not-modify]"

	AnyNumberOfReserveTokens = -1
)
View Source
const (
	EventTypeCreateBond         = "create_bond"
	EventTypeEditBond           = "edit_bond"
	EventTypeInitSwapper        = "init_swapper"
	EventTypeBuy                = "buy"
	EventTypeSell               = "sell"
	EventTypeSwap               = "swap"
	EventTypeMakeOutcomePayment = "make_outcome_payment"
	EventTypeWithdrawShare      = "withdraw_share"
	EventTypeOrderCancel        = "order_cancel"
	EventTypeOrderFulfill       = "order_fulfill"
	EventTypeStateChange        = "state_change"

	AttributeKeyBondDid                = "bond_did"
	AttributeKeyToken                  = "token"
	AttributeKeyName                   = "name"
	AttributeKeyDescription            = "description"
	AttributeKeyFunctionType           = "function_type"
	AttributeKeyFunctionParameters     = "function_parameters"
	AttributeKeyReserveTokens          = "reserve_tokens"
	AttributeKeyTxFeePercentage        = "tx_fee_percentage"
	AttributeKeyExitFeePercentage      = "exit_fee_percentage"
	AttributeKeyFeeAddress             = "fee_address"
	AttributeKeyMaxSupply              = "max_supply"
	AttributeKeyOrderQuantityLimits    = "order_quantity_limits"
	AttributeKeySanityRate             = "sanity_rate"
	AttributeKeySanityMarginPercentage = "sanity_margin_percentage"
	AttributeKeyAllowSells             = "allow_sells"
	AttributeKeyBatchBlocks            = "batch_blocks"
	AttributeKeyOutcomePayment         = "outcome_payment"
	AttributeKeyState                  = "state"
	AttributeKeyMaxPrices              = "max_prices"
	AttributeKeySwapFromToken          = "from_token"
	AttributeKeySwapToToken            = "to_token"
	AttributeKeyOrderType              = "order_type"
	AttributeKeyAddress                = "address"
	AttributeKeyCancelReason           = "cancel_reason"
	AttributeKeyTokensMinted           = "tokens_minted"
	AttributeKeyTokensBurned           = "tokens_burned"
	AttributeKeyTokensSwapped          = "tokens_swapped"
	AttributeKeyChargedPrices          = "charged_prices"
	AttributeKeyChargedPricesReserve   = "charged_prices_of_which_reserve"
	AttributeKeyChargedPricesFunding   = "charged_prices_of_which_funding"
	AttributeKeyChargedFees            = "charged_fees"
	AttributeKeyReturnedToAddress      = "returned_to_address"
	AttributeKeyNewBondTokenBalance    = "new_bond_token_balance"
	AttributeKeyOldState               = "old_state"
	AttributeKeyNewState               = "new_state"

	AttributeValueBuyOrder  = "buy"
	AttributeValueSellOrder = "sell"
	AttributeValueSwapOrder = "swap"
	AttributeValueCategory  = ModuleName
)
View Source
const (
	// ModuleName is the name of this module
	ModuleName = "bonds"

	// StoreKey is the default store key for this module
	StoreKey = ModuleName

	// BondsMintBurnAccount the root string for the bonds mint burn account address
	BondsMintBurnAccount = "bonds_mint_burn_account"

	// BatchesIntermediaryAccount the root string for the batches account address
	BatchesIntermediaryAccount = "batches_intermediary_account"

	// BondsReserveAccount the root string for the bonds reserve account address
	BondsReserveAccount = "bonds_reserve_account"

	// QuerierRoute is the querier route for this module's store.
	QuerierRoute = ModuleName

	// RouterKey is the message route for this module
	RouterKey = ModuleName
)
View Source
const (
	TypeMsgCreateBond         = "create_bond"
	TypeMsgEditBond           = "edit_bond"
	TypeMsgBuy                = "buy"
	TypeMsgSell               = "sell"
	TypeMsgSwap               = "swap"
	TypeMsgMakeOutcomePayment = "make_outcome_payment"
	TypeMsgWithdrawShare      = "withdraw_share"
)

Variables

View Source
var (
	RequiredParamsForFunctionType = map[string][]string{
		PowerFunction:     {"m", "n", "c"},
		SigmoidFunction:   {"a", "b", "c"},
		SwapperFunction:   nil,
		AugmentedFunction: {"d0", "p0", "theta", "kappa"},
	}

	NoOfReserveTokensForFunctionType = map[string]int{
		PowerFunction:     AnyNumberOfReserveTokens,
		SigmoidFunction:   AnyNumberOfReserveTokens,
		SwapperFunction:   2,
		AugmentedFunction: AnyNumberOfReserveTokens,
	}

	ExtraParameterRestrictions = map[string]FunctionParamRestrictions{
		PowerFunction:     powerParameterRestrictions,
		SigmoidFunction:   sigmoidParameterRestrictions,
		SwapperFunction:   nil,
		AugmentedFunction: augmentedParameterRestrictions,
	}
)
View Source
var (
	BondsKeyPrefix       = []byte{0x00} // key for bonds
	BatchesKeyPrefix     = []byte{0x01} // key for batches
	LastBatchesKeyPrefix = []byte{0x02} // key for last batches
	BondDidsKeyPrefix    = []byte{0x03} // key for bond DIDs
)

Bonds and batches are stored as follow:

- Bonds: 0x00<bond_did_bytes> - Batches: 0x01<bond_did_bytes> - Last batches: 0x02<bond_did_bytes> - Bond DIDs: 0x03<bond_token_bytes>

View Source
var ModuleCdc *codec.Codec

ModuleCdc is the codec for the module

Functions

func AccAddressesToString

func AccAddressesToString(addresses []sdk.AccAddress) (result string)

func AdjustFees

func AdjustFees(fees sdk.Coins, maxFees sdk.Coins) sdk.Coins

func ApproxRoot added in v0.12.2

func ApproxRoot(d sdk.Dec, root uint64) (guess sdk.Dec, err error)

NOTE: copied off of more recent versions of Cosmos SDK ApproxRoot returns an approximate estimation of a Dec's positive real nth root using Newton's method (where n is positive). The algorithm starts with some guess and computes the sequence of improved guesses until an answer converges to an approximate answer. It returns `|d|.ApproxRoot() * -1` if input is negative.

func CheckCoinDenom

func CheckCoinDenom(denom string) (err sdk.Error)

func CheckNoOfReserveTokens

func CheckNoOfReserveTokens(resTokens []string, fnType string) sdk.Error

func CheckReserveTokenNames

func CheckReserveTokenNames(resTokens []string, token string) sdk.Error

func DivideDecCoinByDec

func DivideDecCoinByDec(dc sdk.DecCoin, scale sdk.Dec) sdk.DecCoin

func DivideDecCoinsByDec

func DivideDecCoinsByDec(dcs sdk.DecCoins, scale sdk.Dec) (scaled sdk.DecCoins)

noinspection GoNilness

func ErrArgumentCannotBeEmpty

func ErrArgumentCannotBeEmpty(codespace sdk.CodespaceType, argument string) sdk.Error

func ErrArgumentCannotBeNegative

func ErrArgumentCannotBeNegative(codespace sdk.CodespaceType, arg string) sdk.Error

func ErrArgumentMissingOrNonBoolean

func ErrArgumentMissingOrNonBoolean(codespace sdk.CodespaceType, arg string) sdk.Error

func ErrArgumentMissingOrNonFloat

func ErrArgumentMissingOrNonFloat(codespace sdk.CodespaceType, arg string) sdk.Error

func ErrArgumentMissingOrNonUInteger

func ErrArgumentMissingOrNonUInteger(codespace sdk.CodespaceType, arg string) sdk.Error

func ErrArgumentMustBeBetween added in v0.12.2

func ErrArgumentMustBeBetween(codespace sdk.CodespaceType, arg string, a, b string) sdk.Error

func ErrArgumentMustBeInteger added in v0.12.2

func ErrArgumentMustBeInteger(codespace sdk.CodespaceType, arg string) sdk.Error

func ErrArgumentMustBePositive

func ErrArgumentMustBePositive(codespace sdk.CodespaceType, arg string) sdk.Error

func ErrBondAlreadyExists

func ErrBondAlreadyExists(codespace sdk.CodespaceType, bondDid did.Did) sdk.Error

func ErrBondDoesNotAllowSelling

func ErrBondDoesNotAllowSelling(codespace sdk.CodespaceType) sdk.Error

func ErrBondDoesNotExist

func ErrBondDoesNotExist(codespace sdk.CodespaceType, bondDid did.Did) sdk.Error

func ErrBondTokenCannotAlsoBeReserveToken

func ErrBondTokenCannotAlsoBeReserveToken(codespace sdk.CodespaceType) sdk.Error

func ErrBondTokenCannotBeStakingToken

func ErrBondTokenCannotBeStakingToken(codespace sdk.CodespaceType) sdk.Error

func ErrBondTokenDoesNotMatchBond

func ErrBondTokenDoesNotMatchBond(codespace sdk.CodespaceType) sdk.Error

func ErrBondTokenIsTaken

func ErrBondTokenIsTaken(codespace sdk.CodespaceType, bondToken string) sdk.Error

func ErrCannotBurnMoreThanSupply

func ErrCannotBurnMoreThanSupply(codespace sdk.CodespaceType) sdk.Error

func ErrCannotMakeZeroOutcomePayment added in v0.12.2

func ErrCannotMakeZeroOutcomePayment(codespace sdk.CodespaceType) sdk.Error

func ErrCannotMintMoreThanMaxSupply

func ErrCannotMintMoreThanMaxSupply(codespace sdk.CodespaceType) sdk.Error

func ErrDidNotEditAnything

func ErrDidNotEditAnything(codespace sdk.CodespaceType) sdk.Error

func ErrDuplicateReserveToken

func ErrDuplicateReserveToken(codespace sdk.CodespaceType) sdk.Error

func ErrFeesCannotBeOrExceed100Percent

func ErrFeesCannotBeOrExceed100Percent(codespace sdk.CodespaceType) sdk.Error

func ErrFromAndToCannotBeTheSameToken

func ErrFromAndToCannotBeTheSameToken(codespace sdk.CodespaceType) sdk.Error

func ErrFunctionNotAvailableForFunctionType

func ErrFunctionNotAvailableForFunctionType(codespace sdk.CodespaceType) sdk.Error

func ErrFunctionParameterMissingOrNonFloat added in v0.12.2

func ErrFunctionParameterMissingOrNonFloat(codespace sdk.CodespaceType, param string) sdk.Error

func ErrFunctionRequiresNonZeroCurrentSupply

func ErrFunctionRequiresNonZeroCurrentSupply(codespace sdk.CodespaceType) sdk.Error

func ErrIncorrectNumberOfFunctionParameters

func ErrIncorrectNumberOfFunctionParameters(codespace sdk.CodespaceType, expected int) sdk.Error

func ErrIncorrectNumberOfReserveTokens

func ErrIncorrectNumberOfReserveTokens(codespace sdk.CodespaceType, expected int) sdk.Error

func ErrInsufficientReserveToBuy added in v0.12.2

func ErrInsufficientReserveToBuy(codespace sdk.CodespaceType) sdk.Error

func ErrInvalidCoinDenomination

func ErrInvalidCoinDenomination(codespace sdk.CodespaceType, denom string) sdk.Error

func ErrInvalidFunctionParameter

func ErrInvalidFunctionParameter(codespace sdk.CodespaceType, parameter string) sdk.Error

func ErrInvalidStateForAction added in v0.12.2

func ErrInvalidStateForAction(codespace sdk.CodespaceType) sdk.Error

func ErrMaxPriceExceeded

func ErrMaxPriceExceeded(codespace sdk.CodespaceType, totalPrice, maxPrice sdk.Coins) sdk.Error

func ErrMaxSupplyDenomDoesNotMatchTokenDenom

func ErrMaxSupplyDenomDoesNotMatchTokenDenom(codespace sdk.CodespaceType) sdk.Error

func ErrNoBondTokensOwned added in v0.12.2

func ErrNoBondTokensOwned(codespace sdk.CodespaceType) sdk.Error

func ErrOrderQuantityLimitExceeded

func ErrOrderQuantityLimitExceeded(codespace sdk.CodespaceType) sdk.Error

func ErrReserveDenomsMismatch

func ErrReserveDenomsMismatch(codespace sdk.CodespaceType, inputDenoms string, actualDenoms []string) sdk.Error

func ErrSwapAmountCausesReserveDepletion

func ErrSwapAmountCausesReserveDepletion(codespace sdk.CodespaceType, fromToken, toToken string) sdk.Error

func ErrSwapAmountTooSmallToGiveAnyReturn

func ErrSwapAmountTooSmallToGiveAnyReturn(codespace sdk.CodespaceType, fromToken, toToken string) sdk.Error

func ErrTokenIsNotAValidReserveToken

func ErrTokenIsNotAValidReserveToken(codespace sdk.CodespaceType, denom string) sdk.Error

func ErrUnrecognizedFunctionType

func ErrUnrecognizedFunctionType(codespace sdk.CodespaceType) sdk.Error

func ErrValuesViolateSanityRate

func ErrValuesViolateSanityRate(codespace sdk.CodespaceType) sdk.Error

func GetBatchKey

func GetBatchKey(bondDid did.Did) []byte

func GetBondDidsKey

func GetBondDidsKey(token string) []byte

func GetBondKey

func GetBondKey(bondDid did.Did) []byte

func GetLastBatchKey

func GetLastBatchKey(bondDid did.Did) []byte

func GetRequiredParamsForFunctionType

func GetRequiredParamsForFunctionType(fnType string) (fnParams []string, err sdk.Error)

func Invariant added in v0.12.2

func Invariant(R, S sdk.Dec, kappa int64) sdk.Dec

value function for a given state (R,S)

func MultiplyDecCoinByDec

func MultiplyDecCoinByDec(dc sdk.DecCoin, scale sdk.Dec) sdk.DecCoin

func MultiplyDecCoinByInt

func MultiplyDecCoinByInt(dc sdk.DecCoin, scale sdk.Int) sdk.DecCoin

func MultiplyDecCoinsByDec

func MultiplyDecCoinsByDec(dcs sdk.DecCoins, scale sdk.Dec) (scaled sdk.DecCoins)

noinspection GoNilness

func MultiplyDecCoinsByInt

func MultiplyDecCoinsByInt(dcs sdk.DecCoins, scale sdk.Int) (scaled sdk.DecCoins)

noinspection GoNilness

func Power added in v0.12.2

func Power(d sdk.Dec, power uint64) sdk.Dec

NOTE: copied off of more recent versions of Cosmos SDK Power returns a the result of raising to a positive integer power

func RegisterCodec

func RegisterCodec(cdc *codec.Codec)

func Reserve added in v0.12.2

func Reserve(S sdk.Dec, kappa int64, V0 sdk.Dec) sdk.Dec

This is the reverse of Supply(...) function

func RoundFee

func RoundFee(f sdk.DecCoin) sdk.Coin

func RoundReservePrice

func RoundReservePrice(p sdk.DecCoin) sdk.Coin

func RoundReservePrices

func RoundReservePrices(ps sdk.DecCoins) (rounded sdk.Coins)

noinspection GoNilness

func RoundReserveReturn

func RoundReserveReturn(r sdk.DecCoin) sdk.Coin

func RoundReserveReturns

func RoundReserveReturns(rs sdk.DecCoins) (rounded sdk.Coins)

noinspection GoNilness

func SpotPrice added in v0.12.2

func SpotPrice(R sdk.Dec, kappa int64, V0 sdk.Dec) sdk.Dec

given a value function (parameterized by kappa) and an invariant coeficient V0 return a spot price P as a function of reserve R

func StringsToString

func StringsToString(strs []string) (result string)

func Supply added in v0.12.2

func Supply(R sdk.Dec, kappa int64, V0 sdk.Dec) sdk.Dec

given a value function (parameterized by kappa) and an invariant coeficient V0 return Supply S as a function of reserve R

func ValidateGenesis

func ValidateGenesis(data GenesisState) error

noinspection GoUnusedParameter

Types

type BaseOrder

type BaseOrder struct {
	AccountDid   did.Did  `json:"sender_did" yaml:"sender_did"`
	Amount       sdk.Coin `json:"amount" yaml:"amount"`
	Cancelled    bool     `json:"cancelled" yaml:"cancelled"`
	CancelReason string   `json:"cancel_reason" yaml:"cancel_reason"`
}

func NewBaseOrder

func NewBaseOrder(accountDid did.Did, amount sdk.Coin) BaseOrder

func (BaseOrder) IsCancelled

func (bo BaseOrder) IsCancelled() bool

type Batch

type Batch struct {
	BondDid         did.Did      `json:"bond_did" yaml:"bond_did"`
	BlocksRemaining sdk.Uint     `json:"blocks_remaining" yaml:"blocks_remaining"`
	TotalBuyAmount  sdk.Coin     `json:"total_buy_amount" yaml:"total_buy_amount"`
	TotalSellAmount sdk.Coin     `json:"total_sell_amount" yaml:"total_sell_amount"`
	BuyPrices       sdk.DecCoins `json:"buy_prices" yaml:"buy_prices"`
	SellPrices      sdk.DecCoins `json:"sell_prices" yaml:"sell_prices"`
	Buys            []BuyOrder   `json:"buys" yaml:"buys"`
	Sells           []SellOrder  `json:"sells" yaml:"sells"`
	Swaps           []SwapOrder  `json:"swaps" yaml:"swaps"`
}

func NewBatch

func NewBatch(bondDid did.Did, token string, blocks sdk.Uint) Batch

func (Batch) EqualBuysAndSells

func (b Batch) EqualBuysAndSells() bool

func (Batch) MoreBuysThanSells

func (b Batch) MoreBuysThanSells() bool

func (Batch) MoreSellsThanBuys

func (b Batch) MoreSellsThanBuys() bool

type Bond

type Bond struct {
	Token                  string         `json:"token" yaml:"token"`
	Name                   string         `json:"name" yaml:"name"`
	Description            string         `json:"description" yaml:"description"`
	CreatorDid             did.Did        `json:"creator_did" yaml:"creator_did"`
	FunctionType           string         `json:"function_type" yaml:"function_type"`
	FunctionParameters     FunctionParams `json:"function_parameters" yaml:"function_parameters"`
	ReserveTokens          []string       `json:"reserve_tokens" yaml:"reserve_tokens"`
	TxFeePercentage        sdk.Dec        `json:"tx_fee_percentage" yaml:"tx_fee_percentage"`
	ExitFeePercentage      sdk.Dec        `json:"exit_fee_percentage" yaml:"exit_fee_percentage"`
	FeeAddress             sdk.AccAddress `json:"fee_address" yaml:"fee_address"`
	MaxSupply              sdk.Coin       `json:"max_supply" yaml:"max_supply"`
	OrderQuantityLimits    sdk.Coins      `json:"order_quantity_limits" yaml:"order_quantity_limits"`
	SanityRate             sdk.Dec        `json:"sanity_rate" yaml:"sanity_rate"`
	SanityMarginPercentage sdk.Dec        `json:"sanity_margin_percentage" yaml:"sanity_margin_percentage"`
	CurrentSupply          sdk.Coin       `json:"current_supply" yaml:"current_supply"`
	CurrentReserve         sdk.Coins      `json:"current_reserve" yaml:"current_reserve"`
	AllowSells             bool           `json:"allow_sells" yaml:"allow_sells"`
	BatchBlocks            sdk.Uint       `json:"batch_blocks" yaml:"batch_blocks"`
	OutcomePayment         sdk.Coins      `json:"outcome_payment" yaml:"outcome_payment"`
	State                  string         `json:"state" yaml:"state"`
	BondDid                did.Did        `json:"bond_did" yaml:"bond_did"`
}

func NewBond

func NewBond(token, name, description string, creatorDid did.Did,
	functionType string, functionParameters FunctionParams, reserveTokens []string,
	txFeePercentage, exitFeePercentage sdk.Dec, feeAddress sdk.AccAddress,
	maxSupply sdk.Coin, orderQuantityLimits sdk.Coins, sanityRate,
	sanityMarginPercentage sdk.Dec, allowSells bool, batchBlocks sdk.Uint,
	outcomePayment sdk.Coins, state string, bondDid did.Did) Bond

func (Bond) AnyOrderQuantityLimitsExceeded

func (bond Bond) AnyOrderQuantityLimitsExceeded(amounts sdk.Coins) bool

func (Bond) GetCurrentPricesPT

func (bond Bond) GetCurrentPricesPT(reserveBalances sdk.Coins) (sdk.DecCoins, sdk.Error)

func (Bond) GetExitFee

func (bond Bond) GetExitFee(reserveAmount sdk.DecCoin) sdk.Coin

func (Bond) GetExitFees

func (bond Bond) GetExitFees(reserveAmounts sdk.DecCoins) (fees sdk.Coins)

noinspection GoNilness

func (Bond) GetFee added in v0.12.2

func (bond Bond) GetFee(reserveAmount sdk.DecCoin, percentage sdk.Dec) sdk.Coin

func (Bond) GetFees added in v0.12.2

func (bond Bond) GetFees(reserveAmounts sdk.DecCoins, percentage sdk.Dec) (fees sdk.Coins)

func (Bond) GetNewReserveDecCoins

func (bond Bond) GetNewReserveDecCoins(amount sdk.Dec) (coins sdk.DecCoins)

noinspection GoNilness

func (Bond) GetPricesAtSupply

func (bond Bond) GetPricesAtSupply(supply sdk.Int) (result sdk.DecCoins, err sdk.Error)

func (Bond) GetPricesToMint

func (bond Bond) GetPricesToMint(mint sdk.Int, reserveBalances sdk.Coins) (sdk.DecCoins, sdk.Error)

func (Bond) GetReserveDeltaForLiquidityDelta

func (bond Bond) GetReserveDeltaForLiquidityDelta(mintOrBurn sdk.Int, reserveBalances sdk.Coins) sdk.DecCoins

func (Bond) GetReturnsForBurn

func (bond Bond) GetReturnsForBurn(burn sdk.Int, reserveBalances sdk.Coins) sdk.DecCoins

func (Bond) GetReturnsForSwap

func (bond Bond) GetReturnsForSwap(from sdk.Coin, toToken string, reserveBalances sdk.Coins) (returns sdk.Coins, txFee sdk.Coin, err sdk.Error)

func (Bond) GetTxFee

func (bond Bond) GetTxFee(reserveAmount sdk.DecCoin) sdk.Coin

func (Bond) GetTxFees

func (bond Bond) GetTxFees(reserveAmounts sdk.DecCoins) (fees sdk.Coins)

noinspection GoNilness

func (Bond) ReserveAtSupply added in v0.12.2

func (bond Bond) ReserveAtSupply(supply sdk.Int) (result sdk.Dec)

func (Bond) ReserveDenomsEqualTo

func (bond Bond) ReserveDenomsEqualTo(coins sdk.Coins) bool

func (Bond) ReservesViolateSanityRate

func (bond Bond) ReservesViolateSanityRate(newReserves sdk.Coins) bool

type BuyOrder

type BuyOrder struct {
	BaseOrder
	MaxPrices sdk.Coins `json:"max_prices" yaml:"max_prices"`
}

func NewBuyOrder

func NewBuyOrder(buyerDid did.Did, amount sdk.Coin, maxPrices sdk.Coins) BuyOrder

type CodeType

type CodeType = sdk.CodeType

Local code type

const (
	DefaultCodespace sdk.CodespaceType = ModuleName

	// General
	CodeArgumentInvalid                CodeType = 301
	CodeArgumentMissingOrIncorrectType CodeType = 302
	CodeIncorrectNumberOfValues        CodeType = 303
	CodeActionInvalid                  CodeType = 304

	// Bonds
	CodeBondDoesNotExist        CodeType = 305
	CodeBondAlreadyExists       CodeType = 306
	CodeBondDoesNotAllowSelling CodeType = 307
	CodeDidNotEditAnything      CodeType = 308
	CodeInvalidSwapper          CodeType = 309
	CodeInvalidBond             CodeType = 310
	CodeInvalidState            CodeType = 311

	// Function types and function parameters
	CodeUnrecognizedFunctionType             CodeType = 312
	CodeInvalidFunctionParameter             CodeType = 313
	CodeFunctionNotAvailableForFunctionType  CodeType = 314
	CodeFunctionRequiresNonZeroCurrentSupply CodeType = 315

	// Token/coin names
	CodeReserveTokenInvalid     CodeType = 316
	CodeMaxSupplyDenomInvalid   CodeType = 317
	CodeBondTokenInvalid        CodeType = 318
	CodeReserveDenomsMismatch   CodeType = 319
	CodeInvalidCoinDenomination CodeType = 320

	// Amounts and fees
	CodeInvalidResultantSupply     CodeType = 321
	CodeMaxPriceExceeded           CodeType = 322
	CodeSwapAmountInvalid          CodeType = 323
	CodeOrderQuantityLimitExceeded CodeType = 324
	CodeSanityRateViolated         CodeType = 325
	CodeFeeTooLarge                CodeType = 326
	CodeNoBondTokensOwned          CodeType = 327
	CodeInsufficientReserveToBuy   CodeType = 328
)

type FunctionParam

type FunctionParam struct {
	Param string  `json:"param" yaml:"param"`
	Value sdk.Dec `json:"value" yaml:"value"`
}

func NewFunctionParam

func NewFunctionParam(param string, value sdk.Dec) FunctionParam

type FunctionParamRestrictions

type FunctionParamRestrictions func(paramsMap map[string]sdk.Dec) sdk.Error

func GetExceptionsForFunctionType

func GetExceptionsForFunctionType(fnType string) (restrictions FunctionParamRestrictions, err sdk.Error)

type FunctionParams

type FunctionParams []FunctionParam

func (FunctionParams) AsMap

func (fps FunctionParams) AsMap() (paramsMap map[string]sdk.Dec)

func (FunctionParams) String

func (fps FunctionParams) String() (result string)

func (FunctionParams) Validate

func (fps FunctionParams) Validate(functionType string) sdk.Error

type GenesisState

type GenesisState struct {
	Bonds   []Bond  `json:"bonds" yaml:"bonds"`
	Batches []Batch `json:"batches" yaml:"batches"`
}

func DefaultGenesisState

func DefaultGenesisState() GenesisState

func NewGenesisState

func NewGenesisState(bonds []Bond, batches []Batch) GenesisState

type MsgBuy

type MsgBuy struct {
	BuyerDid  did.Did   `json:"buyer_did" yaml:"buyer_did"`
	Amount    sdk.Coin  `json:"amount" yaml:"amount"`
	MaxPrices sdk.Coins `json:"max_prices" yaml:"max_prices"`
	BondDid   did.Did   `json:"bond_did" yaml:"bond_did"`
}

func NewMsgBuy

func NewMsgBuy(buyerDid did.Did, amount sdk.Coin, maxPrices sdk.Coins,
	bondDid did.Did) MsgBuy

func (MsgBuy) GetSignBytes

func (msg MsgBuy) GetSignBytes() []byte

func (MsgBuy) GetSignerDid

func (msg MsgBuy) GetSignerDid() did.Did

func (MsgBuy) GetSigners

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

func (MsgBuy) Route

func (msg MsgBuy) Route() string

func (MsgBuy) Type

func (msg MsgBuy) Type() string

func (MsgBuy) ValidateBasic

func (msg MsgBuy) ValidateBasic() sdk.Error

type MsgCreateBond

type MsgCreateBond struct {
	BondDid                did.Did        `json:"bond_did" yaml:"bond_did"`
	Token                  string         `json:"token" yaml:"token"`
	Name                   string         `json:"name" yaml:"name"`
	Description            string         `json:"description" yaml:"description"`
	FunctionType           string         `json:"function_type" yaml:"function_type"`
	FunctionParameters     FunctionParams `json:"function_parameters" yaml:"function_parameters"`
	CreatorDid             did.Did        `json:"creator_did" yaml:"creator_did"`
	ReserveTokens          []string       `json:"reserve_tokens" yaml:"reserve_tokens"`
	TxFeePercentage        sdk.Dec        `json:"tx_fee_percentage" yaml:"tx_fee_percentage"`
	ExitFeePercentage      sdk.Dec        `json:"exit_fee_percentage" yaml:"exit_fee_percentage"`
	FeeAddress             sdk.AccAddress `json:"fee_address" yaml:"fee_address"`
	MaxSupply              sdk.Coin       `json:"max_supply" yaml:"max_supply"`
	OrderQuantityLimits    sdk.Coins      `json:"order_quantity_limits" yaml:"order_quantity_limits"`
	SanityRate             sdk.Dec        `json:"sanity_rate" yaml:"sanity_rate"`
	SanityMarginPercentage sdk.Dec        `json:"sanity_margin_percentage" yaml:"sanity_margin_percentage"`
	AllowSells             bool           `json:"allow_sells" yaml:"allow_sells"`
	BatchBlocks            sdk.Uint       `json:"batch_blocks" yaml:"batch_blocks"`
	OutcomePayment         sdk.Coins      `json:"outcome_payment" yaml:"outcome_payment"`
}

func NewMsgCreateBond

func NewMsgCreateBond(token, name, description string, creatorDid did.Did,
	functionType string, functionParameters FunctionParams, reserveTokens []string,
	txFeePercentage, exitFeePercentage sdk.Dec, feeAddress sdk.AccAddress, maxSupply sdk.Coin,
	orderQuantityLimits sdk.Coins, sanityRate, sanityMarginPercentage sdk.Dec,
	allowSell bool, batchBlocks sdk.Uint, outcomePayment sdk.Coins, bondDid did.Did) MsgCreateBond

func (MsgCreateBond) GetSignBytes

func (msg MsgCreateBond) GetSignBytes() []byte

func (MsgCreateBond) GetSignerDid

func (msg MsgCreateBond) GetSignerDid() did.Did

func (MsgCreateBond) GetSigners

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

func (MsgCreateBond) Route

func (msg MsgCreateBond) Route() string

func (MsgCreateBond) Type

func (msg MsgCreateBond) Type() string

func (MsgCreateBond) ValidateBasic

func (msg MsgCreateBond) ValidateBasic() sdk.Error

type MsgEditBond

type MsgEditBond struct {
	BondDid                did.Did `json:"bond_did" yaml:"bond_did"`
	Token                  string  `json:"token" yaml:"token"`
	Name                   string  `json:"name" yaml:"name"`
	Description            string  `json:"description" yaml:"description"`
	OrderQuantityLimits    string  `json:"order_quantity_limits" yaml:"order_quantity_limits"`
	SanityRate             string  `json:"sanity_rate" yaml:"sanity_rate"`
	SanityMarginPercentage string  `json:"sanity_margin_percentage" yaml:"sanity_margin_percentage"`
	EditorDid              did.Did `json:"editor_did" yaml:"editor_did"`
}

func NewMsgEditBond

func NewMsgEditBond(token, name, description, orderQuantityLimits, sanityRate,
	sanityMarginPercentage string, editorDid, bondDid did.Did) MsgEditBond

func (MsgEditBond) GetSignBytes

func (msg MsgEditBond) GetSignBytes() []byte

func (MsgEditBond) GetSignerDid

func (msg MsgEditBond) GetSignerDid() did.Did

func (MsgEditBond) GetSigners

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

func (MsgEditBond) Route

func (msg MsgEditBond) Route() string

func (MsgEditBond) Type

func (msg MsgEditBond) Type() string

func (MsgEditBond) ValidateBasic

func (msg MsgEditBond) ValidateBasic() sdk.Error

type MsgMakeOutcomePayment added in v0.12.2

type MsgMakeOutcomePayment struct {
	SenderDid did.Did `json:"sender_did" yaml:"sender_did"`
	BondDid   did.Did `json:"bond_did" yaml:"bond_did"`
}

func NewMsgMakeOutcomePayment added in v0.12.2

func NewMsgMakeOutcomePayment(senderDid, bondDid did.Did) MsgMakeOutcomePayment

func (MsgMakeOutcomePayment) GetSignBytes added in v0.12.2

func (msg MsgMakeOutcomePayment) GetSignBytes() []byte

func (MsgMakeOutcomePayment) GetSignerDid added in v0.12.2

func (msg MsgMakeOutcomePayment) GetSignerDid() did.Did

func (MsgMakeOutcomePayment) GetSigners added in v0.12.2

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

func (MsgMakeOutcomePayment) Route added in v0.12.2

func (msg MsgMakeOutcomePayment) Route() string

func (MsgMakeOutcomePayment) Type added in v0.12.2

func (msg MsgMakeOutcomePayment) Type() string

func (MsgMakeOutcomePayment) ValidateBasic added in v0.12.2

func (msg MsgMakeOutcomePayment) ValidateBasic() sdk.Error

type MsgSell

type MsgSell struct {
	SellerDid did.Did  `json:"seller_did" yaml:"seller_did"`
	Amount    sdk.Coin `json:"amount" yaml:"amount"`
	BondDid   did.Did  `json:"bond_did" yaml:"bond_did"`
}

func NewMsgSell

func NewMsgSell(sellerDid did.Did, amount sdk.Coin, bondDid did.Did) MsgSell

func (MsgSell) GetSignBytes

func (msg MsgSell) GetSignBytes() []byte

func (MsgSell) GetSignerDid

func (msg MsgSell) GetSignerDid() did.Did

func (MsgSell) GetSigners

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

func (MsgSell) Route

func (msg MsgSell) Route() string

func (MsgSell) Type

func (msg MsgSell) Type() string

func (MsgSell) ValidateBasic

func (msg MsgSell) ValidateBasic() sdk.Error

type MsgSwap

type MsgSwap struct {
	SwapperDid did.Did  `json:"swapper_did" yaml:"swapper_did"`
	BondDid    did.Did  `json:"bond_did" yaml:"bond_did"`
	From       sdk.Coin `json:"from" yaml:"from"`
	ToToken    string   `json:"to_token" yaml:"to_token"`
}

func NewMsgSwap

func NewMsgSwap(swapperDid did.Did, from sdk.Coin, toToken string,
	bondDid did.Did) MsgSwap

func (MsgSwap) GetSignBytes

func (msg MsgSwap) GetSignBytes() []byte

func (MsgSwap) GetSignerDid

func (msg MsgSwap) GetSignerDid() did.Did

func (MsgSwap) GetSigners

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

func (MsgSwap) Route

func (msg MsgSwap) Route() string

func (MsgSwap) Type

func (msg MsgSwap) Type() string

func (MsgSwap) ValidateBasic

func (msg MsgSwap) ValidateBasic() sdk.Error

type MsgWithdrawShare added in v0.12.2

type MsgWithdrawShare struct {
	RecipientDid did.Did `json:"recipient_did" yaml:"recipient_did"`
	BondDid      did.Did `json:"bond_did" yaml:"bond_did"`
}

func NewMsgWithdrawShare added in v0.12.2

func NewMsgWithdrawShare(recipientDid, bondDid did.Did) MsgWithdrawShare

func (MsgWithdrawShare) GetSignBytes added in v0.12.2

func (msg MsgWithdrawShare) GetSignBytes() []byte

func (MsgWithdrawShare) GetSignerDid added in v0.12.2

func (msg MsgWithdrawShare) GetSignerDid() did.Did

func (MsgWithdrawShare) GetSigners added in v0.12.2

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

func (MsgWithdrawShare) Route added in v0.12.2

func (msg MsgWithdrawShare) Route() string

func (MsgWithdrawShare) Type added in v0.12.2

func (msg MsgWithdrawShare) Type() string

func (MsgWithdrawShare) ValidateBasic added in v0.12.2

func (msg MsgWithdrawShare) ValidateBasic() sdk.Error

type QueryBonds

type QueryBonds []string

func (QueryBonds) String

func (b QueryBonds) String() string

type QueryBuyPrice

type QueryBuyPrice struct {
	AdjustedSupply sdk.Coin  `json:"adjusted_supply" yaml:"asdjusted_supply"`
	Prices         sdk.Coins `json:"prices" yaml:"prices"`
	TxFees         sdk.Coins `json:"tx_fees" yaml:"tx_fees"`
	TotalPrices    sdk.Coins `json:"total_prices" yaml:"total_prices"`
	TotalFees      sdk.Coins `json:"total_fees" yaml:"total_fees"`
}

type QuerySellReturn

type QuerySellReturn struct {
	AdjustedSupply sdk.Coin  `json:"adjusted_supply" yaml:"asdjusted_supply"`
	Returns        sdk.Coins `json:"returns" yaml:"returns"`
	TxFees         sdk.Coins `json:"tx_fees" yaml:"tx_fees"`
	ExitFees       sdk.Coins `json:"exit_fees" yaml:"exit_fees"`
	TotalReturns   sdk.Coins `json:"total_returns" yaml:"total_returns"`
	TotalFees      sdk.Coins `json:"total_fees" yaml:"total_fees"`
}

type QuerySwapReturn

type QuerySwapReturn struct {
	TotalReturns sdk.Coins `json:"total_returns" yaml:"total_returns"`
	TotalFees    sdk.Coins `json:"total_fees" yaml:"total_fees"`
}

type SellOrder

type SellOrder struct {
	BaseOrder
}

func NewSellOrder

func NewSellOrder(sellerDid did.Did, amount sdk.Coin) SellOrder

type SwapOrder

type SwapOrder struct {
	BaseOrder
	ToToken string `json:"to_token" yaml:"to_token"`
}

func NewSwapOrder

func NewSwapOrder(swapperDid did.Did, from sdk.Coin, toToken string) SwapOrder

Jump to

Keyboard shortcuts

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