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
Luego abrimos el bnbstudio para localizar el código abi y el contrato que desplegamos la vez pasada
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
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)