Documentation ¶
Overview ¶
package jsonrpc implements JSON-RPC endpoints according to https://eth.wiki/json-rpc/API
Index ¶
- 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 RPCMarshalLog(r *types.Receipt, logIndex uint) map[string]interface{}
- func RPCMarshalLogs(r *types.Receipt) []interface{}
- func RPCMarshalReceipt(r *types.Receipt, tx *types.Transaction) map[string]interface{}
- type AccountManager
- type CallFrame
- type ChainBackend
- type DebugService
- 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) Logs(q *ethereum.FilterQuery) ([]*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) TraceTransaction(txHash common.Hash, config *tracers.TraceConfig) (any, error)
- func (e *EVMChain) TransactionByBlockHashAndIndex(hash common.Hash, index uint64) (tx *types.Transaction, blockHash common.Hash, blockNumber, indexRet uint64, ...)
- func (e *EVMChain) TransactionByBlockNumberAndIndex(blockNumber *big.Int, index uint64) (tx *types.Transaction, blockHash common.Hash, blockNumberRet, indexRet uint64, ...)
- func (e *EVMChain) TransactionByHash(hash common.Hash) (tx *types.Transaction, blockHash common.Hash, blockNumber, index 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 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) 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 common.Hash, ...) (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 NetService
- type NewBlockEvent
- type RPCCallArgs
- type RPCFilterQuery
- type RPCTransaction
- type SendTxArgs
- type TxPoolService
- 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) EVMGasPrice() *big.Int
- func (b *WaspEVMBackend) EVMGasRatio() (util.Ratio32, error)
- func (b *WaspEVMBackend) EVMSendTransaction(tx *types.Transaction) error
- func (b *WaspEVMBackend) EVMTraceTransaction(aliasOutput *isc.AliasOutputWithID, blockTime time.Time, ...) 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
- func (b *WaspEVMBackend) ISCStateByBlockIndex(blockIndex uint32) (state.State, error)
- func (b *WaspEVMBackend) ISCStateByTrieRoot(trieRoot trie.Hash) (state.State, error)
- func (b *WaspEVMBackend) RequestIDByTransactionHash(txHash common.Hash) (isc.RequestID, bool)
- type Web3Service
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewServer ¶
func NewServer( evmChain *EVMChain, accountManager *AccountManager, metrics metrics.IChainMetrics, ) (*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 RPCMarshalLogs ¶
func RPCMarshalReceipt ¶
func RPCMarshalReceipt(r *types.Receipt, tx *types.Transaction) map[string]interface{}
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 string `json:"type"` From string `json:"from"` To string `json:"to,omitempty"` Value string `json:"value,omitempty"` Gas string `json:"gas"` GasUsed string `json:"gasUsed"` Input string `json:"input"` Output string `json:"output,omitempty"` Error string `json:"error,omitempty"` Calls []CallFrame `json:"calls,omitempty"` }
CallFrame contains the result of a trace with "callTracer". Code is 100% copied from go-ethereum (since the type is unexported there)
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) EVMTraceTransaction(aliasOutput *isc.AliasOutputWithID, blockTime time.Time, iscRequestsInBlock []isc.Request, txIndex uint64, tracer tracers.Tracer) 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 ISCStateByBlockIndex(blockIndex uint32) (state.State, error) ISCStateByTrieRoot(trieRoot trie.Hash) (state.State, error) EVMGasPrice() *big.Int BaseToken() *parameters.BaseToken }
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.IChainMetrics) *DebugService
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
}
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) 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) 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 EthService ¶
type EthService struct {
// contains filtered or unexported fields
}
func NewEthService ¶
func NewEthService(evmChain *EVMChain, accounts *AccountManager, metrics metrics.IChainMetrics) *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) 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) 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 common.Hash, 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 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 RPCCallArgs ¶
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 sumbit a new transaction into the transaction pool.
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 WaspEVMBackend ¶ added in v1.0.3
type WaspEVMBackend struct {
// contains filtered or unexported fields
}
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) EVMGasPrice ¶
func (b *WaspEVMBackend) EVMGasPrice() *big.Int
func (*WaspEVMBackend) EVMGasRatio ¶
func (b *WaspEVMBackend) EVMGasRatio() (util.Ratio32, error)
func (*WaspEVMBackend) EVMSendTransaction ¶ added in v1.0.3
func (b *WaspEVMBackend) EVMSendTransaction(tx *types.Transaction) error
func (*WaspEVMBackend) EVMTraceTransaction ¶ added in v1.0.3
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
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) RequestIDByTransactionHash ¶
type Web3Service ¶
type Web3Service struct{}
func NewWeb3Service ¶
func NewWeb3Service() *Web3Service
func (*Web3Service) ClientVersion ¶
func (s *Web3Service) ClientVersion() string