智能合约开发实例(1)——众筹——2020.10.25

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);
    }
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blockchain_KT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值