Documentation
¶
Index ¶
- Constants
- Variables
- func GetNumericBlockNumber(number BlockNumber, e *Eth) (uint64, error)
- func NewInternalError(msg string) *internalError
- func NewInvalidParamsError(msg string) *invalidParamsError
- func NewInvalidRequestError(msg string) *invalidRequestError
- func NewMethodNotFoundError(method string) *methodNotFoundError
- func NewSubscriptionNotFoundError(method string) *subscriptionNotFoundError
- type BlockNumber
- type BlockNumberOrHash
- type Config
- type ContentResponse
- type Dispatcher
- type Error
- type ErrorResponse
- type Eth
- func (e *Eth) BlockNumber() (interface{}, error)
- func (e *Eth) Call(arg *txnArgs, filter BlockNumberOrHash) (interface{}, error)
- func (e *Eth) ChainId() (interface{}, error)
- func (e *Eth) EstimateGas(arg *txnArgs, rawNum *BlockNumber) (interface{}, error)
- func (e *Eth) GasPrice() (interface{}, error)
- func (e *Eth) GetBalance(address types.Address, filter BlockNumberOrHash) (interface{}, error)
- func (e *Eth) GetBlockByHash(hash types.Hash, fullTx bool) (interface{}, error)
- func (e *Eth) GetBlockByNumber(number BlockNumber, fullTx bool) (interface{}, error)
- func (e *Eth) GetBlockTransactionCountByNumber(number BlockNumber) (interface{}, error)
- func (e *Eth) GetCode(address types.Address, filter BlockNumberOrHash) (interface{}, error)
- func (e *Eth) GetFilterChanges(id string) (interface{}, error)
- func (e *Eth) GetLogs(filterOptions *LogFilter) (interface{}, error)
- func (e *Eth) GetStorageAt(address types.Address, index types.Hash, filter BlockNumberOrHash) (interface{}, error)
- func (e *Eth) GetTransactionByHash(hash types.Hash) (interface{}, error)
- func (e *Eth) GetTransactionCount(address types.Address, filter BlockNumberOrHash) (interface{}, error)
- func (e *Eth) GetTransactionReceipt(hash types.Hash) (interface{}, error)
- func (e *Eth) NewBlockFilter() (interface{}, error)
- func (e *Eth) NewFilter(filter *LogFilter) (interface{}, error)
- func (e *Eth) SendRawTransaction(input string) (interface{}, error)
- func (e *Eth) SendTransaction(arg *txnArgs) (interface{}, error)
- func (e *Eth) Syncing() (interface{}, error)
- func (e *Eth) UninstallFilter(id string) (bool, error)
- func (e *Eth) Unsubscribe(id string) (bool, error)
- type Filter
- type FilterManager
- func (f *FilterManager) Close()
- func (f *FilterManager) Exists(id string) bool
- func (f *FilterManager) GetFilterChanges(id string) (string, error)
- func (f *FilterManager) NewBlockFilter(ws wsConn) string
- func (f *FilterManager) NewLogFilter(logFilter *LogFilter, ws wsConn) string
- func (f *FilterManager) Run()
- func (f *FilterManager) Uninstall(id string) bool
- type InspectResponse
- type JSONRPC
- type JSONRPCStore
- type Log
- type LogFilter
- type Net
- type ObjectError
- type Request
- type Response
- type StatusResponse
- type SuccessResponse
- type TxPool
- type Web3
Constants ¶
const ( PendingBlockNumber = BlockNumber(-3) LatestBlockNumber = BlockNumber(-2) EarliestBlockNumber = BlockNumber(-1) )
Variables ¶
var (
ErrStateNotFound = errors.New("given root and slot not found in storage")
)
Functions ¶
func GetNumericBlockNumber ¶
func GetNumericBlockNumber(number BlockNumber, e *Eth) (uint64, error)
func NewInternalError ¶
func NewInternalError(msg string) *internalError
func NewInvalidParamsError ¶
func NewInvalidParamsError(msg string) *invalidParamsError
func NewInvalidRequestError ¶
func NewInvalidRequestError(msg string) *invalidRequestError
func NewMethodNotFoundError ¶
func NewMethodNotFoundError(method string) *methodNotFoundError
func NewSubscriptionNotFoundError ¶
func NewSubscriptionNotFoundError(method string) *subscriptionNotFoundError
Types ¶
type BlockNumber ¶
type BlockNumber int64
func (*BlockNumber) UnmarshalJSON ¶
func (b *BlockNumber) UnmarshalJSON(buffer []byte) error
UnmarshalJSON automatically decodes the user input for the block number, when a JSON RPC method is called
type BlockNumberOrHash ¶
type BlockNumberOrHash struct {
BlockNumber *BlockNumber `json:"blockNumber,omitempty"`
BlockHash *types.Hash `json:"blockHash,omitempty"`
}
func (*BlockNumberOrHash) UnmarshalJSON ¶
func (bnh *BlockNumberOrHash) UnmarshalJSON(data []byte) error
UnmarshalJSON will try to extract the filter's data. Here are the possible input formats :
1 - "latest", "pending" or "earliest" - self-explaining keywords 2 - "0x2" - block number #2 (EIP-1898 backward compatible) 3 - {blockNumber: "0x2"} - EIP-1898 compliant block number #2 4 - {blockHash: "0xe0e..."} - EIP-1898 compliant block hash 0xe0e...
type ContentResponse ¶
type Dispatcher ¶
type Dispatcher struct {
// contains filtered or unexported fields
}
Dispatcher handles all json rpc requests by delegating the execution flow to the corresponding service
type ErrorResponse ¶
type ErrorResponse struct {
JSONRPC string `json:"jsonrpc"`
ID interface{} `json:"id,omitempty"`
Error *ObjectError `json:"error"`
}
ErrorResponse is a jsonrpc error response
func (*ErrorResponse) Bytes ¶
func (e *ErrorResponse) Bytes() ([]byte, error)
Bytes return the serialized response
func (*ErrorResponse) Data ¶
func (e *ErrorResponse) Data() json.RawMessage
Data returns ObjectError
func (*ErrorResponse) GetID ¶
func (e *ErrorResponse) GetID() interface{}
GetID returns error response id
type Eth ¶
type Eth struct {
// contains filtered or unexported fields
}
Eth is the eth jsonrpc endpoint
func (*Eth) BlockNumber ¶
BlockNumber returns current block number
func (*Eth) Call ¶
func (e *Eth) Call( arg *txnArgs, filter BlockNumberOrHash, ) (interface{}, error)
Call executes a smart contract call using the transaction object data
func (*Eth) EstimateGas ¶
func (e *Eth) EstimateGas( arg *txnArgs, rawNum *BlockNumber, ) (interface{}, error)
EstimateGas estimates the gas needed to execute a transaction
func (*Eth) GetBalance ¶
func (e *Eth) GetBalance(address types.Address, filter BlockNumberOrHash) (interface{}, error)
GetBalance returns the account's balance at the referenced block.
func (*Eth) GetBlockByHash ¶
GetBlockByHash returns information about a block by hash
func (*Eth) GetBlockByNumber ¶
func (e *Eth) GetBlockByNumber(number BlockNumber, fullTx bool) (interface{}, error)
GetBlockByNumber returns information about a block by block number
func (*Eth) GetBlockTransactionCountByNumber ¶
func (e *Eth) GetBlockTransactionCountByNumber(number BlockNumber) (interface{}, error)
func (*Eth) GetCode ¶
func (e *Eth) GetCode(address types.Address, filter BlockNumberOrHash) (interface{}, error)
GetCode returns account code at given block number
func (*Eth) GetFilterChanges ¶
GetFilterChanges is a polling method for a filter, which returns an array of logs which occurred since last poll.
func (*Eth) GetStorageAt ¶
func (e *Eth) GetStorageAt( address types.Address, index types.Hash, filter BlockNumberOrHash, ) (interface{}, error)
GetStorageAt returns the contract storage at the index position
func (*Eth) GetTransactionByHash ¶
GetTransactionByHash returns a transaction by its hash. If the transaction is still pending -> return the txn with some fields omitted If the transaction is sealed into a block -> return the whole txn with all fields
func (*Eth) GetTransactionCount ¶
func (e *Eth) GetTransactionCount(address types.Address, filter BlockNumberOrHash) (interface{}, error)
GetTransactionCount returns account nonce
func (*Eth) GetTransactionReceipt ¶
GetTransactionReceipt returns a transaction receipt by his hash
func (*Eth) NewBlockFilter ¶
NewBlockFilter creates a filter in the node, to notify when a new block arrives
func (*Eth) NewFilter ¶
NewFilter creates a filter object, based on filter options, to notify when the state changes (logs).
func (*Eth) SendRawTransaction ¶
SendRawTransaction sends a raw transaction
func (*Eth) SendTransaction ¶
SendTransaction creates new message call transaction or a contract creation, if the data field contains code.
func (*Eth) UninstallFilter ¶
UninstallFilter uninstalls a filter with given ID
type FilterManager ¶
type FilterManager struct {
// contains filtered or unexported fields
}
func NewFilterManager ¶
func NewFilterManager(logger hclog.Logger, store filterManagerStore) *FilterManager
func (*FilterManager) Close ¶
func (f *FilterManager) Close()
func (*FilterManager) Exists ¶
func (f *FilterManager) Exists(id string) bool
func (*FilterManager) GetFilterChanges ¶
func (f *FilterManager) GetFilterChanges(id string) (string, error)
func (*FilterManager) NewBlockFilter ¶
func (f *FilterManager) NewBlockFilter(ws wsConn) string
func (*FilterManager) NewLogFilter ¶
func (f *FilterManager) NewLogFilter(logFilter *LogFilter, ws wsConn) string
func (*FilterManager) Run ¶
func (f *FilterManager) Run()
func (*FilterManager) Uninstall ¶
func (f *FilterManager) Uninstall(id string) bool
type InspectResponse ¶
type JSONRPC ¶
type JSONRPC struct {
// contains filtered or unexported fields
}
JSONRPC is an API backend
type JSONRPCStore ¶
type JSONRPCStore interface {
// contains filtered or unexported methods
}
JSONRPCStore defines all the methods required by all the JSON RPC endpoints
type Log ¶
type Log struct {
Address types.Address `json:"address"`
Topics []types.Hash `json:"topics"`
Data argBytes `json:"data"`
BlockNumber argUint64 `json:"blockNumber"`
TxHash types.Hash `json:"transactionHash"`
TxIndex argUint64 `json:"transactionIndex"`
BlockHash types.Hash `json:"blockHash"`
LogIndex argUint64 `json:"logIndex"`
Removed bool `json:"removed"`
}
type LogFilter ¶
type LogFilter struct {
BlockHash *types.Hash
Addresses []types.Address
Topics [][]types.Hash
// contains filtered or unexported fields
}
LogFilter is a filter for logs
func (*LogFilter) UnmarshalJSON ¶
UnmarshalJSON decodes a json object
type Net ¶
type Net struct {
// contains filtered or unexported fields
}
Net is the net jsonrpc endpoint
func (*Net) Listening ¶
Listening returns true if client is actively listening for network connections
type ObjectError ¶
type ObjectError struct {
Code int `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data,omitempty"`
}
ObjectError is a jsonrpc error
type Request ¶
type Request struct {
ID interface{} `json:"id"`
Method string `json:"method"`
Params json.RawMessage `json:"params,omitempty"`
}
Request is a jsonrpc request
type Response ¶
type Response interface {
GetID() interface{}
Data() json.RawMessage
Bytes() ([]byte, error)
}
Response is a jsonrpc response interface
func NewRPCErrorResponse ¶
NewRPCErrorResponse is used to create a custom error response
type StatusResponse ¶
type SuccessResponse ¶
type SuccessResponse struct {
JSONRPC string `json:"jsonrpc"`
ID interface{} `json:"id"`
Result json.RawMessage `json:"result"`
Error *ObjectError `json:"error,omitempty"`
}
SuccessResponse is a jsonrpc success response
func (*SuccessResponse) Bytes ¶
func (s *SuccessResponse) Bytes() ([]byte, error)
Bytes return the serialized response
func (*SuccessResponse) Data ¶
func (s *SuccessResponse) Data() json.RawMessage
Data returns the result
func (*SuccessResponse) GetID ¶
func (s *SuccessResponse) GetID() interface{}
GetID returns success response id
type TxPool ¶
type TxPool struct {
// contains filtered or unexported fields
}
TxPool is the txpool jsonrpc endpoint
func (*TxPool) Content ¶
Create response for txpool_content request. See https://geth.ethereum.org/docs/rpc/ns-txpool#txpool_content.
func (*TxPool) Inspect ¶
Create response for txpool_inspect request. See https://geth.ethereum.org/docs/rpc/ns-txpool#txpool_inspect.
func (*TxPool) Status ¶
Create response for txpool_status request. See https://geth.ethereum.org/docs/rpc/ns-txpool#txpool_status.
type Web3 ¶
type Web3 struct{}
Web3 is the web3 jsonrpc endpoint
func (*Web3) ClientVersion ¶
ClientVersion returns the version of the web3 client (web3_clientVersion)