账户
0x67...CC0c
0x67...CC0c

0x67...CC0c

$500
此合同的源代码已经过验证!
合同元数据
编译器
0.6.7+commit.b8d736ae
语言
Solidity
合同源代码
文件 1 的 1:Claimer.sol
pragma solidity ^0.6.7;

interface IERC1155 {
    function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory);
    function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data) external;
}

contract Claimer {

    IERC1155 public tokens;
    address  public deployer;
    uint256  public end;

    uint256[] public batches = [1,2,3,4,5];

    constructor() public {
        tokens = IERC1155(0xb9341CCa0A5F04b804F7b3a996A74726923359a8);
        deployer = msg.sender;
        end = block.timestamp + 2 weeks;
    }

    function claim(address payable _user) public {
        address[] memory user = new address[](5);
        user[0] = _user;
        user[1] = _user;
        user[2] = _user;
        user[3] = _user;
        user[4] = _user;
        uint256[] memory balances = tokens.balanceOfBatch(user, batches);
        uint256 sum = 0;
        for (uint i = 0; i < balances.length; i++){
            sum += balances[i];
        }
        tokens.safeBatchTransferFrom(_user, address(this), batches, balances, new bytes(0x0));
        _user.transfer(sum * 1 ether);
    }

    function returnEth(address payable _who) external {
        require(msg.sender == deployer, "!deployer");
        require(block.timestamp > end, "not yet");
        _who.transfer(address(this).balance);
    }
    
    receive() external payable {}
    
    function onERC1155BatchReceived(address _operator, address _from, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data) external pure returns(bytes4) {
        return bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"));
    }

}
设置
{
  "compilationTarget": {
    "Claimer.sol": "Claimer"
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"batches","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_user","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address payable","name":"_who","type":"address"}],"name":"returnEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokens","outputs":[{"internalType":"contract IERC1155","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]