一直在测试Nethereum,并试图获得一个基本的测试类,并按照testing文档运行,但在运行挖掘命令时遇到了问题。
问题
这是发生问题的XUnit测试类。
using System.Threading;
using System.Threading.Tasks;
using Nethereum.Geth;
using Nethereum.Hex.HexTypes;
using Nethereum.Web3;
using Xunit;
namespace BasicTurorial
{
public class TestClass
{
[Fact]
public async Task ShouldBeAbleToDeployAContract()
{
var senderAddress = "0x12890d2cce102216644c59daE5baed380d84830c";
var password = "password";
var abi = @"[{""constant"":false,""inputs"":[{""name"":""val"",""type"":""int256""}],""name"":""multiply"",""outputs"":[{""name"":""d"",""type"":""int256""}],""payable"":false,""type"":""function""},{""inputs"":[{""name"":""multiplier"",""type"":""int256""}],""payable"":false,""type"":""constructor""}]";
var byteCode =
"0x60606040523415600b57fe5b6040516020806100ac83398101604052515b60008190555b505b6079806100336000396000f300606060405263ffffffff60e060020a6000350416631df4f14481146020575bfe5b3415602757fe5b60306004356042565b60408051918252519081900360200190f35b60005481025b9190505600a165627a7a72305820ec2cf1c300fa92e0ccd1f5ce518cc43c9578fe9007797024f1424d07f491020a0029";
var multiplier = 7;
var web3 = new Web3();
var web3Geth = new Web3Geth();
var unlockAccountResult =
await web3.Personal.UnlockAccount.SendRequestAsync(senderAddress, password, 120);
Assert.True(unlockAccountResult);
var transactionHash =
await web3.Eth.DeployContract.SendRequestAsync(abi, byteCode, senderAddress, multiplier);
var mineResult = await web3Geth.Miner.Start.SendRequestAsync(6);
//var mineResult = await web3.Miner.Start.SendRequestAsync(6);
Assert.True(mineResult);
var receipt = await web3.Eth.Transactions.GetTransactionReceipt.SendRequestAsync(transactionHash);
while (receipt == null)
{
Thread.Sleep(5000);
receipt = await web3.Eth.Transactions.GetTransactionReceipt.SendRequestAsync(transactionHash);
}
var contractAddress = receipt.ContractAddress;
var contract = web3.Eth.GetContract(abi, contractAddress);
var multiplyFunction = contract.GetFunction("multiply");
var result = await multiplyFunction.CallAsync<int>(7);
Assert.Equal(49, result);
}
}
}
完整的源代码可以在这里找到https://github.com/stradled/NethereumTest
发布于 2018-12-06 00:44:34
我碰巧遇到了同样的问题,经过几个星期的尝试和错误,这对我来说是有效的:
var web3 = new Nethereum.Geth.Web3Geth("http://127.0.0.1:8454");
var mine = await web3.Miner.Start.SendRequestAsync(6);
注://请使用适用于您的本地地址和端口,本例为127.0.0.1:8454。
https://ethereum.stackexchange.com/questions/19403
复制相似问题