|
@@ -73,7 +73,6 @@ func (d *Defi) Price(chain_name string, check_liquidity float64, include_liquidi
|
|
|
}
|
|
|
//处理返回数据
|
|
|
var res *PriceRes
|
|
|
- //TODO :gfcover
|
|
|
err = gconv.Struct(body, &res)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
@@ -84,7 +83,7 @@ func (d *Defi) Price(chain_name string, check_liquidity float64, include_liquidi
|
|
|
// dc:一次获取多个token的价格
|
|
|
// @return *birdeye.CommonRes
|
|
|
// @return error
|
|
|
-func (d *Defi) MultiplePrice(chain_name string, check_liquidity float64, include_liquidity bool, address []string, method string) (*MultiplePriceRes, error) {
|
|
|
+func (d *Defi) PriceMultiple(chain_name string, check_liquidity float64, include_liquidity bool, address []string, method string) (*MultiplePriceRes, error) {
|
|
|
//构建基本请求连接
|
|
|
baseURL := os.Getenv(birdeye.DEFI_URL)
|
|
|
params := url.Values{}
|
|
@@ -137,3 +136,144 @@ func (d *Defi) MultiplePrice(chain_name string, check_liquidity float64, include
|
|
|
}
|
|
|
return res, nil
|
|
|
}
|
|
|
+
|
|
|
+// PriceHistorical
|
|
|
+// @param chain_name
|
|
|
+// @param address_type
|
|
|
+// @param time_type
|
|
|
+// @param time_from
|
|
|
+// @param time_to
|
|
|
+// @param address
|
|
|
+// @return *PriceHistoricalRes
|
|
|
+// @return error
|
|
|
+func (d *Defi) PriceHistorical(chain_name string, address_type string, time_type string, time_from uint64, time_to uint64, address string) (*PriceHistoricalRes, error) {
|
|
|
+ //构建基本请求连接
|
|
|
+ baseURL := os.Getenv(birdeye.DEFI_URL)
|
|
|
+ params := url.Values{}
|
|
|
+ params.Add(birdeye.ADDRESS, address)
|
|
|
+ params.Add(birdeye.ADDRESS_TYPE, address_type)
|
|
|
+ params.Add(birdeye.TYPE, time_type)
|
|
|
+ params.Add(birdeye.TIME_FROM, strconv.FormatUint(time_from, 10))
|
|
|
+ params.Add(birdeye.TIME_TO, strconv.FormatUint(time_to, 10))
|
|
|
+ fullURL := baseURL + birdeye.HISTORICAL + birdeye.QUESTION_MARK + params.Encode()
|
|
|
+
|
|
|
+ apiReq, err := http.NewRequest(birdeye.GET, fullURL, nil)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ //构建请求头
|
|
|
+ apiReq = birdeye.MakeHeader(apiReq, chain_name)
|
|
|
+
|
|
|
+ body, err := birdeye.SendRequest(apiReq)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ //处理返回数据
|
|
|
+ var res *PriceHistoricalRes
|
|
|
+ err = gconv.Struct(body, &res)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ return res, nil
|
|
|
+}
|
|
|
+
|
|
|
+// PriceHistoricalUnix
|
|
|
+// @param chain_name
|
|
|
+// @param address
|
|
|
+// @param unix_time
|
|
|
+// @return *PriceHistoricalUnixRes
|
|
|
+// @return error
|
|
|
+func (d *Defi) PriceHistoricalUnix(chain_name string, address string, unix_time uint64) (*PriceHistoricalUnixRes, error) {
|
|
|
+ //构建基本请求连接
|
|
|
+ baseURL := os.Getenv(birdeye.DEFI_URL)
|
|
|
+ params := url.Values{}
|
|
|
+ params.Add(birdeye.ADDRESS, address)
|
|
|
+ params.Add(birdeye.UNIX_TIME, strconv.FormatUint(unix_time, birdeye.TEN))
|
|
|
+
|
|
|
+ fullURL := baseURL + birdeye.HISTORICAL + birdeye.QUESTION_MARK + params.Encode()
|
|
|
+
|
|
|
+ apiReq, err := http.NewRequest(birdeye.GET, fullURL, nil)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ //构建请求头
|
|
|
+ apiReq = birdeye.MakeHeader(apiReq, chain_name)
|
|
|
+
|
|
|
+ body, err := birdeye.SendRequest(apiReq)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ //处理返回数据
|
|
|
+ var res *PriceHistoricalUnixRes
|
|
|
+ err = gconv.Struct(body, &res)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ return res, nil
|
|
|
+}
|
|
|
+
|
|
|
+func (d *Defi) TradesToken(chain_name string, address string, offset uint64, limit uint64, tx_type string, sort_type string) (*TradeTokenRes, error) {
|
|
|
+ //构建基本请求连接
|
|
|
+ baseURL := os.Getenv(birdeye.DEFI_URL)
|
|
|
+ params := url.Values{}
|
|
|
+ params.Add(birdeye.ADDRESS, address)
|
|
|
+ params.Add(birdeye.OFFSET, strconv.FormatUint(offset, birdeye.TEN))
|
|
|
+ params.Add(birdeye.LIMIT, strconv.FormatUint(limit, birdeye.TEN))
|
|
|
+ params.Add(birdeye.SORT_TYPE, sort_type)
|
|
|
+
|
|
|
+ fullURL := baseURL + birdeye.TRADES_TOKEN + birdeye.QUESTION_MARK + params.Encode()
|
|
|
+
|
|
|
+ apiReq, err := http.NewRequest(birdeye.GET, fullURL, nil)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ //构建请求头
|
|
|
+ apiReq = birdeye.MakeHeader(apiReq, chain_name)
|
|
|
+
|
|
|
+ body, err := birdeye.SendRequest(apiReq)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ //处理返回数据
|
|
|
+ var res *TradeTokenRes
|
|
|
+ err = gconv.Struct(body, &res)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ return res, nil
|
|
|
+}
|
|
|
+
|
|
|
+func (d *Defi) TradesPair(chain_name string, address string, offset uint64, limit uint64, tx_type string, sort_type string) (*TradePairRes, error) {
|
|
|
+ //构建基本请求连接
|
|
|
+ baseURL := os.Getenv(birdeye.DEFI_URL)
|
|
|
+ params := url.Values{}
|
|
|
+ params.Add(birdeye.ADDRESS, address)
|
|
|
+ params.Add(birdeye.OFFSET, strconv.FormatUint(offset, birdeye.TEN))
|
|
|
+ params.Add(birdeye.LIMIT, strconv.FormatUint(limit, birdeye.TEN))
|
|
|
+ params.Add(birdeye.SORT_TYPE, sort_type)
|
|
|
+
|
|
|
+ fullURL := baseURL + birdeye.TRADES_PAIR + birdeye.QUESTION_MARK + params.Encode()
|
|
|
+
|
|
|
+ apiReq, err := http.NewRequest(birdeye.GET, fullURL, nil)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ //构建请求头
|
|
|
+ apiReq = birdeye.MakeHeader(apiReq, chain_name)
|
|
|
+
|
|
|
+ body, err := birdeye.SendRequest(apiReq)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ //处理返回数据
|
|
|
+ var res *TradePairRes
|
|
|
+ err = gconv.Struct(body, &res)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ return res, nil
|
|
|
+}
|