以太币供给曲线

如果社区同意,这个出块时间的增长,可以变换为每个块以太币的减少。

Solidity 问题

测试环境指的是 testrpc ?testrpc 的话,不用指定 gas ,只要指定 from 就可以了。

请教各位大神:关于 Solidity 的 mapping 问题

你的getinfo函数有问题,这样写

  //读取信息
  function getinfo(string addr, uint8 _tablet) constant returns(string cname,uint16 tree_num,uint8 tablet,uint8 floor){
    CommunityObj community = communityDB[addr];
    cname = community.cname;
    tree_num = community.tree_num;
    tablet = community.buildingDB[_tablet].tablet;
    floor = community.buildingDB[_tablet].floor;
  }

测试的代码:

Experiment.addinfo.sendTransaction('123456', 'abc', 100, 10, 22, { from: web3.eth.accounts[0], gas:300000 }, function(err, tx){
  if(err){
    console.log('err!');
  } else {
    console.log('tx', tx);
  }
})
miner.start(2);
admin.sleepBlocks(2);
miner.stop();

result = Experiment.getinfo.call('123456', 10, { from: web3.eth.accounts[0] });
console.log('result: ', result[0], result[1].toNumber(), result[2].toNumber(), result[3].toNumber());

// tx 0xbd44cf54d38809d9dea6f8a561ba8e0c029885b7a782997015090f8b6825e976
// result:  abc 100 10 22

链接:
https://github.com/u2/solidity-assembly-practise/blob/master/contracts/Experiment.sol

https://github.com/u2/solidity-assembly-practise/blob/master/test/experiment.js

合约函数调用问题

最好能把如何调用AddUser的过程代码和提示信息,以及如何查询GetUserName和GetUserInfo的过程代码都贴出来,要不然没办法分析原因的。

关于智能合约中,嵌套结构体的使用,求教各位大神

mapping 是没有办法直接获取到里面所有 key-value 内容的,只能根据 key 来映射。
所以 struct 里的 mapping 类型的属性也只能通过方法来读取,你需要写一个类似的get方法,通过学校和学生的_stuno两个参数来得到学生的结构体。
或者你可以用数组试下。