parity

package
v1.5.14 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2023 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultSchema = Schema{
	ValueEth:    ethSchema{},
	ValueNet:    netSchema{},
	ValueTrace:  traceSchema{},
	ValuePubSub: pubSubSchema{},
	ValueParity: ParitySchema{},
}

Functions

This section is empty.

Types

type AccessTuple added in v1.0.0

type AccessTuple struct {
	ValueAddress     common.Address `json:"address"`
	ValueStorageKeys []common.Hash  `json:"storageKeys"`
}

func (AccessTuple) Address added in v1.0.0

func (a AccessTuple) Address() common.Address

func (AccessTuple) StorageKeys added in v1.0.0

func (a AccessTuple) StorageKeys() []common.Hash

type Action

type Action struct {
	CallType        string          `json:"callType"`
	Hash            *common.Hash    `json:"hash"`
	ParentHash      *common.Hash    `json:"parentHash"`
	TransactionHash *common.Hash    `json:"transactionHash"`
	From            common.Address  `json:"from"`
	To              common.Address  `json:"to"`
	Input           hexutil.Bytes   `json:"input"`
	Gas             *hexutil.Uint64 `json:"gas,omitempty"`
	Value           *hexutil.Big    `json:"value,omitempty"`
}

type Block

type Block struct {
	ValuesNumber       types.Number   `json:"number"`
	ValuesHash         common.Hash    `json:"hash"`
	ValueParentHash    common.Hash    `json:"parentHash"`
	ValueTimestamp     *hexutil.Big   `json:"timestamp"`
	ValueDifficulty    []byte         `json:"difficulty"`
	ValueGasLimit      *hexutil.Big   `json:"gasLimit"`
	ValuesTransactions []*Transaction `json:"transactions"`
	ValueBaseFeePerGas *hexutil.Big   `json:"baseFeePerGas"`
}

func (*Block) BaseFeePerGas added in v1.1.2

func (b *Block) BaseFeePerGas() *hexutil.Big

func (*Block) Difficulty added in v0.6.0

func (b *Block) Difficulty() []byte

func (*Block) GasLimit added in v0.6.0

func (b *Block) GasLimit() *hexutil.Big

func (Block) Hash added in v0.6.0

func (b Block) Hash() common.Hash

func (Block) Number added in v0.6.0

func (b Block) Number() types.Number

func (*Block) ParentHash added in v0.6.0

func (b *Block) ParentHash() common.Hash

func (*Block) Time added in v0.6.0

func (b *Block) Time() *hexutil.Big

func (*Block) Timestamp added in v0.6.0

func (b *Block) Timestamp() time.Time

func (*Block) Transactions

func (b *Block) Transactions() []types.Transaction

type BlockHeader added in v0.6.0

type BlockHeader struct {
	ValueNumber        types.Number   `json:"number"`
	ValueBlockHash     common.Hash    `json:"hash"`
	ValueStateRoot     common.Hash    `json:"stateRoot"`
	ValueParentHash    common.Hash    `json:"parentHash"`
	ValueUncleHash     common.Hash    `json:"sha3Uncles"`
	ValueTxHash        common.Hash    `json:"transactionsRoot"`
	ValueReceiptHash   common.Hash    `json:"receiptsRoot"`
	ValueBloom         hexutil.Bytes  `json:"logsBloom"`
	ValueTimestamp     *hexutil.Big   `json:"timestamp"`
	ValueDifficulty    []byte         `json:"difficulty"`
	ValueGasLimit      *hexutil.Big   `json:"gasLimit"`
	ValueGasUsed       *hexutil.Big   `json:"gasUsed"`
	ValueCoinbase      common.Address `json:"miner"`
	ValueExtraData     hexutil.Bytes  `json:"extraData"`
	ValueMixDigest     common.Hash    `json:"mixDigest"`
	ValueNonce         hexutil.Bytes  `json:"nonce"`
	ValueBaseFeePerGas *hexutil.Big   `json:"baseFeePerGas"`
}

func (*BlockHeader) BaseFeePerGas added in v1.1.2

func (b *BlockHeader) BaseFeePerGas() *hexutil.Big

func (*BlockHeader) Bloom added in v0.6.0

