GetAllGasPriceStream
Last updated
Last updated
GetAllGasPriceStream
供BSC交易gas price訂閱服務,基於gRPC流按百分位向用戶推送BSC交易在最近上鏈區塊中的gas price,端點域名:
Streams
-
-
-
-
10
blockRange
是
int
20
統計最近N個區塊中交易的gas price,N取值範圍1-20
package main
import (
"context"
"crypto/tls"
"log"
pb "fee-test/bscfeepb"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
)
const (
gRPCEndpoint = "grpc.bsc-fee.blockrazor.xyz:443"
auth = "your_auth"
)
func main() {
conn, err := grpc.Dial(
gRPCEndpoint,
grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),
grpc.WithPerRPCCredentials(&Authentication{auth}),
)
if err != nil {
panic(err)
}
defer conn.Close()
client := pb.NewServerClient(conn)
req := &pb.BlockRange{
BlockRange: 5,
}
stream, err := client.GetAllGasPriceStream(context.Background(), req)
if err != nil {
panic(err)
}
for {
message, err := stream.Recv()
if err != nil {
log.Printf("Failed to receive message: %v", err)
break
}
log.Printf("Received Time: %s\n", message.Time.AsTime().Format("2006-01-02 15:04:05"))
for _, gasPrice := range message.AllGasPrice {
log.Printf("Received message percentile: %d\n", gasPrice.Percentile)
log.Printf("Received message value: %s\n", gasPrice.Value)
}
}
}
type Authentication struct {
auth string
}
func (a *Authentication) GetRequestMetadata(context.Context, ...string) (map[string]string, error) {
return map[string]string{"apiKey": a.auth}, nil
}
func (a *Authentication) RequireTransportSecurity() bool {
return false
}
syntax = "proto3";
package bscfeepb;
import "google/protobuf/timestamp.proto";
option go_package = "./pb/bscfeepb";
service Server {
rpc GetAllGasPriceStream(BlockRange) returns(stream AllGasPriceStreamResponse) {};
}
message FeeValue {
int32 percentile = 1;
string value = 2;
}
message BlockRange {
int32 blockRange = 2;
}
message AllGasPriceStreamResponse {
repeated FeeValue allGasPrice = 1;
google.protobuf.Timestamp time = 2;
}
2025/04/08 10:18:21 Received Time: 2025-04-08 02:18:21
2025/04/08 10:18:21 Received message percentile: 25
2025/04/08 10:18:21 Received message value: 1000000000
2025/04/08 10:18:21 Received message percentile: 50
2025/04/08 10:18:21 Received message value: 1100000000
2025/04/08 10:18:21 Received message percentile: 75
2025/04/08 10:18:21 Received message value: 2020000000
2025/04/08 10:18:21 Received message percentile: 95
2025/04/08 10:18:21 Received message value: 5000000000
2025/04/08 10:18:21 Received message percentile: 99
2025/04/08 10:18:21 Received message value: 20000000000