DEV Community

Sergio Martinez Marin
Sergio Martinez Marin

Posted on • Edited on

Primeros pasos con Netherum en la BNB Chain

Hola a todos, en esta ocación vamos a ver algo super fundamental en el mundo C#, la mayoria de veces la web3 va ligado inherentemente a una página web y javascript, en cualquier variante ( navegador desktop, navegador de mobil o sus variantes).

Pero que pasa si queremos hacer una solución a nivel de Backend, escritorio o mobil directamente con C#, usamos una solución llamada Netherum 🤓
https://nethereum.com/
A continuación vamos a llamar la función que se créo en el artículo pasado (https://dev.to/sergiotechx/primeros-pasos-con-bnb-studio-525b), donde dimos los primeros pasos en el ide "BNB Studio" 🤠


Lo primero es crear un proyecto, tipo consola y por el packet manager de nugets, bajamos en Netherum.web3
Netherum.web3

Luego abrimos el bnbstudio para localizar el código abi y el contrato que desplegamos la vez pasada
bnb studio

Image description

Image description
Ahora escribimos lo siguiente ( maximiza el código para que sea más legible)

 static async Task Main(string[] args)
        {

            //Acá pones tu llave privada que no debes compartir con nadie!        
            string _privatekey = "tu llave privada";
            //un proveedor gratis de la testnet de BNB https://www.ankr.com/rpc/
            string _strconnection = "https://rpc.ankr.com/bsc_testnet_chapel";
            //chain ID de la BNBChain testnet 97
            //https://academy.binance.com/en/articles/connecting-metamask-to-binance-smart-chain
            Account account = new Account(_privatekey, new BigInteger(97));
            Web3 web3 = new Web3(account, _strconnection);
            string contractAdress = "0x7BcAF331B2d33Fbdc17De5dD0C3DEadb360503bb";
            //el abi lo sacamos del bnbstudio
            var abi = @"
                        [
                         {
                          ""inputs"": [],
                          ""name"": ""getResult"",
                          ""outputs"": [
                           {
                             ""internalType"": ""string"",
                             ""name"": """",
                             ""type"": ""string""
                           }
                          ],
              ""stateMutability"": ""view"",
              ""type"": ""function""
            }
          ]";
            Nethereum.Contracts.Contract contract = web3.Eth.GetContract(abi, contractAdress);
            //Invocación de la función del contrato inteligente
            var function = contract.GetFunction("getResult");
            //la función del smart contract retorna un datos tipo string
            var result = await function.CallAsync<string>();
            Console.WriteLine(result);
            Console.ReadLine();
        }
Enter fullscreen mode Exit fullscreen mode

y este es el resultado

resultado
Cómo puedes ver, integrar tus contratos de la BNBChain al mundo C# es muy viable mediante este tipo de soluciones.

El código del proyecto lo puedes descargar acá
https://github.com/sergiotechx/NetherumCallAbi

Hasta la próxima.😁

Top comments (0)