Skip to content

Commit 586a1ef

Browse files
committed
Update volume field names in Drift market data structure
- Renamed volume fields in the `fetch_driftpy_data` function to improve clarity and consistency, changing `drift_volume_30d` to `drift_perp_volume_30d` for perpetual markets and `drift_spot_volume_30d` for spot markets. - Updated the `score_assets` and `process_drift_markets` functions to reflect the new field names, ensuring accurate volume calculations. - Enhanced the data structure for Drift market data to include additional flags for listed markets, improving the overall organization and usability of the data.
1 parent a623d06 commit 586a1ef

File tree

1 file changed

+28
-24
lines changed

1 file changed

+28
-24
lines changed

backend/api/gecko_market_recommender_v2.py

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ def fetch_driftpy_data(vat: Vat) -> Dict:
228228
# Add perp market data
229229
drift_markets[symbol]["drift_perp_markets"][market_name] = {
230230
"drift_perp_oracle_price": oracle_price,
231-
"drift_volume_30d": 0.0, # Will be updated when volume data is available
231+
"drift_perp_volume_30d": 0.0, # Will be updated when volume data is available
232232
}
233233

234234
except Exception as e:
@@ -289,7 +289,7 @@ def fetch_driftpy_data(vat: Vat) -> Dict:
289289
logger.info(f"Adding spot market {raw_symbol} to {symbol}'s drift_spot_markets")
290290
drift_markets[symbol]["drift_spot_markets"][raw_symbol] = {
291291
"drift_spot_oracle_price": spot_oracle_price,
292-
"drift_volume_30d": 0.0, # Will be updated when volume data is available
292+
"drift_spot_volume_30d": 0.0, # Will be updated when volume data is available
293293
}
294294
logger.info(f"Current spot markets for {symbol}: {list(drift_markets[symbol]['drift_spot_markets'].keys())}")
295295

@@ -320,18 +320,19 @@ def fetch_drift_data_api_data() -> Dict:
320320
"drift_is_listed_perp": "true",
321321
"drift_perp_markets": {
322322
"BTC-PERP": {
323-
"drift_perp_oracle_price": 93500.0,
324-
"drift_volume_30d": 150000000.0,
323+
"drift_perp_volume_30d": 150000000.0,
324+
"drift_is_listed_perp": True,
325+
"drift_perp_oi": 100000000.0,
325326
}
326327
},
327328
"drift_spot_markets": {
328-
"wBTC": {
329-
"drift_spot_oracle_price": 93450.0,
330-
"drift_volume_30d": 25000000.0,
329+
"WBTC": {
330+
"drift_spot_volume_30d": 25000000.0,
331+
"drift_is_listed_spot": True,
331332
},
332-
"cbBTC": {
333-
"drift_spot_oracle_price": 93425.0,
334-
"drift_volume_30d": 25000000.0,
333+
"CBBTC": {
334+
"drift_spot_volume_30d": 25000000.0,
335+
"drift_is_listed_spot": True,
335336
}
336337
},
337338
"drift_total_volume_30d": 200000000.0, # Sum of all market volumes
@@ -344,20 +345,25 @@ def fetch_drift_data_api_data() -> Dict:
344345
"drift_is_listed_perp": "true",
345346
"drift_perp_markets": {
346347
"ETH-PERP": {
347-
"drift_perp_oracle_price": 5200.0,
348-
"drift_volume_30d": 100000000.0,
348+
"drift_perp_volume_30d": 100000000.0,
349+
"drift_is_listed_perp": True,
350+
"drift_perp_oi": 50000000.0,
349351
}
350352
},
351353
"drift_spot_markets": {
352-
"wETH": {
353-
"drift_spot_oracle_price": 5195.0,
354-
"drift_volume_30d": 50000000.0,
354+
"WETH": {
355+
"drift_spot_volume_30d": 50000000.0,
356+
"drift_is_listed_spot": True,
355357
}
356358
},
357359
"drift_total_volume_30d": 150000000.0, # Sum of all market volumes
358360
"drift_max_leverage": 10.0,
359361
"drift_open_interest": 100000000.0,
360362
"drift_funding_rate_1h": 0.0008
363+
},
364+
"USDC": {
365+
"drift_spot_volume_30d": 0.0,
366+
"drift_is_listed_spot": True,
361367
}
362368
}
363369

@@ -434,12 +440,12 @@ def score_assets(assets: List[Dict], drift_data: Dict) -> List[Dict]:
434440
# Process perp markets
435441
perp_markets = market_info.get('drift_perp_markets', {})
436442
for perp_data in perp_markets.values():
437-
total_volume += perp_data.get('drift_volume_30d', 0.0)
443+
total_volume += perp_data.get('drift_perp_volume_30d', 0.0)
438444

439445
# Process spot markets
440446
spot_markets = market_info.get('drift_spot_markets', {})
441447
for spot_data in spot_markets.values():
442-
total_volume += spot_data.get('drift_volume_30d', 0.0)
448+
total_volume += spot_data.get('drift_spot_volume_30d', 0.0)
443449

444450
# Calculate scores using helper functions
445451
volume_score = calculate_volume_score(total_volume)
@@ -518,11 +524,11 @@ def process_drift_markets(scored_data: List[Dict], drift_data: Dict) -> Dict:
518524

519525
# Sum volumes from perp markets
520526
for market_data in processed_drift_data[symbol]["drift_perp_markets"].values():
521-
total_volume += market_data.get("drift_volume_30d", 0.0)
527+
total_volume += market_data.get("drift_perp_volume_30d", 0.0)
522528

523529
# Sum volumes from spot markets
524530
for market_data in processed_drift_data[symbol]["drift_spot_markets"].values():
525-
total_volume += market_data.get("drift_volume_30d", 0.0)
531+
total_volume += market_data.get("drift_spot_volume_30d", 0.0)
526532

527533
processed_drift_data[symbol]["drift_total_volume_30d"] = total_volume
528534

@@ -558,11 +564,9 @@ def main(vat: Vat) -> List[Dict]:
558564
asset["drift_data"] = {
559565
"drift_is_listed_spot": "false",
560566
"drift_is_listed_perp": "false",
561-
"drift_spot_market": None,
562-
"drift_perp_market": None,
563-
"drift_perp_oracle_price": None,
564-
"drift_spot_oracle_price": None,
565-
"drift_volume_30d": 0.0,
567+
"drift_perp_markets": {},
568+
"drift_spot_markets": {},
569+
"drift_total_volume_30d": 0.0,
566570
"drift_max_leverage": 0.0,
567571
"drift_open_interest": 0.0,
568572
"drift_funding_rate_1h": 0.0

0 commit comments

Comments
 (0)