智能合约测试例子

javascript 复制代码
// SPDX-License-Identifier: MIT
pragma solidity >=0.4.11 <0.9.0;
contract CrowdFunding {
    // 定义的新类型包含两个属性。
    struct Funder {
        address addr;
        uint amount;
    }

    struct Campaign {
        address payable  beneficiary;
        uint fundingGoal;
        uint numFunders;
        uint amount;
        mapping (uint => Funder) funders;
    }

    uint numCampaigns;
    mapping (uint => Campaign)   campaigns;

    function newCampaign(address beneficiary, uint goal) public  returns (uint ) {
       uint campaignID = numCampaigns++; 

         Campaign storage c = campaigns[campaignID];
       c.beneficiary=payable(beneficiary);
       c.fundingGoal=goal;
       c.amount=0;
       c.numFunders=0;
       return campaignID;
    }

    function contribute(uint campaignID) public payable   {

        
        Campaign storage c = campaigns[campaignID];
       
        c.funders[c.numFunders++] = Funder({addr: msg.sender, amount: msg.value});
        c.amount += msg.value;

    }

    function checkGoalReached(uint campaignID) public    returns (bool reached) {
        Campaign storage c = campaigns[campaignID];
        if (c.amount < c.fundingGoal)
            return false;
        uint amount = c.amount;
        c.amount = 0;
        c.beneficiary.transfer(amount);
        return true;
    }
    function info(uint campaignID) public view returns(uint){
        Campaign storage c = campaigns[campaignID];
         uint amount = c.amount;
         return amount;
    }
}

Remix - Ethereum IDE

相关推荐
独泪了无痕3 分钟前
Lodash-JavaScript的实用工具库
前端·javascript
有趣的老凌4 分钟前
用 Vibe Coding 搭了一个完整小程序「一定能成」
前端·javascript·后端
kyriewen11 小时前
Anthropic 估值逼近万亿美元,Claude Sonnet 5 + Claude Science 一天两连发
前端·ai编程·claude
小徐_233312 小时前
Wot UI 2.2.0 发布:Button 新增 subtle,VideoPreview 预览体验继续增强
前端·微信小程序·uni-app
天蓝色的鱼鱼14 小时前
关于 CSS 你可能不知道的属性,但关键时刻很有用
前端·css
泯泷15 小时前
第 2 篇:设计第一套字节码:Opcode、Instruction 与 Constant Pool
前端·javascript·安全
妙码生花15 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装
前端·后端·ai编程
泯泷15 小时前
第 1 篇:从 1 + 2 开始:亲手写出第一台 JSVM
前端·javascript·安全
团团崽_七分甜15 小时前
Spring Boot 核心知识点总结
前端