@Oo若离oO 你好,想跟你请教个问题:在最新的remix中,你用下面的方法:
function Voting(bytes32[] _candidates)public{
candidates = _candidates;
}
在合约编译后,部署时,输入string类型的会报错,Error encoding arguments: Error: invalid bytes32 value (arg=undefined, type="string", value="hello world"),以前版本是能成功部署的,想请教下如何处理,万分感谢!
<p>可以贴出完整代码么?</p>
<p>pragma solidity ^0.4.4;</p>
contract Voting{
bytes32[] candidates; //定义一个候选人数组
mapping(bytes32 => uint) candidatesVotingCount;//记录候选人得票数的字典
//初始化操作
function Voting(bytes32[] _candidates)public{
candidates = _candidates;
}
//投票
function votingToPerson(bytes32 person)public {
require(isValidToPerson(person));
candidatesVotingCount[person]+=1;
}
//统计对应候选人的票数
function votingTotalToPerson(bytes32 person) constant public returns(uint){
assert(isValidToPerson(person));
return candidatesVotingCount[person];
}
//判段输入的是否为候选人
function isValidToPerson(bytes32 person) constant public returns(bool){
for(uint i=0;i<candidates.length;i++){
if(candidates[i] == person){
return true;
}
}
return false;
}
}
以上就是完整代码,在部署时现在必须要16进制的字符串了
<p>知道答案了吗?我也遇到同样的问题</p>
<p>填写 64 位数据</p>
如:0xdeadbeef00000000000000000000000000000000000000000000000000000000
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。