github首页:区块链学习有用链接和25本区块链书籍可免费阅读
- 地址:https://github.com/cancerts/study-blockchain-referrence 点击这
第三节 我是实现了token的一些高级功能,如增发,冻结,撤销等,这一小节我就来实现一个众筹的项目ICO,我在学习solidity的时候好像也看见几个合约的例子,其中一个就是众筹的例子,好久了,我不记得了,大家可以去官网下载solidity去看一下,其中就有一个,今天呢,用自己的规则来实现,要完成一个众筹需要完成以下的内容:
众筹就是在约定的时间,完成约定的目标金额
第一步:设定众筹目标
众筹的目标金额,时间,兑换的价格,以及受益人
contract ico is owner{
uint public fundingGoal;
uint public deadline ;
uint public price;
token public tokenReward;
address public beneficiary;
constructor(uint fundingGoalInEthers,uint durationInMinutes,uint costOfEachToken,address addressOfToken)public{
fundingGoal=fundingGoalInEthers*1 ether;
deadline=now + durationInMinutes* 1 minutes;
price=costOfEachToken* 1 ether;
tokenReward=token(addressOfToken);
beneficiary=msg.sender;
}
}
第二步: 实现以太和代币的兑换
我们知道,我们众筹是通过代币来完成的,但是,代币是没有价值的,只是作为一个交换的媒介
function() public payable{
require(now<deadline);
uint amount=msg.value;
balanceOf[msg.sender]+=amount;
fundAmount+=amount;
uint tokenAmount=0;