44 lines
1021 B
Python
44 lines
1021 B
Python
# -*- coding: utf-8 -*-
|
|
|
|
import cachetools
|
|
import requests
|
|
|
|
|
|
@cachetools.cached(cachetools.TTLCache(32, 600))
|
|
def get_exchange_rate(currency="PLN"):
|
|
# Returns current exchange rate for selected currency
|
|
return requests.get("https://blockchain.info/pl/ticker").json()[currency]["last"]
|
|
|
|
|
|
def to_local_currency(sat, safe=False):
|
|
# Returns satoshi in local lowest denomination currency (grosze)
|
|
try:
|
|
rate = get_exchange_rate()
|
|
except:
|
|
if safe:
|
|
return 0
|
|
raise
|
|
return int(sat / 1000000.0 * rate)
|
|
|
|
|
|
def from_local_currency(val, safe=False):
|
|
# Returns satoshi value from local currency
|
|
try:
|
|
rate = get_exchange_rate()
|
|
except:
|
|
if safe:
|
|
return 0
|
|
raise
|
|
|
|
return int(val / rate * 1000000)
|
|
|
|
|
|
def sat_to_btc(amount):
|
|
# Converts satoshi to BTC
|
|
return amount / 100000000.0
|
|
|
|
|
|
def format_btc(amount):
|
|
# Formats satoshi to human-readable format
|
|
return ("฿%.8f" % (sat_to_btc(amount),)).rstrip("0").rstrip(".")
|