func (b *BlockHeader) Bloom() [256]byte

func (*BlockHeader) Coinbase added in v0.6.0

func (b *BlockHeader) Coinbase() common.Address

func (*BlockHeader) Difficulty added in v0.6.0

func (b *BlockHeader) Difficulty() []byte

func (*BlockHeader) ExtraData added in v0.6.0

func (b *BlockHeader) ExtraData() hexutil.Bytes

func (*BlockHeader) GasLimit added in v0.6.0

func (b *BlockHeader) GasLimit() *hexutil.Big

func (*BlockHeader) GasUsed added in v0.6.0

func (b *BlockHeader) GasUsed() *hexutil.Big

func (*BlockHeader) Hash added in v0.6.0

func (b *BlockHeader) Hash() common.Hash

func (*BlockHeader) MixDigest added in v0.6.0

func (b *BlockHeader) MixDigest() common.Hash

func (*BlockHeader) Nonce added in v0.6.0

func (b *BlockHeader) Nonce() [8]byte

func (*BlockHeader) Number added in v0.6.0

func (b *BlockHeader) Number() types.Number

func (*BlockHeader) ParentHash added in v0.6.0

func (b *BlockHeader) ParentHash() common.Hash

func (*BlockHeader) ReceiptHash added in v0.6.0

func (b *BlockHeader) ReceiptHash() common.Hash

func (*BlockHeader) StateRoot added in v0.6.0

func (b *BlockHeader) StateRoot() common.Hash

func (*BlockHeader) Time added in v0.6.0

func (b *BlockHeader) Time() *hexutil.Big

func (*BlockHeader) Timestamp added in v0.6.0

func (b *BlockHeader) Timestamp() time.Time

func (*BlockHeader) TxHash added in v0.6.0

func (b *BlockHeader) TxHash() common.Hash

func (*BlockHeader) UncleHash added in v0.6.0

func (b *BlockHeader) UncleHash() common.Hash

type Ex

type Ex struct {
	Mem  Mem      `json:"mem"`
	Push []string `json:"push"`
	Used uint64   `json:"used"`
}
type Header struct {
	HNumber *types.Number `json:"number"`
}

func (*Header) Number

func (h *Header) Number() *types.Number

type Log

type Log struct {
	ValueAddress             string   `json:"address"`
	ValueBlockHash           string   `json:"blockHash"`
	ValueBlockNumber         string   `json:"blockNumber"`
	ValueData                string   `json:"data"`
	ValueLogIndex            string   `json:"logIndex"`
	ValueRemoved             bool     `json:"removed"`
	ValueTopics              []string `json:"topics"`
	ValueTransactionHash     string   `json:"transactionHash"`
	ValueTransactionIndex    string   `json:"transactionIndex"`
	ValueTransactionLogIndex string   `json:"transactionLogIndex"`
	ValueType                string   `json:"type"`
}

func (*Log) Data

func (l *Log) Data() string

func (*Log) Topics

func (l *Log) Topics() []string

type Mem

type Mem struct {
	Data hexutil.Bytes `json:"data"`
	Off  int64         `json:"off"`
}

type ParitySchema

type ParitySchema struct {
}

func (ParitySchema) VersionInfo

func (ParitySchema) VersionInfo() (*jsonrpc2.Request, *ParityVersionInfo)

type ParityVersionInfo

type ParityVersionInfo struct {
}

type PubSubSchema

type PubSubSchema interface {
	Subscribe() (*jsonrpc2.Request, *types.SubscriptionID)
	Unsubscribe(id types.SubscriptionID) (*jsonrpc2.Request, *types.UnsubscribeSuccess)
}

type Result

type Result struct {
	GasUsed *hexutil.Uint64 `json:"gasUsed,omitempty"`
	Output  hexutil.Bytes   `json:"output"`
}

type Schema

type Schema struct {
	ValueEth    schema.EthSchema
	ValueNet    schema.NetSchema
	ValueTrace  schema.TraceSchema
	ValuePubSub schema.PubSubSchema
	ValueParity ParitySchema
}

func (*Schema) Eth

func (s *Schema) Eth() schema.EthSchema

func (*Schema) Net

func (s *Schema) Net() schema.NetSchema

func (*Schema) Parity

