-1

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

4

2 回答 2

1

是的。您只需要连接到 Binance Smart Chain 节点而不是 Ethereum 节点。所有其他代码都是一样的。

于 2022-01-09T10:30:32.117 回答
0

您可以为以太坊和币安智能链 (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);
        }
    }
}
于 2022-02-24T23:37:24.107 回答