Restructured hedger modules: moved CLP hedger and auto hedger into separate folders, updated data fetchers and main app, removed deprecated files
This commit is contained in:
81
check_wtioil.py
Normal file
81
check_wtioil.py
Normal file
@ -0,0 +1,81 @@
|
||||
"""
|
||||
Script to check if WTIOIL/CLUSD is available on Hyperliquid and add it to monitoring.
|
||||
"""
|
||||
import json
|
||||
import logging
|
||||
import requests
|
||||
from hyperliquid.info import Info
|
||||
from hyperliquid.utils import constants
|
||||
|
||||
from logging_utils import setup_logging
|
||||
|
||||
def check_and_add_wtioil():
|
||||
"""Check if WTIOIL is available on Hyperliquid and add it to the precision file."""
|
||||
setup_logging('normal', 'WTIOILChecker')
|
||||
|
||||
coin_name = "xyz:CLUSD" # Full HIP-3 format
|
||||
alternative_names = ["WTIOIL", "CLUSD", "WTI"]
|
||||
|
||||
logging.info(f"Checking if {coin_name} is available on Hyperliquid...")
|
||||
|
||||
# Try direct HTTP API call for all mids
|
||||
try:
|
||||
url = 'https://api.hyperliquid.xyz/info'
|
||||
payload = {"type": "allMids"}
|
||||
response = requests.post(url, json=payload, timeout=10)
|
||||
|
||||
if response.status_code == 200:
|
||||
result = response.json()
|
||||
all_mids = result.get('mids', {})
|
||||
print(f"\nTotal coins available: {len(all_mids)}")
|
||||
|
||||
# Look for oil-related coins
|
||||
found = False
|
||||
for name in all_mids.keys():
|
||||
if 'oil' in name.lower() or 'wti' in name.lower() or 'cl' in name.lower() or 'xyz' in name.lower():
|
||||
print(f"Found: {name} - Price: {all_mids[name]}")
|
||||
found = True
|
||||
|
||||
if not found:
|
||||
print("No oil-related coins found in all_mids.")
|
||||
print("\nTrying alternative coin names...")
|
||||
for alt_name in alternative_names:
|
||||
try:
|
||||
l2_payload = [{"type": "l2Book", "coin": alt_name}]
|
||||
l2_response = requests.post(url, json=l2_payload, timeout=10)
|
||||
if l2_response.status_code == 200:
|
||||
l2_data = l2_response.json()
|
||||
print(f"[OK] {alt_name} is available on Hyperliquid!")
|
||||
print(f" L2 data: {l2_data}")
|
||||
else:
|
||||
print(f"[FAIL] {alt_name} not available (HTTP {l2_response.status_code})")
|
||||
except Exception as e:
|
||||
print(f"[ERROR] {alt_name}: {e}")
|
||||
else:
|
||||
print(f"Failed to get allMids: HTTP {response.status_code}")
|
||||
print(f"Response: {response.text[:200]}")
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"Error checking availability: {e}")
|
||||
return
|
||||
|
||||
# Try to add to coin_precision.json
|
||||
precision_file = "_data/coin_precision.json"
|
||||
try:
|
||||
with open(precision_file, 'r') as f:
|
||||
precision_data = json.load(f)
|
||||
|
||||
# Add WTIOIL if not present
|
||||
if coin_name not in precision_data:
|
||||
precision_data[coin_name] = 2 # Default precision for commodities
|
||||
with open(precision_file, 'w') as f:
|
||||
json.dump(precision_data, f, indent=4, sort_keys=True)
|
||||
logging.info(f"Added {coin_name} to {precision_file} with precision 2")
|
||||
else:
|
||||
logging.info(f"{coin_name} already exists in {precision_file}")
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"Error updating precision file: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
check_and_add_wtioil()
|
||||
Reference in New Issue
Block a user