func (s *Schema) Parity() ParitySchema

func (*Schema) PubSub

func (s *Schema) PubSub() schema.PubSubSchema

func (*Schema) Trace

func (s *Schema) Trace() schema.TraceSchema

type Trace

type Trace struct {
	ValueAction       Action `json:"action"`
	ValueResult       Result `json:"result"`
	ValueLogs         []Log  `json:"logs"`
	ValueSubtraces    int    `json:"subtraces"`
	ValueError        string `json:"error"`
	ValueTraceAddress []int  `json:"traceAddress"`
	ValueType         string `json:"type"`
}

func (*Trace) Error

func (t *Trace) Error() string

func (*Trace) From

func (t *Trace) From() common.Address

func (*Trace) Gas

func (t *Trace) Gas() *hexutil.Uint64

func (*Trace) GasUsed

func (t *Trace) GasUsed() *hexutil.Uint64

func (*Trace) Hash

func (t *Trace) Hash() *common.Hash

func (*Trace) Input

func (t *Trace) Input() hexutil.Bytes

func (*Trace) Output

func (t *Trace) Output() hexutil.Bytes

func (*Trace) ParentHash

func (t *Trace) ParentHash() *common.Hash

func (*Trace) To

func (t *Trace) To() common.Address

func (*Trace) TransactionHash

func (t *Trace) TransactionHash() *common.Hash

func (*Trace) Type

func (t *Trace) Type() string

func (*Trace) Value

func (t *Trace) Value() *hexutil.Big

type TraceResult

type TraceResult struct {
	VmTrace   *VmTrace `json:"vmTrace"`
	CallTrace []*Trace `json:"traceSchema"`
}

func (*TraceResult) ProcessTrace

func (tr *TraceResult) ProcessTrace()

func (*TraceResult) States

func (tr *TraceResult) States() []types.EvmState

func (*TraceResult) Traces

func (tr *TraceResult) Traces() []types.Trace

type Transaction

type Transaction struct {
	ValueHash        common.Hash     `json:"hash"`
	ValueFrom        common.Address  `json:"from"`
	ValueTo          *common.Address `json:"to"`
	ValueInput       hexutil.Bytes   `json:"input"`
	ValueValue       *hexutil.Big    `json:"value"`
	ValueGas         *hexutil.Big    `json:"gas"`
	ValueGasTipCap   *hexutil.Big    `json:"maxPriorityFeePerGas"`
	ValueGasFeeCap   *hexutil.Big    `json:"maxFeePerGas"`
	ValueGasPrice    *hexutil.Big    `json:"gasPrice"`
	ValueBlockNumber *hexutil.Big    `json:"blockNumber"`
	ValueBlockHash   *common.Hash    `json:"blockHash"`
	ValueNonce       *hexutil.Big    `json:"nonce"`

	V *hexutil.Big `json:"v"`
	R *hexutil.Big `json:"r"`
	S *hexutil.Big `json:"s"`

	ValueAccessList []*AccessTuple `json:"accessList"`
}

func (*Transaction) AccessList added in v1.0.0

func (t *Transaction) AccessList() (list []types.AccessTuple)

func (*Transaction) BlockHash added in v0.6.0

func (t *Transaction) BlockHash() *common.Hash

func (*Transaction) BlockNumber added in v0.6.0

func (t *Transaction) BlockNumber() *hexutil.Big

func (*Transaction) From

func (t *Transaction) From() common.Address

func (*Transaction) Gas

func (t *Transaction) Gas() *hexutil.Big

func (*Transaction) GasFeeCap added in v1.1.2

func (t *Transaction) GasFeeCap() *hexutil.Big

func (*Transaction) GasPrice

func (t *Transaction) GasPrice() *hexutil.Big

func (*Transaction) GasTipCap added in v1.1.2

func (t *Transaction) GasTipCap() *hexutil.Big

func (*Transaction) Hash

func (t *Transaction) Hash() common.Hash

func (*Transaction) Input

func (t *Transaction) Input() hexutil.Bytes

func (*Transaction) Nonce added in v0.6.0

func (t *Transaction) Nonce() *hexutil.Big

func (*Transaction) To

func (t *Transaction) To() *common.Address

