我已经pragma solidity^0.4.0
为 Rinkeby 部署了一个非常基本的 Solidity 合约 ()。当我在状态变量上调用 getter 时,没有返回任何内容,我不明白为什么。编译我正在使用的合同"solc": "^0.4.25"
使用 Remix 进行测试,对 getter 的调用可以在本地正常工作。但是,该电话不适用于我在 Rinkeby 上的合同。
这是我的可靠代码...
pragma solidity^0.4.0;
contract Contest {
address public manager;
uint public submissionCost;
uint8 public votesPerSubmission;
constructor (uint _submissionCost, uint8 _votesPerSubmission) public {
manager = msg.sender;
submissionCost = _submissionCost;
votesPerSubmission = _votesPerSubmission;
}
modifier restricted() {
require(msg.sender == manager, "Not authorized.");
_;
}
function adjustSubmissionCost(uint32 newCost) public restricted {
submissionCost = newCost;
}
function adjustVotesPerSubmission(uint8 newVotes) public restricted {
votesPerSubmission = newVotes;
}
}
在 Rinkeby 上部署的合约地址是
0xacBd19113e0D8122E18DF48A320b635fB5D7Cdd0
https://rinkeby.etherscan.io/address/0xacbd19113e0d8122e18df48a320b635fb5d7cdd0
从 Remix 调用任何公共变量时,我期望返回值,但是我只call to Contest.manager
在 Remix 控制台中收到消息,仅此而已。
我在我的 web3 dapp 中得到了相同的行为,当我尝试时返回为零......
await Contest.methods.manager().call()