CrowdFund.sol
/*
作者:key
時間:2020/10/25 17:2
分析:
一個needer 受益者
多個player 捐助者
運行環境 remix
*/
pragma solidity^0.4.25;
//眾籌合約
contract CrowdFund{
uint256 neederAmount=0; //needer的數量,初始化為0
mapping(uint256 => Needer) neederMap;
struct Funder{
address funderAddress; //捐助者的地址
uint256 toMoney; //捐助的數量
}
struct Needer{
address neederAddress; //受益者地址
uint256 goal; //募集資金目標
uint256 amount; //現在募集的資金
uint256 funderAccount; //捐助者的數量
mapping(uint256 => Funder) amountOrigin; //這筆募捐資金的來源
}
function newNeeder(address _neederAddress,uint256 _goal) public{
neederMap[neederAmount] =Needer(_neederAddress,_goal,0,0);//初始化
neederAmount++;
}
function contribute(address _funderAddress,uint _neederAmount)public payable{
Needer storage _needer = neederMap[_neederAmount];
_needer.amount +=msg.value;
_needer.funderAccount++;
_needer.amountOrigin[_needer.funderAccount] = Funder(_funderAddress,msg.value);
}
function isConpelete(uint256 _neederAmount) public{
Needer storage _needer = neederMap[_neederAmount];
if(_needer.amount >= _needer.goal){
_needer.neederAddress.transfer(_needer.amount);
}
}
function print(uint256 neederAmount) public view returns(uint256,uint256,uint256){
return(neederMap[neederAmount].goal,neederMap[neederAmount].amount,neederMap[neederAmount].funderAccount);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/191952.html
標籤:其他
