安装

go get github.com/chainstream-io/chainstream-go-sdk

初始化

package main

import (
    "log"
    "github.com/chainstream-io/chainstream-go-sdk"
)

func main() {
    // 初始化客户端
    client, err := chainstream.NewDexClient("YOUR_ACCESS_TOKEN", &chainstream.DexAggregatorOptions{
        ServerUrl: "https://api-dex.chainstream.io",
        StreamUrl: "wss://realtime-dex.chainstream.io/connection/websocket",
    })
    if err != nil {
        log.Fatal(err)
    }
    defer client.Close()
}

基本用法

查询代币信息

// 获取代币详情
tokenInfo, err := client.Token.GetToken(context.Background(), "sol", "6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN")
if err != nil {
    log.Fatal(err)
}

订阅实时数据

// 订阅K线数据
unsubscribe, err := client.Stream.SubscribeTokenCandles(&api.SubscribeTokenCandlesRequest{
    Chain:        "sol",
    TokenAddress: "6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN",
    Resolution:   "1m",
    Callback: func(candle *api.TokenCandle) {
        log.Printf("新K线: %+v", candle)
    },
})
if err != nil {
    log.Fatal(err)
}
defer unsubscribe()

配置选项

accessToken
string
required
API访问令牌
options.ServerUrl
string
API服务器URL (默认: https://api-dex.chainstream.io)
options.StreamUrl
string
WebSocket流URL (默认: wss://realtime-dex.chainstream.io/connection/websocket)
options.Debug
bool
启用调试模式

令牌提供者

对于动态令牌管理,您可以使用令牌提供者:
type MyTokenProvider struct {
    // 您的令牌提供者实现
}

func (p *MyTokenProvider) GetToken() (string, error) {
    // 返回当前令牌
    return "your-current-token", nil
}

// 使用令牌提供者初始化
client, err := chainstream.NewDexClientWithTokenProvider(&MyTokenProvider{}, &chainstream.DexAggregatorOptions{})

下一步