Documentation
¶
Index ¶
- Constants
- Variables
- func DefaultGasMeter(gasLimit uint64) coregas.Meter
- func DefaultWrapWithGasMeter(meter coregas.Meter, state store.WriterMap) store.WriterMap
- func NewMeter(gasLimit uint64) gas.Meter
- type Meter
- type MeteredWriterMap
- func (m MeteredWriterMap) ApplyStateChanges(stateChanges []store.StateChanges) error
- func (m MeteredWriterMap) GetReader(actor []byte) (store.Reader, error)
- func (m MeteredWriterMap) GetStateChanges() ([]store.StateChanges, error)
- func (m MeteredWriterMap) GetWriter(actor []byte) (store.Writer, error)
- type NoOpMeter
- type Store
- func (s *Store) ApplyChangeSets(changes []store.KVPair) error
- func (s *Store) ChangeSets() ([]store.KVPair, error)
- func (s *Store) Delete(key []byte) error
- func (s *Store) Get(key []byte) ([]byte, error)
- func (s *Store) Has(key []byte) (bool, error)
- func (s *Store) Iterator(start, end []byte) (store.Iterator, error)
- func (s *Store) ReverseIterator(start, end []byte) (store.Iterator, error)
- func (s *Store) Set(key, value []byte) error
Constants ¶
const ( DescIterNextCostFlat = "IterNextFlat" DescValuePerByte = "ValuePerByte" DescWritePerByte = "WritePerByte" DescReadPerByte = "ReadPerByte" DescWriteCostFlat = "WriteFlat" DescReadCostFlat = "ReadFlat" DescHas = "Has" DescDelete = "Delete" )
Gas consumption descriptors.
Variables ¶
var DefaultConfig = coregas.GasConfig{
HasCost: 1000,
DeleteCost: 1000,
ReadCostFlat: 1000,
ReadCostPerByte: 3,
WriteCostFlat: 2000,
WriteCostPerByte: 30,
IterNextCostFlat: 30,
}
DefaultConfig returns the default gas config. Unless overridden, the default gas costs are:
Functions ¶
func DefaultGasMeter ¶
DefaultGasMeter returns the default gas meter. In case it is coregas.NoGasLimit a NoOpMeter is returned.
func DefaultWrapWithGasMeter ¶
DefaultWrapWithGasMeter defines the default wrap with gas meter function in stf. In case the meter sets as limit stf.NoGasLimit, then a fast path is taken and the store.WriterMap is returned.
Types ¶
type Meter ¶
type Meter struct {
// contains filtered or unexported fields
}
func (*Meter) Consume ¶
Consume consumes the specified amount of gas from the meter. It returns an error if the requested gas exceeds the remaining gas limit.
type MeteredWriterMap ¶
type MeteredWriterMap struct {
// contains filtered or unexported fields
}
MeteredWriterMap wraps store.Writer and returns a gas metered version of it. Since the gas meter is shared across different writers, the metered writers are memoized.
func NewMeteredWriterMap ¶
func (MeteredWriterMap) ApplyStateChanges ¶
func (m MeteredWriterMap) ApplyStateChanges(stateChanges []store.StateChanges) error
func (MeteredWriterMap) GetReader ¶
func (m MeteredWriterMap) GetReader(actor []byte) (store.Reader, error)
func (MeteredWriterMap) GetStateChanges ¶
func (m MeteredWriterMap) GetStateChanges() ([]store.StateChanges, error)
type Store ¶
type Store struct {
// contains filtered or unexported fields
}