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
- type StoreConfig
Constants ¶
const ( DescIterNextCostFlat = "IterNextFlat" DescValuePerByte = "ValuePerByte" DescWritePerByte = "WritePerByte" DescReadPerByte = "ReadPerByte" DescWriteCostFlat = "WriteFlat" DescReadCostFlat = "ReadFlat" DescHas = "Has" DescDelete = "Delete" )
Gas consumption descriptors.
Variables ¶
var DefaultConfig = StoreConfig{
HasCost: 1000,
DeleteCostFlat: 1000,
ReadCostFlat: 1000,
ReadCostPerByte: 3,
WriteCostFlat: 2000,
WriteCostPerByte: 30,
IterNextCostFlat: 30,
}
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.
func (*Meter) Consumed ¶
Consumed returns the amount of gas consumed by the meter.
func (*Meter) Limit ¶
Limit returns the maximum gas limit allowed for the meter.
func (*Meter) Refund ¶
Refund refunds the specified amount of gas. If the amount is less than the consumed gas, it subtracts the amount from the consumed gas. It returns nil error.
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 NewMeteredWriterMap(conf StoreConfig, meter gas.Meter, state store.WriterMap) MeteredWriterMap
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 NoOpMeter ¶
type NoOpMeter struct{}