@@ -52,12 +52,20 @@ func (h *APIHandler) CreateURL(
5252 tickers []types.ProviderTicker ,
5353) (string , error ) {
5454 addresses := make ([]string , len (tickers ))
55+ var network string
5556 for i , ticker := range tickers {
5657 addresses [i ] = ticker .GetOffChainTicker ()
5758 h .cache .Add (ticker )
59+
60+ metaDataJSON := ticker .GetJSON ()
61+ var metadata GeckoterminalMetadata
62+ if err := json .Unmarshal ([]byte (metaDataJSON ), & metadata ); err != nil {
63+ return h .api .Endpoints [0 ].URL , fmt .Errorf ("failed to parse metadata JSON: %w" , err )
64+ }
65+ network = metadata .Network
5866 }
5967
60- return fmt .Sprintf (h .api .Endpoints [0 ].URL , strings .Join (addresses , "," )), nil
68+ return fmt .Sprintf (h .api .Endpoints [0 ].URL , network , strings .Join (addresses , "," )), nil
6169}
6270
6371// ParseResponse parses the response from the GeckoTerminal API. The response is expected
@@ -67,7 +75,6 @@ func (h *APIHandler) ParseResponse(
6775 tickers []types.ProviderTicker ,
6876 resp * http.Response ,
6977) types.PriceResponse {
70- // Parse the response.
7178 var result GeckoTerminalResponse
7279 if err := json .NewDecoder (resp .Body ).Decode (& result ); err != nil {
7380 return types .NewPriceResponseWithErr (
@@ -119,8 +126,7 @@ func (h *APIHandler) ParseResponse(
119126 resolved [ticker ] = types .NewPriceResult (price , time .Now ().UTC ())
120127 }
121128
122- // Add all expected tickers that did not return a response to the unresolved
123- // map.
129+ // Add all expected tickers that did not return a response to the unresolved map
124130 for _ , ticker := range tickers {
125131 _ , resolvedOk := resolved [ticker ]
126132 _ , unresolvedOk := unresolved [ticker ]
0 commit comments