keeper

package
v0.0.0-...-c763619 Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2023 License: Apache-2.0 Imports: 34 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewQuerier

func NewQuerier(keeper Keeper) sdk.Querier

NewQuerier is the module level router for state queries

func RegisterInvariants

func RegisterInvariants(ir sdk.InvariantRegistry, k Keeper)

RegisterInvariants registers the evm module invariants

Types

type BlockInnerData

type BlockInnerData = interface{}

type GovKeeper

type GovKeeper interface {
	GetDepositParams(ctx sdk.Context) govtypes.DepositParams
	GetVotingParams(ctx sdk.Context) govtypes.VotingParams
}

GovKeeper defines the expected gov Keeper

type Keeper

type Keeper struct {

	// Transaction counter in a block. Used on StateSB's Prepare function.
	// It is reset to 0 every block on BeginBlock so there's no point in storing the counter
	// on the KVStore or adding it as a field on the EVM genesis state.
	TxCount int
	Bloom   *big.Int
	Bhash   ethcmn.Hash
	LogSize uint
	Ada     types.DbAdapter

	LogsManages *LogsManager

	EvmStateDb     *types.CommitStateDB
	UpdatedAccount []ethcmn.Address

	Watcher *watcher.Watcher
	// contains filtered or unexported fields
}

Keeper wraps the CommitStateDB, allowing us to pass in SDK context while adhering to the StateDB interface.

func NewKeeper

func NewKeeper(
	cdc *codec.Codec, storeKey sdk.StoreKey, paramSpace params.Subspace, ak types.AccountKeeper, sk types.SupplyKeeper, bk types.BankKeeper, stk types.StakingKeeper,
	logger log.Logger) *Keeper

NewKeeper generates new evm module keeper

func NewSimulateKeeper

func NewSimulateKeeper(
	cdc *codec.Codec, storeKey sdk.StoreKey, paramSpace types.Subspace, ak types.AccountKeeper, sk types.SupplyKeeper, bk types.BankKeeper, stk types.StakingKeeper, ada types.DbAdapter,
	logger log.Logger) *Keeper

NewKeeper generates new evm module keeper

func (*Keeper) AddContract

func (k *Keeper) AddContract(...interface{})

AddContract add erc20 contract

func (*Keeper) AddHeightHashToCache

func (k *Keeper) AddHeightHashToCache(height int64, hash string)

Add latest block height and hash to lru cache

func (*Keeper) AddInnerTx

func (k *Keeper) AddInnerTx(...interface{})

AddInnerTx add inner tx

func (Keeper) AfterDepositPeriodPassed

func (k Keeper) AfterDepositPeriodPassed(_ sdk.Context, _ govTypes.Proposal)

func (Keeper) AfterSubmitProposalHandler

func (k Keeper) AfterSubmitProposalHandler(_ sdk.Context, _ govTypes.Proposal)

nolint

func (Keeper) BalanceInvariant

func (k Keeper) BalanceInvariant() sdk.Invariant

BalanceInvariant checks that all auth module's EthAccounts in the application have the same balance as the EVM one.

func (*Keeper) BeginBlock

func (k *Keeper) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock)

BeginBlock sets the block hash -> block height map for the previous block height and resets the Bloom filter and the transaction count to 0.

func (*Keeper) CallEvmHooks

func (k *Keeper) CallEvmHooks(ctx sdk.Context, st *types.StateTransition, receipt *ethtypes.Receipt) error

CallEvmHooks delegate the call to the hooks. If no hook has been registered, this function returns with a `nil` error

func (Keeper) CheckMsgSubmitProposal

func (k Keeper) CheckMsgSubmitProposal(ctx sdk.Context, msg govTypes.MsgSubmitProposal) sdk.Error

CheckMsgSubmitProposal validates MsgSubmitProposal

func (*Keeper) Commit

func (k *Keeper) Commit(ctx sdk.Context)

func (*Keeper) DelSysContractAddress

func (k *Keeper) DelSysContractAddress(ctx sdk.Context) sdk.Error

DelSysContractAddress del system contract address to store

func (*Keeper) DeleteInnerTx

func (k *Keeper) DeleteInnerTx(...interface{})

DeleteInnerTx delete inner tx

func (*Keeper) EndBlock

func (k *Keeper) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate

EndBlock updates the accounts and commits state objects to the KV Store, while deleting the empty ones. It also sets the bloom filers for the request block to the store. The EVM end block logic doesn't update the validator set, thus it returns an empty slice.

func (*Keeper) FixLog

func (k *Keeper) FixLog(tx []sdk.Tx, logIndex []int, hasEnterEvmTx []bool, anteErrs []error, resp []abci.ResponseDeliverTx) [][]byte

func (*Keeper) ForEachStorage

func (k *Keeper) ForEachStorage(ctx sdk.Context, addr ethcmn.Address, cb func(key, value ethcmn.Hash) bool) error

ForEachStorage calls CommitStateDB.ForEachStorage using passed in context

func (*Keeper) GenerateCSDBParams

func (k *Keeper) GenerateCSDBParams() types.CommitStateDBParams

Logger returns a module-specific logger.

func (Keeper) GeneratePureCSDBParams

func (k Keeper) GeneratePureCSDBParams() types.CommitStateDBParams

GeneratePureCSDBParams generates an instance of csdb params ONLY for store setter and getter

func (Keeper) GetAccountStorage

func (k Keeper) GetAccountStorage(ctx sdk.Context, address ethcmn.Address) (types.Storage, error)

GetAccountStorage return state storage associated with an account

func (*Keeper) GetBalance

func (k *Keeper) GetBalance(ctx sdk.Context, addr ethcmn.Address) *big.Int

GetBalance calls CommitStateDB.GetBalance using the passed in context

func (Keeper) GetBlockBloom

func (k Keeper) GetBlockBloom(ctx sdk.Context, height int64) ethtypes.Bloom

GetBlockBloom gets bloombits from block height

func (Keeper) GetBlockHeight

func (k Keeper) GetBlockHeight(ctx sdk.Context, hash ethcmn.Hash) (int64, bool)

GetBlockHeight gets block height from block consensus hash

func (Keeper) GetChainConfig

func (k Keeper) GetChainConfig(ctx sdk.Context) (types.ChainConfig, bool)

GetChainConfig gets chain config, the result if from cached result, or it gains chain config and gas costs from getChainConfig, then cache the chain config and gas costs.

func (*Keeper) GetCode

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

GetCode calls CommitStateDB.GetCode using the passed in context

func (*Keeper) GetCodeByHash

func (k *Keeper) GetCodeByHash(ctx sdk.Context, hash ethcmn.Hash) []byte

GetCodeByHash calls CommitStateDB.GetCode using the passed in context

func (Keeper) GetHeightHash

func (k Keeper) GetHeightHash(ctx sdk.Context, height uint64) ethcmn.Hash

GetHeightHash returns the block header hash associated with a given block height and chain epoch number.

func (*Keeper) GetHooks

func (k *Keeper) GetHooks() types.EvmHooks

GetHooks gets the hooks for the EVM module

func (*Keeper) GetLatestStoredBlockHeight

func (k *Keeper) GetLatestStoredBlockHeight() uint64

GetLatestStoredBlockHeight get latest stored mpt storage height

func (Keeper) GetMaxDepositPeriod

func (k Keeper) GetMaxDepositPeriod(ctx sdk.Context, content sdkGov.Content) (maxDepositPeriod time.Duration)

GetMaxDepositPeriod returns max deposit period

func (Keeper) GetMinDeposit

func (k Keeper) GetMinDeposit(ctx sdk.Context, content sdkGov.Content) (minDeposit sdk.SysCoins)

GetMinDeposit returns min deposit

func (*Keeper) GetMptRootHash

func (k *Keeper) GetMptRootHash(height uint64) ethcmn.Hash

GetMptRootHash gets root mpt hash from block height

func (*Keeper) GetOrNewStateObject

func (k *Keeper) GetOrNewStateObject(ctx sdk.Context, addr ethcmn.Address) types.StateObject

GetOrNewStateObject calls CommitStateDB.GetOrNetStateObject using the passed in context

func (*Keeper) GetParams

func (k *Keeper) GetParams(ctx sdk.Context) (params types.Params)

GetParams returns the total set of evm parameters.

func (*Keeper) GetState

func (k *Keeper) GetState(ctx sdk.Context, addr ethcmn.Address, hash ethcmn.Hash) ethcmn.Hash

