Documentation
¶
Index ¶
- Variables
- func ChainFeesFromRecommended(targetBlocks int64, recommended types.RecommendedFees) *types.ChainFees
- func EstimateChainFees(ctx context.Context, targetBlocks int64, providers []FeesProvider) (*types.ChainFees, error)
- func NormalizeChainFees(fees *types.ChainFees) *types.ChainFees
- func PickFeeByTarget(targetBlocks int64, fastest, halfHour, hour, economy, minimum float64) float64
- type BitcoindFeesProvider
- type Client
- func (c *Client) EstimateChainFeesDefault(ctx context.Context, targetBlocks int64) (*types.ChainFees, error)
- func (c *Client) EstimateChainFeesWithProviders(ctx context.Context, targetBlocks int64, providers []FeesProvider) (*types.ChainFees, error)
- func (c *Client) EstimateFeeRate(ctx context.Context, targetBlocks int) (float64, float64, error)
- func (c *Client) NewFeesClients() FeesClients
- type ElectrumXFeesProvider
- type FeesClients
- type FeesProvider
- type MempoolFeesProvider
- type RecommendedFeesAdapter
- type RecommendedFeesProvider
Constants ¶
This section is empty.
Variables ¶
var ( ErrProviderUnavailable = errors.New("fees provider unavailable") // ErrAllProvidersFailed 所有 Provider 均失败 ErrAllProvidersFailed = errors.New("all fees providers failed") )
Functions ¶
func ChainFeesFromRecommended ¶ added in v0.3.0
func ChainFeesFromRecommended(targetBlocks int64, recommended types.RecommendedFees) *types.ChainFees
ChainFeesFromRecommended 将多档推荐费率映射为统一结构(sat/vB)
func EstimateChainFees ¶ added in v0.3.0
func EstimateChainFees(ctx context.Context, targetBlocks int64, providers []FeesProvider) (*types.ChainFees, error)
EstimateChainFees 按 Provider 顺序估算链上手续费,失败时记录日志并回退
func NormalizeChainFees ¶ added in v0.3.0
NormalizeChainFees 对齐费率字段并统一为 sat/vB(保留 2 位小数)
func PickFeeByTarget ¶ added in v0.3.0
PickFeeByTarget 按目标确认区块数选取费率档位(sat/vB)
Types ¶
type BitcoindFeesProvider ¶ added in v0.3.0
type BitcoindFeesProvider struct {
Client *bitcoindrpc.Client
}
BitcoindFeesProvider Bitcoin Core estimatesmartfee
func (BitcoindFeesProvider) EstimateChainFees ¶ added in v0.3.0
func (BitcoindFeesProvider) Name ¶ added in v0.3.0
func (p BitcoindFeesProvider) Name() string
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func New ¶
func New(bitcoindrpcClient *bitcoindrpc.Client, mempoolapisClient *mempoolapis.Client, electrumxClient *electrumx.Client) *Client
func (*Client) EstimateChainFeesDefault ¶ added in v0.3.0
func (c *Client) EstimateChainFeesDefault(ctx context.Context, targetBlocks int64) (*types.ChainFees, error)
EstimateChainFeesDefault 使用默认 Provider 链估算费率
func (*Client) EstimateChainFeesWithProviders ¶ added in v0.3.0
func (c *Client) EstimateChainFeesWithProviders(ctx context.Context, targetBlocks int64, providers []FeesProvider) (*types.ChainFees, error)
EstimateChainFeesWithProviders 自定义 Provider 顺序
func (*Client) EstimateFeeRate ¶
EstimateFeeRate 兼容旧接口,内部转调统一费率估算
func (*Client) NewFeesClients ¶ added in v0.3.0
func (c *Client) NewFeesClients() FeesClients
NewFeesClients 从 chain 客户端构建内置 Provider
type ElectrumXFeesProvider ¶ added in v0.3.0
ElectrumXFeesProvider electrumX blockchain.estimatefee
func (ElectrumXFeesProvider) EstimateChainFees ¶ added in v0.3.0
func (ElectrumXFeesProvider) Name ¶ added in v0.3.0
func (p ElectrumXFeesProvider) Name() string
type FeesClients ¶ added in v0.3.0
type FeesClients struct {
Mempool *MempoolFeesProvider
Electrum *ElectrumXFeesProvider
Bitcoind *BitcoindFeesProvider
}
FeesClients 节点费率客户端集合
type FeesProvider ¶ added in v0.3.0
type FeesProvider interface {
Name() string
EstimateChainFees(ctx context.Context, targetBlocks int64) (*types.ChainFees, error)
}
FeesProvider 链上手续费数据源
func APIFeesProviders ¶ added in v0.3.0
func APIFeesProviders( mempool *MempoolFeesProvider, unisat RecommendedFeesProvider, okx RecommendedFeesProvider, electrum *ElectrumXFeesProvider, bitcoind *BitcoindFeesProvider, ) []FeesProvider
APIFeesProviders apis 服务完整降级链:mempool → unisat → okx → electrumX → bitcoin core
func DefaultFeesProviders ¶ added in v0.3.0
func DefaultFeesProviders(mempool *MempoolFeesProvider, electrum *ElectrumXFeesProvider, bitcoind *BitcoindFeesProvider) []FeesProvider
DefaultFeesProviders 默认节点 Provider:mempool.space → electrumX → bitcoin core
type MempoolFeesProvider ¶ added in v0.3.0
type MempoolFeesProvider struct {
Client *mempoolapis.Client
}
MempoolFeesProvider mempool.space 推荐费率
func (MempoolFeesProvider) EstimateChainFees ¶ added in v0.3.0
func (MempoolFeesProvider) Name ¶ added in v0.3.0
func (p MempoolFeesProvider) Name() string
type RecommendedFeesAdapter ¶ added in v0.3.0
type RecommendedFeesAdapter struct {
Provider RecommendedFeesProvider
}
RecommendedFeesAdapter 将 RecommendedFeesProvider 适配为 FeesProvider
func (RecommendedFeesAdapter) EstimateChainFees ¶ added in v0.3.0
func (RecommendedFeesAdapter) Name ¶ added in v0.3.0
func (a RecommendedFeesAdapter) Name() string
type RecommendedFeesProvider ¶ added in v0.3.0
type RecommendedFeesProvider interface {
Name() string
GetRecommendedFees(ctx context.Context) (types.RecommendedFees, error)
}
RecommendedFeesProvider 返回多档推荐费率的数据源(如 unisat / okx)