Documentation
¶
Index ¶
- Constants
- func CallTraceCallValue(c *CallTraceCall) uint256.Int
- func CallTypeFromString(s string) uint8
- type BlockFilterId
- type CallTraceCall
- type CallTraceResult
- type CallTracerConfig
- type ChainSpec
- type EthConfig
- type EthConfigBlobSchedule
- type EthConfigFork
- type ExecutionClient
- func (ec *ExecutionClient) GetAdminNodeInfo(ctx context.Context) (*p2p.NodeInfo, error)
- func (ec *ExecutionClient) GetAdminPeers(ctx context.Context) ([]*p2p.PeerInfo, error)
- func (ec *ExecutionClient) GetBalanceAt(ctx context.Context, wallet common.Address, blockNumber *big.Int) (*big.Int, error)
- func (ec *ExecutionClient) GetBlockByHash(ctx context.Context, hash common.Hash) (*types.Block, error)
- func (ec *ExecutionClient) GetChainSpec(ctx context.Context) (*ChainSpec, error)
- func (ec *ExecutionClient) GetClientVersion(ctx context.Context) (string, error)
- func (ec *ExecutionClient) GetEthClient() *ethclient.Client
- func (ec *ExecutionClient) GetEthConfig(ctx context.Context) (*EthConfig, error)
- func (ec *ExecutionClient) GetFilterChanges(ctx context.Context, filterId BlockFilterId) ([]string, error)
- func (ec *ExecutionClient) GetHeaderByHash(ctx context.Context, hash common.Hash) (*types.Header, error)
- func (ec *ExecutionClient) GetHeaderByNumber(ctx context.Context, number uint64) (*types.Header, error)
- func (ec *ExecutionClient) GetLatestBlock(ctx context.Context) (*types.Block, error)
- func (ec *ExecutionClient) GetLatestHeader(ctx context.Context) (*types.Header, error)
- func (ec *ExecutionClient) GetNodeSyncing(ctx context.Context) (*SyncStatus, error)
- func (ec *ExecutionClient) GetNonceAt(ctx context.Context, wallet common.Address, blockNumber *big.Int) (uint64, error)
- func (ec *ExecutionClient) GetTransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error)
- func (ec *ExecutionClient) Initialize(ctx context.Context) error
- func (ec *ExecutionClient) NewBlockFilter(ctx context.Context) (BlockFilterId, error)
- func (ec *ExecutionClient) SendTransaction(ctx context.Context, tx *types.Transaction) error
- func (ec *ExecutionClient) TraceBlockByHash(ctx context.Context, blockHash common.Hash) ([]CallTraceResult, error)
- func (ec *ExecutionClient) TraceBlockStateDiffsByHash(ctx context.Context, blockHash common.Hash) ([]StateDiffResult, error)
- func (ec *ExecutionClient) UninstallBlockFilter(ctx context.Context, filterId BlockFilterId) (bool, error)
- type LenientHexBytes
- type LenientUint64
- type PrestateAccount
- type PrestateTracerConfig
- type PrestateTracerConfigInner
- type StateDiff
- type StateDiffResult
- type SyncStatus
Constants ¶
const ( DepositContract = "DEPOSIT_CONTRACT_ADDRESS" ConsolidationRequestContract = "CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS" WithdrawalRequestContract = "WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS" )
Variables ¶
This section is empty.
Functions ¶
func CallTraceCallValue ¶ added in v1.20.3
func CallTraceCallValue(c *CallTraceCall) uint256.Int
CallTraceCallValue returns the big.Int value from a CallTraceCall, or zero if nil.
func CallTypeFromString ¶ added in v1.20.3
CallTypeFromString converts a callTracer type string to a numeric call type. Returns: 0=CALL, 1=STATICCALL, 2=DELEGATECALL, 3=CREATE, 4=CREATE2, 5=SELFDESTRUCT.
Types ¶
type BlockFilterId ¶
type BlockFilterId string
type CallTraceCall ¶ added in v1.20.3
type CallTraceCall struct {
Type string `json:"type"`
From common.Address `json:"from"`
To common.Address `json:"to"`
Value *hexutil.Big `json:"value,omitempty"`
Gas hexutil.Uint64 `json:"gas"`
GasUsed hexutil.Uint64 `json:"gasUsed"`
Input hexutil.Bytes `json:"input"`
Output hexutil.Bytes `json:"output"`
Error string `json:"error,omitempty"`
Calls []CallTraceCall `json:"calls,omitempty"`
// Revert reason (some clients include this separately)
RevertReason LenientHexBytes `json:"revertReason,omitempty"`
}
CallTraceCall is a single call frame in the callTracer output.
type CallTraceResult ¶ added in v1.20.3
type CallTraceResult struct {
TxHash common.Hash `json:"txHash"`
Result *CallTraceCall `json:"result"`
}
CallTraceResult is the JSON result for one transaction from debug_traceBlockByHash with the callTracer.
type CallTracerConfig ¶ added in v1.20.3
type CallTracerConfig struct {
Tracer string `json:"tracer"`
}
CallTracerConfig is the configuration for the callTracer.
type EthConfig ¶ added in v1.19.0
type EthConfig struct {
Current *EthConfigFork `json:"current"`
Next *EthConfigFork `json:"next"`
Last *EthConfigFork `json:"last"`
}
type EthConfigBlobSchedule ¶ added in v1.19.0
type EthConfigFork ¶ added in v1.19.0
type EthConfigFork struct {
ActivationTime uint64 `json:"activationTime"`
ChainID string `json:"chainId"`
ForkID string `json:"forkId"`
BlobSchedule EthConfigBlobSchedule `json:"blobSchedule"`
Precompiles map[string]common.Address `json:"precompiles"`
SystemContracts map[string]common.Address `json:"systemContracts"`
}
func (*EthConfigFork) CheckMismatch ¶ added in v1.19.0
func (f *EthConfigFork) CheckMismatch(f2 *EthConfigFork) []string
func (*EthConfigFork) GetActivationTime ¶ added in v1.19.0
func (f *EthConfigFork) GetActivationTime() time.Time
GetActivationTime returns the activation time as a time.Time
func (*EthConfigFork) GetSystemContractAddress ¶ added in v1.19.0
func (f *EthConfigFork) GetSystemContractAddress(contractType string) *common.Address
GetSystemContractAddress returns the address of a specific system contract
type ExecutionClient ¶
type ExecutionClient struct {
// contains filtered or unexported fields
}
func NewExecutionClient ¶
func NewExecutionClient(name, endpoint string, headers map[string]string, sshcfg *sshtunnel.SshConfig, logger logrus.FieldLogger) (*ExecutionClient, error)
NewExecutionClient is used to create a new execution client
func (*ExecutionClient) GetAdminNodeInfo ¶
func (*ExecutionClient) GetAdminPeers ¶
func (*ExecutionClient) GetBalanceAt ¶
func (*ExecutionClient) GetBlockByHash ¶
func (*ExecutionClient) GetChainSpec ¶
func (ec *ExecutionClient) GetChainSpec(ctx context.Context) (*ChainSpec, error)
func (*ExecutionClient) GetClientVersion ¶
func (ec *ExecutionClient) GetClientVersion(ctx context.Context) (string, error)
func (*ExecutionClient) GetEthClient ¶
func (ec *ExecutionClient) GetEthClient() *ethclient.Client
func (*ExecutionClient) GetEthConfig ¶ added in v1.19.0
func (ec *ExecutionClient) GetEthConfig(ctx context.Context) (*EthConfig, error)
func (*ExecutionClient) GetFilterChanges ¶
func (ec *ExecutionClient) GetFilterChanges(ctx context.Context, filterId BlockFilterId) ([]string, error)
func (*ExecutionClient) GetHeaderByHash ¶
func (*ExecutionClient) GetHeaderByNumber ¶
func (*ExecutionClient) GetLatestBlock ¶
func (*ExecutionClient) GetLatestHeader ¶
func (*ExecutionClient) GetNodeSyncing ¶
func (ec *ExecutionClient) GetNodeSyncing(ctx context.Context) (*SyncStatus, error)
func (*ExecutionClient) GetNonceAt ¶
func (*ExecutionClient) GetTransactionReceipt ¶
func (*ExecutionClient) Initialize ¶
func (ec *ExecutionClient) Initialize(ctx context.Context) error
func (*ExecutionClient) NewBlockFilter ¶
func (ec *ExecutionClient) NewBlockFilter(ctx context.Context) (BlockFilterId, error)
func (*ExecutionClient) SendTransaction ¶
func (ec *ExecutionClient) SendTransaction(ctx context.Context, tx *types.Transaction) error
func (*ExecutionClient) TraceBlockByHash ¶ added in v1.20.3
func (ec *ExecutionClient) TraceBlockByHash( ctx context.Context, blockHash common.Hash, ) ([]CallTraceResult, error)
TraceBlockByHash calls debug_traceBlockByHash with the callTracer configuration. Returns one CallTraceResult per transaction in the block. The response can be very large for complex blocks; this implementation uses json.RawMessage to avoid buffering the entire decoded structure at once.
func (*ExecutionClient) TraceBlockStateDiffsByHash ¶ added in v1.20.3
func (ec *ExecutionClient) TraceBlockStateDiffsByHash( ctx context.Context, blockHash common.Hash, ) ([]StateDiffResult, error)
TraceBlockStateDiffsByHash calls debug_traceBlockByHash with prestateTracer in diffMode, returning one diff result per transaction.
func (*ExecutionClient) UninstallBlockFilter ¶
func (ec *ExecutionClient) UninstallBlockFilter(ctx context.Context, filterId BlockFilterId) (bool, error)
type LenientHexBytes ¶ added in v1.20.3
type LenientHexBytes []byte
LenientHexBytes is like hexutil.Bytes, but accepts hex strings with or without a 0x prefix (some clients return revertReason without 0x) and also accepts plain-text strings (some clients return revertReason as human-readable text).
func (*LenientHexBytes) UnmarshalJSON ¶ added in v1.20.3
func (b *LenientHexBytes) UnmarshalJSON(input []byte) error
type LenientUint64 ¶ added in v1.20.3
type LenientUint64 uint64
LenientUint64 accepts either a JSON number (e.g. 1) or a JSON string (e.g. "0x1" or "1") and decodes it into a uint64.
func (*LenientUint64) UnmarshalJSON ¶ added in v1.20.3
func (u *LenientUint64) UnmarshalJSON(input []byte) error
type PrestateAccount ¶ added in v1.20.3
type PrestateAccount struct {
Balance *hexutil.Big `json:"balance,omitempty"`
Nonce *LenientUint64 `json:"nonce,omitempty"`
Code LenientHexBytes `json:"code,omitempty"`
Storage map[string]LenientHexBytes `json:"storage,omitempty"` // slot -> 32-byte value
}
PrestateAccount is a single account snapshot from the prestateTracer output. Note: JSON keys for account/storage maps are hex strings.
type PrestateTracerConfig ¶ added in v1.20.3
type PrestateTracerConfig struct {
Tracer string `json:"tracer"`
TracerConfig PrestateTracerConfigInner `json:"tracerConfig"`
}
PrestateTracerConfig config for debug_traceBlockByHash with prestateTracer.
type PrestateTracerConfigInner ¶ added in v1.20.3
type PrestateTracerConfigInner struct {
DiffMode bool `json:"diffMode"`
}
type StateDiff ¶ added in v1.20.3
type StateDiff struct {
Pre map[string]PrestateAccount `json:"pre,omitempty"`
Post map[string]PrestateAccount `json:"post,omitempty"`
}
StateDiff is the diffMode output: two maps of touched accounts (pre and post).
type StateDiffResult ¶ added in v1.20.3
type StateDiffResult struct {
TxHash common.Hash `json:"txHash"`
Result *StateDiff `json:"result"`
}
StateDiffResult is the debug_traceBlockByHash result wrapper for one tx.
type SyncStatus ¶
type SyncStatus struct {
IsSyncing bool
StartingBlock uint64
CurrentBlock uint64
HighestBlock uint64
}
func (*SyncStatus) Percent ¶
func (s *SyncStatus) Percent() float64