Documentation ¶
Index ¶
- func MustInitFromViper()
- func ToHexBigSlice(arr []*big.Int) []*hexutil.Big
- type BlockPriorityFee
- type CfxGasStationHandler
- type CfxLogsApiHandler
- type CfxPrunedLogsHandler
- type CfxStateHandler
- func (h *CfxStateHandler) Call(ctx context.Context, cfx sdk.ClientOperator, request types.CallRequest, ...) (hexutil.Bytes, error)
- func (h *CfxStateHandler) CheckBalanceAgainstTransaction(ctx context.Context, cfx sdk.ClientOperator, accountAddress types.Address, ...) (types.CheckBalanceAgainstTransactionResponse, error)
- func (h *CfxStateHandler) EstimateGasAndCollateral(ctx context.Context, cfx sdk.ClientOperator, request types.CallRequest, ...) (types.Estimate, error)
- func (h *CfxStateHandler) GetAccountInfo(ctx context.Context, cfx sdk.ClientOperator, account types.Address, ...) (types.AccountInfo, error)
- func (h *CfxStateHandler) GetAccumulateInterestRate(ctx context.Context, cfx sdk.ClientOperator, epoch ...*types.Epoch) (*hexutil.Big, error)
- func (h *CfxStateHandler) GetAdmin(ctx context.Context, cfx sdk.ClientOperator, contractAddress types.Address, ...) (*types.Address, error)
- func (h *CfxStateHandler) GetBalance(ctx context.Context, cfx sdk.ClientOperator, address types.Address, ...) (*hexutil.Big, error)
- func (h *CfxStateHandler) GetCode(ctx context.Context, cfx sdk.ClientOperator, address types.Address, ...) (hexutil.Bytes, error)
- func (h *CfxStateHandler) GetCollateralForStorage(ctx context.Context, cfx sdk.ClientOperator, account types.Address, ...) (*hexutil.Big, error)
- func (h *CfxStateHandler) GetCollateralInfo(ctx context.Context, cfx sdk.ClientOperator, epoch ...*types.Epoch) (types.StorageCollateralInfo, error)
- func (h *CfxStateHandler) GetDepositList(ctx context.Context, cfx sdk.ClientOperator, address types.Address, ...) ([]types.DepositInfo, error)
- func (h *CfxStateHandler) GetInterestRate(ctx context.Context, cfx sdk.ClientOperator, epoch ...*types.Epoch) (*hexutil.Big, error)
- func (h *CfxStateHandler) GetNextNonce(ctx context.Context, cfx sdk.ClientOperator, address types.Address, ...) (*hexutil.Big, error)
- func (h *CfxStateHandler) GetParamsFromVote(ctx context.Context, cfx sdk.ClientOperator, epoch ...*types.Epoch) (postypes.VoteParamsInfo, error)
- func (h *CfxStateHandler) GetPoSEconomics(ctx context.Context, cfx sdk.ClientOperator, epoch ...*types.Epoch) (types.PoSEconomics, error)
- func (h *CfxStateHandler) GetSponsorInfo(ctx context.Context, cfx sdk.ClientOperator, contractAddress types.Address, ...) (sponsor types.SponsorInfo, err error)
- func (h *CfxStateHandler) GetStakingBalance(ctx context.Context, cfx sdk.ClientOperator, account types.Address, ...) (*hexutil.Big, error)
- func (h *CfxStateHandler) GetStorageAt(ctx context.Context, cfx sdk.ClientOperator, address types.Address, ...) (hexutil.Bytes, error)
- func (h *CfxStateHandler) GetStorageRoot(ctx context.Context, cfx sdk.ClientOperator, address types.Address, ...) (*types.StorageRoot, error)
- func (h *CfxStateHandler) GetSupplyInfo(ctx context.Context, cfx sdk.ClientOperator, epoch ...*types.Epoch) (types.TokenSupplyInfo, error)
- func (h *CfxStateHandler) GetVoteList(ctx context.Context, cfx sdk.ClientOperator, address types.Address, ...) ([]types.VoteStakeInfo, error)
- type CfxStoreHandler
- func (h *CfxStoreHandler) GetBlockByBlockNumber(ctx context.Context, blockNumer hexutil.Uint64, includeTxs bool) (block interface{}, err error)
- func (h *CfxStoreHandler) GetBlockByEpochNumber(ctx context.Context, epoch *types.Epoch, includeTxs bool) (block interface{}, err error)
- func (h *CfxStoreHandler) GetBlockByHash(ctx context.Context, blockHash types.Hash, includeTxs bool) (block interface{}, err error)
- func (h *CfxStoreHandler) GetBlocksByEpoch(ctx context.Context, epoch *types.Epoch) (blockHashes []types.Hash, err error)
- func (h *CfxStoreHandler) GetTransactionByHash(ctx context.Context, txHash types.Hash) (txn *types.Transaction, err error)
- func (h *CfxStoreHandler) GetTransactionReceipt(ctx context.Context, txHash types.Hash) (rcpt *types.TransactionReceipt, err error)
- type CfxTxnHandler
- type EthGasStationHandler
- type EthLogsApiHandler
- type EthStateHandler
- func (h *EthStateHandler) Balance(ctx context.Context, w3c *node.Web3goClient, addr common.Address, ...) (*big.Int, error)
- func (h *EthStateHandler) Call(ctx context.Context, w3c *node.Web3goClient, callRequest types.CallRequest, ...) ([]byte, error)
- func (h *EthStateHandler) CodeAt(ctx context.Context, w3c *node.Web3goClient, addr common.Address, ...) ([]byte, error)
- func (h *EthStateHandler) EstimateGas(ctx context.Context, w3c *node.Web3goClient, callRequest types.CallRequest, ...) (*big.Int, error)
- func (h *EthStateHandler) StorageAt(ctx context.Context, w3c *node.Web3goClient, addr common.Address, ...) (common.Hash, error)
- func (h *EthStateHandler) TransactionCount(ctx context.Context, w3c *node.Web3goClient, addr common.Address, ...) (*big.Int, error)
- type EthStoreHandler
- func (h *EthStoreHandler) GetBlockByHash(ctx context.Context, blockHash common.Hash, includeTxs bool) (block *web3Types.Block, err error)
- func (h *EthStoreHandler) GetBlockByNumber(ctx context.Context, blockNum *web3Types.BlockNumber, includeTxs bool) (block *web3Types.Block, err error)
- func (h *EthStoreHandler) GetLogs(ctx context.Context, filter store.LogFilter) (logs []web3Types.Log, err error)
- func (h *EthStoreHandler) GetTransactionByHash(ctx context.Context, txHash common.Hash) (*web3Types.TransactionDetail, error)
- func (h *EthStoreHandler) GetTransactionReceipt(ctx context.Context, txHash common.Hash) (*web3Types.Receipt, error)
- type EthTxnHandler
- type GasStationConfig
- type GasStationStatus
- type GasStats
- type PriorityFeeWindow
- type TxnPriorityFee
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MustInitFromViper ¶
func MustInitFromViper()
Types ¶
type BlockPriorityFee ¶
type BlockPriorityFee struct {
// contains filtered or unexported fields
}
BlockPriorityFee holds the gas fees of transactions within a single block.
func (*BlockPriorityFee) Append ¶
func (b *BlockPriorityFee) Append(txnTips ...*TxnPriorityFee)
Append appends transaction priority fees to the block and sorts them in ascending order.
func (*BlockPriorityFee) Percentile ¶
func (b *BlockPriorityFee) Percentile(p float64) *big.Int
Percentile calculates the percentile of transaction priority fees
func (*BlockPriorityFee) TipRange ¶
func (b *BlockPriorityFee) TipRange() []*big.Int
TipRange returns the range of transaction priority fees in the block.
type CfxGasStationHandler ¶
type CfxGasStationHandler struct {
// contains filtered or unexported fields
}
CfxGasStationHandler handles RPC requests for gas price estimation.
func MustNewCfxGasStationHandlerFromViper ¶
func MustNewCfxGasStationHandlerFromViper(cp *node.CfxClientProvider) *CfxGasStationHandler
func (*CfxGasStationHandler) Suggest ¶
func (h *CfxGasStationHandler) Suggest(cfx sdk.ClientOperator) (*types.SuggestedGasFees, error)
type CfxLogsApiHandler ¶
type CfxLogsApiHandler struct {
// contains filtered or unexported fields
}
CfxLogsApiHandler RPC handler to get core space event logs from store or fullnode.
func NewCfxLogsApiHandler ¶
func NewCfxLogsApiHandler(ms *mysql.MysqlStore, prunedHandler *CfxPrunedLogsHandler) *CfxLogsApiHandler
type CfxPrunedLogsHandler ¶
type CfxPrunedLogsHandler struct {
// contains filtered or unexported fields
}
CfxPrunedLogsHandler RPC handler to get pruned event logs from some archive fullnodes in rate limited way or vip mode with dedicated fullnode.
func NewCfxPrunedLogsHandler ¶
func NewCfxPrunedLogsHandler( pool *node.CfxClientProvider, store *mysql.UserStore, client *redis.Client) *CfxPrunedLogsHandler
type CfxStateHandler ¶
type CfxStateHandler struct {
// contains filtered or unexported fields
}
CfxStateHandler handles core space state RPC method by redirecting requests to another full state node if state is not available on normal full node.
func NewCfxStateHandler ¶
func NewCfxStateHandler(cp *node.CfxClientProvider) *CfxStateHandler
func (*CfxStateHandler) Call ¶
func (h *CfxStateHandler) Call( ctx context.Context, cfx sdk.ClientOperator, request types.CallRequest, epoch *types.EpochOrBlockHash, ) (hexutil.Bytes, error)
func (*CfxStateHandler) CheckBalanceAgainstTransaction ¶
func (h *CfxStateHandler) CheckBalanceAgainstTransaction( ctx context.Context, cfx sdk.ClientOperator, accountAddress types.Address, contractAddress types.Address, gasLimit *hexutil.Big, gasPrice *hexutil.Big, storageLimit *hexutil.Big, epoch ...*types.Epoch, ) (types.CheckBalanceAgainstTransactionResponse, error)
func (*CfxStateHandler) EstimateGasAndCollateral ¶
func (h *CfxStateHandler) EstimateGasAndCollateral( ctx context.Context, cfx sdk.ClientOperator, request types.CallRequest, epoch ...*types.Epoch, ) (types.Estimate, error)
func (*CfxStateHandler) GetAccountInfo ¶
func (h *CfxStateHandler) GetAccountInfo( ctx context.Context, cfx sdk.ClientOperator, account types.Address, epoch ...*types.Epoch, ) (types.AccountInfo, error)
func (*CfxStateHandler) GetAccumulateInterestRate ¶
func (h *CfxStateHandler) GetAccumulateInterestRate( ctx context.Context, cfx sdk.ClientOperator, epoch ...*types.Epoch, ) (*hexutil.Big, error)
func (*CfxStateHandler) GetBalance ¶
func (h *CfxStateHandler) GetBalance( ctx context.Context, cfx sdk.ClientOperator, address types.Address, epoch ...*types.EpochOrBlockHash, ) (*hexutil.Big, error)
func (*CfxStateHandler) GetCode ¶
func (h *CfxStateHandler) GetCode( ctx context.Context, cfx sdk.ClientOperator, address types.Address, epoch ...*types.EpochOrBlockHash, ) (hexutil.Bytes, error)
func (*CfxStateHandler) GetCollateralForStorage ¶
func (*CfxStateHandler) GetCollateralInfo ¶
func (h *CfxStateHandler) GetCollateralInfo( ctx context.Context, cfx sdk.ClientOperator, epoch ...*types.Epoch, ) (types.StorageCollateralInfo, error)
func (*CfxStateHandler) GetDepositList ¶
func (h *CfxStateHandler) GetDepositList( ctx context.Context, cfx sdk.ClientOperator, address types.Address, epoch ...*types.Epoch, ) ([]types.DepositInfo, error)
func (*CfxStateHandler) GetInterestRate ¶
func (h *CfxStateHandler) GetInterestRate( ctx context.Context, cfx sdk.ClientOperator, epoch ...*types.Epoch, ) (*hexutil.Big, error)
func (*CfxStateHandler) GetNextNonce ¶
func (h *CfxStateHandler) GetNextNonce( ctx context.Context, cfx sdk.ClientOperator, address types.Address, epoch ...*types.EpochOrBlockHash, ) (*hexutil.Big, error)
func (*CfxStateHandler) GetParamsFromVote ¶
func (h *CfxStateHandler) GetParamsFromVote( ctx context.Context, cfx sdk.ClientOperator, epoch ...*types.Epoch, ) (postypes.VoteParamsInfo, error)
func (*CfxStateHandler) GetPoSEconomics ¶
func (h *CfxStateHandler) GetPoSEconomics( ctx context.Context, cfx sdk.ClientOperator, epoch ...*types.Epoch, ) (types.PoSEconomics, error)
func (*CfxStateHandler) GetSponsorInfo ¶
func (h *CfxStateHandler) GetSponsorInfo( ctx context.Context, cfx sdk.ClientOperator, contractAddress types.Address, epoch ...*types.Epoch, ) (sponsor types.SponsorInfo, err error)
func (*CfxStateHandler) GetStakingBalance ¶
func (*CfxStateHandler) GetStorageAt ¶
func (h *CfxStateHandler) GetStorageAt( ctx context.Context, cfx sdk.ClientOperator, address types.Address, position *hexutil.Big, epoch ...*types.EpochOrBlockHash, ) (hexutil.Bytes, error)
func (*CfxStateHandler) GetStorageRoot ¶
func (h *CfxStateHandler) GetStorageRoot( ctx context.Context, cfx sdk.ClientOperator, address types.Address, epoch ...*types.Epoch, ) (*types.StorageRoot, error)
func (*CfxStateHandler) GetSupplyInfo ¶
func (h *CfxStateHandler) GetSupplyInfo( ctx context.Context, cfx sdk.ClientOperator, epoch ...*types.Epoch, ) (types.TokenSupplyInfo, error)
func (*CfxStateHandler) GetVoteList ¶
func (h *CfxStateHandler) GetVoteList( ctx context.Context, cfx sdk.ClientOperator, address types.Address, epoch ...*types.Epoch, ) ([]types.VoteStakeInfo, error)
type CfxStoreHandler ¶
type CfxStoreHandler struct {
// contains filtered or unexported fields
}
CfxStoreHandler RPC handler to get block/txn/receipt data from store.
func NewCfxCommonStoreHandler ¶
func NewCfxCommonStoreHandler(sname string, store store.Readable, next *CfxStoreHandler) *CfxStoreHandler
func (*CfxStoreHandler) GetBlockByBlockNumber ¶
func (*CfxStoreHandler) GetBlockByEpochNumber ¶
func (*CfxStoreHandler) GetBlockByHash ¶
func (*CfxStoreHandler) GetBlocksByEpoch ¶
func (*CfxStoreHandler) GetTransactionByHash ¶
func (h *CfxStoreHandler) GetTransactionByHash(ctx context.Context, txHash types.Hash) (txn *types.Transaction, err error)
func (*CfxStoreHandler) GetTransactionReceipt ¶
func (h *CfxStoreHandler) GetTransactionReceipt( ctx context.Context, txHash types.Hash, ) (rcpt *types.TransactionReceipt, err error)
type CfxTxnHandler ¶
type CfxTxnHandler struct {
// contains filtered or unexported fields
}
CfxTxnHandler RPC handler to optimize sending transaction by relaying txn broadcasting asynchronously and replicating txn sending synchronously to all full nodes of some node group to improve consistency and availability once consistent hashing LB repartitioned.
func MustNewCfxTxnHandler ¶
func MustNewCfxTxnHandler(relayer relay.TxnRelayer) *CfxTxnHandler
func (*CfxTxnHandler) SendRawTxn ¶
func (h *CfxTxnHandler) SendRawTxn(cfx sdk.ClientOperator, group node.Group, signedTx hexutil.Bytes) (types.Hash, error)
type EthGasStationHandler ¶
type EthGasStationHandler struct {
// contains filtered or unexported fields
}
EthGasStationHandler handles RPC requests for gas price estimation.
func MustNewEthGasStationHandlerFromViper ¶
func MustNewEthGasStationHandlerFromViper(cp *node.EthClientProvider) *EthGasStationHandler
func (*EthGasStationHandler) Suggest ¶
func (h *EthGasStationHandler) Suggest(eth *node.Web3goClient) (*types.SuggestedGasFees, error)
type EthLogsApiHandler ¶
type EthLogsApiHandler struct {
// contains filtered or unexported fields
}
EthLogsApiHandler RPC handler to get evm space event logs from store or fullnode.
func NewEthLogsApiHandler ¶
func NewEthLogsApiHandler(ms *mysql.MysqlStore) *EthLogsApiHandler
func (*EthLogsApiHandler) GetLogs ¶
func (handler *EthLogsApiHandler) GetLogs( ctx context.Context, eth *client.RpcEthClient, filter *types.FilterQuery, delegatedRpcMethod string, ) ([]types.Log, bool, error)
func (*EthLogsApiHandler) GetNetworkId ¶
func (handler *EthLogsApiHandler) GetNetworkId(eth *client.RpcEthClient) (uint32, error)
type EthStateHandler ¶
type EthStateHandler struct {
// contains filtered or unexported fields
}
EthStateHandler handles evm space state RPC method by redirecting requests to another full state node if state is not available on normal full node.
func NewEthStateHandler ¶
func NewEthStateHandler(cp *node.EthClientProvider) *EthStateHandler
func (*EthStateHandler) Balance ¶
func (h *EthStateHandler) Balance( ctx context.Context, w3c *node.Web3goClient, addr common.Address, block *types.BlockNumberOrHash, ) (*big.Int, error)
func (*EthStateHandler) Call ¶
func (h *EthStateHandler) Call( ctx context.Context, w3c *node.Web3goClient, callRequest types.CallRequest, blockNum *types.BlockNumberOrHash, ) ([]byte, error)
func (*EthStateHandler) CodeAt ¶
func (h *EthStateHandler) CodeAt( ctx context.Context, w3c *node.Web3goClient, addr common.Address, blockNum *types.BlockNumberOrHash, ) ([]byte, error)
func (*EthStateHandler) EstimateGas ¶
func (h *EthStateHandler) EstimateGas( ctx context.Context, w3c *node.Web3goClient, callRequest types.CallRequest, blockNum *types.BlockNumberOrHash, ) (*big.Int, error)
func (*EthStateHandler) StorageAt ¶
func (h *EthStateHandler) StorageAt( ctx context.Context, w3c *node.Web3goClient, addr common.Address, location *big.Int, block *types.BlockNumberOrHash, ) (common.Hash, error)
func (*EthStateHandler) TransactionCount ¶
func (h *EthStateHandler) TransactionCount( ctx context.Context, w3c *node.Web3goClient, addr common.Address, blockNum *types.BlockNumberOrHash, ) (*big.Int, error)
type EthStoreHandler ¶
type EthStoreHandler struct {
// contains filtered or unexported fields
}
EthStoreHandler RPC handler to get block/txn/receipt data from store.
func NewEthStoreHandler ¶
func NewEthStoreHandler(store store.Readable, next *EthStoreHandler) *EthStoreHandler
func (*EthStoreHandler) GetBlockByHash ¶
func (*EthStoreHandler) GetBlockByNumber ¶
func (h *EthStoreHandler) GetBlockByNumber(ctx context.Context, blockNum *web3Types.BlockNumber, includeTxs bool) ( block *web3Types.Block, err error, )
func (*EthStoreHandler) GetTransactionByHash ¶
func (h *EthStoreHandler) GetTransactionByHash(ctx context.Context, txHash common.Hash) (*web3Types.TransactionDetail, error)
func (*EthStoreHandler) GetTransactionReceipt ¶
type EthTxnHandler ¶
type EthTxnHandler struct {
// contains filtered or unexported fields
}
EthTxnHandler evm space RPC handler to optimize sending transaction by relay and replication.
func MustNewEthTxnHandler ¶
func MustNewEthTxnHandler(relayer relay.TxnRelayer) *EthTxnHandler
func (*EthTxnHandler) SendRawTxn ¶
func (h *EthTxnHandler) SendRawTxn(w3c *node.Web3goClient, group node.Group, signedTx hexutil.Bytes) (common.Hash, error)
type GasStationConfig ¶
type GasStationConfig struct { // Whether to enable gas station. Enabled bool // Number of blocks/epochs to peek for gas price estimation. HistoricalPeekCount int `default:"100"` // Percentiles for average txn gas price mapped to three levels of urgency (`low`, `medium` and `high`). Percentiles [3]float64 `default:"[1, 50, 99]"` }
type GasStationStatus ¶
type GasStationStatus struct {
// contains filtered or unexported fields
}
GasStationStatus represents the status of gas station.
var ( StationStatusOk GasStationStatus = GasStationStatus{} )
type GasStats ¶
type GasStats struct { NetworkCongestion float64 // Current congestion on the network (0 to 1) LatestPriorityFeeRange []*big.Int // Range of priority fees for recent transactions HistoricalPriorityFeeRange []*big.Int // Range of priority fees over a historical period HistoricalBaseFeeRange []*big.Int // Range of base fees over a historical period AvgPercentiledPriorityFee []*big.Int // Average priority fee per gas by given percentiles PriorityFeeTrend types.GasFeeTrend // Current trend in priority fees BaseFeeTrend types.GasFeeTrend // Current trend in base fees }
type PriorityFeeWindow ¶
type PriorityFeeWindow struct {
// contains filtered or unexported fields
}
PriorityFeeWindow holds priority fees of the latest blocks using a sliding window mechanism.
func NewPriorityFeeWindow ¶
func NewPriorityFeeWindow(capacity int) *PriorityFeeWindow
NewPriorityFeeWindow creates a new `PriorityFeeWindow` with the specified capacity.
func (*PriorityFeeWindow) Calculate ¶
func (w *PriorityFeeWindow) Calculate(percentiles []float64) (stats GasStats)
Calculate calculates the gas fee statistics from the data within the window.
func (*PriorityFeeWindow) Push ¶
func (w *PriorityFeeWindow) Push(blockFee *BlockPriorityFee)
Push adds a new block to the window.
func (*PriorityFeeWindow) Remove ¶
func (w *PriorityFeeWindow) Remove(blockHashes ...string)
Remove removes blocks from the window.
func (*PriorityFeeWindow) Size ¶
func (w *PriorityFeeWindow) Size() int
Size returns the number of blocks in the window.
type TxnPriorityFee ¶
type TxnPriorityFee struct {
// contains filtered or unexported fields
}
TxnPriorityFee holds the priority fee information of a single transaction.