Documentation ¶
Overview ¶
Package jsonrpc contains the implementation of the JSONRPC service which is called by Ethereum clients (e.g. Metamask).
The most relevant types in this package are:
- EthService, NetService, DebugService, etc. which contain the implementations for the `eth_*`, `net_*`, `debug_*`, etc., JSONRPC endpoints. Each endpoint corresponds to a public receiver with the same name. For example, `eth_getTransactionCount` corresponds to EthService.GetTransactionCount.
- EVMChain, which provides common functionality to interact with the EVM state.
- ChainBackend, which provides access to the underlying ISC chain, and has two implementations:
- WaspEVMBackend for the production environment.
- [solo.jsonRPCSoloBackend] for Solo tests.
package jsonrpc implements JSON-RPC endpoints according to https://eth.wiki/json-rpc/API
Index ¶
- Variables
- func MemoryPtr(m []byte, offset, size int64) []byte
- func NewServer(evmChain *EVMChain, accountManager *AccountManager, ...) (*rpc.Server, error)
- func RPCMarshalBlock(block *types.Block, inclTx, fullTx bool) (map[string]interface{}, error)
- func RPCMarshalHeader(head *types.Header) map[string]interface{}
- func RPCMarshalReceipt(r *types.Receipt, tx *types.Transaction, effectiveGasPrice *big.Int) map[string]interface{}
- func StackBack(st []uint256.Int, n int) *uint256.Int
- type AccountManager
- type CallFrame
- type CallLog
- type CallTraceAction
- type ChainBackend
- type CreateTraceAction
- type CreateTraceResult
- type DebugService
- func (d *DebugService) GetRawBlock(blockNrOrHash rpc.BlockNumberOrHash) (interface{}, error)
- func (d *DebugService) TraceBlockByHash(blockHash common.Hash, config *tracers.TraceConfig) (interface{}, error)
- func (d *DebugService) TraceBlockByNumber(blockNumber hexutil.Uint64, config *tracers.TraceConfig) (interface{}, error)
- func (d *DebugService) TraceTransaction(txHash common.Hash, config *tracers.TraceConfig) (interface{}, error)
- type EVMChain
- func (e *EVMChain) Balance(address common.Address, blockNumberOrHash *rpc.BlockNumberOrHash) (*big.Int, error)
- func (e *EVMChain) BaseToken() *parameters.BaseToken
- func (e *EVMChain) BlockByHash(hash common.Hash) *types.Block
- func (e *EVMChain) BlockByNumber(blockNumber *big.Int) (*types.Block, error)
- func (e *EVMChain) BlockNumber() *big.Int
- func (e *EVMChain) BlockTransactionCountByHash(blockHash common.Hash) uint64
- func (e *EVMChain) BlockTransactionCountByNumber(blockNumber *big.Int) (uint64, error)
- func (e *EVMChain) CallContract(callMsg ethereum.CallMsg, blockNumberOrHash *rpc.BlockNumberOrHash) ([]byte, error)
- func (e *EVMChain) ChainID() uint16
- func (e *EVMChain) Code(address common.Address, blockNumberOrHash *rpc.BlockNumberOrHash) ([]byte, error)
- func (e *EVMChain) EstimateGas(callMsg ethereum.CallMsg, blockNumberOrHash *rpc.BlockNumberOrHash) (uint64, error)
- func (e *EVMChain) GasFeePolicy() *gas.FeePolicy
- func (e *EVMChain) GasPrice() *big.Int
- func (e *EVMChain) GasRatio() util.Ratio32
- func (e *EVMChain) GetBlockReceipts(blockNrOrHash rpc.BlockNumberOrHash) ([]*types.Receipt, []*types.Transaction, error)
- func (e *EVMChain) GetRawBlock(blockNrOrHash rpc.BlockNumberOrHash) (hexutil.Bytes, error)
- func (e *EVMChain) Logs(query *ethereum.FilterQuery, params *LogsLimits) ([]*types.Log, error)
- func (e *EVMChain) SendTransaction(tx *types.Transaction) error
- func (e *EVMChain) Signer() (types.Signer, error)
- func (e *EVMChain) StorageAt(address common.Address, key common.Hash, ...) (common.Hash, error)
- func (e *EVMChain) SubscribeLogs(q *ethereum.FilterQuery, ch chan<- []*types.Log) (unsubscribe func())
- func (e *EVMChain) SubscribeNewHeads(ch chan<- *types.Header) (unsubscribe func())
- func (e *EVMChain) TraceBlock(bn rpc.BlockNumber) (any, error)
- func (e *EVMChain) TraceBlockByHash(blockHash common.Hash, config *tracers.TraceConfig) (any, error)
- func (e *EVMChain) TraceBlockByNumber(blockNumber uint64, config *tracers.TraceConfig) (any, error)
- func (e *EVMChain) TraceTransaction(txHash common.Hash, config *tracers.TraceConfig) (any, error)
- func (e *EVMChain) TransactionByBlockHashAndIndex(hash common.Hash, index uint64) (tx *types.Transaction, blockNumber uint64, err error)
- func (e *EVMChain) TransactionByBlockNumberAndIndex(blockNumber *big.Int, index uint64) (tx *types.Transaction, blockHash common.Hash, blockNumberRet uint64, err error)
- func (e *EVMChain) TransactionByHash(hash common.Hash) (tx *types.Transaction, blockHash common.Hash, blockNumber, txIndex uint64, ...)
- func (e *EVMChain) TransactionCount(address common.Address, blockNumberOrHash *rpc.BlockNumberOrHash) (uint64, error)
- func (e *EVMChain) TransactionReceipt(txHash common.Hash) *types.Receipt
- func (e *EVMChain) ViewCaller(chainState state.State) vmerrors.ViewCaller
- type EVMService
- type EthService
- func (e *EthService) Accounts() []common.Address
- func (e *EthService) BlockNumber() (*hexutil.Big, error)
- func (e *EthService) Call(args *RPCCallArgs, blockNumberOrHash *rpc.BlockNumberOrHash) (hexutil.Bytes, error)
- func (e *EthService) ChainId() (hexutil.Uint, error)
- func (e *EthService) Coinbase() common.Address
- func (e *EthService) EstimateGas(args *RPCCallArgs, blockNumberOrHash *rpc.BlockNumberOrHash) (hexutil.Uint64, error)
- func (e *EthService) GasPrice() (*hexutil.Big, error)
- func (e *EthService) GetBalance(address common.Address, blockNumberOrHash *rpc.BlockNumberOrHash) (*hexutil.Big, error)
- func (e *EthService) GetBlockByHash(hash common.Hash, full bool) (map[string]interface{}, error)
- func (e *EthService) GetBlockByNumber(blockNumber rpc.BlockNumber, full bool) (map[string]interface{}, error)
- func (e *EthService) GetBlockReceipts(blockNumber rpc.BlockNumberOrHash) ([]map[string]interface{}, error)
- func (e *EthService) GetBlockTransactionCountByHash(blockHash common.Hash) (hexutil.Uint, error)
- func (e *EthService) GetBlockTransactionCountByNumber(blockNumber rpc.BlockNumber) (hexutil.Uint, error)
- func (e *EthService) GetCode(address common.Address, blockNumberOrHash *rpc.BlockNumberOrHash) (hexutil.Bytes, error)
- func (e *EthService) GetCompilers() []string
- func (e *EthService) GetLogs(q *RPCFilterQuery) ([]*types.Log, error)
- func (e *EthService) GetStorageAt(address common.Address, key string, blockNumberOrHash *rpc.BlockNumberOrHash) (hexutil.Bytes, error)
- func (e *EthService) GetTransactionByBlockHashAndIndex(blockHash common.Hash, index hexutil.Uint) (*RPCTransaction, error)
- func (e *EthService) GetTransactionByBlockNumberAndIndex(blockNumberOrTag rpc.BlockNumber, index hexutil.Uint) (*RPCTransaction, error)
- func (e *EthService) GetTransactionByHash(hash common.Hash) (*RPCTransaction, error)
- func (e *EthService) GetTransactionCount(address common.Address, blockNumberOrHash *rpc.BlockNumberOrHash) (hexutil.Uint64, error)
- func (e *EthService) GetTransactionReceipt(txHash common.Hash) (map[string]interface{}, error)
- func (e *EthService) GetUncleByBlockHashAndIndex(blockHash common.Hash, index hexutil.Uint) map[string]interface{}
- func (e *EthService) GetUncleByBlockNumberAndIndex(blockNumberOrTag rpc.BlockNumber, index hexutil.Uint) map[string]interface{}
- func (e *EthService) GetUncleCountByBlockHash(blockHash common.Hash) hexutil.Uint
- func (e *EthService) GetUncleCountByBlockNumber(blockNumber rpc.BlockNumber) hexutil.Uint
- func (e *EthService) Hashrate() float64
- func (e *EthService) Logs(ctx context.Context, q *RPCFilterQuery) (*rpc.Subscription, error)
- func (e *EthService) Mining() bool
- func (e *EthService) NewHeads(ctx context.Context) (*rpc.Subscription, error)
- func (e *EthService) ProtocolVersion() hexutil.Uint
- func (e *EthService) SendRawTransaction(txBytes hexutil.Bytes) (common.Hash, error)
- func (e *EthService) SendTransaction(args *SendTxArgs) (common.Hash, error)
- func (e *EthService) Sign(addr common.Address, data hexutil.Bytes) (hexutil.Bytes, error)
- func (e *EthService) SignTransaction(args *SendTxArgs) (hexutil.Bytes, error)
- func (e *EthService) Syncing() bool
- type LogsLimits
- type NetService
- type NewBlockEvent
- type OpCodeJSON
- type Parameters
- type PrestateAccount
- type PrestateAccountMap
- type PrestateDiffResult
- type RPCCallArgs
- type RPCFilterQuery
- type RPCTransaction
- type SendTxArgs
- type SuicideTraceAction
- type Trace
- type TraceBlock
- type TraceResult
- type TraceService
- type Tracer
- type TxPoolService
- type TxTraceResult
- type WaspEVMBackend
- func (b *WaspEVMBackend) BaseToken() *parameters.BaseToken
- func (b *WaspEVMBackend) EVMCall(aliasOutput *isc.AliasOutputWithID, callMsg ethereum.CallMsg) ([]byte, error)
- func (b *WaspEVMBackend) EVMEstimateGas(aliasOutput *isc.AliasOutputWithID, callMsg ethereum.CallMsg) (uint64, error)
- func (b *WaspEVMBackend) EVMSendTransaction(tx *types.Transaction) error
- func (b *WaspEVMBackend) EVMTrace(aliasOutput *isc.AliasOutputWithID, blockTime time.Time, ...) error
- func (b *WaspEVMBackend) FeePolicy(blockIndex uint32) (*gas.FeePolicy, error)
- func (b *WaspEVMBackend) ISCCallView(chainState state.State, scName, funName string, args dict.Dict) (dict.Dict, error)
- func (b *WaspEVMBackend) ISCChainID() *isc.ChainID
- func (b *WaspEVMBackend) ISCLatestAliasOutput() (*isc.AliasOutputWithID, error)
- func (b *WaspEVMBackend) ISCLatestState() (state.State, error)
- func (b *WaspEVMBackend) ISCStateByBlockIndex(blockIndex uint32) (state.State, error)
- func (b *WaspEVMBackend) ISCStateByTrieRoot(trieRoot trie.Hash) (state.State, error)
- func (*WaspEVMBackend) RevertToSnapshot(int) error
- func (*WaspEVMBackend) TakeSnapshot() (int, error)
- type Web3Service
Constants ¶
This section is empty.
Variables ¶
var ErrIncorrectTopLevelCalls = errors.New("incorrect number of top-level calls")
Functions ¶
func NewServer ¶
func NewServer( evmChain *EVMChain, accountManager *AccountManager, metrics *metrics.ChainWebAPIMetrics, params *Parameters, ) (*rpc.Server, error)
func RPCMarshalBlock ¶
RPCMarshalBlock converts the given block to the RPC output which depends on fullTx. If inclTx is true transactions are returned. When fullTx is true the returned block contains full transaction details, otherwise it will only contain transaction hashes.
func RPCMarshalHeader ¶
RPCMarshalHeader converts the given header to the RPC output .
func RPCMarshalReceipt ¶
Types ¶
type AccountManager ¶
type AccountManager struct {
// contains filtered or unexported fields
}
func NewAccountManager ¶
func NewAccountManager(accounts []*ecdsa.PrivateKey) *AccountManager
func (*AccountManager) Add ¶
func (a *AccountManager) Add(keyPair *ecdsa.PrivateKey)
func (*AccountManager) Addresses ¶
func (a *AccountManager) Addresses() []common.Address
func (*AccountManager) Get ¶
func (a *AccountManager) Get(addr common.Address) *ecdsa.PrivateKey
type CallFrame ¶ added in v1.0.3
type CallFrame struct { Type OpCodeJSON `json:"type"` From common.Address `json:"from"` Gas hexutil.Uint64 `json:"gas"` GasUsed hexutil.Uint64 `json:"gasUsed"` To *common.Address `json:"to,omitempty" rlp:"optional"` Input hexutil.Bytes `json:"input" rlp:"optional"` Output hexutil.Bytes `json:"output,omitempty" rlp:"optional"` Error string `json:"error,omitempty" rlp:"optional"` RevertReason string `json:"revertReason,omitempty"` Calls []CallFrame `json:"calls,omitempty" rlp:"optional"` Logs []CallLog `json:"logs,omitempty" rlp:"optional"` // Placed at end on purpose. The RLP will be decoded to 0 instead of // nil if there are non-empty elements after in the struct. Value hexutil.Big `json:"value,omitempty" rlp:"optional"` // contains filtered or unexported fields }
func (CallFrame) TypeString ¶ added in v1.4.0
type CallLog ¶ added in v1.5.1
type CallLog struct { Address common.Address `json:"address"` Topics []common.Hash `json:"topics"` Data hexutil.Bytes `json:"data"` // Position of the log relative to subcalls within the same trace // See https://github.com/ethereum/go-ethereum/pull/28389 for details Position hexutil.Uint `json:"position"` }
type CallTraceAction ¶
type ChainBackend ¶
type ChainBackend interface { EVMSendTransaction(tx *types.Transaction) error EVMCall(aliasOutput *isc.AliasOutputWithID, callMsg ethereum.CallMsg) ([]byte, error) EVMEstimateGas(aliasOutput *isc.AliasOutputWithID, callMsg ethereum.CallMsg) (uint64, error) EVMTrace(aliasOutput *isc.AliasOutputWithID, blockTime time.Time, iscRequestsInBlock []isc.Request, txIndex *uint64, blockNumber *uint64, tracer *tracers.Tracer) error FeePolicy(blockIndex uint32) (*gas.FeePolicy, error) ISCChainID() *isc.ChainID ISCCallView(chainState state.State, scName string, funName string, args dict.Dict) (dict.Dict, error) ISCLatestAliasOutput() (*isc.AliasOutputWithID, error) ISCLatestState() (state.State, error) ISCStateByBlockIndex(blockIndex uint32) (state.State, error) ISCStateByTrieRoot(trieRoot trie.Hash) (state.State, error) BaseToken() *parameters.BaseToken TakeSnapshot() (int, error) RevertToSnapshot(int) error }
ChainBackend provides access to the underlying ISC chain.
type CreateTraceAction ¶
type CreateTraceResult ¶
type DebugService ¶ added in v1.0.3
type DebugService struct {
// contains filtered or unexported fields
}
func NewDebugService ¶ added in v1.0.3
func NewDebugService(evmChain *EVMChain, metrics *metrics.ChainWebAPIMetrics) *DebugService
func (*DebugService) GetRawBlock ¶ added in v1.5.1
func (d *DebugService) GetRawBlock(blockNrOrHash rpc.BlockNumberOrHash) (interface{}, error)
func (*DebugService) TraceBlockByHash ¶ added in v1.5.0
func (d *DebugService) TraceBlockByHash(blockHash common.Hash, config *tracers.TraceConfig) (interface{}, error)
func (*DebugService) TraceBlockByNumber ¶ added in v1.5.0
func (d *DebugService) TraceBlockByNumber(blockNumber hexutil.Uint64, config *tracers.TraceConfig) (interface{}, error)
func (*DebugService) TraceTransaction ¶ added in v1.0.3
func (d *DebugService) TraceTransaction(txHash common.Hash, config *tracers.TraceConfig) (interface{}, error)
type EVMChain ¶
type EVMChain struct {
// contains filtered or unexported fields
}
EVMChain provides common functionality to interact with the EVM state.
func NewEVMChain ¶
func (*EVMChain) BaseToken ¶ added in v0.3.0
func (e *EVMChain) BaseToken() *parameters.BaseToken
func (*EVMChain) BlockByNumber ¶
func (*EVMChain) BlockNumber ¶
func (*EVMChain) BlockTransactionCountByHash ¶
func (*EVMChain) BlockTransactionCountByNumber ¶
func (*EVMChain) CallContract ¶
func (e *EVMChain) CallContract(callMsg ethereum.CallMsg, blockNumberOrHash *rpc.BlockNumberOrHash) ([]byte, error)
func (*EVMChain) EstimateGas ¶
func (e *EVMChain) EstimateGas(callMsg ethereum.CallMsg, blockNumberOrHash *rpc.BlockNumberOrHash) (uint64, error)
func (*EVMChain) GasFeePolicy ¶ added in v0.3.0
func (*EVMChain) GetBlockReceipts ¶ added in v1.5.0
func (e *EVMChain) GetBlockReceipts(blockNrOrHash rpc.BlockNumberOrHash) ([]*types.Receipt, []*types.Transaction, error)
func (*EVMChain) GetRawBlock ¶ added in v1.5.1
func (*EVMChain) Logs ¶
func (e *EVMChain) Logs(query *ethereum.FilterQuery, params *LogsLimits) ([]*types.Log, error)
Logs executes a log filter operation, blocking during execution and returning all the results in one batch.
func (*EVMChain) SendTransaction ¶
func (e *EVMChain) SendTransaction(tx *types.Transaction) error
func (*EVMChain) SubscribeLogs ¶ added in v1.0.3
func (*EVMChain) SubscribeNewHeads ¶ added in v1.0.3
func (*EVMChain) TraceBlock ¶
func (e *EVMChain) TraceBlock(bn rpc.BlockNumber) (any, error)
func (*EVMChain) TraceBlockByHash ¶ added in v1.5.0
func (*EVMChain) TraceBlockByNumber ¶ added in v1.5.0
func (*EVMChain) TraceTransaction ¶ added in v1.0.3
func (*EVMChain) TransactionByBlockHashAndIndex ¶
func (*EVMChain) TransactionByBlockNumberAndIndex ¶
func (*EVMChain) TransactionByHash ¶
func (*EVMChain) TransactionCount ¶
func (*EVMChain) TransactionReceipt ¶
func (*EVMChain) ViewCaller ¶ added in v0.3.0
func (e *EVMChain) ViewCaller(chainState state.State) vmerrors.ViewCaller
type EVMService ¶ added in v1.0.3
type EVMService struct {
// contains filtered or unexported fields
}
func NewEVMService ¶ added in v1.0.3
func NewEVMService(evmChain *EVMChain) *EVMService
type EthService ¶
type EthService struct {
// contains filtered or unexported fields
}
EthService contains the implementations for the `eth_*` JSONRPC endpoints.
Each endpoint corresponds to a public receiver with the same name. For example, `eth_getTransactionCount` corresponds to EthService.GetTransactionCount.
func NewEthService ¶
func NewEthService( evmChain *EVMChain, accounts *AccountManager, metrics *metrics.ChainWebAPIMetrics, params *Parameters, ) *EthService
func (*EthService) Accounts ¶
func (e *EthService) Accounts() []common.Address
func (*EthService) BlockNumber ¶
func (e *EthService) BlockNumber() (*hexutil.Big, error)
func (*EthService) Call ¶
func (e *EthService) Call(args *RPCCallArgs, blockNumberOrHash *rpc.BlockNumberOrHash) (hexutil.Bytes, error)
func (*EthService) ChainId ¶
func (e *EthService) ChainId() (hexutil.Uint, error)
ChainID implements the eth_chainId method according to https://eips.ethereum.org/EIPS/eip-695
func (*EthService) Coinbase ¶
func (e *EthService) Coinbase() common.Address
func (*EthService) EstimateGas ¶
func (e *EthService) EstimateGas(args *RPCCallArgs, blockNumberOrHash *rpc.BlockNumberOrHash) (hexutil.Uint64, error)
func (*EthService) GetBalance ¶
func (e *EthService) GetBalance(address common.Address, blockNumberOrHash *rpc.BlockNumberOrHash) (*hexutil.Big, error)
func (*EthService) GetBlockByHash ¶
func (*EthService) GetBlockByNumber ¶
func (e *EthService) GetBlockByNumber(blockNumber rpc.BlockNumber, full bool) (map[string]interface{}, error)
func (*EthService) GetBlockReceipts ¶ added in v1.5.0
func (e *EthService) GetBlockReceipts(blockNumber rpc.BlockNumberOrHash) ([]map[string]interface{}, error)
func (*EthService) GetBlockTransactionCountByHash ¶
func (*EthService) GetBlockTransactionCountByNumber ¶
func (e *EthService) GetBlockTransactionCountByNumber(blockNumber rpc.BlockNumber) (hexutil.Uint, error)
func (*EthService) GetCode ¶
func (e *EthService) GetCode(address common.Address, blockNumberOrHash *rpc.BlockNumberOrHash) (hexutil.Bytes, error)
func (*EthService) GetCompilers ¶
func (e *EthService) GetCompilers() []string
func (*EthService) GetLogs ¶
func (e *EthService) GetLogs(q *RPCFilterQuery) ([]*types.Log, error)
func (*EthService) GetStorageAt ¶
func (e *EthService) GetStorageAt(address common.Address, key string, blockNumberOrHash *rpc.BlockNumberOrHash) (hexutil.Bytes, error)
func (*EthService) GetTransactionByBlockHashAndIndex ¶
func (e *EthService) GetTransactionByBlockHashAndIndex(blockHash common.Hash, index hexutil.Uint) (*RPCTransaction, error)
func (*EthService) GetTransactionByBlockNumberAndIndex ¶
func (e *EthService) GetTransactionByBlockNumberAndIndex(blockNumberOrTag rpc.BlockNumber, index hexutil.Uint) (*RPCTransaction, error)
func (*EthService) GetTransactionByHash ¶
func (e *EthService) GetTransactionByHash(hash common.Hash) (*RPCTransaction, error)
func (*EthService) GetTransactionCount ¶
func (e *EthService) GetTransactionCount(address common.Address, blockNumberOrHash *rpc.BlockNumberOrHash) (hexutil.Uint64, error)
func (*EthService) GetTransactionReceipt ¶
func (e *EthService) GetTransactionReceipt(txHash common.Hash) (map[string]interface{}, error)
func (*EthService) GetUncleByBlockHashAndIndex ¶
func (*EthService) GetUncleByBlockNumberAndIndex ¶
func (e *EthService) GetUncleByBlockNumberAndIndex(blockNumberOrTag rpc.BlockNumber, index hexutil.Uint) map[string]interface{}
func (*EthService) GetUncleCountByBlockHash ¶
func (e *EthService) GetUncleCountByBlockHash(blockHash common.Hash) hexutil.Uint
func (*EthService) GetUncleCountByBlockNumber ¶
func (e *EthService) GetUncleCountByBlockNumber(blockNumber rpc.BlockNumber) hexutil.Uint
func (*EthService) Hashrate ¶
func (e *EthService) Hashrate() float64
func (*EthService) Logs ¶ added in v1.0.3
func (e *EthService) Logs(ctx context.Context, q *RPCFilterQuery) (*rpc.Subscription, error)
func (*EthService) Mining ¶
func (e *EthService) Mining() bool
func (*EthService) NewHeads ¶ added in v1.0.3
func (e *EthService) NewHeads(ctx context.Context) (*rpc.Subscription, error)
func (*EthService) ProtocolVersion ¶
func (e *EthService) ProtocolVersion() hexutil.Uint
func (*EthService) SendRawTransaction ¶
func (*EthService) SendTransaction ¶
func (e *EthService) SendTransaction(args *SendTxArgs) (common.Hash, error)
func (*EthService) SignTransaction ¶
func (e *EthService) SignTransaction(args *SendTxArgs) (hexutil.Bytes, error)
func (*EthService) Syncing ¶
func (e *EthService) Syncing() bool
type LogsLimits ¶ added in v1.0.3
type NetService ¶
type NetService struct {
// contains filtered or unexported fields
}
func NewNetService ¶
func NewNetService(chainID int) *NetService
func (*NetService) Listening ¶
func (s *NetService) Listening() bool
func (*NetService) PeerCount ¶
func (s *NetService) PeerCount() hexutil.Uint
func (*NetService) Version ¶
func (s *NetService) Version() string
type NewBlockEvent ¶ added in v1.0.3
type NewBlockEvent struct {
// contains filtered or unexported fields
}
type OpCodeJSON ¶ added in v1.5.0
func NewOpCodeJSON ¶ added in v1.5.0
func NewOpCodeJSON(code vm.OpCode) OpCodeJSON
func (OpCodeJSON) MarshalJSON ¶ added in v1.5.0
func (o OpCodeJSON) MarshalJSON() ([]byte, error)
func (*OpCodeJSON) UnmarshalJSON ¶ added in v1.5.0
func (o *OpCodeJSON) UnmarshalJSON(data []byte) error
type Parameters ¶ added in v1.0.3
type Parameters struct { Logs LogsLimits WebsocketRateLimitMessagesPerSecond int WebsocketRateLimitBurst int WebsocketConnectionCleanupDuration time.Duration WebsocketClientBlockDuration time.Duration }
func NewParameters ¶ added in v1.0.3
func ParametersDefault ¶ added in v1.0.3
func ParametersDefault() *Parameters
type PrestateAccount ¶ added in v1.5.1
type PrestateAccountMap ¶ added in v1.5.1
type PrestateAccountMap = map[common.Address]*PrestateAccount
type PrestateDiffResult ¶ added in v1.5.1
type PrestateDiffResult struct { Post PrestateAccountMap `json:"post"` Pre PrestateAccountMap `json:"pre"` }
type RPCCallArgs ¶
type RPCCallArgs struct { From common.Address `json:"from"` To *common.Address `json:"to"` Gas *hexutil.Uint64 `json:"gas"` GasPrice *hexutil.Big `json:"gasPrice"` Value *hexutil.Big `json:"value"` // We accept "data" and "input" for backwards-compatibility reasons. "input" is the // newer name and should be preferred by clients. Data *hexutil.Bytes `json:"data"` Input *hexutil.Bytes `json:"input"` }
type RPCFilterQuery ¶
type RPCFilterQuery ethereum.FilterQuery
func (*RPCFilterQuery) UnmarshalJSON ¶
func (q *RPCFilterQuery) UnmarshalJSON(data []byte) error
type RPCTransaction ¶
type RPCTransaction struct { BlockHash *common.Hash `json:"blockHash"` BlockNumber *hexutil.Big `json:"blockNumber"` From common.Address `json:"from"` Gas hexutil.Uint64 `json:"gas"` GasPrice *hexutil.Big `json:"gasPrice"` Hash common.Hash `json:"hash"` Input hexutil.Bytes `json:"input"` Nonce hexutil.Uint64 `json:"nonce"` To *common.Address `json:"to"` TransactionIndex *hexutil.Uint64 `json:"transactionIndex"` Value *hexutil.Big `json:"value"` V *hexutil.Big `json:"v"` R *hexutil.Big `json:"r"` S *hexutil.Big `json:"s"` }
RPCTransaction represents a transaction that will serialize to the RPC representation of a transaction
type SendTxArgs ¶
type SendTxArgs struct { From common.Address `json:"from"` To *common.Address `json:"to"` Gas *hexutil.Uint64 `json:"gas"` GasPrice *hexutil.Big `json:"gasPrice"` Value *hexutil.Big `json:"value"` Nonce *hexutil.Uint64 `json:"nonce"` // We accept "data" and "input" for backwards-compatibility reasons. "input" is the // newer name and should be preferred by clients. Data *hexutil.Bytes `json:"data"` Input *hexutil.Bytes `json:"input"` }
SendTxArgs represents the arguments to submit a new transaction into the transaction pool.
type SuicideTraceAction ¶
type Trace ¶
type Trace struct { Action interface{} `json:"action"` BlockHash *common.Hash `json:"blockHash,omitempty"` BlockNumber uint64 `json:"blockNumber,omitempty"` Error string `json:"error,omitempty"` Result interface{} `json:"result"` // Subtraces is an integer that represents the number of direct nested (child) calls, or "subtraces," within a trace entry. Subtraces int `json:"subtraces"` // TraceAddress is an array of integers that represents the path from the top-level transaction trace down to the current subtrace. // Each integer in the array specifies an index in the sequence of calls, showing how to "navigate" down the call stack to reach this trace. TraceAddress []int `json:"traceAddress"` TransactionHash *common.Hash `json:"transactionHash,omitempty"` TransactionPosition uint64 `json:"transactionPosition"` Type string `json:"type"` }
type TraceBlock ¶
type TraceResult ¶
type TraceService ¶
type TraceService struct {
// contains filtered or unexported fields
}
func NewTraceService ¶
func NewTraceService(evmChain *EVMChain, metrics *metrics.ChainWebAPIMetrics) *TraceService
func (*TraceService) Block ¶
func (d *TraceService) Block(bn rpc.BlockNumber) (interface{}, error)
Block implements the `trace_block` RPC.
type Tracer ¶ added in v1.5.1
type Tracer struct { *tracers.Tracer TraceFakeTx func(tx *types.Transaction) (json.RawMessage, error) }
type TxPoolService ¶
type TxPoolService struct{}
func NewTxPoolService ¶
func NewTxPoolService() *TxPoolService
func (*TxPoolService) Content ¶
func (s *TxPoolService) Content() map[string]map[string]map[string]*RPCTransaction
type TxTraceResult ¶ added in v1.5.0
type TxTraceResult struct { TxHash common.Hash `json:"txHash"` // transaction hash Result json.RawMessage `json:"result,omitempty"` // Trace results produced by the tracer Error string `json:"error,omitempty"` // Trace failure produced by the tracer }
type WaspEVMBackend ¶ added in v1.0.3
type WaspEVMBackend struct {
// contains filtered or unexported fields
}
WaspEVMBackend is the implementation of ChainBackend for the production environment.
func NewWaspEVMBackend ¶ added in v1.0.3
func NewWaspEVMBackend(ch chain.Chain, nodePubKey *cryptolib.PublicKey, baseToken *parameters.BaseToken) *WaspEVMBackend
func (*WaspEVMBackend) BaseToken ¶ added in v1.0.3
func (b *WaspEVMBackend) BaseToken() *parameters.BaseToken
func (*WaspEVMBackend) EVMCall ¶ added in v1.0.3
func (b *WaspEVMBackend) EVMCall(aliasOutput *isc.AliasOutputWithID, callMsg ethereum.CallMsg) ([]byte, error)
func (*WaspEVMBackend) EVMEstimateGas ¶ added in v1.0.3
func (b *WaspEVMBackend) EVMEstimateGas(aliasOutput *isc.AliasOutputWithID, callMsg ethereum.CallMsg) (uint64, error)
func (*WaspEVMBackend) EVMSendTransaction ¶ added in v1.0.3
func (b *WaspEVMBackend) EVMSendTransaction(tx *types.Transaction) error
func (*WaspEVMBackend) FeePolicy ¶ added in v1.0.3
func (b *WaspEVMBackend) FeePolicy(blockIndex uint32) (*gas.FeePolicy, error)
func (*WaspEVMBackend) ISCCallView ¶ added in v1.0.3
func (*WaspEVMBackend) ISCChainID ¶ added in v1.0.3
func (b *WaspEVMBackend) ISCChainID() *isc.ChainID
func (*WaspEVMBackend) ISCLatestAliasOutput ¶ added in v1.0.3
func (b *WaspEVMBackend) ISCLatestAliasOutput() (*isc.AliasOutputWithID, error)
func (*WaspEVMBackend) ISCLatestState ¶ added in v1.0.3
func (b *WaspEVMBackend) ISCLatestState() (state.State, error)
func (*WaspEVMBackend) ISCStateByBlockIndex ¶ added in v1.0.3
func (b *WaspEVMBackend) ISCStateByBlockIndex(blockIndex uint32) (state.State, error)
func (*WaspEVMBackend) ISCStateByTrieRoot ¶ added in v1.0.3
func (*WaspEVMBackend) RevertToSnapshot ¶ added in v1.0.3
func (*WaspEVMBackend) RevertToSnapshot(int) error
func (*WaspEVMBackend) TakeSnapshot ¶ added in v1.0.3
func (*WaspEVMBackend) TakeSnapshot() (int, error)
type Web3Service ¶
type Web3Service struct{}
func NewWeb3Service ¶
func NewWeb3Service() *Web3Service
func (*Web3Service) ClientVersion ¶
func (s *Web3Service) ClientVersion() string