Documentation
¶
Index ¶
- func CodeToDefaultMsg(code CodeType) string
- type Account
- type AccountMapper
- type AnteHandler
- type BeginBlocker
- type CacheKVStore
- type CacheMultiStore
- type CacheWrap
- type CacheWrapper
- type CodeType
- type Coin
- type Coins
- func (coins Coins) AmountOf(denom string) int64
- func (coins Coins) IsEqual(coinsB Coins) bool
- func (coins Coins) IsGTE(coinsB Coins) bool
- func (coins Coins) IsNotNegative() bool
- func (coins Coins) IsPositive() bool
- func (coins Coins) IsValid() bool
- func (coins Coins) IsZero() bool
- func (coins Coins) Len() int
- func (coins Coins) Less(i, j int) bool
- func (coins Coins) Minus(coinsB Coins) Coins
- func (coins Coins) Negative() Coins
- func (coins Coins) Plus(coinsB Coins) Coins
- func (coins Coins) Sort()
- func (coins Coins) String() string
- func (coins Coins) Swap(i, j int)
- type CommitID
- type CommitMultiStore
- type CommitStore
- type Committer
- type Context
- func (c Context) BlockHeader() abci.Header
- func (c Context) BlockHeight() int64
- func (c Context) ChainID() string
- func (c Context) GetOp(ver int64) (Op, bool)
- func (c Context) IsCheckTx() bool
- func (c Context) IsZero() bool
- func (c Context) KVStore(key StoreKey) KVStore
- func (c Context) TxBytes() []byte
- func (c Context) Value(key interface{}) interface{}
- func (c Context) WithBlockHeader(header abci.Header) Context
- func (c Context) WithBlockHeight(height int64) Context
- func (c Context) WithCacheWrapper(key interface{}, value CacheWrapper) Context
- func (c Context) WithChainID(chainID string) Context
- func (c Context) WithCloner(key interface{}, value cloner) Context
- func (c Context) WithInt32(key interface{}, value int32) Context
- func (c Context) WithIsCheckTx(isCheckTx bool) Context
- func (c Context) WithMultiStore(ms MultiStore) Context
- func (c Context) WithProtoMsg(key interface{}, value proto.Message) Context
- func (c Context) WithString(key interface{}, value string) Context
- func (c Context) WithTxBytes(txBytes []byte) Context
- func (c Context) WithUint32(key interface{}, value uint32) Context
- func (c Context) WithUint64(key interface{}, value uint64) Context
- func (c Context) WithValue(key interface{}, value interface{}) Context
- type EndBlocker
- type Error
- func ErrBadNonce(msg string) Error
- func ErrGenesisParse(msg string) Error
- func ErrInsufficientFunds(msg string) Error
- func ErrInternal(msg string) Error
- func ErrInvalidSequence(msg string) Error
- func ErrTxParse(msg string) Error
- func ErrUnauthorized(msg string) Error
- func ErrUnknownRequest(msg string) Error
- func ErrUnrecognizedAddress(addr crypto.Address) Error
- func NewError(code CodeType, msg string) Error
- type Handler
- type InitChainer
- type Iterator
- type KVStore
- type KVStoreKey
- type Msg
- type MultiStore
- type Op
- type Queryable
- type Result
- type StdSignature
- type StdTx
- type Store
- type StoreKey
- type StoreType
- type Tx
- type TxDecoder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CodeToDefaultMsg ¶ added in v0.9.0
NOTE: Don't stringer this, we'll put better messages in later.
Types ¶
type Account ¶
type Account interface { GetAddress() crypto.Address SetAddress(crypto.Address) error // errors if already set. GetPubKey() crypto.PubKey // can return nil. SetPubKey(crypto.PubKey) error GetSequence() int64 SetSequence(int64) error GetCoins() Coins SetCoins(Coins) error Get(key interface{}) (value interface{}, err error) Set(key interface{}, value interface{}) error }
Account is a standard account using a sequence number for replay protection and a pubkey for authentication.
type AccountMapper ¶ added in v0.9.0
type AccountMapper interface { NewAccountWithAddress(ctx Context, addr crypto.Address) Account GetAccount(ctx Context, addr crypto.Address) Account SetAccount(ctx Context, acc Account) }
AccountMapper stores and retrieves accounts from stores retrieved from the context.
type AnteHandler ¶ added in v0.9.0
If newCtx.IsZero(), ctx is used instead.
type BeginBlocker ¶ added in v0.10.0
type BeginBlocker func(ctx Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock
run code before the transactions in a block
type CacheKVStore ¶ added in v0.9.0
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 ¶ added in v0.9.0
type CacheMultiStore interface { MultiStore Write() // Writes operations to underlying KVStore }
From MultiStore.CacheMultiStore()....
type CacheWrap ¶ added in v0.9.0
type CacheWrap interface { // Write syncs with the underlying store. Write() // CacheWrap recursively wraps again. CacheWrap() CacheWrap }
CacheWrap() makes the most appropriate cache-wrap. For example, IAVLStore.CacheWrap() returns a CacheKVStore.
CacheWrap() should not return a Committer, since Commit() on cache-wraps make no sense. It can return KVStore, HeapStore, SpaceStore, etc.
type CacheWrapper ¶ added in v0.9.0
type CacheWrapper interface {
CacheWrap() CacheWrap
}
type CodeType ¶ added in v0.9.0
type CodeType uint32
ABCI Response Code
const ( CodeOK CodeType = 0 CodeInternal CodeType = 1 CodeTxParse CodeType = 2 CodeBadNonce CodeType = 3 CodeInsufficientFunds CodeType = 5 CodeUnknownRequest CodeType = 6 CodeUnrecognizedAddress CodeType = 7 CodeInvalidSequence CodeType = 8 CodeGenesisParse CodeType = 0xdead // TODO: remove ? )
ABCI Response Codes Base SDK reserves 0 ~ 99.
type Coin ¶
Coin hold some amount of one currency
func ParseCoin ¶
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) IsGTE ¶ added in v0.9.0
IsGTE returns true if they are the same type and the receiver is an equal or greater value
type Coins ¶
type Coins []Coin
Coins is a set of Coin, one per currency
func ParseCoins ¶
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) IsGTE ¶
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) IsNotNegative ¶ added in v0.9.0
IsNotNegative returns true if there is no currency with a negative value (even no coins is true here)
func (Coins) IsPositive ¶
IsPositive returns true if there is at least one coin, and all currencies have a positive value
func (Coins) Plus ¶
Plus combines two sets of coins CONTRACT: Plus will never return Coins where one Coin has a 0 amount.
type CommitMultiStore ¶ added in v0.9.0
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 // 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 ¶ added in v0.9.0
Stores of MultiStore must implement CommitStore.
type Context ¶ added in v0.9.0
The intent of Context is for it to be an immutable object that can be cloned and updated cheaply with WithValue() and passed forward to the next decorator or handler. For example,
func MsgHandler(ctx Context, tx Tx) Result { ... ctx = ctx.WithValue(key, value) ... }
func NewContext ¶ added in v0.9.0
create a new context
func (Context) BlockHeight ¶ added in v0.9.0
func (Context) GetOp ¶ added in v0.9.0
Returns false if ver <= 0 || ver > len(c.pst.ops). The first operation is version 1.
func (Context) Value ¶ added in v0.9.0
func (c Context) Value(key interface{}) interface{}
context value for the provided key
func (Context) WithBlockHeader ¶ added in v0.9.0
func (Context) WithBlockHeight ¶ added in v0.9.0
func (Context) WithCacheWrapper ¶ added in v0.9.0
func (c Context) WithCacheWrapper(key interface{}, value CacheWrapper) Context
func (Context) WithChainID ¶ added in v0.9.0
func (Context) WithCloner ¶ added in v0.9.0
func (Context) WithIsCheckTx ¶ added in v0.9.0
func (Context) WithMultiStore ¶ added in v0.9.0
func (c Context) WithMultiStore(ms MultiStore) Context
func (Context) WithProtoMsg ¶ added in v0.9.0
func (Context) WithString ¶ added in v0.9.0
func (Context) WithTxBytes ¶ added in v0.9.0
func (Context) WithUint32 ¶ added in v0.9.0
func (Context) WithUint64 ¶ added in v0.9.0
type EndBlocker ¶ added in v0.10.0
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 ¶ added in v0.9.0
type Error interface { Error() string ABCICode() CodeType ABCILog() string Trace(msg string) Error TraceCause(cause error, msg string) Error Cause() error Result() Result }
sdk Error type
func ErrBadNonce ¶ added in v0.9.0
func ErrGenesisParse ¶ added in v0.9.0
func ErrInsufficientFunds ¶ added in v0.9.0
func ErrInvalidSequence ¶ added in v0.9.0
func ErrTxParse ¶ added in v0.9.0
func ErrUnauthorized ¶ added in v0.9.0
func ErrUnknownRequest ¶ added in v0.9.0
func ErrUnrecognizedAddress ¶ added in v0.9.0
func ErrUnrecognizedAddress(addr crypto.Address) Error
type InitChainer ¶ added in v0.10.0
type InitChainer func(ctx Context, req abci.RequestInitChain) abci.ResponseInitChain
initialize application state at genesis
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. // 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. // CONTRACT: No writes may happen within a domain while an iterator exists over it. ReverseIterator(start, end []byte) Iterator }
KVStore is a simple interface to get/set data
type KVStoreKey ¶ added in v0.9.0
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 ¶ added in v0.9.0
func NewKVStoreKey(name string) *KVStoreKey
NewKVStoreKey returns a new pointer to a KVStoreKey. Use a pointer so keys don't collide.
func (*KVStoreKey) Name ¶ added in v0.9.0
func (key *KVStoreKey) Name() string
func (*KVStoreKey) String ¶ added in v0.9.0
func (key *KVStoreKey) String() string
type Msg ¶ added in v0.9.0
type Msg interface { // Return the message type. // Must be alphanumeric or empty. Type() string // Get some property of the Msg. Get(key interface{}) (value interface{}) // Get the canonical byte representation of the Msg. GetSignBytes() []byte // ValidateBasic does a simple validation check that // doesn't require access to any other information. ValidateBasic() Error // 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() []crypto.Address }
Transactions messages must fulfill the Msg
type MultiStore ¶ added in v0.9.0
type Op ¶ added in v0.9.0
type Op struct {
// contains filtered or unexported fields
}
XXX add description
type Queryable ¶ added in v0.9.0
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 ¶ added in v0.9.0
type Result struct { // Code is the response code, is stored back on the chain. Code CodeType // Data is any data returned from the app. Data []byte // Log is just debug information. NOTE: nondeterministic. Log string // GasWanted is the maximum units of work we allow this tx to perform. GasWanted int64 // GasUsed is the amount of gas actually consumed. NOTE: not used. GasUsed int64 // Tx fee amount and denom. FeeAmount int64 FeeDenom string // Changes to the validator set. ValidatorUpdates []abci.Validator // Tags are used for transaction indexing and pubsub. Tags []cmn.KVPair }
Result is the union of ResponseDeliverTx and ResponseCheckTx.
func (Result) ToQuery ¶ added in v0.9.0
func (res Result) ToQuery() abci.ResponseQuery
ToQuery allows us to return sdk.Error.Result() in query responses
type StdSignature ¶ added in v0.9.0
Standard Signature
type StdTx ¶ added in v0.9.0
type StdTx struct { Msg Signatures []StdSignature }
StdTx is a standard way to wrap a Msg with Signatures. NOTE: the first signature is the FeePayer (Signatures must not be nil).
func NewStdTx ¶ added in v0.10.0
func NewStdTx(msg Msg, sigs []StdSignature) StdTx
func (StdTx) GetFeePayer ¶ added in v0.9.0
func (StdTx) GetSignatures ¶ added in v0.9.0
func (tx StdTx) GetSignatures() []StdSignature
type Store ¶ added in v0.9.0
type Store interface { GetStoreType() StoreType CacheWrapper }
type Tx ¶
type Tx interface { // Gets the Msg. GetMsg() Msg // The address that pays the base fee for this message. The fee is // deducted before the Msg is processed. GetFeePayer() crypto.Address // Signatures returns the signature of signers who signed the Msg. // CONTRACT: Length returned is same as length of // pubkeys returned from MsgKeySigners, and the order // matches. // CONTRACT: If the signature is missing (ie the Msg is // invalid), then the corresponding signature is // .Empty(). GetSignatures() []StdSignature }
Transactions objects must fulfill the Tx