150 lines
4.0 KiB
Go
150 lines
4.0 KiB
Go
package types
|
|
|
|
import (
|
|
cmn "github.com/tendermint/tendermint/libs/common"
|
|
|
|
"github.com/cosmos/cosmos-sdk/store/types"
|
|
)
|
|
|
|
// nolint - reexport
|
|
type (
|
|
PruningOptions = types.PruningOptions
|
|
)
|
|
|
|
// nolint - reexport
|
|
type (
|
|
Store = types.Store
|
|
Committer = types.Committer
|
|
CommitStore = types.CommitStore
|
|
Queryable = types.Queryable
|
|
MultiStore = types.MultiStore
|
|
CacheMultiStore = types.CacheMultiStore
|
|
CommitMultiStore = types.CommitMultiStore
|
|
KVStore = types.KVStore
|
|
Iterator = types.Iterator
|
|
)
|
|
|
|
// Iterator over all the keys with a certain prefix in ascending order
|
|
func KVStorePrefixIterator(kvs KVStore, prefix []byte) Iterator {
|
|
return types.KVStorePrefixIterator(kvs, prefix)
|
|
}
|
|
|
|
// Iterator over all the keys with a certain prefix in descending order.
|
|
func KVStoreReversePrefixIterator(kvs KVStore, prefix []byte) Iterator {
|
|
return types.KVStoreReversePrefixIterator(kvs, prefix)
|
|
}
|
|
|
|
// DiffKVStores compares two KVstores and returns all the key/value pairs
|
|
// that differ from one another. It also skips value comparison for a set of provided prefixes
|
|
func DiffKVStores(a KVStore, b KVStore, prefixesToSkip [][]byte) []cmn.KVPair {
|
|
return types.DiffKVStores(a, b, prefixesToSkip)
|
|
}
|
|
|
|
// nolint - reexport
|
|
type (
|
|
CacheKVStore = types.CacheKVStore
|
|
CommitKVStore = types.CommitKVStore
|
|
CacheWrap = types.CacheWrap
|
|
CacheWrapper = types.CacheWrapper
|
|
CommitID = types.CommitID
|
|
)
|
|
|
|
// nolint - reexport
|
|
type StoreType = types.StoreType
|
|
|
|
// nolint - reexport
|
|
const (
|
|
StoreTypeMulti = types.StoreTypeMulti
|
|
StoreTypeDB = types.StoreTypeDB
|
|
StoreTypeIAVL = types.StoreTypeIAVL
|
|
StoreTypeTransient = types.StoreTypeTransient
|
|
)
|
|
|
|
// nolint - reexport
|
|
type (
|
|
StoreKey = types.StoreKey
|
|
KVStoreKey = types.KVStoreKey
|
|
TransientStoreKey = types.TransientStoreKey
|
|
)
|
|
|
|
// NewKVStoreKey returns a new pointer to a KVStoreKey.
|
|
// Use a pointer so keys don't collide.
|
|
func NewKVStoreKey(name string) *KVStoreKey {
|
|
return types.NewKVStoreKey(name)
|
|
}
|
|
|
|
// NewKVStoreKeys returns a map of new pointers to KVStoreKey's.
|
|
// Uses pointers so keys don't collide.
|
|
func NewKVStoreKeys(names ...string) map[string]*KVStoreKey {
|
|
keys := make(map[string]*KVStoreKey)
|
|
for _, name := range names {
|
|
keys[name] = NewKVStoreKey(name)
|
|
}
|
|
return keys
|
|
}
|
|
|
|
// Constructs new TransientStoreKey
|
|
// Must return a pointer according to the ocap principle
|
|
func NewTransientStoreKey(name string) *TransientStoreKey {
|
|
return types.NewTransientStoreKey(name)
|
|
}
|
|
|
|
// NewTransientStoreKeys constructs a new map of TransientStoreKey's
|
|
// Must return pointers according to the ocap principle
|
|
func NewTransientStoreKeys(names ...string) map[string]*TransientStoreKey {
|
|
keys := make(map[string]*TransientStoreKey)
|
|
for _, name := range names {
|
|
keys[name] = NewTransientStoreKey(name)
|
|
}
|
|
return keys
|
|
}
|
|
|
|
// 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 PrefixEndBytes(prefix []byte) []byte {
|
|
return types.PrefixEndBytes(prefix)
|
|
}
|
|
|
|
// InclusiveEndBytes returns the []byte that would end a
|
|
// range query such that the input would be included
|
|
func InclusiveEndBytes(inclusiveBytes []byte) (exclusiveBytes []byte) {
|
|
return types.InclusiveEndBytes(inclusiveBytes)
|
|
}
|
|
|
|
//----------------------------------------
|
|
|
|
// key-value result for iterator queries
|
|
type KVPair = types.KVPair
|
|
|
|
//----------------------------------------
|
|
|
|
// TraceContext contains TraceKVStore context data. It will be written with
|
|
// every trace operation.
|
|
type TraceContext = types.TraceContext
|
|
|
|
// --------------------------------------
|
|
|
|
// nolint - reexport
|
|
type (
|
|
Gas = types.Gas
|
|
GasMeter = types.GasMeter
|
|
GasConfig = types.GasConfig
|
|
)
|
|
|
|
// nolint - reexport
|
|
func NewGasMeter(limit Gas) GasMeter {
|
|
return types.NewGasMeter(limit)
|
|
}
|
|
|
|
// nolint - reexport
|
|
type (
|
|
ErrorOutOfGas = types.ErrorOutOfGas
|
|
ErrorGasOverflow = types.ErrorGasOverflow
|
|
)
|
|
|
|
// nolint - reexport
|
|
func NewInfiniteGasMeter() GasMeter {
|
|
return types.NewInfiniteGasMeter()
|
|
}
|