Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidPercentile = errors.New("invalid reward percentile") ErrRequestBeyondHead = errors.New("request beyond head block") )
Functions ¶
This section is empty.
Types ¶
type Oracle ¶
type Oracle struct {
// contains filtered or unexported fields
}
Oracle recommends gas prices based on the content of recent blocks. Suitable for both light and full clients.
func NewOracle ¶
func NewOracle(backend OracleBackend, params gaspricecfg.Config, cache Cache) *Oracle
NewOracle returns a new gasprice oracle which can recommend suitable gasprice for newly created transaction.
func (*Oracle) FeeHistory ¶
func (oracle *Oracle) FeeHistory(ctx context.Context, blocks int, unresolvedLastBlock rpc.BlockNumber, rewardPercentiles []float64) (*big.Int, [][]*big.Int, []*big.Int, []float64, error)
FeeHistory returns data relevant for fee estimation based on the specified range of blocks. The range can be specified either with absolute block numbers or ending with the latest or pending block. Backends may or may not support gathering data from the pending block or blocks older than a certain age (specified in maxHistory). The first block of the actually processed range is returned to avoid ambiguity when parts of the requested range are not available or when the head has changed during processing this request. Three arrays are returned based on the processed blocks:
- reward: the requested percentiles of effective priority fees per gas of transactions in each block, sorted in ascending order and weighted by gas used.
- baseFee: base fee per gas in the given block
- gasUsedRatio: gasUsed/gasLimit in the given block
Note: baseFee includes the next block after the newest of the returned range, because this value can be derived from the newest block.
func (*Oracle) SuggestTipCap ¶
SuggestTipCap returns a TipCap so that newly created transaction can have a very high chance to be included in the following blocks. NODE: if caller wants legacy tx SuggestedPrice, we need to add baseFee to the returned bigInt
type OracleBackend ¶
type OracleBackend interface { HeaderByNumber(ctx context.Context, number rpc.BlockNumber) (*types.Header, error) BlockByNumber(ctx context.Context, number rpc.BlockNumber) (*types.Block, error) ChainConfig() *chain.Config GetReceipts(ctx context.Context, hash libcommon.Hash) (types.Receipts, error) PendingBlockAndReceipts() (*types.Block, types.Receipts) }
OracleBackend includes all necessary background APIs for oracle.