BTC/SATS Logic Model
เจาะลึกกลไกการคำนวณราคาและแปลงค่าเงิน (Fiat-to-Crypto Bridge) หัวใจสำคัญที่ทำให้ Cashless Thailand รองรับการชำระเงินผ่าน Bitcoin ได้อย่างแม่นยำ
Logic & Architecture
4 Core Systems1. Price Oracle (CoinGecko API)
ระบบดึงราคาบิตคอยน์แบบ Real-time
Fetch Mechanism
ดึงราคา BTC/THB และ BTC/USD ทุกๆ 60 วินาที เพื่อให้ราคาอัปเดตเสมอแต่ไม่ติด Rate Limit
Fallback Rate
หาก API ล่ม จะใช้ราคาล่าสุดที่ Cached ไว้ใน LocalStorage เพื่อป้องกันหน้าเว็บพัง
Global Store
เก็บค่าราคาไว้ใน Nanostores ($btcPrice) เพื่อให้ทุก Component (Cart, Checkout) เรียกใช้ได้ทันที
2. Fiat-to-Sats Converter
กลไกแปลงเงินบาทเป็นหน่วย SATS
Conversion Logic
สูตร: (ราคาบาท / ราคา BTC) * 100,000,000 = จำนวน Sats
Display Formatting
จัดรูปแบบตัวเลขให้มี Commas (เช่น 25,000 sats) เพื่อให้อ่านง่าย
Rounding Mode
ปัดเศษขึ้นเสมอ (Math.ceil) เพื่อให้มั่นใจว่าร้านค้าจะไม่ขาดทุนจากจุดทศนิยม
3. Lightning Network Invoice
ระบบสร้าง QRCode สำหรับจ่ายเงิน
QR Generation
สร้าง QR Code ที่รองรับมาตรฐาน BIP-21 (bitcoin:...?amount=...&lightning=...)
Payment Monitoring
Polling สถานะการจ่ายเงินทุก 3 วินาที (WebSocket/REST) จนกว่าจะได้รับสถานะ 'Settled'
Slippage Protection
ล็อคอัตราแลกเปลี่ยน (Lock Rate) เป็นเวลา 15 นาที เพื่อป้องกันความผันผวนระหว่างรอจ่าย
4. Web3 / Wallet Bridge
การเชื่อมต่อกับกระเป๋าเงินผู้ใช้
WebLN Standard
รองรับ Alby Browser Extension และกระเป๋าที่รองรับ WebLN เพื่อกดจ่ายในคลิกเดียว
Deep Linking
บนมือถือจะใช้ Link 'lightning:...' เพื่อเปิดแอป Wallet (Wallet of Satoshi, Phoenix) โดยตรง
Signed Messages
ใช้ลายเซ็นดิจิทัล (Sign Message) เพื่อยืนยันตัวตนในบางกรณีโดยไม่ต้องใช้ Password
# System Dependencies
External APIs
- Price Feed
CoinGecko V3 - Payment Node
BTCPay Server (Self-Hosted)
Libraries
- QR Code
qrcode.react - State Mgmt
nanostores