我正在开发 以太坊 区块链上的应用程序。我将 Solidity 用于合同,并将 Nethereum c# 库用于连接合同。我在以太坊不知何故,这是我在区块链上的第一个应用程序!我想首先在一个 TESTChain 中部署我的应用,
我从nethereum网站Docs找到了一个私人测试链 (https://nethereum.readthedocs.io/en/latest/nethereum-smartcontrats-gettingstarted/)
与 Remix 创建了我的简单合同,并获得了ByteCode。
问题在于, C#代码在发送用于部署合同的请求 后未回复任何内容。这是我的代码
合同在混音中创建良好,并且在“运行”选项卡中有效
public class DeploymentTest : ContractDeploymentMessage
{
public static string BYTECODE = @"0x....";// removed it because of long string
public DeploymentTest() : base(BYTECODE) { }
}
public async Task ConnectToTest()
{
var url = "https://github.com/Nethereum/TestChains";
var pass = "0xb5b1870957d373ef0eeffecc6e4812c0fd08f554b37b233526acc331bf1544f7";
var acc = new Account(pass);
var chain = new Web3(acc, url);
var deploymentMessage = new DeploymentTest();
var deploymentHandler = chain.Eth.GetContractDeploymentHandler<DeploymentTest>();
// this point just waited and does not return anything
var transactionReceipt = await deploymentHandler.SendRequestAndWaitForReceiptAsync(deploymentMessage);
var contractAddress = transactionReceipt.ContractAddress;
}
任何人都可以帮助我,我不坚持使用代码进行部署,无论如何都可能发生这种情况,但是在部署之后,我需要将其连接并调用一些函数。 谢谢
已编辑
我下载了用于Windows的TESTChain网络,它运行良好,似乎http:localhost的默认端口为8545。但它仍然无法连接到链条
var web3test = new Web3(); // also tried new Web3(http://localhost:8545);
var isMining = await web3test.Eth.Mining.IsMining.SendRequestAsync();
var accounts = await web3test.Eth.Accounts.SendRequestAsync();
我的连接有问题吗?我完全禁用了MacAfee防火墙。
编辑2
我更换了机器,并且可以在另一台笔记本电脑上使用,但找不到问题。我不知道是否仅卸载mcaffe可以吗? 有人对防火墙问题或其他问题有任何想法吗?
答案 0 :(得分:0)
我发现了问题,在我的C#代码中 调用代码的函数正在等待中,
Main()
{
TestConnection().wait(); // this is not proper
}
so I changed it to TestConnection(); and it works