func (*Transaction) Value

func (t *Transaction) Value() *hexutil.Big

type TransactionReceipt

type TransactionReceipt struct {
	TTransactionHash  string       `json:"transactionHash"`
	TTransactionIndex types.Number `json:"transactionIndex"`
	TBlockHash        common.Hash  `json:"blockHash"`
	TBlockNumber      types.Number `json:"blockNumber"`

	TFrom common.Address  `json:"from"`
	TTo   *common.Address `json:"to"`

	TGasUsed           *hexutil.Big    `json:"gasUsed"`
	TCumulativeGasUsed *hexutil.Big    `json:"cumulativeGasUsed"`
	TEffectiveGasPrice hexutil.Uint64  `json:"effectiveGasPrice"`
	TContractAddress   *common.Address `json:"contractAddress"`

	TStatus    string        `json:"status"` // Can be null, if null do a check anyways. 0x0 fail, 0x1 success
	TLogs      []*Log        `json:"logs"`
	TLogsBloom hexutil.Bytes `json:"logsBloom"`
	TRoot      *string       `json:"root"`
}

func (*TransactionReceipt) BlockHash added in v0.2.10

func (t *TransactionReceipt) BlockHash() common.Hash

func (*TransactionReceipt) BlockNumber added in v0.2.10

func (t *TransactionReceipt) BlockNumber() types.Number

func (*TransactionReceipt) ContractAddress

func (t *TransactionReceipt) ContractAddress() *common.Address

func (*TransactionReceipt) CumulativeGasUsed

func (t *TransactionReceipt) CumulativeGasUsed() *hexutil.Big

func (*TransactionReceipt) EffectiveGasPrice added in v1.1.2

func (t *TransactionReceipt) EffectiveGasPrice() hexutil.Uint64

func (*TransactionReceipt) From added in v0.2.10

func (t *TransactionReceipt) From() common.Address

func (*TransactionReceipt) GasUsed

func (t *TransactionReceipt) GasUsed() *hexutil.Big

func (*TransactionReceipt) Hash

func (t *TransactionReceipt) Hash() string

func (*TransactionReceipt) Logs

func (t *TransactionReceipt) Logs() []types.Log

func (*TransactionReceipt) LogsBloom added in v0.2.10

func (t *TransactionReceipt) LogsBloom() hexutil.Bytes

func (*TransactionReceipt) SetStatus

func (t *TransactionReceipt) SetStatus(trace string)

func (*TransactionReceipt) Status

func (t *TransactionReceipt) Status() string

func (*TransactionReceipt) To added in v0.2.10

func (*TransactionReceipt) TransactionIndex added in v0.2.10

func (t *TransactionReceipt) TransactionIndex() types.Number

type Version

type Version struct {
	Major int `json:"major"`
	Minor int `json:"minor"`
	Patch int `json:"patch"`
}

type VersionInfo

type VersionInfo struct {
	Hash    string  `json:"hash"`
	Track   string  `json:"track"`
	Version Version `json:"version"`
}

type VmState

type VmState struct {
	ValuePc      uint64             `json:"pc"`
	ValueOp      string             `json:"op"`
	ValueEx      Ex                 `json:"ex"`
	ValueSub     *VmTrace           `json:"sub"`
	ValueGas     uint64             `json:"gas"`
	ValueGasCost int64              `json:"cost"`
	ValueDepth   int                `json:"depth"`
	ValueError   json.RawMessage    `json:"error,omitempty"`
	ValueStack   *[]string          `json:"stack,omitempty"`
	ValueMemory  *[]string          `json:"memory,omitempty"`
	ValueStorage *map[string]string `json:"storage,omitempty"`
	Terminating  bool
}

func Walk

func Walk(vmt *VmTrace) []*VmState

func (*VmState) Depth

func (pvs *VmState) Depth() int

func (*VmState) Op

func (pvs *VmState) Op() string

func (*VmState) Pc

func (pvs *VmState) Pc() uint64

func (*VmState) Stack

func (pvs *VmState) Stack() []string

type VmTrace

type VmTrace struct {
	Logs []*VmState    `json:"ops"`
	Code hexutil.Bytes `json:"code"`
}

Jump to

Keyboard shortcuts

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