GetState calls CommitStateDB.GetState using the passed in context

func (*Keeper) GetStateByKey

func (k *Keeper) GetStateByKey(ctx sdk.Context, addr ethcmn.Address, key ethcmn.Hash) ethcmn.Hash

GetStateByKey calls CommitStateDB.GetState using the passed in context

func (Keeper) GetStoreKey

func (k Keeper) GetStoreKey() store.StoreKey

func (*Keeper) GetSysContractAddress

func (k *Keeper) GetSysContractAddress(ctx sdk.Context) (sdk.AccAddress, sdk.Error)

func (Keeper) GetVotingPeriod

func (k Keeper) GetVotingPeriod(ctx sdk.Context, content sdkGov.Content) (votingPeriod time.Duration)

GetVotingPeriod returns voting period

func (*Keeper) InitInnerBlock

func (k *Keeper) InitInnerBlock(...interface{})

InitInnerBlock init inner block data

func (*Keeper) IsAddressBlocked

func (k *Keeper) IsAddressBlocked(ctx sdk.Context, addr sdk.AccAddress) bool

checks whether the address is blocked

func (Keeper) IsContractAccount

func (k Keeper) IsContractAccount(ctx sdk.Context, addr sdk.AccAddress) bool

func (*Keeper) IsContractInBlockedList

func (k *Keeper) IsContractInBlockedList(ctx sdk.Context, addr sdk.AccAddress) bool

func (*Keeper) IsMatchSysContractAddress

func (k *Keeper) IsMatchSysContractAddress(ctx sdk.Context, addr sdk.AccAddress) bool

func (Keeper) IterateBlockBloom

func (k Keeper) IterateBlockBloom(ctx sdk.Context, fn func(key []byte, value []byte) (stop bool))

IterateBlockBloom iterates all over the bloom value in every height

func (Keeper) IterateBlockHash

func (k Keeper) IterateBlockHash(ctx sdk.Context, fn func(key []byte, value []byte) (stop bool))

IterateBlockHash iterates all over the block hash in every height

func (Keeper) Logger

func (k Keeper) Logger() log.Logger

Logger returns a module-specific logger.

func (Keeper) NonceInvariant

func (k Keeper) NonceInvariant() sdk.Invariant

NonceInvariant checks that all auth module's EthAccounts in the application have the same nonce sequence as the EVM.

func (*Keeper) OnAccountUpdated

func (k *Keeper) OnAccountUpdated(acc auth.Account)

Warning, you need to use pointer object here, for you need to update UpdatedAccount var

func (*Keeper) OnStop

func (k *Keeper) OnStop(ctx sdk.Context) error

Stop stops the blockchain service. If any imports are currently in progress it will abort them using the procInterrupt.

func (*Keeper) OpenTrie

func (k *Keeper) OpenTrie()

func (*Keeper) PushData2Database

func (k *Keeper) PushData2Database(height int64, log log.Logger)

PushData2Database writes all associated state in cache to the database

func (Keeper) RejectedHandler

func (k Keeper) RejectedHandler(_ sdk.Context, _ govTypes.Content)

func (*Keeper) ResetHooks

func (k *Keeper) ResetHooks() *Keeper

ResetHooks resets the hooks for the EVM module

func (*Keeper) SetBalance

func (k *Keeper) SetBalance(ctx sdk.Context, addr ethcmn.Address, amount *big.Int)

SetBalance calls CommitStateDB.SetBalance using the passed in context

func (Keeper) SetBlockBloom

func (k Keeper) SetBlockBloom(ctx sdk.Context, height int64, bloom ethtypes.Bloom)

SetBlockBloom sets the mapping from block height to bloom bits

func (Keeper) SetBlockHeight

func (k Keeper) SetBlockHeight(ctx sdk.Context, hash []byte, height int64)

SetBlockHeight sets the mapping from block consensus hash to block height

func (*Keeper) SetChainConfig

func (k *Keeper) SetChainConfig(ctx sdk.Context, config types.ChainConfig)

SetChainConfig sets the mapping from block consensus hash to block height

func (Keeper) SetCodeDirectly

func (k Keeper) SetCodeDirectly(ctx sdk.Context, hash, code []byte)

SetCodeDirectly commit code into db with no cache

func (*Keeper) SetGovKeeper

func (k *Keeper) SetGovKeeper(gk GovKeeper)

SetGovKeeper sets keeper of gov

func (Keeper) SetHeightHash

func (k Keeper) SetHeightHash(ctx sdk.Context, height uint64, hash ethcmn.Hash)

SetHeightHash sets the block header hash associated with a given height.

func (*Keeper) SetHooks

func (k *Keeper) SetHooks(hooks types.EvmHooks) *Keeper

SetHooks sets the hooks for the EVM module It should be called only once during initialization, it panics if called more than once.

func (*Keeper) SetLatestStoredBlockHeight

func (k *Keeper) SetLatestStoredBlockHeight(height uint64)

SetLatestStoredBlockHeight sets the latest stored storage height

func (*Keeper) SetMptRootHash

func (k *Keeper) SetMptRootHash(ctx sdk.Context, hash ethcmn.Hash)

SetMptRootHash sets the mapping from block height to root mpt hash

func (*Keeper) SetNonce

func (k *Keeper) SetNonce(ctx sdk.Context, addr ethcmn.Address, nonce uint64)

SetNonce calls CommitStateDB.SetNonce using the passed in context

func (*Keeper) SetObserverKeeper

func (k *Keeper) SetObserverKeeper(infuraKeeper watcher.InfuraKeeper)

func (*Keeper) SetParams

func (k *Keeper) SetParams(ctx sdk.Context, params types.Params)

SetParams sets the evm parameters to the param space.

func (Keeper) SetStateDirectly

func (k Keeper) SetStateDirectly(ctx sdk.Context, addr ethcmn.Address, key, value ethcmn.Hash)

SetStateDirectly commit one state into db with no cache

func (*Keeper) SetSysContractAddress

func (k *Keeper) SetSysContractAddress(ctx sdk.Context, addr sdk.AccAddress) sdk.Error

SetSysContractAddress set system contract address to store

func (*Keeper) SetTargetMptVersion

func (k *Keeper) SetTargetMptVersion(targetVersion int64)

func (*Keeper) UpdateInnerBlockData

func (k *Keeper) UpdateInnerBlockData(...interface{})

func (*Keeper) UpdateInnerTx

func (k *Keeper) UpdateInnerTx(...interface{})

func (*Keeper) UpdateWasmInnerTx

func (k *Keeper) UpdateWasmInnerTx(...interface{})

func (Keeper) VoteHandler

func (k Keeper) VoteHandler(_ sdk.Context, _ govTypes.Proposal, _ govTypes.Vote) (string, sdk.Error)

type LogProcessEvmHook

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

LogProcessEvmHook is an evm hook that convert specific contract logs into native module calls

func NewLogProcessEvmHook

func NewLogProcessEvmHook(handlers ...types.EvmLogHandler) LogProcessEvmHook

func (LogProcessEvmHook) PostTxProcessing

func (lh LogProcessEvmHook) PostTxProcessing(ctx sdk.Context, st *types.StateTransition, receipt *ethtypes.Receipt) error

PostTxProcessing delegate the call to underlying hooks

type LogsManager

type LogsManager struct {
	Results map[int]TxResult
	// contains filtered or unexported fields
}

func NewLogManager

func NewLogManager() *LogsManager

func (*LogsManager) Get

func (l *LogsManager) Get(index int) (TxResult, bool)

func (*LogsManager) Len

func (l *LogsManager) Len() int

func (*LogsManager) Reset

func (l *LogsManager) Reset()

func (*LogsManager) Set

func (l *LogsManager) Set(value TxResult) int

type MultiEvmHooks

type MultiEvmHooks []types.EvmHooks

MultiEvmHooks combine multiple evm hooks, all hook functions are run in array sequence

func NewMultiEvmHooks

func NewMultiEvmHooks(hooks ...types.EvmHooks) MultiEvmHooks

NewMultiEvmHooks combine multiple evm hooks

func (MultiEvmHooks) PostTxProcessing

func (mh MultiEvmHooks) PostTxProcessing(ctx sdk.Context, st *types.StateTransition, receipt *ethtypes.Receipt) error

PostTxProcessing delegate the call to underlying hooks

type TxResult

type TxResult struct {
	ResultData *types.ResultData
}

Jump to

Keyboard shortcuts

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