Initial commit: Hermes Agent skills collection
- Trading skills (OKX, dividend, lottery, quantitative) - Creative skills (ASCII art, diagrams, video) - Development skills (GitHub, debugging, TDD) - Research skills (arXiv, blog monitoring) - Productivity skills (email, documents, notes) - MCP integration skills - Custom user skills
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Reliable OKX credential loader.
|
||||
Reads directly from ~/.bashrc file, bypassing env var quoting issues.
|
||||
|
||||
Usage:
|
||||
from okx_cred_loader import load_okx_creds, create_okx_exchange
|
||||
creds = load_okx_creds()
|
||||
exchange = create_okx_exchange(creds, default_type='swap')
|
||||
"""
|
||||
import re, os, ccxt
|
||||
|
||||
|
||||
def load_okx_creds():
|
||||
"""Load OKX credentials from ~/.bashrc, stripping quotes."""
|
||||
creds = {}
|
||||
bashrc = os.path.expanduser('~/.bashrc')
|
||||
with open(bashrc) as f:
|
||||
for line in f:
|
||||
m = re.match(r'export\s+(OKX_\w+)=(.*)', line.strip())
|
||||
if m:
|
||||
key, val = m.group(1), m.group(2).strip().strip('"').strip("'")
|
||||
creds[key] = val
|
||||
required = ['OKX_API_KEY', 'OKX_SECRET', 'OKX_PASSPHRASE']
|
||||
missing = [k for k in required if k not in creds]
|
||||
if missing:
|
||||
raise ValueError(f"Missing OKX creds in ~/.bashrc: {missing}")
|
||||
return creds
|
||||
|
||||
|
||||
def create_okx_exchange(creds=None, default_type='swap'):
|
||||
"""Create a configured ccxt.okx exchange instance."""
|
||||
if creds is None:
|
||||
creds = load_okx_creds()
|
||||
return ccxt.okx({
|
||||
'apiKey': creds['OKX_API_KEY'],
|
||||
'secret': creds['OKX_SECRET'],
|
||||
'password': creds['OKX_PASSPHRASE'],
|
||||
'proxies': {
|
||||
'http': 'http://127.0.0.1:7890',
|
||||
'https': 'http://127.0.0.1:7890',
|
||||
},
|
||||
'options': {'defaultType': default_type},
|
||||
})
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
creds = load_okx_creds()
|
||||
print(f"OKX creds loaded: KEY={creds['OKX_API_KEY'][:8]}...")
|
||||
exchange = create_okx_exchange(creds)
|
||||
balance = exchange.fetch_balance()
|
||||
usdt = float(balance.get('USDT', {}).get('free', 0))
|
||||
print(f"USDT free: {usdt:.2f}")
|
||||
Reference in New Issue
Block a user