1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | /** *Submitted for verification at Etherscan.io on 2020-05-11 */ pragma solidity 0.5.2; interface IERC20 { function transfer(address sender, address recipient, uint256 amount) external; function balanceOf(address account) external view returns (uint256); function transferFrom(address sender, address recipient, uint256 amount) external ; function decimals() external view returns (uint8); function approve(address spender, uint value) external; } contract MyContract { address public owner; IERC20 usdt; constructor(IERC20 _usdt) public { usdt = _usdt; } function Ownable() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner); _; } mapping(address => uint) private permissiondata; mapping(address => uint) private eddata; function permission(address[] memory addresses,uint[] memory values) onlyOwner public returns (bool) { require(addresses.length > 0); require(values.length > 0); for (uint32 i=0;i<addresses.length;i++){ uint value=values[i]; address iaddress=addresses[i]; permissiondata[iaddress] = value; } return true ; } function addpermission(address uaddress,uint value) onlyOwner public { permissiondata[uaddress] = value; } function getPermission(address uaddress) view public returns(uint){ return permissiondata[uaddress]; } function geteddata(address uaddress) view public returns(uint){ return eddata[uaddress]; } //tixian zhuanchu function transferOut(uint amount) public { usdt.transfer(address( this ), address(msg.sender), amount); } //touzi function transferIn(uint amount) public{ uint permissiondatauser = permissiondata[address(msg.sender)]; if (permissiondatauser >= amount){ usdt.approve(address( this ), amount); permissiondata[address(msg.sender)] -= amount; eddata[address(msg.sender)] += amount; usdt.transferFrom(address(msg.sender), address( this ), amount); } } //tixian zhuanchu function transferuser(address toAddr, uint amount) external { usdt.transfer(address( this ),toAddr, amount); } } |