Primeros pasos con Netherum en la BNB Chain
Tags: web3, programming, blockchain, bnbchain
Published: 2022-10-01 17:06:14

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0wqdm7efagwdw9r94mxo.png)

Luego abrimos el bnbstudio para localizar el código abi y el contrato que desplegamos la vez pasada
![bnb studio](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u1nj3rkyptnvwbyom23o.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uwu3aaersfstz3p3n9jv.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bikl9yxxnbp11bb3zoiu.png)
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();
        }
```

y este es el resultado 

![resultado](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/paoyv6oroplt5v4dtc0h.png)
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.😁