DEV Community

Sergio Martinez Marin
Sergio Martinez Marin

Posted on

Invocando una función de un contrato inteligente de la BNBChain mediante una API REST🤯

Hola a todos, el día de hoy vamos a ver otra forma de invocar funciones de los contratos inteligentes, mediante la solución de TATUM (https://tatum.io/).
Con tatum la creación de NFT, y muchas funcionalidades que se necesitan a diario en una daap, vienen en forma de una simple llamada a una API REST, lo cual nos abre un mundo de posibilidades en nuestras aplicaciones ( cualquier cosa puede llamar una api rest 😁).


Otra ventaja es que tenemos acceso mediante API rest a 40 blockchains, lo cual nos ayuda muchisimo en nuestros desarrollos.

En esta ocación vamos invocar la función que creamos la primera vez en bnb studio (https://dev.to/sergiotechx/primeros-pasos-con-bnb-studio-525b).

Lo primero que debemos hacer es crear un usuario en TATUM, luego de esto, entramos en el dash board y damos click en api keys

Api keys
Creamos una api key de testnet y otra de mainnet.
Nota: Según la api key que usamos en las invocaciones de las API rest el sistema sabe si nos dirigimos a operaciones de testnet o mainnet 🤓

Para ver toda la documentación, la podemos ver acá https://docs.tatum.io/

Ejemplo práctico
1) Vamos directos al siguiente link
https://apidoc.tatum.io/tag/BNB-Smart-Chain#operation/BscBlockchainSmartContractInvocation

podemos probar dentro del mismo documentador de tatum o en postman, para mayor comodidad vamos realizarlo en postman
2) elegimos que servidor queremos, si en europa o en USA en el URL de la api

Server

En este caso lo dejamos en Europa y el link quedaría así
https://api-eu1.tatum.io/v3/bsc/smartcontract
Allí se evidencia que es versión 3 llamado a la BNB chain y el endpoint smartcontract

3) Es un request tipo Post, para poner que es una aplicación tipo JSON y las credenciales en la parte de headers en Post man
Image description
4)En el body ponemos que es tipo raw con tipo JSON

Image description
E incluimos el siguiente código

0 {
1  "contractAddress":"0x7BcAF331B2d33Fbdc17De5dD0C3DEadb360503bb",
2  "methodName": "getResult",
3  "methodABI":  
4            {
5              "inputs": [],
6              "name": "getResult",
7              "outputs": [
8               {
9                  "internalType": "string",
10                  "name": "",
11                  "type": "string"
12               }
13              ],
14              "stateMutability": "view",
15              "type": "function"
16            } ,
17   "params": []
18 } 
Enter fullscreen mode Exit fullscreen mode

Línea 1 el contrato a usar
Línea 2 el mètodo o función a invocar
Línea 3 el código abi

Al ver el ABI en el BNB Studio, vemos que el código está entre [], en tatum, quitamos esos []

BNB Studio
Línea 17 los parámetros que vamos a usar

Ejecutamos el api rest, que es un llamado a una función de un contrato inteligente de la BNBChain y obtenemos lo siguiente

Hola mundo tatum

Consideraciones:
No es el santo grial para todas las aplicaciones, ya que en opciones que haya que pagar en BNB, hay que tener una billetera con fondos e indirectamente poner la privatekey con todas las medidas de seguridad, lo cual en ciertos escenarios no aplica.
Específicamente en una operación contra una metamask donde absolutamente todo lo paga el usuario, como lo sería un pancake swap por ejemplo. Pero......en airdrops, operaciones tipo backend, billeteras mobiles y un sin fin de aplicaciones es perfectamente viable.

Nos vemos más adelante en este maravilloso mundo blockchain 🤓😁🤠

Top comments (0)