jsonrpc

package
v0.5.0-alpha.5 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2023 License: Apache-2.0 Imports: 36 Imported by: 1

Documentation

Overview

package jsonrpc implements JSON-RPC endpoints according to https://eth.wiki/json-rpc/API

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewServer

func NewServer(evmChain *EVMChain, accountManager *AccountManager) *rpc.Server

func RPCMarshalBlock

func RPCMarshalBlock(block *types.Block, inclTx, fullTx bool) (map[string]interface{}, error)

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

func RPCMarshalHeader(head *types.Header) map[string]interface{}

RPCMarshalHeader converts the given header to the RPC output .

func RPCMarshalLog

func RPCMarshalLog(r *types.Receipt, logIndex uint) map[string]interface{}

func RPCMarshalLogs

func RPCMarshalLogs(r *types.Receipt) []interface{}

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

type ChainBackend

type ChainBackend interface {
	EVMSendTransaction(tx *types.Transaction) error
	EVMEstimateGas(callMsg ethereum.CallMsg) (uint64, error)
	ISCCallView(chainState state.State, scName string, funName string, args dict.Dict) (dict.Dict, error)
	ISCLatestState() state.State
	ISCStateByBlockIndex(blockIndex uint32) (state.State, error)
	EVMGasPrice() *big.Int
	BaseToken() *parameters.BaseToken
}

type EVMChain

type EVMChain struct {
	// contains filtered or unexported fields
}

func NewEVMChain

func NewEVMChain(backend ChainBackend, chainID uint16) *EVMChain

func (*EVMChain) Balance

func (e *EVMChain) Balance(address common.Address, blockNumberOrHash rpc.BlockNumberOrHash) (*big.Int, error)

func (*EVMChain) BaseToken added in v0.3.0

func (e *EVMChain) BaseToken() *parameters.BaseToken

func (*EVMChain) BlockByHash

func (e *EVMChain) BlockByHash(hash common.Hash) (*types.Block, error)

func (*EVMChain) BlockByNumber

func (e *EVMChain) BlockByNumber(blockNumber *big.Int) (*types.Block, error)

func (*EVMChain) BlockNumber

func (e *EVMChain) BlockNumber() (*big.Int, error)

func (*EVMChain) BlockTransactionCountByHash

func (e *EVMChain) BlockTransactionCountByHash(blockHash common.Hash) (uint64, error)

func (*EVMChain) BlockTransactionCountByNumber

func (e *EVMChain) BlockTransactionCountByNumber(blockNumber *big.Int) (uint64, error)

func (*EVMChain) CallContract

func (e *EVMChain) CallContract(args ethereum.CallMsg, blockNumberOrHash rpc.BlockNumberOrHash) ([]byte, error)

func (*EVMChain) Code

func (e *EVMChain) Code(address common.Address, blockNumberOrHash rpc.BlockNumberOrHash) ([]byte, error)

func (*EVMChain) EstimateGas

func (e *EVMChain) EstimateGas(callMsg ethereum.CallMsg) (uint64, error)

func (*EVMChain) GasFeePolicy added in v0.3.0

func (e *EVMChain) GasFeePolicy() (*gas.GasFeePolicy, error)

func (*EVMChain) GasPrice added in v1.0.3

func (e *EVMChain) GasPrice() *big.Int

func (*EVMChain) GasRatio added in v0.3.0

func (e *EVMChain) GasRatio() (util.Ratio32, error)

func (*EVMChain) Logs

func (e *EVMChain) Logs(q *ethereum.FilterQuery) ([]*types.Log, error)

func (*EVMChain) SendTransaction

func (e *EVMChain) SendTransaction(tx *types.Transaction) error

func (*EVMChain) Signer

func (e *EVMChain) Signer() types.Signer

func (*EVMChain) StorageAt

func (e *EVMChain) StorageAt(address common.Address, key common.Hash, blockNumberOrHash rpc.BlockNumberOrHash) ([]byte, error)

func (*EVMChain) TransactionByBlockHashAndIndex

func (e *EVMChain) TransactionByBlockHashAndIndex(hash common.Hash, index uint64) (tx *types.Transaction, blockHash common.Hash, blockNumber, indexRet uint64, err error)

func (*EVMChain) TransactionByBlockNumberAndIndex

func (e *EVMChain) TransactionByBlockNumberAndIndex(blockNumber *big.Int, index uint64) (tx *types.Transaction, blockHash common.Hash, blockNumberRet, indexRet uint64, err error)

func (*EVMChain) TransactionByHash

func (e *EVMChain) TransactionByHash(hash common.Hash) (tx *types.Transaction, blockHash common.Hash, blockNumber, index uint64, err error)

func (*EVMChain) TransactionCount

func (e *EVMChain) TransactionCount(address common.Address, blockNumberOrHash ...rpc.BlockNumberOrHash) (uint64, error)

func (*EVMChain) TransactionReceipt

func (e *EVMChain) TransactionReceipt(txHash common.Hash) (*types.Receipt, error)

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) *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

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) (hexutil.Uint64, error)

func (*EthService) GasPrice

func (e *EthService) GasPrice() *hexutil.Big

expressed in wei 1 Ether = 1_000_000_000 Gwei 1_000_000_000_000_000_000 wei

func (*EthService) GetBalance

func (e *EthService) GetBalance(address common.Address, blockNumberOrHash rpc.BlockNumberOrHash) (*hexutil.Big, error)

func (*EthService) GetBlockByHash

func (e *EthService) GetBlockByHash(hash common.Hash, full bool) (map[string]interface{}, error)

func (*EthService) GetBlockByNumber

func (e *EthService) GetBlockByNumber(blockNumber rpc.BlockNumber, full bool) (map[string]interface{}, error)

func (*EthService) GetBlockTransactionCountByHash

func (e *EthService) GetBlockTransactionCountByHash(blockHash common.Hash) (hexutil.Uint, error)

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 (e *EthService) GetUncleByBlockHashAndIndex(blockHash common.Hash, index hexutil.Uint) map[string]interface{}

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) Mining

func (e *EthService) Mining() bool

func (*EthService) ProtocolVersion

func (e *EthService) ProtocolVersion() hexutil.Uint

func (*EthService) SendRawTransaction

func (e *EthService) SendRawTransaction(txBytes hexutil.Bytes) (common.Hash, error)

func (*EthService) SendTransaction

func (e *EthService) SendTransaction(args *SendTxArgs) (common.Hash, error)

func (*EthService) Sign

func (e *EthService) Sign(addr common.Address, data hexutil.Bytes) (hexutil.Bytes, 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 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"`
	Data     *hexutil.Bytes  `json:"data"`
}

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

func (*TxPoolService) Inspect

func (s *TxPoolService) Inspect() map[string]map[string]map[string]string

func (*TxPoolService) Status

func (s *TxPoolService) Status() map[string]hexutil.Uint

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) EVMEstimateGas added in v1.0.3

func (b *WaspEVMBackend) EVMEstimateGas(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) ISCCallView added in v1.0.3

func (b *WaspEVMBackend) ISCCallView(chainState state.State, scName, funName string, args dict.Dict) (dict.Dict, error)

func (*WaspEVMBackend) ISCLatestState added in v1.0.3

func (b *WaspEVMBackend) ISCLatestState() state.State

ISCLatestState implements jsonrpc.ChainBackend

func (*WaspEVMBackend) ISCStateByBlockIndex added in v1.0.3

func (b *WaspEVMBackend) ISCStateByBlockIndex(blockIndex uint32) (state.State, error)

ISCStateByBlockIndex implements jsonrpc.ChainBackend

func (*WaspEVMBackend) RequestIDByTransactionHash

func (b *WaspEVMBackend) RequestIDByTransactionHash(txHash common.Hash) (isc.RequestID, bool)

type Web3Service

type Web3Service struct{}

func NewWeb3Service

func NewWeb3Service() *Web3Service

func (*Web3Service) ClientVersion

func (s *Web3Service) ClientVersion() string

func (*Web3Service) Sha3

func (s *Web3Service) Sha3(input hexutil.Bytes) hexutil.Bytes

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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