Documentation ¶
Index ¶
- Constants
- Variables
- func AddCrosschain(v *uint256.Int)
- func AddSystemAccBalance(ctx *types.Context, amount *uint256.Int) error
- func GetBalanceAfterTransfer(ctx *types.Context, address common.Address, value [32]byte) *uint256.Int
- func GetBlackHoleBalance(ctx *types.Context) *uint256.Int
- func GetSystemBalance(ctx *types.Context) *uint256.Int
- func LogsBloom(logs []types.Log) [256]byte
- func NewEbpTxExec(exeRoundCount, runnerNumber, parallelNum, defaultTxListCap int, ...) *txEngine
- func NewFrontierWithCtxAA(ctxAA []*ctxAndAccounts, addr2idx map[common.Address]int) *frontier
- func RegisterPredefinedContract(ctx *types.Context, address common.Address, ...)
- func ReloadQueryExecutorFn(aotDir string)
- func RunTxForRpc(currBlock *types.BlockInfo, estimateGas bool, runner *TxRunner) int64
- func StatusIsFailure(status int) bool
- func StatusToStr(status int) string
- func SubSenderAccBalance(ctx *types.Context, sender common.Address, amount *uint256.Int) error
- func SubSystemAccBalance(ctx *types.Context, amount *uint256.Int) error
- func TransferFromSenderAccToBlackHoleAcc(ctx *types.Context, sender common.Address, amount *uint256.Int) error
- type Frontier
- type TxExecutor
- type TxRange
- type TxRunner
- type VrfVerifyContract
Constants ¶
View Source
const ( DefaultTxGasLimit uint64 = 1000_0000 MaxGasPrice uint64 = 1e19 // 10Zeniq )
View Source
const ( RpcRunnersIdStart int = 10000 RpcRunnersCount int = 256 SMALL_BUF_SIZE int = int(C.SMALL_BUF_SIZE) )
View Source
const (
EnableRWList = false
)
View Source
const (
VRF_VERIFY_GAS uint64 = 5000
)
Variables ¶
View Source
var AdjustGasUsed = true // It's a global variable because in tests we must change it to false to be compatible
View Source
var PredefinedContractManager map[common.Address]types.SystemContractExecutor
View Source
var (
QueryExecutorFn C.bridge_query_executor_fn
)
View Source
var RpcRunnerLocks [RpcRunnersCount]spinLock
View Source
var RpcRunners [RpcRunnersCount]*TxRunner
Its usage is similar with Runners. Runners are for transactions in block. RpcRunners are for transactions in Web3 RPC: call and estimateGas.
View Source
var Runners []*TxRunner
This is a global variable. The parameter 'collector_handler' passed to zero_depth_call_wrap is an index to select one TxRunner from this global variable.
View Source
var SEP206AddrAsZeniqOnEthereum = common.HexToAddress("0x5b52bfb8062ce664d74bbcd4cd6dc7df53fd7233")
View Source
var Sep206Address = common.HexToAddress("0x0000000000000000000000000000000000002711")
SEP206SEP
Functions ¶
func AddCrosschain ¶ added in v0.6.4
func GetBalanceAfterTransfer ¶ added in v0.6.4
func NewEbpTxExec ¶
func NewFrontierWithCtxAA ¶
func ReloadQueryExecutorFn ¶
func ReloadQueryExecutorFn(aotDir string)
func RunTxForRpc ¶
func StatusIsFailure ¶
func StatusToStr ¶
func SubSenderAccBalance ¶
guarantee account exists externally
Types ¶
type Frontier ¶
type Frontier interface { GetLatestNonce(addr common.Address) (nonce uint64, exist bool) SetLatestNonce(addr common.Address, newNonce uint64) GetLatestBalance(addr common.Address) (balance *uint256.Int, exist bool) SetLatestBalance(addr common.Address, balance *uint256.Int) GetLatestTotalGas(addr common.Address) (gas uint64, exist bool) SetLatestTotalGas(addr common.Address, gas uint64) }
func GetEmptyFrontier ¶
func GetEmptyFrontier() Frontier
type TxExecutor ¶
type TxExecutor interface { SetAotParam(aotDir string, aotReloadInterval int64) //step 1: for deliverTx, collect block txs in engine.txList CollectTx(tx *gethtypes.Transaction) //step 2: for commit, check sig, insert regular txs standbyTxQ Prepare(reorderSeed int64, minGasPrice, maxTxGasLimit uint64) Frontier //step 3: for postCommit, parallel execute tx in standbyTxQ Execute(currBlock *types.BlockInfo) //set context SetContext(ctx *types.Context) Context() *types.Context //collect infos, not thread safe CollectedTxsCount() int CommittedTxs() []*types.Transaction CommittedTxIds() [][32]byte CommittedTxsForDB() []dbtypes.Tx GasUsedInfo() (gasUsed uint64, feeRefund, gasFee uint256.Int) StandbyQLen() int }
type TxRunner ¶
type TxRunner struct { Ctx *types.Context GasUsed uint64 FeeRefund uint256.Int Tx *types.TxToRun Logs []types.EvmLog Status int OutData []byte ForRpc bool CreatedContractAddress common.Address InternalTxCalls []types.InternalTxCall InternalTxReturns []types.InternalTxReturn RwLists *types.ReadWriteLists }
type VrfVerifyContract ¶
type VrfVerifyContract struct{}
func (*VrfVerifyContract) RequiredGas ¶
func (vdfc *VrfVerifyContract) RequiredGas(input []byte) uint64
Click to show internal directories.
Click to hide internal directories.