types

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2023 License: MPL-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AddrLen defines a valid address length
	AddrLen = 20
	// SmartChainAddressLength defines a valid smart chain address length
	SmartChainAddressLength = 20

	// Bech32PrefixAccAddr defines the Bech32 prefix of an account's address
	Bech32PrefixAccAddr = "cosmos"
	// Bech32PrefixAccPub defines the Bech32 prefix of an account's public key
	Bech32PrefixAccPub = "cosmospub"
	// Bech32PrefixValAddr defines the Bech32 prefix of a validator's operator address
	Bech32PrefixValAddr = "cosmosvaloper"
	// Bech32PrefixValPub defines the Bech32 prefix of a validator's operator public key
	Bech32PrefixValPub = "cosmosvaloperpub"
	// Bech32PrefixConsAddr defines the Bech32 prefix of a consensus node address
	Bech32PrefixConsAddr = "cosmosvalcons"
	// Bech32PrefixConsPub defines the Bech32 prefix of a consensus node public key
	Bech32PrefixConsPub = "cosmosvalconspub"
)
View Source
const (
	Precision = 8

	// bytes required to represent the above precision
	// ceil(log2(9999999999))
	DecimalPrecisionBits = 34
)

number of decimal places

View Source
const (
	// ABCI error codes
	ABCICodeOK ABCICodeType = 0

	// Base error codes
	CodeOK                  CodeType = 0
	CodeInternal            CodeType = 1
	CodeTxDecode            CodeType = 2
	CodeInvalidSequence     CodeType = 3
	CodeUnauthorized        CodeType = 4
	CodeInsufficientFunds   CodeType = 5
	CodeUnknownRequest      CodeType = 6
	CodeInvalidAddress      CodeType = 7
	CodeInvalidPubKey       CodeType = 8
	CodeUnknownAddress      CodeType = 9
	CodeInsufficientCoins   CodeType = 10
	CodeInvalidCoins        CodeType = 11
	CodeMemoTooLarge        CodeType = 12
	CodeInsufficientFee     CodeType = 13
	CodeMsgNotSupported     CodeType = 14
	CodeInvalidAccountFlags CodeType = 15
	CodeInvalidTxMemo       CodeType = 16

	// CodespaceRoot is a codespace for error codes in this file only.
	// Notice that 0 is an "unset" codespace, which can be overridden with
	// Error.WithDefaultCodespace().
	CodespaceUndefined CodespaceType = 0
	CodespaceRoot      CodespaceType = 1

	// Maximum reservable codespace (2^16 - 1)
	MaximumCodespace CodespaceType = 65535
)

SDK error codes

View Source
const (
	FeeForProposer = FeeDistributeType(0x01)
	FeeForAll      = FeeDistributeType(0x02)
	FeeFree        = FeeDistributeType(0x03)

	ZeroFee = 0
)
View Source
const (
	ErrZeroDividend = "Dividend is zero "
	ErrIntOverflow  = "Int Overflow "
)
View Source
const (
	NativeTokenSymbol = "AXC"

	TokenMaxTotalSupply int64 = 9000000000000000000 // 90 billions with 8 decimal digits
)
View Source
const (
	FixSignBytesOverflow = "FixSignBytesOverflow" // fix json unmarshal overflow when build SignBytes
	BEP9                 = "BEP9"                 // https://github.com/bnb-chain/BEPs/pull/9
	BEP12                = "BEP12"                // https://github.com/bnb-chain/BEPs/pull/17
	BEP3                 = "BEP3"                 // https://github.com/bnb-chain/BEPs/pull/30
	BEP8                 = "BEP8"                 // https://github.com/bnb-chain/BEPs/pull/69
	LaunchAxcUpgrade     = "LaunchAxcUpgrade"
	BEP82                = "BEP82" // https://github.com/bnb-chain/BEPs/pull/82
	FixFailAckPackage    = "FixFailAckPackage"
	BEP128               = "BEP128"       // https://github.com/bnb-chain/BEPs/pull/128
	BEP153               = "BEP153"       // https://github.com/bnb-chain/BEPs/pull/153
	BEP159               = "BEP159"       // https://github.com/bnb-chain/BEPs/pull/159
	BEP159Phase2         = "BEP159Phase2" // phase 2 activation height of BEP159, enable create validator and active oracle relayer whitelist
	BEP173               = "BEP173"       // https://github.com/bnb-chain/BEPs/pull/173
	FixDoubleSignChainId = "FixDoubleSignChainId"
)
View Source
const SortableTimeFormat = "2006-01-02T15:04:05.000000000"

Slight modification of the RFC3339Nano but it right pads all zeros and drops the time zone info

Variables

View Source
var (
	EventTypeMessage = "message"

	AttributeKeyAction = "action"
	AttributeKeyModule = "module"
	AttributeKeySender = "sender"
	AttributeKeyAmount = "amount"
)

Common event types and attribute keys

View Source
var (
	TagAction       = "action"
	TagSrcValidator = "source-validator"
	TagDstValidator = "destination-validator"
	TagDelegator    = "delegator"
)

common tags

View Source
var MainNetConfig = UpgradeConfig{
	HeightMap: map[string]int64{},
}
View Source
var (
	// axc prefix address:  axc1v8vkkymvhe2sf7gd2092ujc6hweta38xadu2pj
	// taxc prefix address: taxc1v8vkkymvhe2sf7gd2092ujc6hweta38xnc4wpr
	PegAccount = AccAddress(crypto.AddressHash([]byte("AximchainPegAccount")))
)

Functions

func ABCIValidator

func ABCIValidator(v Validator) abci.Validator

validator which fulfills abci validator interface for use in Tendermint

func AppendMsgToErr

func AppendMsgToErr(msg string, err string) string

appends a message to the head of the given error

func Bech32ifyAccPub

func Bech32ifyAccPub(pub crypto.PubKey) (string, error)

Bech32ifyAccPub returns a Bech32 encoded string containing the Bech32PrefixAccPub prefix for a given account PubKey.

func Bech32ifyConsPub

func Bech32ifyConsPub(pub crypto.PubKey) (string, error)

Bech32ifyConsPub returns a Bech32 encoded string containing the Bech32PrefixConsPub prefixfor a given consensus node's PubKey.

func Bech32ifyValPub

func Bech32ifyValPub(pub crypto.PubKey) (string, error)

Bech32ifyValPub returns a Bech32 encoded string containing the Bech32PrefixValPub prefix for a given validator operator's PubKey.

func BondStatusToString

func BondStatusToString(b BondStatus) string

BondStatusToString for pretty prints of Bond Status

func CodeToDefaultMsg

func CodeToDefaultMsg(code CodeType) string

NOTE: Don't stringer this, we'll put better messages in later.

func DecEq

func DecEq(t *testing.T, exp, got Dec) (*testing.T, bool, string, string, string)

intended to be used with require/assert: require.True(DecEq(...))

func DecsEqual

func DecsEqual(d1s, d2s []Dec) bool

test if two decimal arrays are equal

func DefaultChainID

func DefaultChainID() (string, error)

DefaultChainID returns the chain ID from the genesis file if present. An error is returned if the file cannot be read or parsed.

TODO: This should be removed and the chainID should always be provided by the end user.

func FormatTimeBytes

func FormatTimeBytes(t time.Time) []byte

Formats a time.Time into a []byte that can be sorted

func GetAccPubKeyBech32

func GetAccPubKeyBech32(pubkey string) (pk crypto.PubKey, err error)

GetAccPubKeyBech32 creates a PubKey for an account with a given public key string using the Bech32 Bech32PrefixAccPub prefix.

func GetConsPubKeyBech32

func GetConsPubKeyBech32(pubkey string) (pk crypto.PubKey, err error)

GetConsPubKeyBech32 creates a PubKey for a consensus node with a given public key string using the Bech32 Bech32PrefixConsPub prefix.

func GetFromBech32

func GetFromBech32(bech32str, prefix string) ([]byte, error)

GetFromBech32 decodes a bytestring from a Bech32 encoded string.

func GetValPubKeyBech32

func GetValPubKeyBech32(pubkey string) (pk crypto.PubKey, err error)

GetValPubKeyBech32 creates a PubKey for a validator's operator with a given public key string using the Bech32 Bech32PrefixValPub prefix.

func Has0xPrefix

func Has0xPrefix(input string) bool

has0xPrefix validates str begins with '0x' or '0X'.

func HexAddress

func HexAddress(a []byte) string

func HexDecode

func HexDecode(input string) ([]byte, error)

Decode decodes a hex string with 0x prefix.

func HexEncode

func HexEncode(b []byte) string

func InclusiveEndBytes

func InclusiveEndBytes(inclusiveBytes []byte) (exclusiveBytes []byte)

InclusiveEndBytes returns the []byte that would end a range query such that the input would be included

func IntEq

func IntEq(t *testing.T, exp, got Int) (*testing.T, bool, string, string, string)

intended to be used with require/assert: require.True(IntEq(...))

func IsMsgTypeSupported

