Nethereum 调用 Binance 智能链合约功能,如 balanceOf 或通过 Blazor WebAssembly 转账

Nethereum Call Binance Smart Chain contract function like balanceOf or transfer via Blazor WebAssembly

我正在使用 Blazor WebAssembly 开发 Web 应用程序。我想在我的代币合约中调用一些函数。我已经为我的项目安装了 Nethereum.Web nuget 包。但我不想从以太坊主网调用合约,它必须是 Binance Smart Chain。谁能帮帮我?

是的。您只需要连接到币安智能链节点而不是以太坊节点。所有其他代码都是一样的。

您可以为以太坊和币安智能链 (BSC) 使用 Nethereum.Web3 Nuget 包。

随函附上一个通过 GetBlock 连接到 BSC 的 C# 示例。您可以使用 GetBlock 轻松设置一个免费节点,并在点击几下后获得您的 API 密钥和关联端点。

在代码片段中,使用了 Chromia 代币合约,我们请求示例账户的余额。您只需要用您选择的合约替换代码。

using System;
using System.Threading.Tasks;
using System.Numerics;
using Nethereum.Web3;

namespace BSC
{
    class Example
    {
        static async Task Main(string[] args)
        {
            // Connect to BSC node
            // Replace XX-XXX-XX with your personal API key (when also using GetBlock)
            var web3 = new Web3("https://bsc.getblock.io/mainnet/?api_key=XX-XXX-XX");

            // Get contract by providing ABI and address of contract
            // Here Chromia token with ABI for balanceOf function only is used for example
            string abi = @"[{""inputs"":[{""internalType"":""address"",""name"":""account"",""type"":""address""}],""name"":""balanceOf"",""outputs"":[{""internalType"":""uint256"",""name"":"""",""type"":""uint256""}],""stateMutability"":""view"",""type"":""function""}]";
            string contractaddress = "0xf9CeC8d50f6c8ad3Fb6dcCEC577e05aA32B224FE";
            var contract = web3.Eth.GetContract(abi, contractaddress);

            // Call function of contract
            // Here balance of a random address is requested for example
            var function = contract.GetFunction("balanceOf");
            string address = "0x8A2279d4A90B6fe1C4B30fa660cC9f926797bAA2";
            BigInteger balance = await function.CallAsync<BigInteger>(address);

            Console.WriteLine("Balance: " + balance);
        }
    }
}