포네환율 — 라이브 환율 어댑터
개요
포네페그.한선은 시즌1포네맘의 정적 단가표(
포네_단가_연도())에 페그된다. 외부 환율 피드(pyth/bithumb/upbit)에서 라이브 KRW/USDT/USD 환율을 받아 캐시하고, 실패·만료·이상치 시 정적 단가표로 폴백하는 어댑터를 추가했다.
무엇을 했는지
- 신규 모듈
std/포네환율.한선 + .han 작성 (~210줄)
- 영속 캐시
/tmp/포네환율캐시.dat (ts|소스|KRW_USDT|KRW_USD|상태)
- 자가검증
포네환율_자가검증() — mock 3건(bithumb/upbit live, pyth 이상치) + 정적 폴백 + KRW↔포네 환산 + 셀코어 룰 출력. 전부 통과.
- 외부 fetch (
환율_fetch_pyth, 환율_fetch_bithumb)는 v0.38 TLS 미완으로 시그니처만(placeholder). 상위 보조도구가 환율_갱신() 직접 호출하는 형태.
핵심 산식
diff_pct = |라이브 - 정적| * 100 / 정적 — 정적 기본 1380 KRW/USDT 대비 이상치 감지
상태 = (diff > 10%) ? static_fallback : live — 갱신 시점 자동 결정
환율_현재() = 캐시 최신 → 상태=live이면 라이브값, 아니면 정적 (1380/1380)
셀코어 룰 (자체 헬퍼, 셀코어 import 회피)
환율_라이브_정상범위 (우선순위 10) : diff_pct ≤ 임계 → 소스=live
환율_라이브_이상치 (우선순위 20) : diff_pct > 임계 → 소스=static_fallback
환율_캐시만료 (우선순위 30) : 나이_분 ≥ 5 → 소스=stale
- 밸런싱 한 줄:
환율_이상치_임계() 반환값 10 → 5로 교체
관련 파일
- 본체:
/Users/ef/Downloads/CrownyTVM/std/포네환율.한선, .han
- 의존:
시즌1포네맘.한선 (포네_단가_연도)
- 영속:
/tmp/포네환율캐시.dat
- 검증:
/tmp/v_포네환율.han
연동 (메인 세션 적용 필요)
포네페그.한선의
포네페그_KRW환산() 내부에서 단가 산정 직전
환율_현재() 우선 호출, 소스가
static/
static_fallback/
static_stale이면 기존
포네페그_단가_at() 폴백. 시그니처는 그대로 유지.
잔여 이슈
- v0.39+ TLS 도입 시
환율_fetch_pyth / 환율_fetch_bithumb 실구현 (현재 noop)
- USD/USDT 분리 페그 — 시즌1에 USD 명시 없어 둘 다 1380 mock. 시즌2 설계 시 분리
- 캐시 나이 계산(
나이_분)은 호출자가 외부 ts와 현재 ts를 전달하는 형태 — 한선씨 v0.38에 표준 epoch 함수가 부재