// 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
);
}
}
网友评论