Invocando una funci贸n de un contrato inteligente de la BNBChain mediante una API REST馃く

Sergio Martinez Marin - Oct 3 '22 - - Dev Community

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 馃馃榿馃

. . . . . . .