func IsMsgTypeSupported(msgType string) bool

func IsUpgrade

func IsUpgrade(name string) bool

func IsUpgradeHeight

func IsUpgradeHeight(name string) bool

func IsValidCrossChainPackageType

func IsValidCrossChainPackageType(packageType CrossChainPackageType) bool

func MinInt64

func MinInt64(i1, i2 int64) int64

func Mul64

func Mul64(a, b int64) (int64, bool)

func MulBigInt

func MulBigInt(a, b *big.Int) *big.Int

func MustBech32ifyAccPub

func MustBech32ifyAccPub(pub crypto.PubKey) string

MustBech32ifyAccPub returns the result of Bech32ifyAccPub panicing on failure.

func MustBech32ifyConsPub

func MustBech32ifyConsPub(pub crypto.PubKey) string

MustBech32ifyConsPub returns the result of Bech32ifyConsPub panicing on failure.

func MustBech32ifyValPub

func MustBech32ifyValPub(pub crypto.PubKey) string

MustBech32ifyValPub returns the result of Bech32ifyValPub panicing on failure.

func MustGetAccPubKeyBech32

func MustGetAccPubKeyBech32(pubkey string) (pk crypto.PubKey)

MustGetAccPubKeyBech32 returns the result of GetAccPubKeyBech32 panicing on failure.

func MustGetConsPubKeyBech32

func MustGetConsPubKeyBech32(pubkey string) (pk crypto.PubKey)

MustGetConsPubKeyBech32 returns the result of GetConsPubKeyBech32 panicing on failure.

func MustGetValPubKeyBech32

func MustGetValPubKeyBech32(pubkey string) (pk crypto.PubKey)

MustGetValPubKeyBech32 returns the result of GetValPubKeyBech32 panicing on failure.

func MustSortJSON

func MustSortJSON(toSortJSON []byte) []byte

MustSortJSON is like SortJSON but panic if an error occurs, e.g., if the passed JSON isn't valid.

func NewDecFromStr

func NewDecFromStr(str string) (d Dec, err Error)

create a decimal from an input decimal string. valid must come in the form:

(-) whole integers

examples of acceptable input include:

-123456
4567890
345
456789

NOTE - An error will return if more decimal places are provided in the string than the constant Precision.

CONTRACT - This function does not mutate the input str.

func ParseTimeBytes

func ParseTimeBytes(bz []byte) (time.Time, error)

Parses a []byte encoded using FormatTimeKey back into a time.Time

func PrefixEndBytes

func PrefixEndBytes(prefix []byte) []byte

PrefixEndBytes returns the []byte that would end a range query for all []byte with a certain prefix Deals with last byte of prefix being FF without overflowing

func QuoBigInt

func QuoBigInt(a, b *big.Int) *big.Int

func RegisterCodec

func RegisterCodec(cdc *codec.Codec)

Register the sdk message type

func RegisterScripts

func RegisterScripts(msgType string, scripts ...Script)

func ShouldCommitStore

func ShouldCommitStore(storeKeyName string) bool

func ShouldSetStoreVersion

func ShouldSetStoreVersion(storeKeyName string) bool

func SortJSON

func SortJSON(toSortJSON []byte) ([]byte, error)

SortedJSON takes any JSON and returns it sorted by keys. Also, all white-spaces are removed. This method can be used to canonicalize JSON to be returned by GetSignBytes, e.g. for the ledger integration. If the passed JSON isn't valid it will return an error.

func Upgrade

func Upgrade(name string, before func(), in func(), after func())

func XOR

func XOR(a, b []byte) []byte

CONTRACT: a and b have same length

Types

type ABCICodeType

type ABCICodeType uint32

ABCICodeType - combined codetype / codespace

func ToABCICode

func ToABCICode(space CodespaceType, code CodeType) ABCICodeType

get the abci code from the local code and codespace

func (ABCICodeType) IsOK

func (code ABCICodeType) IsOK() bool

IsOK - is everything okay?

type AccAddress

type AccAddress []byte

AccAddress a wrapper around bytes meant to represent an account address. When marshaled to a string or JSON, it uses Bech32.

func AccAddressFromBech32

func AccAddressFromBech32(address string) (addr AccAddress, err error)

AccAddressFromBech32 creates an AccAddress from a Bech32 string.

func AccAddressFromHex

func AccAddressFromHex(address string) (addr AccAddress, err error)

AccAddressFromHex creates an AccAddress from a hex string.

func (AccAddress) Bytes

func (aa AccAddress) Bytes() []byte

Bytes returns the raw address bytes.

func (AccAddress) Empty

func (aa AccAddress) Empty() bool

Returns boolean for whether an AccAddress is empty

func (AccAddress) Equals

func (aa AccAddress) Equals(aa2 AccAddress) bool

Returns boolean for whether two AccAddresses are Equal

func (AccAddress) Format

func (aa AccAddress) Format(s fmt.State, verb rune)

Format implements the fmt.Formatter interface. nolint: errcheck

func (AccAddress) Marshal

func (aa AccAddress) Marshal() ([]byte, error)

Marshal returns the raw address bytes. It is needed for protobuf compatibility.

func (AccAddress) MarshalJSON

func (aa AccAddress) MarshalJSON() ([]byte, error)

MarshalJSON marshals to JSON using Bech32.

func (AccAddress) String

func (aa AccAddress) String() string

String implements the Stringer interface.

func (*AccAddress) Unmarshal

func (aa *AccAddress) Unmarshal(data []byte) error

Unmarshal sets the address to the given data. It is needed for protobuf compatibility.

func (*AccAddress) UnmarshalJSON

func (aa *AccAddress) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals from JSON assuming Bech32 encoding.

type Account

type Account interface {
	GetAddress() AccAddress
	SetAddress(AccAddress) error // errors if already set.

	GetPubKey() crypto.PubKey // can return nil.
	SetPubKey(crypto.PubKey) error

	GetAccountNumber() int64
	SetAccountNumber(int64) error

	GetSequence() int64
	SetSequence(int64) error

	GetCoins() Coins
	SetCoins(Coins) error
	Clone() Account
}

Account is an interface used to store coins at a given address within state. It presumes a notion of sequence numbers for replay protection, a notion of account numbers for replay protection for previously pruned accounts, and a pubkey for authentication purposes.

Many complex conditions can be used in the concrete struct which implements Account.

type AccountCache

type AccountCache interface {
	AccountStoreCache

	Cache() AccountCache
	Write()
}

type AccountStoreCache

type AccountStoreCache interface {
	GetAccount(addr AccAddress) Account
	SetAccount(addr AccAddress, acc Account)
	Delete(addr AccAddress)
	ClearCache() // only used by state sync to clear genesis status of accounts
}

type AnteHandler

type AnteHandler func(ctx Context, tx Tx,
	runTxMode RunTxMode) (newCtx Context, result Result, abort bool)

AnteHandler authenticates transactions, before their internal messages are handled. If newCtx.IsZero(), ctx is used instead.

type Attribute

type Attribute struct {
	Key   string `json:"key"`
	Value string `json:"value,omitempty"`
}

Attribute defines an attribute wrapper where the key and value are strings instead of raw bytes.

func NewAttribute

func NewAttribute(k, v string) Attribute

NewAttribute returns a new key/value Attribute object.

func (Attribute) String

func (a Attribute) String() string

func (Attribute) ToKVPair

func (a Attribute) ToKVPair() cmn.KVPair

ToKVPair converts an Attribute object into a Tendermint key/value pair.

type BeginBlocker

type BeginBlocker func(ctx Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock

run code before the transactions in a block

type BondStatus

type BondStatus byte

status of a validator

const (
	Unbonded  BondStatus = 0x00
	Unbonding BondStatus = 0x01
	Bonded    BondStatus = 0x02
)

nolint

func (BondStatus) Equal

func (b BondStatus) Equal(b2 BondStatus) bool

nolint

type CacheKVStore

type CacheKVStore interface {
	KVStore

	// Writes operations to underlying KVStore
	Write()
}

CacheKVStore cache-wraps a KVStore. After calling .Write() on the CacheKVStore, all previously created CacheKVStores on the object expire.

type CacheMultiStore

type CacheMultiStore interface {
	MultiStore
	Write() // Writes operations to underlying KVStore
}

From MultiStore.CacheMultiStore()....

type CacheWrap

type CacheWrap interface {
	// Write syncs with the underlying store.
	Write()

	// CacheWrap recursively wraps again.
	CacheWrap() CacheWrap

	// CacheWrapWithTrace recursively wraps again with tracing enabled.
	CacheWrapWithTrace(w io.Writer, tc TraceContext) CacheWrap
}

CacheWrap makes the most appropriate cache-wrap. For example, IAVLStore.CacheWrap() returns a CacheKVStore. CacheWrap should not return a Committer, since Commit cache-wraps make no sense. It can return KVStore, HeapStore, SpaceStore, etc.

type CacheWrapper

type CacheWrapper interface {
	// CacheWrap cache wraps.
	CacheWrap() CacheWrap

	// CacheWrapWithTrace cache wraps with tracing enabled.
	CacheWrapWithTrace(w io.Writer, tc TraceContext) CacheWrap
}

type ChainID

type ChainID uint16

func ParseChainID

func ParseChainID(input string) (ChainID, error)

type ChannelID

type ChannelID uint8

func ParseChannelID

func ParseChannelID(input string) (ChannelID, error)

type ChannelPermission

type ChannelPermission uint8
const (
	ChannelAllow     ChannelPermission = 1
	ChannelForbidden ChannelPermission = 0
)

type CodeType

type CodeType uint16

CodeType - code identifier within codespace

type CodespaceType

type CodespaceType uint16

CodespaceType - codespace identifier

type Codespacer

type Codespacer struct {
	// contains filtered or unexported fields
}

Codespacer is a simple struct to track reserved codespaces

func NewCodespacer

func NewCodespacer() *Codespacer

NewCodespacer generates a new Codespacer with the starting codespace

func (*Codespacer) RegisterNext

func (c *Codespacer) RegisterNext(codespace CodespaceType) CodespaceType

RegisterNext reserves and returns the next available codespace, starting from a default, and panics if the maximum codespace is reached

func (*Codespacer) RegisterOrPanic

func (c *Codespacer) RegisterOrPanic(codespace CodespaceType)

RegisterOrPanic reserved a codespace or panics if it is unavailable

type Coin

type Coin struct {
	Denom  string `json:"denom"`
	Amount int64  `json:"amount"`
}

Coin hold some amount of one currency

func NewCoin

func NewCoin(denom string, amount int64) Coin

func ParseCoin

func ParseCoin(coinStr string) (coin Coin, err error)

ParseCoin parses a cli input for one coin type, returning errors if invalid. This returns an error on an empty string as well.

func (Coin) IsEqual

func (coin Coin) IsEqual(other Coin) bool

IsEqual returns true if the two sets of Coins have the same value

func (Coin) IsGTE

func (coin Coin) IsGTE(other Coin) bool

IsGTE returns true if they are the same type and the receiver is an equal or greater value

func (Coin) IsLT

func (coin Coin) IsLT(other Coin) bool

IsLT returns true if they are the same type and the receiver is a smaller value

func (Coin) IsNotNegative

func (coin Coin) IsNotNegative() bool

IsNotNegative returns true if coin amount is not negative

func (Coin) IsPositive

func (coin Coin) IsPositive() bool

IsPositive returns true if coin amount is positive

func (Coin) IsZero

func (coin Coin) IsZero() bool

IsZero returns if this represents no money

func (Coin) Minus

func (coin Coin) Minus(coinB Coin) Coin

Subtracts amounts of two coins with same denom

func (Coin) Plus

func (coin Coin) Plus(coinB Coin) Coin

Adds amounts of two coins with same denom

func (Coin) SameDenomAs

func (coin Coin) SameDenomAs(other Coin) bool

SameDenomAs returns true if the two coins are the same denom

func (Coin) String

func (coin Coin) String() string

String provides a human-readable representation of a coin

type Coins

type Coins []Coin

Coins is a set of Coin, one per currency

func ParseCoins

func ParseCoins(coinsStr string) (coins Coins, err error)

ParseCoins will parse out a list of coins separated by commas. If nothing is provided, it returns nil Coins. Returned coins are sorted.

func (Coins) AmountOf

func (coins Coins) AmountOf(denom string) int64

Returns the amount of a denom from coins

func (Coins) IsEqual

func (coins Coins) IsEqual(coinsB Coins) bool

IsEqual returns true if the two sets of Coins have the same value

func (Coins) IsGTE

func (coins Coins) IsGTE(coinsB Coins) bool

IsGTE returns True iff coins is NonNegative(), and for every currency in coinsB, the currency is present at an equal or greater amount in coinsB

func (Coins) IsLT

func (coins Coins) IsLT(coinsB Coins) bool

IsLT returns True iff every currency in coins, the currency is present at a smaller amount in coins

func (Coins) IsNotNegative

func (coins Coins) IsNotNegative() bool

IsNotNegative returns true if there is no currency with a negative value (even no coins is true here)

func (Coins) IsPositive

func (coins Coins) IsPositive() bool

IsPositive returns true if there is at least one coin, and all currencies have a positive value

func (Coins) IsValid

func (coins Coins) IsValid() bool

IsValid asserts the Coins are sorted, and don't have 0 amounts

func (Coins) IsZero

func (coins Coins) IsZero() bool

IsZero returns true if there are no coins or all coins are zero.

func (Coins) Len

func (coins Coins) Len() int

nolint

func (Coins) Less

func (coins Coins) Less(i, j int) bool

func (Coins) Minus

func (coins Coins) Minus(coinsB Coins) Coins

Minus subtracts a set of coins from another (adds the inverse)

func (Coins) Negative

func (coins Coins) Negative() Coins

Negative returns a set of coins with all amount negative

func (Coins) Plus

func (coins Coins) Plus(coinsB Coins) Coins

Plus combines two sets of coins CONTRACT: Plus will never return Coins where one Coin has a 0 amount.

func (Coins) Sort

func (coins Coins) Sort() Coins

Sort is a helper function to sort the set of coins inplace

func (Coins) String

func (coins Coins) String() string

func (Coins) Swap

func (coins Coins) Swap(i, j int)

type CollectConfig

type CollectConfig struct {
	CollectAccountBalance bool
	CollectTxs            bool
}

CollectConfig is the structure that holds configuration parameters whether to collect specified info during apply blocks.

type CommitID

type CommitID struct {
	Version int64
	Hash    []byte
}

CommitID contains the tree version number and its merkle root.

func (CommitID) IsZero

func (cid CommitID) IsZero() bool

func (CommitID) String

func (cid CommitID) String() string

type CommitKVStore

type CommitKVStore interface {
	Committer
	KVStore
}

Stores of MultiStore must implement CommitStore.

type CommitMultiStore

type CommitMultiStore interface {
	Committer
	MultiStore

	// Mount a store of type using the given db.
	// If db == nil, the new store will use the CommitMultiStore db.
	MountStoreWithDB(key StoreKey, typ StoreType, db dbm.DB)

	// Panics on a nil key.
	GetCommitStore(key StoreKey) CommitStore

	// Panics on a nil key.
	GetCommitKVStore(key StoreKey) CommitKVStore

	GetCommitKVStores() map[StoreKey]CommitKVStore

	// Load the latest persisted version.  Called once after all
	// calls to Mount*Store() are complete.
	LoadLatestVersion() error

	// Load a specific persisted version.  When you load an old
	// version, or when the last commit attempt didn't complete,
	// the next commit after loading must be idempotent (return the
	// same commit id).  Otherwise the behavior is undefined.
	LoadVersion(ver int64) error
}

A non-cache MultiStore.

type CommitStore

type CommitStore interface {
	Committer
	Store
}

Stores of MultiStore must implement CommitStore.

type Committer

type Committer interface {
	Commit() CommitID
	LastCommitID() CommitID
	SetPruning(PruningStrategy)
	SetVersion(version int64)
}

something that can persist to disk

type Config

type Config struct {
	// contains filtered or unexported fields
}

Config is the structure that holds the SDK configuration parameters. This could be used to initialize certain configuration parameters for the SDK.

func GetConfig

func GetConfig() *Config

GetConfig returns the config instance for the SDK.

func (*Config) GetBech32AccountAddrPrefix

func (config *Config) GetBech32AccountAddrPrefix() string

GetBech32AccountAddrPrefix returns the Bech32 prefix for account address

func (*Config) GetBech32AccountPubPrefix

func (config *Config) GetBech32AccountPubPrefix() string

GetBech32AccountPubPrefix returns the Bech32 prefix for account public key

func (*Config) GetBech32ConsensusAddrPrefix

func (config *Config) GetBech32ConsensusAddrPrefix() string

GetBech32ConsensusAddrPrefix returns the Bech32 prefix for consensus node address

func (*Config) GetBech32ConsensusPubPrefix

func (config *Config) GetBech32ConsensusPubPrefix() string

GetBech32ConsensusPubPrefix returns the Bech32 prefix for consensus node public key

func (*Config) GetBech32ValidatorAddrPrefix

func (config *Config) GetBech32ValidatorAddrPrefix() string

GetBech32ValidatorAddrPrefix returns the Bech32 prefix for validator address

func (*Config) GetBech32ValidatorPubPrefix

func (config *Config) GetBech32ValidatorPubPrefix() string

GetBech32ValidatorPubPrefix returns the Bech32 prefix for validator public key

func (*Config) Seal

func (config *Config) Seal() *Config

Seal seals the config such that the config state could not be modified further

func (*Config) SetBech32PrefixForAccount

func (config *Config) SetBech32PrefixForAccount(addressPrefix, pubKeyPrefix string)

SetBech32PrefixForAccount builds the Config with Bech32 addressPrefix and publKeyPrefix for accounts and returns the config instance

func (*Config) SetBech32PrefixForConsensusNode

func (config *Config) SetBech32PrefixForConsensusNode(addressPrefix, pubKeyPrefix string)

SetBech32PrefixForConsensusNode builds the Config with Bech32 addressPrefix and publKeyPrefix for consensus nodes and returns the config instance

func (*Config) SetBech32PrefixForValidator

func (config *Config) SetBech32PrefixForValidator(addressPrefix, pubKeyPrefix string)

SetBech32PrefixForValidator builds the Config with Bech32 addressPrefix and publKeyPrefix for validators

and returns the config instance

type ConsAddress

type ConsAddress []byte

ConsAddress defines a wrapper around bytes meant to present a consensus node. When marshaled to a string or JSON, it uses Bech32.

func ConsAddressFromBech32

func ConsAddressFromBech32(address string) (addr ConsAddress, err error)

ConsAddressFromBech32 creates a ConsAddress from a Bech32 string.

func ConsAddressFromHex

func ConsAddressFromHex(address string) (addr ConsAddress, err error)

ConsAddressFromHex creates a ConsAddress from a hex string.

func GetConsAddress

func GetConsAddress(pubkey crypto.PubKey) ConsAddress

get ConsAddress from pubkey

func (ConsAddress) Bytes

func (ca ConsAddress) Bytes() []byte

Bytes returns the raw address bytes.

func (ConsAddress) Empty

func (ca ConsAddress) Empty() bool

Returns boolean for whether an ConsAddress is empty

func (ConsAddress) Equals

func (ca ConsAddress) Equals(ca2 ConsAddress) bool

Returns boolean for whether two ConsAddress are Equal

func (ConsAddress) Format

func (ca ConsAddress) Format(s fmt.State, verb rune)

Format implements the fmt.Formatter interface. nolint: errcheck

func (ConsAddress) Marshal

func (ca ConsAddress) Marshal() ([]byte, error)

Marshal returns the raw address bytes. It is needed for protobuf compatibility.

func (ConsAddress) MarshalJSON

func (ca ConsAddress) MarshalJSON() ([]byte, error)

MarshalJSON marshals to JSON using Bech32.

func (ConsAddress) String

func (ca ConsAddress) String() string

String implements the Stringer interface.

func (*ConsAddress) Unmarshal

func (ca *ConsAddress) Unmarshal(data []byte) error

Unmarshal sets the address to the given data. It is needed for protobuf compatibility.

func (*ConsAddress) UnmarshalJSON

func (ca *ConsAddress) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals from JSON assuming Bech32 encoding.

type Context

type Context struct {
	// contains filtered or unexported fields
}

func NewContext

func NewContext(ms MultiStore, header abci.Header, runTxMode RunTxMode, logger log.Logger) Context

create a new context

func (Context) AccountCache

func (c Context) AccountCache() AccountCache

func (Context) BlockHash

func (c Context) BlockHash() []byte

func (Context) BlockHeader

func (c Context) BlockHeader() abci.Header

func (Context) BlockHeight

func (c Context) BlockHeight() int64

func (Context) CacheContext

func (c Context) CacheContext() (cc Context, writeCache func())

Cache the multistore and return a new cached context. The cached context is written to the context when writeCache is called.

func (Context) ChainID

func (c Context) ChainID() string

func (Context) ConsensusParams

func (c Context) ConsensusParams() *abci.ConsensusParams

func (Context) Context

func (c Context) Context() context.Context

func (Context) CrossStake

func (c Context) CrossStake() bool

func (Context) DepriveSideChainKeyPrefix

func (c Context) DepriveSideChainKeyPrefix() Context

func (Context) EventManager

func (c Context) EventManager() *EventManager

func (Context) IsCheckTx

func (c Context) IsCheckTx() bool

func (Context) IsDeliverTx

func (c Context) IsDeliverTx() bool

func (Context) IsReCheckTx

func (c Context) IsReCheckTx() bool

func (Context) IsZero

func (c Context) IsZero() bool

is context nil

func (Context) KVStore

func (c Context) KVStore(key StoreKey) KVStore

KVStore fetches a KVStore from the MultiStore.

func (Context) Logger

func (c Context) Logger() log.Logger

func (Context) MultiStore

func (c Context) MultiStore() MultiStore

func (Context) RouterCallRecord

func (c Context) RouterCallRecord() map[string]bool

func (Context) SideChainId

func (c Context) SideChainId() string

func (Context) SideChainKeyPrefix

func (c Context) SideChainKeyPrefix() []byte

func (Context) TransientStore

func (c Context) TransientStore(key StoreKey) KVStore

TransientStore fetches a TransientStore from the MultiStore.

func (Context) Tx

func (c Context) Tx() Tx

func (Context) Value

func (c Context) Value(key interface{}) interface{}

Value is deprecated, provided for backwards compatibility Please use

ctx.Context().Value(key)

instead of

ctx.Value(key)

func (Context) VoteInfos

func (c Context) VoteInfos() []abci.VoteInfo

func (Context) WithAccountCache

func (c Context) WithAccountCache(cache AccountCache) Context

func (Context) WithBlockHash

func (c Context) WithBlockHash(hash []byte) Context

func (Context) WithBlockHeader

func (c Context) WithBlockHeader(header abci.Header) Context

func (Context) WithBlockHeight

func (c Context) WithBlockHeight(height int64) Context

func (Context) WithBlockTime

func (c Context) WithBlockTime(newTime time.Time) Context

func (Context) WithChainID

func (c Context) WithChainID(chainID string) Context

func (Context) WithConsensusParams

func (c Context) WithConsensusParams(params *abci.ConsensusParams) Context

func (Context) WithContext

func (c Context) WithContext(ctx context.Context) Context

func (Context) WithCrossStake

func (c Context) WithCrossStake(crossStake bool) Context

func (Context) WithEventManager

func (c Context) WithEventManager(em *EventManager) Context

func (Context) WithLogger

func (c Context) WithLogger(logger log.Logger) Context

func (Context) WithMultiStore

func (c Context) WithMultiStore(ms MultiStore) Context

func (Context) WithProposer

func (c Context) WithProposer(addr ConsAddress) Context

func (Context) WithRouterCallRecord

func (c Context) WithRouterCallRecord(record map[string]bool) Context

func (Context) WithRunTxMode

func (c Context) WithRunTxMode(runTxMode RunTxMode) Context

func (Context) WithSideChainId

func (c Context) WithSideChainId(sideChainId string) Context

func (Context) WithSideChainKeyPrefix

func (c Context) WithSideChainKeyPrefix(prefix []byte) Context

func (Context) WithTx

func (c Context) WithTx(tx Tx) Context

func (Context) WithValue

func (c Context) WithValue(key, value interface{}) Context

WithValue is deprecated, provided for backwards compatibility Please use

ctx = ctx.WithContext(context.WithValue(ctx.Context(), key, false))

instead of

ctx = ctx.WithValue(key, false)

func (Context) WithVoteInfos

func (c Context) WithVoteInfos(voteInfos []abci.VoteInfo) Context

type CrossChainApplication

type CrossChainApplication interface {
	ExecuteSynPackage(ctx Context, payload []byte, relayerFee int64) ExecuteResult
	ExecuteAckPackage(ctx Context, payload []byte) ExecuteResult
	// When the ack application crash, payload is the payload of the origin package.
	ExecuteFailAckPackage(ctx Context, payload []byte) ExecuteResult
}

type CrossChainPackageType

type CrossChainPackageType uint8
const (
	SynCrossChainPackageType     CrossChainPackageType = 0x00
	AckCrossChainPackageType     CrossChainPackageType = 0x01
	FailAckCrossChainPackageType CrossChainPackageType = 0x02
)

type Dec

type Dec struct {
	// contains filtered or unexported fields
}

NOTE: never use new(Dec) or else we will panic unmarshalling into the nil embedded big.Int

func MaxDec

func MaxDec(d1, d2 Dec) Dec

maximum decimal between two

func MinDec

func MinDec(d1, d2 Dec) Dec

minimum decimal between two

func MulQuoDec

func MulQuoDec(a, b, c Dec) (Dec, error)

func NewDec

func NewDec(i int64) Dec

create a new Dec from integer assuming whole number

func NewDecFromInt

func NewDecFromInt(i int64) Dec

create a new Dec from big integer assuming whole numbers CONTRACT: prec <= Precision

func NewDecFromIntWithPrec

func NewDecFromIntWithPrec(i int64, prec int64) Dec

create a new Dec from big integer with decimal place at prec CONTRACT: prec <= Precision

func NewDecWithPrec

func NewDecWithPrec(i, prec int64) Dec

create a new Dec from integer with decimal place at prec CONTRACT: prec <= Precision

func NewDecWithoutFra

func NewDecWithoutFra(i int64) Dec

create a new dec from integer with no decimal fraction

func OneDec

func OneDec() Dec

func ZeroDec

func ZeroDec() Dec

nolint - common values

func (Dec) Abs

func (d Dec) Abs() Dec

func (Dec) Add

func (d Dec) Add(d2 Dec) Dec

addition

func (Dec) Equal

func (d Dec) Equal(d2 Dec) bool

func (Dec) GT

func (d Dec) GT(d2 Dec) bool

func (Dec) GTE

func (d Dec) GTE(d2 Dec) bool

func (Dec) IsInteger

func (d Dec) IsInteger() bool

is integer, e.g. decimals are zero

func (Dec) IsNil

func (d Dec) IsNil() bool

______________________________________________________________________________________________ nolint

func (Dec) IsZero

func (d Dec) IsZero() bool

func (Dec) LT

func (d Dec) LT(d2 Dec) bool

func (Dec) LTE

func (d Dec) LTE(d2 Dec) bool

func (Dec) MarshalAmino

func (d Dec) MarshalAmino() (int64, error)

wraps d.MarshalText()

func (Dec) MarshalJSON

func (d Dec) MarshalJSON() ([]byte, error)

MarshalJSON marshals the decimal

func (Dec) MarshalText

func (d Dec) MarshalText() ([]byte, error)

func (Dec) Mul

func (d Dec) Mul(d2 Dec) Dec

multiplication

func (Dec) MulInt

func (d Dec) MulInt(i int64) Dec

multiplication

func (Dec) Neg

func (d Dec) Neg() Dec

func (Dec) Quo

func (d Dec) Quo(d2 Dec) Dec

quotient

func (Dec) QuoInt

func (d Dec) QuoInt(i int64) Dec

quotient

func (Dec) RawInt

func (d Dec) RawInt() int64

func (Dec) Set

func (d Dec) Set(v int64) Dec

func (Dec) String

func (d Dec) String() string

func (Dec) Sub

func (d Dec) Sub(d2 Dec) Dec

subtraction

func (Dec) TruncateInt

func (d Dec) TruncateInt() int64

TruncateInt truncates the decimals from the number and returns an Int

func (Dec) TruncateInt64

func (d Dec) TruncateInt64() int64

TruncateInt64 truncates the decimals from the number and returns an int64

func (*Dec) UnmarshalAmino

func (d *Dec) UnmarshalAmino(v int64) (err error)

requires a valid JSON string - strings quotes and calls UnmarshalText

func (*Dec) UnmarshalJSON

func (d *Dec) UnmarshalJSON(bz []byte) error

UnmarshalJSON defines custom decoding scheme

func (*Dec) UnmarshalText

func (d *Dec) UnmarshalText(text []byte) error

type Delegation

type Delegation interface {
	GetDelegatorAddr() AccAddress // delegator AccAddress for the bond
	GetValidatorAddr() ValAddress // validator operator address
	GetShares() Dec               // amount of validator's shares held in this delegation
}

delegation bond for a delegated proof of stake system

type DelegationSet

type DelegationSet interface {
	GetValidatorSet() ValidatorSet // validator set for which delegation set is based upon

	// iterate through all delegations from one delegator by validator-AccAddress,
	//   execute func for each validator
	IterateDelegations(ctx Context, delegator AccAddress,
		fn func(index int64, delegation Delegation) (stop bool))
}

properties for the set of all delegations for a particular

type DummyAccountCache

type DummyAccountCache struct {
}

func (*DummyAccountCache) Cache

func (d *DummyAccountCache) Cache() AccountCache

func (*DummyAccountCache) ClearCache

func (d *DummyAccountCache) ClearCache()

func (*DummyAccountCache) Delete

func (d *DummyAccountCache) Delete(addr AccAddress)

func (*DummyAccountCache) GetAccount

func (d *DummyAccountCache) GetAccount(addr AccAddress) Account

func (*DummyAccountCache) SetAccount

func (d *DummyAccountCache) SetAccount(addr AccAddress, acc Account)

func (*DummyAccountCache) Write

func (d *DummyAccountCache) Write()

type EndBlocker

type EndBlocker func(ctx Context, req abci.RequestEndBlock) abci.ResponseEndBlock

run code after the transactions in a block and return updates to the validator set

type Error

type Error interface {

	// convenience
	TraceSDK(format string, args ...interface{}) Error

	// set codespace
	WithDefaultCodespace(CodespaceType) Error

	RawError() string // return raw error message
	Code() CodeType
	Codespace() CodespaceType
	ABCILog() string
	ABCICode() ABCICodeType
	Result() Result
	QueryResult() abci.ResponseQuery
	// contains filtered or unexported methods
}

sdk Error type

func ErrInsufficientCoins

func ErrInsufficientCoins(msg string) Error

func ErrInsufficientFunds

func ErrInsufficientFunds(msg string) Error

func ErrInternal

func ErrInternal(msg string) Error

nolint

func ErrInvalidAccountFlags

func ErrInvalidAccountFlags(msg string) Error

func ErrInvalidAddress

func ErrInvalidAddress(msg string) Error

func ErrInvalidCoins

func ErrInvalidCoins(msg string) Error

func ErrInvalidPubKey

func ErrInvalidPubKey(msg string) Error

func ErrInvalidSequence

func ErrInvalidSequence(msg string) Error

func ErrInvalidTxMemo

func ErrInvalidTxMemo(msg string) Error

func ErrMemoTooLarge

func ErrMemoTooLarge(msg string) Error

func ErrMsgNotSupported

func ErrMsgNotSupported(msg string) Error

func ErrTxDecode

func ErrTxDecode(msg string) Error

func ErrUnauthorized

func ErrUnauthorized(msg string) Error

func ErrUnknownAddress

func ErrUnknownAddress(msg string) Error

func ErrUnknownRequest

func ErrUnknownRequest(msg string) Error

func NewError

func NewError(codespace CodespaceType, code CodeType, format string, args ...interface{}) Error

NewError - create an error.

type Event

type Event abci.Event

Event is a type alias for an ABCI Event

func NewEvent

func NewEvent(ty string, attrs ...Attribute) Event

NewEvent creates a new Event object with a given type and slice of one or more attributes.

func (Event) AppendAttributes

func (e Event) AppendAttributes(attrs ...Attribute) Event

AppendAttributes adds one or more attributes to an Event.

type EventManager

type EventManager struct {
	// contains filtered or unexported fields
}

EventManager implements a simple wrapper around a slice of Event objects that can be emitted from.

func NewEventManager

func NewEventManager() *EventManager

func (EventManager) ABCIEvents

func (em EventManager) ABCIEvents() []abci.Event

ABCIEvents returns all stored Event objects as abci.Event objects.

func (*EventManager) EmitEvent

func (em *EventManager) EmitEvent(event Event)

EmitEvent stores a single Event object.

func (*EventManager) EmitEvents

func (em *EventManager) EmitEvents(events Events)

EmitEvents stores a series of Event objects.

func (*EventManager) Events

func (em *EventManager) Events() Events

type Events

type Events []Event

Events defines a slice of Event objects

func EmptyEvents

func EmptyEvents() Events

EmptyEvents returns an empty slice of events.

func (Events) AppendEvent

func (e Events) AppendEvent(event Event) Events

AppendEvent adds an Event to a slice of events.

func (Events) AppendEvents

func (e Events) AppendEvents(events Events) Events

AppendEvents adds a slice of Event objects to an exist slice of Event objects.

func (Events) ToABCIEvents

func (e Events) ToABCIEvents() []abci.Event

ToABCIEvents converts a slice of Event objects to a slice of abci.Event objects.

type ExecuteResult

type ExecuteResult struct {
	Err     Error
	Tags    Tags
	Payload []byte
}

func (ExecuteResult) Code

func (c ExecuteResult) Code() ABCICodeType

func (ExecuteResult) IsOk

func (c ExecuteResult) IsOk() bool

func (ExecuteResult) Msg

func (c ExecuteResult) Msg() string

type Fee

type Fee struct {
	Tokens Coins
	Type   FeeDistributeType
}

func NewFee

func NewFee(tokens Coins, distributeType FeeDistributeType) Fee

func (*Fee) AddFee

func (fee *Fee) AddFee(other Fee)

func (Fee) IsEmpty

func (fee Fee) IsEmpty() bool

func (Fee) SerializeForPub

func (fee Fee) SerializeForPub(canceled, expired int) string

Any change of this method should communicate with services (query, explorer) developers More detail can be found: https://github.com/binance-chain/docs-site/wiki/Fee-Calculation,-Collection-and-Distribution#publication

func (Fee) String

func (fee Fee) String() string

type FeeDistributeType

type FeeDistributeType int8

type Handler

type Handler func(ctx Context, msg Msg) Result

Handler defines the core of the state transition function of an application.

type InitChainer

type InitChainer func(ctx Context, req abci.RequestInitChain) abci.ResponseInitChain

initialize application state at genesis

type Int

type Int struct {
	// contains filtered or unexported fields
}

Int wraps integer with 256 bit range bound Checks overflow, underflow and division by zero Exists in range from -(2^255-1) to 2^255-1

func MinInt

func MinInt(i1, i2 Int) Int

Return the minimum of the ints

func NewInt

func NewInt(n int64) Int

NewInt constructs Int from int64

func NewIntFromBigInt

func NewIntFromBigInt(i *big.Int) Int

NewIntFromBigInt constructs Int from big.Int

func NewIntFromString

func NewIntFromString(s string) (res Int, ok bool)

NewIntFromString constructs Int from string

func NewIntWithDecimal

func NewIntWithDecimal(n int64, dec int) Int

NewIntWithDecimal constructs Int with decimal Result value is n*10^dec

func OneInt

func OneInt() Int

OneInt returns Int value with one

func ZeroInt

func ZeroInt() Int

ZeroInt returns Int value with zero

func (Int) Add

func (i Int) Add(i2 Int) (res Int)

Add adds Int from another

func (Int) AddRaw

func (i Int) AddRaw(i2 int64) Int

AddRaw adds int64 to Int

func (Int) BigInt

func (i Int) BigInt() *big.Int

BigInt converts Int to big.Int

func (Int) Div

func (i Int) Div(i2 Int) (res Int)

Div divides Int with Int

func (Int) DivRaw

func (i Int) DivRaw(i2 int64) Int

DivRaw divides Int with int64

func (Int) Equal

func (i Int) Equal(i2 Int) bool

Equal compares two Ints

func (Int) GT

func (i Int) GT(i2 Int) bool

GT returns true if first Int is greater than second

func (Int) Int64

func (i Int) Int64() int64

Int64 converts Int to int64 Panics if the value is out of range

func (Int) IsInt64

func (i Int) IsInt64() bool

IsInt64 returns true if Int64() not panics

func (Int) IsZero

func (i Int) IsZero() bool

IsZero returns true if Int is zero

func (Int) LT

func (i Int) LT(i2 Int) bool

LT returns true if first Int is lesser than second

func (Int) MarshalAmino

func (i Int) MarshalAmino() (string, error)

MarshalAmino defines custom encoding scheme

func (Int) MarshalJSON

func (i Int) MarshalJSON() ([]byte, error)

MarshalJSON defines custom encoding scheme

func (Int) Mod

func (i Int) Mod(i2 Int) Int

Mod returns remainder after dividing with Int

func (Int) ModRaw

func (i Int) ModRaw(i2 int64) Int

ModRaw returns remainder after dividing with int64

func (Int) Mul

func (i Int) Mul(i2 Int) (res Int)

Mul multiples two Ints

func (Int) MulRaw

func (i Int) MulRaw(i2 int64) Int

MulRaw multipies Int and int64

func (Int) Neg

func (i Int) Neg() (res Int)

Neg negates Int

func (Int) Sign

func (i Int) Sign() int

Sign returns sign of Int

func (Int) String

func (i Int) String() string

Human readable string

func (Int) Sub

func (i Int) Sub(i2 Int) (res Int)

Sub subtracts Int from another

func (Int) SubRaw

func (i Int) SubRaw(i2 int64) Int

SubRaw subtracts int64 from Int

func (*Int) UnmarshalAmino

func (i *Int) UnmarshalAmino(text string) error

UnmarshalAmino defines custom decoding scheme

func (*Int) UnmarshalJSON

func (i *Int) UnmarshalJSON(bz []byte) error

UnmarshalJSON defines custom decoding scheme

type Iterator

type Iterator = dbm.Iterator

Alias iterator to db's Iterator for convenience.

func KVStorePrefixIterator

func KVStorePrefixIterator(kvs KVStore, prefix []byte) Iterator

Iterator over all the keys with a certain prefix in ascending order

func KVStoreReversePrefixIterator

func KVStoreReversePrefixIterator(kvs KVStore, prefix []byte) Iterator

Iterator over all the keys with a certain prefix in descending order.

type KVPair

type KVPair cmn.KVPair

key-value result for iterator queries

type KVStore

type KVStore interface {
	Store

	// Get returns nil iff key doesn't exist. Panics on nil key.
	Get(key []byte) []byte

	// Has checks if a key exists. Panics on nil key.
	Has(key []byte) bool

	// Set sets the key. Panics on nil key.
	Set(key, value []byte)

	// Delete deletes the key. Panics on nil key.
	Delete(key []byte)

	// Iterator over a domain of keys in ascending order. End is exclusive.
	// Start must be less than end, or the Iterator is invalid.
	// Iterator must be closed by caller.
	// To iterate over entire domain, use store.Iterator(nil, nil)
	// CONTRACT: No writes may happen within a domain while an iterator exists over it.
	Iterator(start, end []byte) Iterator

	// Iterator over a domain of keys in descending order. End is exclusive.
	// Start must be greater than end, or the Iterator is invalid.
	// Iterator must be closed by caller.
	// CONTRACT: No writes may happen within a domain while an iterator exists over it.
	ReverseIterator(start, end []byte) Iterator

	// Prefix applied keys with the argument
	// CONTRACT: when Prefix is called on a KVStore more than once,
	// the concatanation of the prefixes is applied
	Prefix(prefix []byte) KVStore
}

KVStore is a simple interface to get/set data

type KVStoreKey

type KVStoreKey struct {
	// contains filtered or unexported fields
}

KVStoreKey is used for accessing substores. Only the pointer value should ever be used - it functions as a capabilities key.

func NewKVStoreKey

func NewKVStoreKey(name string) *KVStoreKey

NewKVStoreKey returns a new pointer to a KVStoreKey. Use a pointer so keys don't collide.

func (*KVStoreKey) Name

func (key *KVStoreKey) Name() string

func (*KVStoreKey) String

func (key *KVStoreKey) String() string

type Msg

type Msg interface {

	// Return the message type.
	// Must be alphanumeric or empty.
	Route() string

	// Returns a human-readable string for the message, intended for utilization
	// within tags
	Type() string

	// ValidateBasic does a simple validation check that
	// doesn't require access to any other information.
	ValidateBasic() Error

	// Get the canonical byte representation of the Msg.
	GetSignBytes() []byte

	// Signers returns the addrs of signers that must sign.
	// CONTRACT: All signatures must be present to be valid.
	// CONTRACT: Returns addrs in some deterministic order.
	GetSigners() []AccAddress

	// Get involved addresses of this msg so that we can publish account balance change
	GetInvolvedAddresses() []AccAddress
}

Transactions messages must fulfill the Msg

type MultiStore

type MultiStore interface {
	Store

	// Cache wrap MultiStore.
	// NOTE: Caller should probably not call .Write() on each, but
	// call CacheMultiStore.Write().
	CacheMultiStore() CacheMultiStore

	// Convenience for fetching substores.
	GetStore(StoreKey) Store
	GetKVStore(StoreKey) KVStore

	// TracingEnabled returns if tracing is enabled for the MultiStore.
	TracingEnabled() bool

	// WithTracer sets the tracer for the MultiStore that the underlying
	// stores will utilize to trace operations. A MultiStore is returned.
	WithTracer(w io.Writer) MultiStore

	// WithTracingContext sets the tracing context for a MultiStore. It is
	// implied that the caller should update the context when necessary between
	// tracing operations. A MultiStore is returned.
	WithTracingContext(TraceContext) MultiStore

	// ResetTraceContext resets the current tracing context.
	ResetTraceContext() MultiStore
}

type PeerFilter

type PeerFilter func(info string) abci.ResponseQuery

respond to p2p filtering queries from Tendermint

type Pool

type Pool struct {
	// contains filtered or unexported fields
}

block level pool to avoid frequently call ctx.With harms performance according to our test

NOTE: states keep in this pool should be cleared per-block, an appropriate place should be in the end of Commit() with deliver state

func (*Pool) AddAddrs

func (p *Pool) AddAddrs(addrs []AccAddress)

func (*Pool) AddTx

func (p *Pool) AddTx(tx Tx, txHash string)

func (*Pool) Clear

func (p *Pool) Clear()

func (Pool) GetTxs

func (p Pool) GetTxs() sync.Map

func (Pool) TxRelatedAddrs

func (p Pool) TxRelatedAddrs() []string

type PreChecker

type PreChecker func(ctx Context, txBytes []byte, tx Tx) Result

type PruningStrategy

type PruningStrategy uint8

PruningStrategy specfies how old states will be deleted over time

const (
	// PruneSyncable means only those states not needed for state syncing will be deleted (keeps last 100 + every 10000th)
	PruneSyncable PruningStrategy = iota

	// PruneEverything means all saved states will be deleted, storing only the current state
	PruneEverything PruningStrategy = iota

	// PruneNothing means all historic states will be saved, nothing will be deleted
	PruneNothing PruningStrategy = iota
)

type Querier

type Querier = func(ctx Context, path []string, req abci.RequestQuery) (res []byte, err Error)

Type for querier functions on keepers to implement to handle custom queries

type Queryable

type Queryable interface {
	Query(abci.RequestQuery) abci.ResponseQuery
}

Queryable allows a Store to expose internal state to the abci.Query interface. Multistore can route requests to the proper Store.

This is an optional, but useful extension to any CommitStore

type Result

type Result struct {

	// Code is the response code, is stored back on the chain.
	Code ABCICodeType

	// Data is any data returned from the app.
	Data []byte

	// Log is just debug information. NOTE: nondeterministic.
	Log string

	// Tx fee amount and denom.
	FeeAmount int64
	FeeDenom  string

	// Tags are used for transaction indexing and pubsub.
	Tags   Tags
	Events Events
}

Result is the union of ResponseDeliverTx and ResponseCheckTx.

func (Result) GetEvents

func (res Result) GetEvents() []abci.Event

func (Result) IsOK

func (res Result) IsOK() bool

TODO: In the future, more codes may be OK.

type RewardConfig

type RewardConfig uint8
const (
	RewardFromSystem    RewardConfig = 0
	RewardNotFromSystem RewardConfig = 1
)

type RunTxMode

type RunTxMode uint8

Enum mode for app.runTx

const (
	// Check a transaction
	RunTxModeCheck RunTxMode = iota
	// Simulate a transaction
	RunTxModeSimulate RunTxMode = iota
	// Deliver a transaction
	RunTxModeDeliver RunTxMode = iota

	// ReCheck a transaction
	RunTxModeReCheck RunTxMode = iota

	// Check a transaction after PreCheck
	RunTxModeCheckAfterPre RunTxMode = iota

	// Deliver a transaction after PreDeliver
	RunTxModeDeliverAfterPre RunTxMode = iota
)

type Script

type Script func(ctx Context, tx Msg) Error

func GetRegisteredScripts

func GetRegisteredScripts(msgType string) []Script

type SmartChainAddress

type SmartChainAddress [SmartChainAddressLength]byte

SmartChainAddress defines a standard smart chain address

func NewSmartChainAddress

func NewSmartChainAddress(addr string) (SmartChainAddress, error)

NewSmartChainAddress is a constructor function for SmartChainAddress

func (SmartChainAddress) IsEmpty

func (addr SmartChainAddress) IsEmpty() bool

func (SmartChainAddress) MarshalJSON

func (addr SmartChainAddress) MarshalJSON() ([]byte, error)

MarshalJSON marshals the smart chain address to JSON

func (*SmartChainAddress) SetBytes

func (addr *SmartChainAddress) SetBytes(b []byte)

func (SmartChainAddress) String

func (addr SmartChainAddress) String() string

Route should return the name of the module

func (*SmartChainAddress) UnmarshalJSON

func (addr *SmartChainAddress) UnmarshalJSON(input []byte) error

UnmarshalJSON unmarshals an smart chain address

type StakingHooks

type StakingHooks interface {
	OnValidatorCreated(ctx Context, address ValAddress)  // Must be called when a validator is created
	OnValidatorModified(ctx Context, address ValAddress) // Must be called when a validator's state changes
	OnValidatorRemoved(ctx Context, address ValAddress)  // Must be called when a validator is deleted

	OnValidatorBonded(ctx Context, address ConsAddress, operator ValAddress)         // Must be called when a validator is bonded
	OnValidatorBeginUnbonding(ctx Context, address ConsAddress, operator ValAddress) // Must be called when a validator begins unbonding

	OnDelegationCreated(ctx Context, delAddr AccAddress, valAddr ValAddress)        // Must be called when a delegation is created
	OnDelegationSharesModified(ctx Context, delAddr AccAddress, valAddr ValAddress) // Must be called when a delegation's shares are modified
	OnDelegationRemoved(ctx Context, delAddr AccAddress, valAddr ValAddress)        // Must be called when a delegation is removed

	OnSideChainValidatorBonded(ctx Context, sideConsAddr []byte, operator ValAddress)
	OnSideChainValidatorBeginUnbonding(ctx Context, sideConsAddr []byte, operator ValAddress)

	OnSelfDelDropBelowMin(ctx Context, operator ValAddress)
}

event hooks for staking validator object

type Store

type Store interface {
	GetStoreType() StoreType
	CacheWrapper
}

type StoreKey

type StoreKey interface {
	Name() string
	String() string
}

StoreKey is a key used to index stores in a MultiStore.

type StoreType

type StoreType int

kind of store

const (
	//nolint
	StoreTypeMulti StoreType = iota
	StoreTypeDB
	StoreTypeIAVL
	StoreTypeTransient
)

type StringEvent

type StringEvent struct {
	Type       string      `json:"type,omitempty"`
	Attributes []Attribute `json:"attributes,omitempty"`
}

StringAttribute defines en Event object wrapper where all the attributes contain key/value pairs that are strings instead of raw bytes.

func StringifyEvent

func StringifyEvent(e abci.Event) StringEvent

StringifyEvent converts an Event object to a StringEvent object.

type StringEvents

type StringEvents []StringEvent

StringAttributes defines a slice of StringEvents objects.

func StringifyEvents

func StringifyEvents(events []abci.Event) StringEvents

StringifyEvents converts a slice of Event objects into a slice of StringEvent objects.

func (StringEvents) Flatten

func (se StringEvents) Flatten() StringEvents

Flatten returns a flattened version of StringEvents by grouping all attributes per unique event type.

func (StringEvents) String

func (se StringEvents) String() string

type Tag

type Tag = cmn.KVPair

Type synonym for convenience

func GetPegInTag

func GetPegInTag(symbol string, amount int64) Tag

func GetPegOutTag

func GetPegOutTag(symbol string, amount int64) Tag

func MakeTag

func MakeTag(k string, v []byte) Tag

Make a tag from a key and a value

type Tags

type Tags cmn.KVPairs

Type synonym for convenience

func EmptyTags

func EmptyTags() Tags

New empty tags

func NewTags

func NewTags(tags ...interface{}) Tags

New variadic tags, must be k string, v []byte repeating

func (Tags) AppendTag

func (t Tags) AppendTag(k string, v []byte) Tags

Append a single tag

func (Tags) AppendTags

func (t Tags) AppendTags(tags Tags) Tags

Append two lists of tags

func (Tags) ToEvents

func (t Tags) ToEvents() []abci.Event

Turn tags into abci.Event list

func (Tags) ToKVPairs

func (t Tags) ToKVPairs() []cmn.KVPair

Turn tags into KVPair list

type TestMsg

type TestMsg struct {
	// contains filtered or unexported fields
}

msg type for testing

func NewTestMsg

func NewTestMsg(addrs ...AccAddress) *TestMsg

func (*TestMsg) GetInvolvedAddresses

func (msg *TestMsg) GetInvolvedAddresses() []AccAddress

func (*TestMsg) GetSignBytes

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

func (*TestMsg) GetSigners

func (msg *TestMsg) GetSigners() []AccAddress

func (*TestMsg) Route

func (msg *TestMsg) Route() string

nolint

func (*TestMsg) Type

func (msg *TestMsg) Type() string

func (*TestMsg) ValidateBasic

func (msg *TestMsg) ValidateBasic() Error

type TraceContext

type TraceContext map[string]interface{}

TraceContext contains TraceKVStore context data. It will be written with every trace operation.

type TransientStoreKey

type TransientStoreKey struct {
	// contains filtered or unexported fields
}

TransientStoreKey is used for indexing transient stores in a MultiStore

func NewTransientStoreKey

func NewTransientStoreKey(name string) *TransientStoreKey

Constructs new TransientStoreKey Must return a pointer according to the ocap principle

func (*TransientStoreKey) Name

func (key *TransientStoreKey) Name() string

Implements StoreKey

func (*TransientStoreKey) String

func (key *TransientStoreKey) String() string

Implements StoreKey

type TreeStore

type TreeStore interface {
	GetImmutableTree() *iavl.ImmutableTree
}

type Tx

type Tx interface {

	// Gets the Msg.
	GetMsgs() []Msg
}

Transactions objects must fulfill the Tx

type TxDecoder

type TxDecoder func(txBytes []byte) (Tx, Error)

TxDecoder unmarshals transaction bytes

type Uint

type Uint struct {
	// contains filtered or unexported fields
}

Int wraps integer with 256 bit range bound Checks overflow, underflow and division by zero Exists in range from 0 to 2^256-1

func MinUint

func MinUint(i1, i2 Uint) Uint

Return the minimum of the Uints

func NewUint

func NewUint(n uint64) Uint

NewUint constructs Uint from int64

func NewUintFromBigInt

func NewUintFromBigInt(i *big.Int) Uint

NewUintFromBigUint constructs Uint from big.Uint

func NewUintFromString

func NewUintFromString(s string) (res Uint, ok bool)

NewUintFromString constructs Uint from string

func NewUintWithDecimal

func NewUintWithDecimal(n uint64, dec int) Uint

NewUintWithDecimal constructs Uint with decimal Result value is n*10^dec

func OneUint

func OneUint() Uint

OneUint returns Uint value with one

func ZeroUint

func ZeroUint() Uint

ZeroUint returns Uint value with zero

func (Uint) Add

func (i Uint) Add(i2 Uint) (res Uint)

Add adds Uint from another

func (Uint) AddRaw

func (i Uint) AddRaw(i2 uint64) Uint

AddRaw adds uint64 to Uint

func (Uint) BigInt

func (i Uint) BigInt() *big.Int

BigInt converts Uint to big.Unt

func (Uint) Div

func (i Uint) Div(i2 Uint) (res Uint)

Div divides Uint with Uint

func (Uint) DivRaw

func (i Uint) DivRaw(i2 uint64) Uint

Div divides Uint with uint64

func (Uint) Equal

func (i Uint) Equal(i2 Uint) bool

Equal compares two Uints

func (Uint) GT

func (i Uint) GT(i2 Uint) bool

GT returns true if first Uint is greater than second

func (Uint) IsUint64

func (i Uint) IsUint64() bool

IsUint64 returns true if Uint64() not panics

func (Uint) IsZero

func (i Uint) IsZero() bool

IsZero returns true if Uint is zero

func (Uint) LT

func (i Uint) LT(i2 Uint) bool

LT returns true if first Uint is lesser than second

func (Uint) MarshalAmino

func (i Uint) MarshalAmino() (string, error)

MarshalAmino defines custom encoding scheme

func (Uint) MarshalJSON

func (i Uint) MarshalJSON() ([]byte, error)

MarshalJSON defines custom encoding scheme

func (Uint) Mod

func (i Uint) Mod(i2 Uint) Uint

Mod returns remainder after dividing with Uint

func (Uint) ModRaw

func (i Uint) ModRaw(i2 uint64) Uint

ModRaw returns remainder after dividing with uint64

func (Uint) Mul

func (i Uint) Mul(i2 Uint) (res Uint)

Mul multiples two Uints

func (Uint) MulRaw

func (i Uint) MulRaw(i2 uint64) Uint

MulRaw multipies Uint and uint64

func (Uint) Sign

func (i Uint) Sign() int

Sign returns sign of Uint

func (Uint) String

func (i Uint) String() string

Human readable string

func (Uint) Sub

func (i Uint) Sub(i2 Uint) (res Uint)

Sub subtracts Uint from another

func (Uint) SubRaw

func (i Uint) SubRaw(i2 uint64) Uint

SubRaw subtracts uint64 from Uint

func (Uint) Uint64

func (i Uint) Uint64() uint64

Uint64 converts Uint to uint64 Panics if the value is out of range

func (*Uint) UnmarshalAmino

func (i *Uint) UnmarshalAmino(text string) error

UnmarshalAmino defines custom decoding scheme

func (*Uint) UnmarshalJSON

func (i *Uint) UnmarshalJSON(bz []byte) error

UnmarshalJSON defines custom decoding scheme

type UpgradeConfig

type UpgradeConfig struct {
	HeightMap     map[string]int64
	StoreKeyMap   map[string]int64
	MsgTypeMap    map[string]int64
	BeginBlockers map[int64][]func(ctx Context)
}

type UpgradeManager

type UpgradeManager struct {
	Config UpgradeConfig
	Height int64
}

func NewUpgradeManager

func NewUpgradeManager(config UpgradeConfig) *UpgradeManager

func (*UpgradeManager) AddConfig

func (mgr *UpgradeManager) AddConfig(config UpgradeConfig)

func (*UpgradeManager) AddUpgradeHeight

func (mgr *UpgradeManager) AddUpgradeHeight(name string, height int64)

func (*UpgradeManager) BeginBlocker

func (mgr *UpgradeManager) BeginBlocker(ctx Context)

run in every ABCI BeginBlock.

func (*UpgradeManager) GetHeight

func (mgr *UpgradeManager) GetHeight() int64

func (*UpgradeManager) GetMsgTypeHeight

func (mgr *UpgradeManager) GetMsgTypeHeight(msgType string) int64

func (*UpgradeManager) GetStoreKeyHeight

func (mgr *UpgradeManager) GetStoreKeyHeight(storeKeyName string) int64

func (*UpgradeManager) GetUpgradeHeight

func (mgr *UpgradeManager) GetUpgradeHeight(name string) int64

func (*UpgradeManager) RegisterBeginBlocker

func (mgr *UpgradeManager) RegisterBeginBlocker(name string, beginBlocker func(Context))

func (*UpgradeManager) RegisterMsgTypes

func (mgr *UpgradeManager) RegisterMsgTypes(upgradeName string, msgTypes ...string)

func (*UpgradeManager) RegisterStoreKeys

func (mgr *UpgradeManager) RegisterStoreKeys(upgradeName string, storeKeyNames ...string)

func (*UpgradeManager) Reset

func (mgr *UpgradeManager) Reset()

func (*UpgradeManager) SetHeight

func (mgr *UpgradeManager) SetHeight(height int64)

type ValAddress

type ValAddress []byte

ValAddress defines a wrapper around bytes meant to present a validator's operator. When marshaled to a string or JSON, it uses Bech32.

func ValAddressFromBech32

func ValAddressFromBech32(address string) (addr ValAddress, err error)

ValAddressFromBech32 creates a ValAddress from a Bech32 string.

func ValAddressFromHex

func ValAddressFromHex(address string) (addr ValAddress, err error)

ValAddressFromHex creates a ValAddress from a hex string.

func (ValAddress) Bytes

func (va ValAddress) Bytes() []byte

Bytes returns the raw address bytes.

func (ValAddress) Empty

func (va ValAddress) Empty() bool

Returns boolean for whether an AccAddress is empty

func (ValAddress) Equals

func (va ValAddress) Equals(va2 ValAddress) bool

Returns boolean for whether two ValAddresses are Equal

func (ValAddress) Format

func (va ValAddress) Format(s fmt.State, verb rune)

Format implements the fmt.Formatter interface. nolint: errcheck

func (ValAddress) Marshal

func (va ValAddress) Marshal() ([]byte, error)

Marshal returns the raw address bytes. It is needed for protobuf compatibility.

func (ValAddress) MarshalJSON

func (va ValAddress) MarshalJSON() ([]byte, error)

MarshalJSON marshals to JSON using Bech32.

func (ValAddress) String

func (va ValAddress) String() string

String implements the Stringer interface.

func (*ValAddress) Unmarshal

func (va *ValAddress) Unmarshal(data []byte) error

Unmarshal sets the address to the given data. It is needed for protobuf compatibility.

func (*ValAddress) UnmarshalJSON

func (va *ValAddress) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals from JSON assuming Bech32 encoding.

type Validator

type Validator interface {
	GetJailed() bool                 // whether the validator is jailed
	GetMoniker() string              // moniker of the validator
	GetStatus() BondStatus           // status of the validator
	GetFeeAddr() AccAddress          // fee address of validator
	GetOperator() ValAddress         // operator address to receive/return validators coins
	GetConsPubKey() crypto.PubKey    // validation consensus pubkey
	GetConsAddr() ConsAddress        // validation consensus address
	GetPower() Dec                   // validation power
	GetTokens() Dec                  // validation tokens
	TokensFromShares(shares Dec) Dec // calculate the token worth of provided shares
	GetCommission() Dec              // validator commission rate
	GetDelegatorShares() Dec         // Total out standing delegator shares
	GetBondHeight() int64            // height in which the validator became active
	GetSideChainConsAddr() []byte    // validation consensus address on side chain
	IsSideChainValidator() bool      // if it belongs to side chain
}

validator for a delegated proof of stake system

type ValidatorSet

type ValidatorSet interface {
	// iterate through validators by operator address, execute func for each validator
	IterateValidators(Context,
		func(index int64, validator Validator) (stop bool))

	// iterate through bonded validators by operator address, execute func for each validator
	IterateValidatorsBonded(Context,
		func(index int64, validator Validator) (stop bool))

	Validator(Context, ValAddress) Validator            // get a particular validator by operator address
	ValidatorByConsAddr(Context, ConsAddress) Validator // get a particular validator by consensus address
	TotalPower(Context) Dec                             // total power of the validator set

	// slash the validator and delegators of the validator, specifying offence height, offence power, and slash fraction
	Slash(Context, ConsAddress, int64, int64, Dec)
	Jail(Context, ConsAddress)   // jail a validator
	Unjail(Context, ConsAddress) // unjail a validator

	// Delegation allows for getting a particular delegation for a given validator
	// and delegator outside the scope of the staking module.
	Delegation(Context, AccAddress, ValAddress) Delegation

	// functions for side chain
	ValidatorBySideChainConsAddr(Context, []byte) Validator
	UnjailSideChain(Context, []byte)
	SlashSideChain(ctx Context, sideChainId string, sideConsAddr []byte, slashAmount Dec) (validator Validator, slashedAmount Dec, err error)

	// allocate remaining slashed amount to validators who are going to be distributed next time
	AllocateSlashAmtToValidators(ctx Context, slashedConsAddr []byte, amount Dec) (bool, map[string]int64, error)

	MinSelfDelegation(ctx Context) int64 // validator minimum self delegation
	BondDenom(ctx Context) string
}

properties for the set of all validators

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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