我已经为Rinkeby部署了一个非常基本的团结合同(pragma solidity^0.4.0
)。当我在状态变量上调用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调用任何公共变量时,我期望返回值,但是我在Remix控制台中仅收到消息call to Contest.manager
,仅此而已。
在我的web3 dapp中,我得到了相同的行为,当我尝试...时返回零。
await Contest.methods.manager().call()