gpt4 book ai didi

javascript - 如何在javascript中使用以太坊合约的状态改变方法?

转载 作者:行者123 更新时间:2023-11-27 22:57:36 25 4
gpt4 key购买 nike

我正在研究以太坊智能合约。我通过 Mist 浏览器部署了greeter 合约,它在 Mist 上运行良好。

所以我想使用我部署的greeter合约制作简单的Dapp。

我在 Solidity 中的合约代码:

contract mortal {
address owner;
function mortal() { owner = msg.sender; }
function kill() { if (msg.sender == owner) suicide(owner); }
}

contract greeter is mortal {
string greeting;

function greeter(string _greeting) public {
greeting = _greeting;
}

function greet() constant returns (string) {
return greeting;
}

function changeMsg(string msg) {
greeting = msg;
}
}

我的 Javascript 中的 Dapp 代码:

_connect() {

/* ... */

contract = web3.eth.contract(CONTRACT_ABI);
instance = contract.at(CONTRACT_ADDRESS);

}

_greet() {
console.log(instance.greet());
}

_changeMsg(msg) {
console.log(instance.changeMsg(msg));
}

_greet() 函数运行良好,它返回我的问候消息。

但是 _changeMsg() 函数仅返回一些十六进制字符串。如何通过 _changeMsg() 函数更改问候消息?

谢谢。

最佳答案

您会发现消息确实已更新:尝试再次调用 _greet()

_changeMsg() 返回的十六进制是事务哈希,它是状态更改方法(事务)始终返回的内容。

更多信息请参见:

https://ethereum.stackexchange.com/questions/765/what-is-the-difference-between-a-transaction-and-a-call

关于javascript - 如何在javascript中使用以太坊合约的状态改变方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37451920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com