网赚论坛

 找回密码
 免费注册
查看: 179|回复: 0
打印 上一主题 下一主题

智能合约:锁定5枚以太币,2065年见

[复制链接]

26

主题

26

帖子

104

积分

Ⅰ级财主

Rank: 1

积分
104
跳转到指定楼层
楼主
发表于 2017-11-24 21:59:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
智能合约:锁定5枚以太币,2065年见
这个哥们挺有意思,写了个智能合同,把5枚以太币,锁定了50年,预计2065年释放出来。结果后来给人找到了bug,结果他自已提出来后,修复了bug,然后又存进去了。


代码如下:

  • //0xdb30622d51e8d6221f0b1cbde57d4734387d7ca1
  • contract Locker {

  • mapping(address => mapping(uint => uint)) locker;

  • event Locked(address indexed _addr, uint _timestamp, uint _value);
  • event Withdrew(address indexed _addr, uint _timestamp, uint _value);

  • function lockUntil(uint _timestamp) returns (bool _success) {
  • if(_timestamp > now) { //only lock into the future.
  • locker[msg.sender][_timestamp] += msg.value;
  • Locked(msg.sender, _timestamp, msg.value);
  • return true;
  • } else {
  • msg.sender.send(msg.value); //send back. Perhaps replace with exception?
  • return false;
  • }
  • }

  • function withdrawAtTimestamp(uint _timestamp) returns (bool _success) {
  • //you can set an arb timestamp into the past & thus will return true
  • //but doesn't help since you can only set timestamps into the future.
  • if(now >= _timestamp && locker[msg.sender][_timestamp] > 0) {
  • msg.sender.send(locker[msg.sender][_timestamp]);
  • locker[msg.sender][_timestamp] = 0;
  • Withdrew(msg.sender, _timestamp, locker[msg.sender][_timestamp]);
  • return true;
  • } else {
  • return false;
  • }
  • }}

复制代码
来源:https://gist.github.com/simondlr/627400ade47dcd822e18
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

广告合作|Archiver|手机版|小黑屋|财富吧

GMT+8, 2024-11-8 14:43 , Processed in 0.374400 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.1

© 2014-2021 财富吧

快速回复 返回顶部 返回列表