API Calls - Precio del BPRO

Estimados,

Hay alguna forma de, mediante una llamada a una API via REST o una consulta a un SmartContract u Oracle, poder saber el precio en USD de un BPRO?

Saludos,
Mr. Lovari

1 Like

Sigo investigando el tema ya que no tuve respuesta por aca … Por Telegram, @Manu
me mandó el link a la API REST que disponibilizan, pero me parece que no tiene lo que estoy buscando, asi que segui investigando, y en DEFIANT me dijeron que consulte al contrato inteligente directo llamado “InRate” que deberia ser el que me da el valor buscado.

Ahora, me encontré que cuando quiero hacer eso, la red de RSK me tira un MEGA-WARNING diciendo que el codigo ABI publicado no se condice con el contrato, porque puede ser? Esto hace que no tenga un ABI valido, por ende no puedo consultar al contrato… adjunto screenshot.

Para replicar el error pueden ir a RSK explorer :: mainnet - Address - 0x1dab07c4fd07d6ee1359a5198aca2dee64f371f3

1 Like

Bueno, dado que aun no puedo acceder via API Directo, segui varias recomendaciones, y estoy usando un script de Python para obtener los precios. Si alguien necesita hacer algo asi, debe:

Si usas Windows, descargar e instalar Python 3:

https://www.python.org/downloads/

Luego instalar los modulos de Money On Chain, haciendo:

pip3 install moneyonchain

Luego, con cualquier editor de textos, crear este archivo:

Script “getprecio.py”:

from moneyonchain.manager import ConnectionManager
from moneyonchain.price_provider import PriceProvider
from moneyonchain.moc import MoC

import logging
import logging.config

# logging module
# Initialize you log configuration using the base class
logging.basicConfig(level=[logging.INFO](http://logging.info/))
# Retrieve the logger instance
log = logging.getLogger()

# Connect to MoC enviroment network
network = 'mocMainnet2'
connection_manager = ConnectionManager(network=network)
print("Connecting to %s..." % network)
print("Connected: {conectado}".format(conectado=connection_manager.is_connected))

contract = MoC(connection_manager)

print("Bitcoin price in usd: {:.2f}".format(contract.bitcoin_price()))
print("BPRO price in usd: {:.2f}".format(contract.bpro_price()))
print("BTC2X price in usd: {:.2f}".format(contract.btc2x_tec_price() * contract.bitcoin_price()))

Una vez grabado ese script en un archivo “getprecio.py”, por comodidad, creas un archivo batch que corra el codigo en python, que solo contenga 2 lineas …

c:\Python38\python.exe d:\getprecio.py 
pause

Y para ver el resultado, corres el script asì desde la linea de comandos de windows (cmd.exe) (o te haces un link en el escritorio :slight_smile:) … deberia dar el siguiente resultado (27/12/2020 a las 11:35AM hora Argentina):

Connecting to mocMainnet2…
Connected: True
Bitcoin price in usd: 27652.58
BPRO price in usd: 33536.20
BTC2X price in usd: 32377.29

D:>pause
Press any key to continue . . .

2 Likes

Nueva version del script, que evita un error si no tienen instalado un modulo:

from moneyonchain.manager import ConnectionManager
from moneyonchain.moc import MoC


# Connect to MoC enviroment network
network = 'mocMainnet2'
connection_manager = ConnectionManager(network=network)
print("Connecting to %s..." % network)
print("Connected: {conectado}".format(conectado=connection_manager.is_connected))

contract = MoC(connection_manager)

print("Bitcoin price in usd: {:.2f}".format(contract.bitcoin_price()))
print("BPRO price in usd: {:.2f}".format(contract.bpro_price()))
print("BTC2X price in usd: {:.2f}".format(contract.btc2x_tec_price() * contract.bitcoin_price()))

También, van a tener que instalar para poder compilar la librería de Python de MoneyonChain, el Compilador de Visual Basic 16 C++ (las “build tools”), que pesa mas de 3 Gigas :frowning:

https://visualstudio.microsoft.com/visual-cpp-build-tools/

Para complementar este thread, por favor leer este otro thread. Desarrollé la API que tanto estaba buscando, porque no existía :slight_smile: