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