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.😁

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more