Documentation
¶
Index ¶
- Constants
- Variables
- func BinKey(ctx *cli.Context) error
- func BinKeys(ctx *cli.Context) error
- func BinTrieRoot(ctx *cli.Context) error
- func BinaryCodeChunkCode(ctx *cli.Context) error
- func BinaryCodeChunkKey(ctx *cli.Context) error
- func BuildBlock(ctx *cli.Context) error
- func MakePreState(db ethdb.Database, accounts types.GenesisAlloc, isBintrie bool) *state.StateDB
- func MakePreStateStreaming(db ethdb.Database, allocPath string, isBintrie bool) (*state.StateDB, error)
- func Transaction(ctx *cli.Context) error
- func Transition(ctx *cli.Context) error
- type Alloc
- type ExecutionResult
- type NumberedError
- type Prestate
Constants ¶
const ( ErrorEVM = 2 ErrorConfig = 3 ErrorMissingBlockhash = 4 ErrorJson = 10 ErrorIO = 11 ErrorRlp = 12 )
Variables ¶
var ( TraceFlag = &cli.BoolFlag{ Name: "trace", Usage: "Configures the use of the JSON opcode tracer. This tracer emits traces to files as trace-<txIndex>-<txHash>.jsonl", } TraceTracerFlag = &cli.StringFlag{ Name: "trace.tracer", Usage: "Configures the use of a custom tracer, e.g native or js tracers. Examples are callTracer and 4byteTracer. These tracers emit results into files as trace-<txIndex>-<txHash>.json", } TraceTracerConfigFlag = &cli.StringFlag{ Name: "trace.jsonconfig", Usage: "The configurations for the custom tracer specified by --trace.tracer. If provided, must be in JSON format", } TraceEnableMemoryFlag = &cli.BoolFlag{ Name: "trace.memory", Usage: "Enable full memory dump in traces", } TraceDisableStackFlag = &cli.BoolFlag{ Name: "trace.nostack", Usage: "Disable stack output in traces", } TraceEnableReturnDataFlag = &cli.BoolFlag{ Name: "trace.returndata", Usage: "Enable return data output in traces", } TraceEnableCallFramesFlag = &cli.BoolFlag{ Name: "trace.callframes", Usage: "Enable call frames output in traces", } OutputBasedir = &cli.StringFlag{ Name: "output.basedir", Usage: "Specifies where output files are placed. Will be created if it does not exist.", Value: "", } OutputBodyFlag = &cli.StringFlag{ Name: "output.body", Usage: "If set, the RLP of the transactions (block body) will be written to this file.", Value: "", } OutputAllocFlag = &cli.StringFlag{ Name: "output.alloc", Usage: "Determines where to put the `alloc` of the post-state.\n" + "\t`stdout` - into the stdout output\n" + "\t`stderr` - into the stderr output\n" + "\t<file> - into the file <file> ", Value: "alloc.json", } OutputResultFlag = &cli.StringFlag{ Name: "output.result", Usage: "Determines where to put the `result` (stateroot, txroot etc) of the post-state.\n" + "\t`stdout` - into the stdout output\n" + "\t`stderr` - into the stderr output\n" + "\t<file> - into the file <file> ", Value: "result.json", } OutputBlockFlag = &cli.StringFlag{ Name: "output.block", Usage: "Determines where to put the `block` after building.\n" + "\t`stdout` - into the stdout output\n" + "\t`stderr` - into the stderr output\n" + "\t<file> - into the file <file> ", Value: "block.json", } OutputBTFlag = &cli.StringFlag{ Name: "output.vkt", Usage: "Determines where to put the `BT` of the post-state.\n" + "\t`stdout` - into the stdout output\n" + "\t`stderr` - into the stderr output\n" + "\t<file> - into the file <file> ", Value: "vkt.json", } InputAllocFlag = &cli.StringFlag{ Name: "input.alloc", Usage: "`stdin` or file name of where to find the prestate alloc to use.", Value: "alloc.json", } InputEnvFlag = &cli.StringFlag{ Name: "input.env", Usage: "`stdin` or file name of where to find the prestate env to use.", Value: "env.json", } InputTxsFlag = &cli.StringFlag{ Name: "input.txs", Usage: "`stdin` or file name of where to find the transactions to apply. " + "If the file extension is '.rlp', then the data is interpreted as an RLP list of signed transactions." + "The '.rlp' format is identical to the output.body format.", Value: "txs.json", } InputHeaderFlag = &cli.StringFlag{ Name: "input.header", Usage: "`stdin` or file name of where to find the block header to use.", Value: "header.json", } InputOmmersFlag = &cli.StringFlag{ Name: "input.ommers", Usage: "`stdin` or file name of where to find the list of ommer header RLPs to use.", } InputWithdrawalsFlag = &cli.StringFlag{ Name: "input.withdrawals", Usage: "`stdin` or file name of where to find the list of withdrawals to use.", } InputTxsRlpFlag = &cli.StringFlag{ Name: "input.txs", Usage: "`stdin` or file name of where to find the transactions list in RLP form.", Value: "txs.rlp", } // TODO(@CPerezz): rename `Name` of the file in a follow-up PR (relays on EEST -> https://github.com/ethereum/execution-spec-tests/tree/verkle/main) InputBTFlag = &cli.StringFlag{ Name: "input.vkt", Usage: "`stdin` or file name of where to find the prestate BT.", } SealCliqueFlag = &cli.StringFlag{ Name: "seal.clique", Usage: "Seal block with Clique. `stdin` or file name of where to find the Clique sealing data.", } RewardFlag = &cli.Int64Flag{ Name: "state.reward", Usage: "Mining reward. Set to -1 to disable", Value: 0, } ChainIDFlag = &cli.Int64Flag{ Name: "state.chainid", Usage: "ChainID to use", Value: 1, } ForknameFlag = &cli.StringFlag{ Name: "state.fork", Usage: fmt.Sprintf("Name of ruleset to use."+ "\n\tAvailable forknames:"+ "\n\t %v"+ "\n\tAvailable extra eips:"+ "\n\t %v"+ "\n\tSyntax <forkname>(+ExtraEip)", strings.Join(tests.AvailableForks(), "\n\t "), strings.Join(vm.ActivateableEips(), ", ")), Value: "GrayGlacier", } OpcodeCountFlag = &cli.StringFlag{ Name: "opcode.count", Usage: "If set, opcode execution counts will be written to this file (relative to output.basedir).", Value: "", } VerbosityFlag = &cli.IntFlag{ Name: "verbosity", Usage: "sets the verbosity level", Value: 3, } )
Functions ¶
func BinKey ¶ added in v1.17.0
BinKey computes the tree key given an address and an optional slot number.
func BinTrieRoot ¶ added in v1.17.0
BinTrieRoot computes the root of a Binary Trie from a genesis alloc.
func BinaryCodeChunkCode ¶ added in v1.17.0
BinaryCodeChunkCode returns the code chunkification for a given code.
func BinaryCodeChunkKey ¶ added in v1.17.0
BinaryCodeChunkKey computes the tree key of a code-chunk for a given address.
func BuildBlock ¶ added in v1.10.13
BuildBlock constructs a block from the given inputs.
func MakePreState ¶
func MakePreStateStreaming ¶ added in v1.17.3
func MakePreStateStreaming(db ethdb.Database, allocPath string, isBintrie bool) (*state.StateDB, error)
MakePreStateStreaming is like MakePreState, but decodes the alloc from disk one account at a time so the full map is never held in memory.
func Transaction ¶ added in v1.10.9
func Transition ¶ added in v1.10.9
Types ¶
type Alloc ¶
type ExecutionResult ¶
type ExecutionResult struct {
StateRoot common.Hash `json:"stateRoot"`
TxRoot common.Hash `json:"txRoot"`
ReceiptRoot common.Hash `json:"receiptsRoot"`
LogsHash common.Hash `json:"logsHash"`
Bloom types.Bloom `json:"logsBloom" gencodec:"required"`
Receipts types.Receipts `json:"receipts"`
Rejected []*rejectedTx `json:"rejected,omitempty"`
Difficulty *math.HexOrDecimal256 `json:"currentDifficulty" gencodec:"required"`
GasUsed math.HexOrDecimal64 `json:"gasUsed"`
BaseFee *math.HexOrDecimal256 `json:"currentBaseFee,omitempty"`
WithdrawalsRoot *common.Hash `json:"withdrawalsRoot,omitempty"`
CurrentExcessBlobGas *math.HexOrDecimal64 `json:"currentExcessBlobGas,omitempty"`
CurrentBlobGasUsed *math.HexOrDecimal64 `json:"blobGasUsed,omitempty"`
RequestsHash *common.Hash `json:"requestsHash,omitempty"`
Requests [][]byte `json:"requests"`
BlockAccessList hexutil.Bytes `json:"blockAccessList,omitempty"`
BlockAccessListHash *common.Hash `json:"blockAccessListHash,omitempty"`
}
ExecutionResult contains the execution status after running a state test, any error that might have occurred and a dump of the final state if requested.
func (ExecutionResult) MarshalJSON ¶ added in v1.14.12
func (e ExecutionResult) MarshalJSON() ([]byte, error)
MarshalJSON marshals as JSON.
func (*ExecutionResult) UnmarshalJSON ¶ added in v1.14.12
func (e *ExecutionResult) UnmarshalJSON(input []byte) error
UnmarshalJSON unmarshals from JSON.
type NumberedError ¶
type NumberedError struct {
// contains filtered or unexported fields
}
func NewError ¶
func NewError(errorCode int, err error) *NumberedError
func (*NumberedError) Error ¶
func (n *NumberedError) Error() string
func (*NumberedError) ExitCode ¶ added in v1.10.9
func (n *NumberedError) ExitCode() int
type Prestate ¶
type Prestate struct {
Env stEnv `json:"env"`
Pre types.GenesisAlloc `json:"pre"`
TreeLeaves map[common.Hash]hexutil.Bytes `json:"vkt,omitempty"`
// AllocPath, when non-empty, causes Apply to stream the alloc from disk
// instead of reading Pre, so the full map never materializes in memory.
AllocPath string `json:"-"`
}