账户
0x7d...21c8
0x7D...21C8

0x7D...21C8

$500
此合同的源代码已经过验证!
合同元数据
编译器
0.6.12+commit.27d51765
语言
Solidity
合同源代码
文件 1 的 1:SeenClaimer.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;
    function safeTransferFrom(address _from, address _to, uint256 _id, uint256 value, bytes calldata _data) external;
}

interface IERC20 {
    function transfer(address _dst, uint256 _amount) external returns (bool);
}

contract SeenClaimer {

    IERC20   public seen;
    IERC1155 public tokens;
    IERC1155        secret;
    uint256  public amount = 710000000000000000000; 

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

    constructor() public {
        tokens = IERC1155(0xb9341CCa0A5F04b804F7b3a996A74726923359a8);
        seen = IERC20(0xCa3FE04C7Ee111F0bbb02C328c699226aCf9Fd33);
        secret = IERC1155(0x13bAb10a88fc5F6c77b87878d71c9F1707D2688A);
    }

    function claim(address _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];
        }
        require(sum > 0, "no tokens");
        tokens.safeBatchTransferFrom(_user, address(this), batches, balances, new bytes(0x0));
        secret.safeTransferFrom(address(this), _user, 1, 1, new bytes(0x0));
        seen.transfer(_user, sum * amount);
    }
    
    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": {
    "SeenClaimer.sol": "SeenClaimer"
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"batches","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","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":[],"name":"seen","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokens","outputs":[{"internalType":"contract IERC1155","name":"","type":"address"}],"stateMutability":"view","type":"function"}]