|
@@ -9,9 +9,9 @@ import (
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
|
|
|
- "birdcall/internal/consts"
|
|
|
"birdcall/internal/library/birdeye"
|
|
|
- "birdcall/internal/model/birdeye/defi"
|
|
|
+
|
|
|
+ "github.com/gogf/gf/v2/util/gconv"
|
|
|
)
|
|
|
|
|
|
type Defi struct{}
|
|
@@ -19,12 +19,12 @@ type Defi struct{}
|
|
|
// 获取当前支持的网络
|
|
|
// @return *birdeye.CommonRes
|
|
|
// @return error
|
|
|
-func (d *Defi) Support() (*defi.NetWorkRes, error) {
|
|
|
+func (d *Defi) Support() (*NetWorkRes, error) {
|
|
|
//构建基本请求连接
|
|
|
- baseURL := os.Getenv(consts.DEFI_URL)
|
|
|
- fullURL := baseURL + consts.NET_WORKS
|
|
|
+ baseURL := os.Getenv(birdeye.DEFI_URL)
|
|
|
+ fullURL := baseURL + birdeye.NET_WORKS
|
|
|
|
|
|
- apiReq, err := http.NewRequest(consts.GET, fullURL, nil)
|
|
|
+ apiReq, err := http.NewRequest(birdeye.GET, fullURL, nil)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
@@ -36,8 +36,8 @@ func (d *Defi) Support() (*defi.NetWorkRes, error) {
|
|
|
}
|
|
|
|
|
|
//处理返回数据
|
|
|
- var res *defi.NetWorkRes
|
|
|
- err = json.Unmarshal([]byte(body), &res)
|
|
|
+ var res *NetWorkRes
|
|
|
+ err = gconv.Struct(body, &res)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
@@ -50,16 +50,16 @@ func (d *Defi) Support() (*defi.NetWorkRes, error) {
|
|
|
// @param address
|
|
|
// @return *birdeye.CommonRes
|
|
|
// @return error
|
|
|
-func (d *Defi) Price(chain_name string, check_liquidity float64, include_liquidity bool, address string) (*defi.PriceRes, error) {
|
|
|
+func (d *Defi) Price(chain_name string, check_liquidity float64, include_liquidity bool, address string) (*PriceRes, error) {
|
|
|
//构建基本请求连接
|
|
|
- baseURL := os.Getenv(consts.DEFI_URL)
|
|
|
+ baseURL := os.Getenv(birdeye.DEFI_URL)
|
|
|
params := url.Values{}
|
|
|
- params.Add(consts.CheckLiquidity, strconv.FormatFloat(check_liquidity, 'f', 2, 64))
|
|
|
- params.Add(consts.IncludeLiquidity, strconv.FormatBool(include_liquidity))
|
|
|
- params.Add(consts.ADDRESS, address)
|
|
|
- fullURL := baseURL + consts.PRICE + consts.QUESTION_MARK + params.Encode()
|
|
|
+ params.Add(birdeye.CheckLiquidity, strconv.FormatFloat(check_liquidity, 'f', 2, 64))
|
|
|
+ params.Add(birdeye.IncludeLiquidity, strconv.FormatBool(include_liquidity))
|
|
|
+ params.Add(birdeye.ADDRESS, address)
|
|
|
+ fullURL := baseURL + birdeye.PRICE + birdeye.QUESTION_MARK + params.Encode()
|
|
|
|
|
|
- apiReq, err := http.NewRequest(consts.GET, fullURL, nil)
|
|
|
+ apiReq, err := http.NewRequest(birdeye.GET, fullURL, nil)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
@@ -72,8 +72,9 @@ func (d *Defi) Price(chain_name string, check_liquidity float64, include_liquidi
|
|
|
return nil, err
|
|
|
}
|
|
|
//处理返回数据
|
|
|
- var res *defi.PriceRes
|
|
|
- err = json.Unmarshal([]byte(body), &res)
|
|
|
+ var res *PriceRes
|
|
|
+ //TODO :gfcover
|
|
|
+ err = gconv.Struct(body, &res)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
@@ -83,21 +84,21 @@ 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) (*defi.MultiplePriceRes, error) {
|
|
|
+func (d *Defi) MultiplePrice(chain_name string, check_liquidity float64, include_liquidity bool, address []string, method string) (*MultiplePriceRes, error) {
|
|
|
//构建基本请求连接
|
|
|
- baseURL := os.Getenv(consts.DEFI_URL)
|
|
|
+ baseURL := os.Getenv(birdeye.DEFI_URL)
|
|
|
params := url.Values{}
|
|
|
- params.Add(consts.CheckLiquidity, strconv.FormatFloat(check_liquidity, 'f', 2, 64))
|
|
|
- params.Add(consts.IncludeLiquidity, strconv.FormatBool(include_liquidity))
|
|
|
+ params.Add(birdeye.CheckLiquidity, strconv.FormatFloat(check_liquidity, 'f', 2, 64))
|
|
|
+ params.Add(birdeye.IncludeLiquidity, strconv.FormatBool(include_liquidity))
|
|
|
|
|
|
var ApiReq *http.Request
|
|
|
var payload *bytes.Buffer = nil
|
|
|
|
|
|
//判断请求类型
|
|
|
- if method == consts.GET {
|
|
|
- addresses := strings.Join(address, consts.COMMAS)
|
|
|
- params.Add(consts.LIST_ADDRESS, addresses)
|
|
|
- } else if method == consts.POST {
|
|
|
+ if method == birdeye.GET {
|
|
|
+ addresses := strings.Join(address, birdeye.COMMAS)
|
|
|
+ params.Add(birdeye.LIST_ADDRESS, addresses)
|
|
|
+ } else if method == birdeye.POST {
|
|
|
data, err := json.Marshal(address)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
@@ -105,15 +106,15 @@ func (d *Defi) MultiplePrice(chain_name string, check_liquidity float64, include
|
|
|
payload = bytes.NewBuffer(data)
|
|
|
}
|
|
|
|
|
|
- fullURL := baseURL + consts.MULTIPLE_PRICE + consts.QUESTION_MARK + params.Encode()
|
|
|
+ fullURL := baseURL + birdeye.MULTIPLE_PRICE + birdeye.QUESTION_MARK + params.Encode()
|
|
|
|
|
|
- if method == consts.GET {
|
|
|
+ if method == birdeye.GET {
|
|
|
apiReq, err := http.NewRequest(method, fullURL, nil)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
ApiReq = apiReq
|
|
|
- } else if method == consts.POST {
|
|
|
+ } else if method == birdeye.POST {
|
|
|
apiReq, err := http.NewRequest(method, fullURL, payload)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
@@ -129,8 +130,8 @@ func (d *Defi) MultiplePrice(chain_name string, check_liquidity float64, include
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
- var res *defi.MultiplePriceRes
|
|
|
- err = json.Unmarshal([]byte(body), &res)
|
|
|
+ var res *MultiplePriceRes
|
|
|
+ err = gconv.Struct(body, &res)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|