Solidity 智能合约基础案例——抢红包(2023版)

该智能合约用Solidity编写,用于实现发红包和抢红包功能。发红包者可以设置红包类型(随机或平均分配),红包数量和总金额。抢红包者只能抢一次,合约会确保红包金额的正确分配,并在所有红包被领完后,允许发红包者销毁合约并退还余额。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例业务:土豪发红包,屌丝抢红包

需要实现的核心功能:

  • 发红包
  • 抢红包
  • 金额退还
  • 合约销毁

角色分析:

  • 土豪
  • 屌丝

土豪操作:

  • 发红包
  • 红包退回
  • 销毁合约

屌丝操作:

  • 抢红包

具体代码实现如下:

// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.7;
/*      1.sendpacket:随机或平均;
      2.stakepacket;
*/

contract redpacket{
    bool public rType;             //记录红包类型
    uint8 public rCount;               //红包数量
    uint256 public rTotalAmount;       //总金额
    address public tuhao;        //记录发红包人的地址
    mapping (address=>bool) panduan;    //判断是否已经抢过红包
    constructor(bool isAvg,uint8 _count,uint _amount)payable                  //是平均还是随机;红包数量
    {
        rType = isAvg;
        rCount = _count;
        rTotalAmount=_amount;
        require(_amount == msg.value,"redpacket's balance is ok");
        tuhao = msg.sender;
        

    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值