在testnet上具有smart协议,地址为0x5a6661c75df7de88ba74437a6dc372ccfa72a564,具有以下功能:
function whoAmI() constant returns (address) {
return msg.sender;
}应该总是回呼叫者。这就是我想要证实的。在从geth控制台同步调用时,我工作正常,如下所示:
// creation of contract object
var aContract = web3.eth.contract([{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"queryBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"initialSupply","type":"uint256"}],"name":"MyToken","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"whoAmI","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"payable":false,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]);
// initiate contract for an address
var sc = aContract.at('0x5a6661c75df7de88ba74437a6dc372ccfa72a564');
// calling function
sc.whoAmI();
"0x47978a69f410d0f61850c92acdb0d4c464d70937"当尝试从另一个帐户异步调用它时,会出现这样的问题:
sc.whoAmI.sendTransaction({from:"0x3b877e80b5c0b29d88f3768ed4292b35fdd93a9d"});
txHash => "0x5fc3f7454d558ad4bd01294448b45bc7072b46958375fafe32e277a770d48e90"事务的输出存储在哪里?试试看:
eth.getTransactionReceipt("0x5fc3f7454d558ad4bd01294448b45bc7072b46958375fafe32e277a770d48e90")
{
blockHash: "0xa19553677ede1d1eed791d1658a4229629346f90db5907c14c915dda13926df9",
blockNumber: 1821495,
contractAddress: null,
cumulativeGasUsed: 21612,
from: "0x3b877e80b5c0b29d88f3768ed4292b35fdd93a9d",
gasUsed: 21612,
logs: [],
root: "31aa355a0a7534b18c7874a31fd78926a6869f0e9e309a972d1b5505405c6421",
to: "0x5a6661c75df7de88ba74437a6dc372ccfa72a564",
transactionHash: "0x5fc3f7454d558ad4bd01294448b45bc7072b46958375fafe32e277a770d48e90",
transactionIndex: 0
}我找不到它。有什么帮助吗?谢谢!
发布于 2016-11-02 11:32:34
我想当异步挖掘时不可能获得函数的返回值。根据调用带参数的函数时如何获得返回值?,目前无法从修改块链的函数返回值.“返回”信息的唯一方法是使用Solidity。
https://ethereum.stackexchange.com/questions/9755
复制相似问题