美文网首页
2023-12-28 solidity 平台币种转账

2023-12-28 solidity 平台币种转账

作者: gdchent | 来源:发表于2023-12-27 18:47 被阅读0次
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.20;
    
    contract MintContract {
        address public owner;
        mapping(address => uint256) mintMainMap; //平台主币种认购数目
        mapping(address => uint256) banlanceMap; //平台主币种余额数目
    
        event BatchMintWithEther(
            string indexed code,
            uint256 indexed mainNum,
            uint256 mainTotal,
            uint256 currentNum
        );
    
        constructor() {
            owner = msg.sender;
        }
    
        //使用modifile判断权限是不是某个人
        modifier onlyOwner() {
            require(owner == msg.sender, "only owner can call the function");
            _;
        }
    
        //获取主币种余额
        function getMainTokenBalance() public view returns (uint256) {
            return address(msg.sender).balance;
        }
    
        function getContractAddressBalance() public view returns (uint256) {
            return address(this).balance;
        }
    
        //获取合约的余额
        function getContractOwnerBalance() public view onlyOwner returns(uint256) {
            return address(owner).balance;
        }
    
        function getContractAddress() public view returns (address) {
            return address(this); //0xd9145CCE52D386f254917e481eB44e9943F39138
        }
    
        // //向合约发送主币要在该函数添加payable关键字 a给b转账
        function batchMintWithEther(string memory code,address receiveAddress, uint256 mintNum)
            external
            payable
        {
            require(msg.value > 0, "the balnace value must be more than 0");
            uint256 amount = address(msg.sender).balance; //获取当前地址
            require(amount > msg.value, "your wallet balance not enough");
            //a给b转账 基于合约转平台币种
            address payable receiveAdd = payable(receiveAddress); //拿到拉起钱包的人
            //https://www.cnblogs.com/x-poior/p/10511583.htmlv
            receiveAdd.transfer(msg.value);
            banlanceMap[receiveAddress] += msg.value;
            mintMainMap[msg.sender] += mintNum;
            //可以转账
            emit BatchMintWithEther(
                code,
                mintNum,
                mintMainMap[msg.sender],
                msg.value
            );
        }
    }
    
    

    相关文章

      网友评论

          本文标题:2023-12-28 solidity 平台币种转账

          本文链接:https://www.haomeiwen.com/subject/mttdndtx.html