keeper

package
v1.3.1 Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2021 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Overview

Package keeper specifies the keeper for the cvm module.

Index

Constants

View Source
const (
	// TODO: consolidate native contract gas consumption
	GasBase uint64 = 1000
)
View Source
const TransactionGasLimit = uint64(5000000)

TransactionGasLimit is the gas limit of the block.

Variables

This section is empty.

Functions

func NewEventSink

func NewEventSink(ctx sdk.Context) *eventSink

func NewQuerier

func NewQuerier(keeper Keeper) sdk.Querier

NewQuerier is the module level router for state queries.

func RegisterGlobalPermissionAcc

func RegisterGlobalPermissionAcc(ctx sdk.Context, k Keeper)

RegisterGlobalPermissionAcc registers the zero address as the global permission account.

func WrapLogger

func WrapLogger(l log.Logger) *logging.Logger

WrapLogger converts a Tendermint logger into Burrow logger.

Types

type Blockchain

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

Blockchain implements the blockchain interface from burrow to make state queries.

func NewBlockChain

func NewBlockChain(ctx sdk.Context, k Keeper) *Blockchain

NewBlockChain returns the pointer to a new BlockChain type data.

func (*Blockchain) BlockHash

func (bc *Blockchain) BlockHash(height uint64) ([]byte, error)

BlockHash returns the block's hash at the provided height.

func (*Blockchain) LastBlockHeight

func (bc *Blockchain) LastBlockHeight() uint64

LastBlockHeight returns the last block height of the chain.

func (*Blockchain) LastBlockTime

func (bc *Blockchain) LastBlockTime() time.Time

LastBlockTime return the unix Time type for the last block.

type CertificateCallable

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

type Keeper

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

Keeper implements SDK Keeper.

func NewKeeper

func NewKeeper(
	cdc *codec.Codec, key sdk.StoreKey, ak types.AccountKeeper, dk types.DistributionKeeper,
	ck types.CertKeeper, paramSpace params.Subspace) Keeper

NewKeeper creates a new instance of the CVM keeper.

func (Keeper) AuthKeeper

func (k Keeper) AuthKeeper() types.AccountKeeper

AuthKeeper returns keeper's AccountKeeper.

func (*Keeper) Call

func (k *Keeper) Call(ctx sdk.Context, caller, callee sdk.AccAddress, value uint64, data []byte, payloadMeta []*payload.ContractMeta,
	view, isEWASM, isRuntime bool) ([]byte, error)

Call executes the CVM call from caller to callee with the given data and gas limit.

func (Keeper) GetAllContracts

func (k Keeper) GetAllContracts(ctx sdk.Context) []types.Contract

GetAllContracts gets all contracts for genesis export.

func (Keeper) GetAllMetas

func (k Keeper) GetAllMetas(ctx sdk.Context) []types.Metadata

GetAllMetas gets all metadata for genesis export.

func (Keeper) GetCode

func (k Keeper) GetCode(ctx sdk.Context, addr crypto.Address) ([]byte, error)

GetCode returns the code at the given account address.

func (*Keeper) GetGasRate

func (k *Keeper) GetGasRate(ctx sdk.Context) uint64

GetGasRate returns the gas rate in parameters subspace.

func (Keeper) GetStorage

func (k Keeper) GetStorage(ctx sdk.Context, address crypto.Address, key binary.Word256) ([]byte, error)

GetStorage returns the value stored given the address and key.

func (Keeper) NewState

func (k Keeper) NewState(ctx sdk.Context) *State

NewState returns a new instance of State type data.

func (Keeper) RecycleCoins

func (k Keeper) RecycleCoins(ctx sdk.Context) error

RecycleCoins transfers tokens from the zero address to the community pool.

func (Keeper) Send

func (k Keeper) Send(ctx sdk.Context, caller, callee sdk.AccAddress, coins sdk.Coins) error

Send executes the send transaction from caller to callee with the given amount of tokens.

func (Keeper) SetAbi

func (k Keeper) SetAbi(ctx sdk.Context, address crypto.Address, abi []byte)

SetAbi stores the abi for the address.

func (Keeper) SetGasRate

func (k Keeper) SetGasRate(ctx sdk.Context, gasRate uint64)

SetGasRate sets parameters subspace for gas rate.

func (Keeper) StoreLastBlockHash

func (k Keeper) StoreLastBlockHash(ctx sdk.Context)

StoreLastBlockHash stores the last block hash.

type State

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

State is the CVM state object. It implements acmstate.ReaderWriter.

func (*State) GetAccount

func (s *State) GetAccount(address crypto.Address) (*acm.Account, error)

GetAccount gets an account by its address and returns nil if it does not exist (which should not be an error).

func (*State) GetAddressMeta

func (s *State) GetAddressMeta(address crypto.Address) ([]*acm.ContractMeta, error)

GetAddressMeta returns the metadata hash of an address

func (*State) GetMetadata

func (s *State) GetMetadata(metahash acmstate.MetadataHash) (string, error)

GetMetadata returns the metadata of the cvm module.

func (*State) GetStorage

func (s *State) GetStorage(address crypto.Address, key binary.Word256) (value []byte, err error)

GetStorage retrieves a 32-byte value stored at the key for the account at the address and returns Zero256 if the key does not exist or if the address does not exist.

Note: burrow/acm/acmstate.StorageGetter claims that an error should be thrown upon non-existing address. However, when being embedded in acmstate.Cache, which is the case here, we cannot do that because the contract creation code might load from the new contract's storage, while the cache layer caches the account creation action hence the embedded storage getter will not be aware of it. Returning error in this case would fail the contract deployment.

func (*State) RemoveAccount

func (s *State) RemoveAccount(address crypto.Address) error

RemoveAccount removes the account at the address.

func (*State) SetAddressMeta

func (s *State) SetAddressMeta(address crypto.Address, contMeta []*acm.ContractMeta) error

SetAddressMeta sets the metadata hash for an address

func (*State) SetMetadata

func (s *State) SetMetadata(metahash acmstate.MetadataHash, metadata string) error

SetMetadata sets the metadata of the cvm module.

func (*State) SetStorage

func (s *State) SetStorage(address crypto.Address, key binary.Word256, value []byte) error

SetStorage stores a 32-byte value at the key for the account at the address. Setting to Zero256 removes the key.

func (*State) UpdateAccount

func (s *State) UpdateAccount(updatedAccount *acm.Account) error

UpdateAccount updates the fields of updatedAccount by address, creating the account if it does not exist.

Jump to

Keyboard shortcuts

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