Запущен шлюз GOLOS на XRPL
Скрипт обновления PriceFeed
Данный скрипт возвращает курс на AMM poll и текущий объем ликвидности.
Для работы скрипта необходимы две библиотеки:
#!/usr/bin/env python
from xrpl.models.requests import AccountLines
from xrpl.clients import JsonRpcClient
from xrpl.account import get_balance
from xrpl.utils import drops_to_xrp
from decimal import Decimal
import importlib.util
# Адрес AMM pool GLS/XRP
amm_pool = "rPuxHkfL5LCjNjfpSZiywJdm4ToXLenNpx"
ripple = JsonRpcClient("https://s1.ripple.com:51234/")
def account_lines():
try:
data = ripple.request(AccountLines(account=amm_pool)).result
for line in data["lines"]:
if line["currency"] == "GLS": return line["balance"]
except Exception:
pass
return None
def check_rate_amm():
try:
value_xrp = drops_to_xrp(str(get_balance(amm_pool, ripple)))
value_gls = Decimal(account_lines())
return value_xrp, value_gls
except Exception:
return None
def check_rate_gls(rate_amm):
try:
api = getattr(importlib.import_module("ccxt.bitfinex"), "bitfinex")()
price_gls = Decimal(api.fetch_ticker("XRP/USD")["bid"]) * rate_amm
return price_gls.quantize(Decimal("0.000001"))
except Exception:
return None
def main():
value_xrp, value_gls = check_rate_amm()
rate_amm = value_xrp / value_gls
print(f"Текущая цена GLS: ${check_rate_gls(rate_amm)}")
print(f"{value_gls} GLS - {value_xrp} XRP")
if __name__ == '__main__':
main()