我有一个关于编程 VB.NET 和 Nethereum 的问题。
合约地址完美无缺。出于测试目的,我内置了一个可以通过函数设置的 maintrace - pause 函数。
在 Remix tool + Metamask 中,暂停和恢复功能完美运行。
几天来,我一直在拼命寻找 VB.NET(或 C#)的解决方案:
合同功能(我有测试删除此合同中的 OnlyOwner 变量):
function SetPause() external returns (string memory) {
if (paused) {
paused = false;
emit Unpause();
Unpause;
return "Pause Set inactive";
} else {
paused = true;
Pause;
emit Pause();
return "Pause Set active";
}
}
当我通过 VB.NET 处理该函数时,我正常收到返回消息,但我的钱包没有执行交易。因此状态不会改变。其他功能,如传输。代币名称和余额查询工作正常。
VB.NET 代码:
Dim changeFunction As Task(Of String) = Contract.GetFunction("SetPause").SendTransactionAsync(senderAddress, gas)
changeFunction.Wait()
Textbox1.Text = changeFunction.Result
正如我所说,我得到了所有正确的反馈,但没有执行任何事务(更改),只有读取查询。我还尝试了其他 VB.NET 代码。不成功...