Go-Ethereum
’eth_call’ 返回值 ‘0x’
我正在嘗試通過 rpc 的 ’eth_call’ 方法呼叫合約函式。我的契約如下:
contract Ballot { function Ballot(string _title) { title = _title; } ... function getTitle() constant returns (string) { return title; } ... }
我正在計算 ‘getTitle()’ 的方法 id,它產生 ‘0x4e7ea493’,當在 rpc 呼叫的 ‘data’ 參數中發送時,它應該返回 title 變數。
但是它只在結果中返回“0x”,我做錯了什麼?
在
geth
:> web3.sha3('getTitle()').substring(0,10) "0xff3c1a8f"
您的方法呼叫簽名應該是
0xff3c1a8f
.使用 Browser Solidity 和以下程式碼進行確認:
pragma solidity ^0.4.6; contract Ballot { string public title; function Ballot(string _title) { title = _title; } function getTitle() constant returns (string) { return title; } }
這是 Browser Solidity 生成簽名的截圖: