|
@@ -1 +1,56 @@
|
|
|
package token
|
|
|
+
|
|
|
+import (
|
|
|
+ "birdcall/internal/consts"
|
|
|
+ "birdcall/internal/library/birdeye"
|
|
|
+ "birdcall/internal/model/birdeye/token"
|
|
|
+ "encoding/json"
|
|
|
+ "net/http"
|
|
|
+ "net/url"
|
|
|
+ "os"
|
|
|
+ "strconv"
|
|
|
+)
|
|
|
+
|
|
|
+type Token struct{}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func (t *Token) GetListV1(chain_name string, sort_by string, sort_type string, offset uint64, limit uint64, min_liquidity uint64) (*token.ListRes, error) {
|
|
|
+
|
|
|
+ baseURL := os.Getenv(consts.TOKEN_URL)
|
|
|
+ params := url.Values{}
|
|
|
+ params.Add(consts.SORT_BY, sort_by)
|
|
|
+ params.Add(consts.SORT_TYPE, sort_type)
|
|
|
+ params.Add(consts.OFFSET, strconv.FormatUint(offset, 10))
|
|
|
+ params.Add(consts.LIMIT, strconv.FormatUint(limit, 10))
|
|
|
+ params.Add(consts.MIN_LIQUIDITY, strconv.FormatUint(min_liquidity, 10))
|
|
|
+
|
|
|
+ fullURL := baseURL + consts.TOKEN_LIST + consts.QUESTION_MARK + params.Encode()
|
|
|
+ apiReq, err := http.NewRequest(consts.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 *token.ListRes
|
|
|
+ err = json.Unmarshal([]byte(body), &res)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ return res, nil
|
|
|
+}
|