Contract 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0Claim Multiple416324102022-11-27 13:46:501 hr 33 mins ago0x6ee77e931c6154e4752c5bf832ce51f7897f105a IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00062384
0x0dfb1821b4465201a8b97df0051a1d3a1d7c58048c64ce466a58befeb8624450Buy Accesory416139262022-11-27 12:18:473 hrs 1 min ago0xdb54c320a0b1e994d2bf7dd2ec939f6c25918011 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00001996
0x06129377baaa35f348bddfc28ce93ecfbd5af4e7700058b7da704ca206409303Claim Mining Rew...416138742022-11-27 12:18:333 hrs 2 mins ago0xdb54c320a0b1e994d2bf7dd2ec939f6c25918011 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00001782
0x6348fb084b43e0c0b41dbb0a3630eb8bc2bcc8d612ad23aea4749975ab7e58fdClaim Multiple416110232022-11-27 12:04:383 hrs 15 mins ago0x4fc7b43e79d6afc0eb982c96dd9c025fdaa1504a IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00003434
0xca197239c24f448fe80327eb32b1c9c301bd528d785ce15be6c991af1d23dd27Feed Multiple415645842022-11-27 8:21:336 hrs 59 mins ago0x20a2fb1bb9e6c1443c11703ccecb3685cd99b7c5 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00002753
0xe386ef216af1b287515cda9c46718f44d0d486c34aec5936ad102a8dd9ce61adClaim Multiple415606972022-11-27 8:03:047 hrs 17 mins ago0xd72faa428a5be5186f13d0405aeb0401b131ecc2 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00014979
0xdd4b1e6a9a3ff59df1a10845f5a758859b2087c5618e5d41a08872696f83a8b1Feed Multiple415603592022-11-27 8:01:207 hrs 19 mins ago0xd72faa428a5be5186f13d0405aeb0401b131ecc2 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00012865
0x648aaf096e96e6ee504f5005869241f803abe5cdc59330144a0ab5d09a6abce6Claim Multiple415481592022-11-27 6:53:248 hrs 27 mins ago0xb0704ba969a38d17b318ba00be16c80cc83ce976 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00019429
0x71e33ddb7eab91341183432916508e5f54ce0414ce435c1bbe7b05300eb8df68Claim Mining Rew...414089232022-11-26 16:02:1423 hrs 18 mins ago0x97bd42e430ad80a19dd5be90a1ee82aafe85bdbc IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00002125
0x157ed5cb2cf166262efbc3ea05e635b3394c9941468f81541ec79fa6837d5247Buy Accesory414088092022-11-26 16:01:4223 hrs 18 mins ago0x97bd42e430ad80a19dd5be90a1ee82aafe85bdbc IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00002413
0xe872d5675a9c9f2d662ca36303428ebe212f670aa2c69dcbe7fabf18f9d715bcClaim Multiple413787632022-11-26 13:45:191 day 1 hr ago0x6ee77e931c6154e4752c5bf832ce51f7897f105a IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00062192
0x41acc163ed39fb36d08bd3e6008ed31c334b162b3c8bfec758509088a7cf070eFeed Multiple413784972022-11-26 13:44:021 day 1 hr ago0x6ee77e931c6154e4752c5bf832ce51f7897f105a IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00053012
0x81075b2e3597aa5e00f7358c82865e0a5cc6e0cc142b1d92894b2042566db2d2Claim Multiple413750532022-11-26 13:28:151 day 1 hr ago0x83eaaade60f906361c62fe41eaac89a726e92097 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.0002976
0xaf4c499fec51253632f92d6408ac224ad5b18ac68e4e1c92eea628753ca58aedClaim Multiple413681132022-11-26 12:54:291 day 2 hrs ago0xc2789babe1a5cd95e81ae5f2444e82e1391bf7ce IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00003121
0xb8a7b7a7f7bb9f8b790da280f545bbc37d986c880a428f923b1048135bfc2e2bClaim Multiple413465912022-11-26 11:11:111 day 4 hrs ago0x20a2fb1bb9e6c1443c11703ccecb3685cd99b7c5 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00002637
0xec8a7360cf44aaf0c107c16b9bbb4364ed1414c50909b6c16aa76f08b6865c16Claim Multiple412931192022-11-26 6:49:151 day 8 hrs ago0xb0704ba969a38d17b318ba00be16c80cc83ce976 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00019362
0x505f80e01bd36c206f73dd607ba305b5c07d13aae250cb837b79efc4a2aa93c3Feed Multiple412927572022-11-26 6:47:151 day 8 hrs ago0xb0704ba969a38d17b318ba00be16c80cc83ce976 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00017407
0xd5c5ebfb51618cec3c1616eb2f818e8e565b13acd1949f4d32e62ca4674399bfBuy Accesory412625662022-11-26 3:59:011 day 11 hrs ago0xdb54c320a0b1e994d2bf7dd2ec939f6c25918011 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00002038
0x5c8619f8e434a5bfbbfca50699ab10875b3bc987d13a0c7e7943741ca710e95cClaim Mining Rew...412625112022-11-26 3:58:411 day 11 hrs ago0xdb54c320a0b1e994d2bf7dd2ec939f6c25918011 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00001817
0xb73c41ca72ca86504761bdb367d1de848d5779616750c276434bbb3d3bc59531Claim Multiple412516552022-11-26 2:57:341 day 12 hrs ago0xd72faa428a5be5186f13d0405aeb0401b131ecc2 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00015221
0xdecaaa823b041aaf3fc3e672a79b6d0726933f2a08dd7237c00c7efd43d98b0fFeed Multiple412359052022-11-26 1:31:221 day 13 hrs ago0xd72faa428a5be5186f13d0405aeb0401b131ecc2 IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00012435
0x0f1268a4c7b5277b9b9fe88f7d9d2c8b34aaf9cd01c23591e05cb36954b63dfcFeed Multiple411475712022-11-25 17:01:411 day 22 hrs ago0x62d8ccd1fa4fb8fa281d4e06b8a9978d08fc185c IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00005329
0xd54c2c995ec50368c4bad89d32c169f9ddf7fb3d2bb12e663cbe75693e898860Feed Multiple411444222022-11-25 16:45:201 day 22 hrs ago0x4fc7b43e79d6afc0eb982c96dd9c025fdaa1504a IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00003972
0x5455e40541ee7fe97bac2f8b4125b7da9c08896f9178ed6cefd9c8bf1f997dfaClaim Multiple411441552022-11-25 16:43:581 day 22 hrs ago0x4fc7b43e79d6afc0eb982c96dd9c025fdaa1504a IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00003997
0x5ef108739dfc4daf7fe4789839c9cd0c45e3b1abdb3cc2e286390c1f11b57766Claim Mining Rew...411322582022-11-25 15:44:441 day 23 hrs ago0x97bd42e430ad80a19dd5be90a1ee82aafe85bdbc IN  0x58b1422b21d58ae6073ba7b28fee62f704fc25390 ETH0.00002097
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 0x72c546ffaba89b269c4290698d8f106f05e090fe0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 0x72c546ffaba89b269c4290698d8f106f05e090fe0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 0x72c546ffaba89b269c4290698d8f106f05e090fe0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 0x72c546ffaba89b269c4290698d8f106f05e090fe0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 0x72c546ffaba89b269c4290698d8f106f05e090fe0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 0x72c546ffaba89b269c4290698d8f106f05e090fe0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 0x72c546ffaba89b269c4290698d8f106f05e090fe0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 0x72c546ffaba89b269c4290698d8f106f05e090fe0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 0x72c546ffaba89b269c4290698d8f106f05e090fe0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 0x72c546ffaba89b269c4290698d8f106f05e090fe0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 0x72c546ffaba89b269c4290698d8f106f05e090fe0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 0x72c546ffaba89b269c4290698d8f106f05e090fe0 ETH
0x5a926248f787050e0c98d5d2f98d222c24f4bed838f08faf9d3ae2970ba10ca0416324102022-11-27 13:46:501 hr 33 mins ago 0x58b1422b21d58ae6073ba7b28fee62f704fc2539 CUDL Finance: CUDL Token0 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ArbiCudl

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 8 : ArbiCudl.sol
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
import "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";

// Interface for our erc20 token
interface IToken {
    function totalSupply() external view returns (uint256);

    function balanceOf(address tokenOwner)
        external
        view
        returns (uint256 balance);

    function allowance(address tokenOwner, address spender)
        external
        view
        returns (uint256 remaining);

    function transfer(address to, uint256 tokens)
        external
        returns (bool success);

    function approve(address spender, uint256 tokens)
        external
        returns (bool success);

    function transferFrom(
        address from,
        address to,
        uint256 tokens
    ) external returns (bool success);

    function mint(address to, uint256 amount) external;

    function burn(uint256 amount) external;

    function burnFrom(address account, uint256 amount) external;
}

interface iCUDLPets {
    function burn(uint256 token) external;
}

contract ArbiCudl is ERC721Holder, Ownable {
    address public MUSE_DAO;
    address public MUSE_DEVS;

    IToken public token;
    iCUDLPets public cudlPets;

    struct Pet {
        address nft;
        uint256 id;
    }

    mapping(address => bool) public supportedNfts;
    mapping(uint256 => Pet) public petDetails;

    // mining tokens
    mapping(uint256 => uint256) public lastTimeMined;

    // Pet properties
    mapping(uint256 => uint256) public timeUntilStarving;
    mapping(uint256 => uint256) public petScore;
    mapping(uint256 => bool) public petDead;
    mapping(uint256 => uint256) public timePetBorn;

    // items/benefits for the PET could be anything in the future.
    mapping(uint256 => uint256) public itemPrice;
    mapping(uint256 => uint256) public itemPoints;
    mapping(uint256 => string) public itemName;
    mapping(uint256 => uint256) public itemTimeExtension;

    mapping(uint256 => mapping(address => address)) public careTaker;

    mapping(address => mapping(uint256 => bool)) public isNftInTheGame; //keeps track if nft already played
    mapping(address => mapping(uint256 => uint256)) public nftToId; //keeps track if nft already played

    // whitelist contracts as operator

    mapping(address => bool) public isOperator;

    uint256 public giveLifePrice = 0;
    uint256 public feesEarned;
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;
    Counters.Counter private _itemIds;

    event Mined(uint256 nftId, uint256 reward, address recipient);
    event BuyAccessory(
        uint256 nftId,
        uint256 itemId,
        uint256 amount,
        uint256 itemTimeExtension,
        address buyer
    );
    event Fatalize(uint256 opponentId, uint256 nftId, address killer);
    event NewPlayer(
        address nftAddress,
        uint256 nftId,
        uint256 playerId,
        address owner
    );
    event Bonk(
        uint256 attacker,
        uint256 victim,
        uint256 winner,
        uint256 reward
    );

    // Rewards algorithm

    uint256 public la;
    uint256 public lb;
    uint256 public ra;
    uint256 public rb;

    address public lastBonker;

    bytes32 public OPERATOR_ROLE;

    constructor(address _token) {
        token = IToken(_token);

        la = 2;
        lb = 2;
        ra = 6;
        rb = 7;

        MUSE_DAO = 0x4B5922ABf25858d012d12bb1184e5d3d0B6D6BE4; //0x6fBa46974b2b1bEfefA034e236A32e1f10C5A148;
        MUSE_DEVS = 0x4B5922ABf25858d012d12bb1184e5d3d0B6D6BE4;

        // Add 6 accessories
        _itemIds.increment();
        uint256 newItemId = _itemIds.current();
        itemName[newItemId] = "bananuman";
        itemPrice[newItemId] = 0.5 ether;
        itemPoints[newItemId] = 100;
        itemTimeExtension[newItemId] = 2 days;

        _itemIds.increment();
        newItemId = _itemIds.current();
        itemName[newItemId] = "catnip";
        itemPrice[newItemId] = 0.6 ether;
        itemPoints[newItemId] = 190;
        itemTimeExtension[newItemId] = 1.5 days;

        _itemIds.increment();
        newItemId = _itemIds.current();
        itemName[newItemId] = "cucombre";
        itemPrice[newItemId] = 2 ether;
        itemPoints[newItemId] = 1;
        itemTimeExtension[newItemId] = 4 days;

        _itemIds.increment();
        newItemId = _itemIds.current();
        itemName[newItemId] = "moon milk";
        itemPrice[newItemId] = 5 ether;
        itemPoints[newItemId] = 1300;
        itemTimeExtension[newItemId] = 2 days;

        _itemIds.increment();
        newItemId = _itemIds.current();
        itemName[newItemId] = "thic duck";
        itemPrice[newItemId] = 0.8 ether;
        itemPoints[newItemId] = 50;
        itemTimeExtension[newItemId] = 3 days;

        _itemIds.increment();
        newItemId = _itemIds.current();
        itemName[newItemId] = "tuna";
        itemPrice[newItemId] = 10 ether;
        itemPoints[newItemId] = 2700;
        itemTimeExtension[newItemId] = 5 days;
    }

    modifier isAllowed(uint256 _id) {
        Pet memory _pet = petDetails[_id];
        address ownerOf = IERC721(_pet.nft).ownerOf(_pet.id);
        require(
            ownerOf == msg.sender || careTaker[_id][ownerOf] == msg.sender,
            "!owner"
        );
        _;
    }

    modifier onlyOperator() {
        require(
            isOperator[msg.sender],
            "Roles: caller does not have the OPERATOR role"
        );
        _;
    }

    // GAME ACTIONS

    //can mine once every 24 hours per token.
    function claimMiningRewards(uint256 nftId) public isAllowed(nftId) {
        require(isPetSafe(nftId), "Your pet is starving, you can't mine");
        require(
            block.timestamp >= lastTimeMined[nftId] + 1 days ||
                lastTimeMined[nftId] == 0,
            "Current timestamp is over the limit to claim the tokens"
        );

        //This is the case where the pet was hibernating so we put back his TOD to 1 day
        if (timeUntilStarving[nftId] > block.timestamp + 5 days) {
            timeUntilStarving[nftId] = block.timestamp + 1 days;
        }

        //reset last start mined so can't remine and cheat
        lastTimeMined[nftId] = block.timestamp;

        uint256 _reward = getRewards(nftId);

        // 10% fees are for dev/dao/projects
        token.mint(msg.sender, _reward);

        emit Mined(nftId, _reward, msg.sender);
    }

    // Buy accesory to the VNFT
    function buyAccesory(uint256 nftId, uint256 itemId) public {
        require(!petDead[nftId], "ded pet");

        uint256 amount = itemPrice[itemId];
        require(amount > 0, "item does not exist");

        // recalculate time until starving
        timeUntilStarving[nftId] = block.timestamp + itemTimeExtension[itemId];
        petScore[nftId] += itemPoints[itemId];

        token.burnFrom(msg.sender, amount);

        feesEarned += amount / 10;

        emit BuyAccessory(
            nftId,
            itemId,
            amount,
            itemTimeExtension[itemId],
            msg.sender
        );
    }

    function feedMultiple(uint256[] calldata ids, uint256[] calldata itemIds)
        external
    {
        for (uint256 i = 0; i < ids.length; i++) {
            buyAccesory(ids[i], itemIds[i]);
        }
    }

    function claimMultiple(uint256[] calldata ids) external {
        for (uint256 i = 0; i < ids.length; i++) {
            claimMiningRewards(ids[i]);
        }
    }

    //TOOD DECIDE FATALITY
    function fatality(uint256 _deadId, uint256 _tokenId) external {
        require(
            !isPetSafe(_deadId) && petDead[_deadId] == false,
            "The PET has to be starved to claim his points"
        );

        petScore[_tokenId] =
            petScore[_tokenId] +
            (((petScore[_deadId] * (20)) / (100)));

        petScore[_deadId] = 0;

        petDead[_deadId] = true;

        // If the pet is the native pets then burn them.
        address nft;
        uint256 nftId;
        (, , , , , , , , , nft, nftId, ) = getPetInfo(_deadId);
        if (nft == address(cudlPets)) {
            cudlPets.burn(nftId);
        }
        emit Fatalize(_deadId, _tokenId, msg.sender);
    }

    function getCareTaker(uint256 _tokenId, address _owner)
        public
        view
        returns (address)
    {
        return (careTaker[_tokenId][_owner]);
    }

    function setCareTaker(
        uint256 _tokenId,
        address _careTaker,
        bool clearCareTaker
    ) external isAllowed(_tokenId) {
        if (clearCareTaker) {
            delete careTaker[_tokenId][msg.sender];
        } else {
            careTaker[_tokenId][msg.sender] = _careTaker;
        }
    }

    // requires approval
    function giveLife(address nft, uint256 _id) external {
        require(IERC721(nft).ownerOf(_id) == msg.sender, "!OWNER");
        require(
            !isNftInTheGame[nft][_id],
            "this nft was already registered can't again"
        );
        require(supportedNfts[nft], "!forbidden");

        // burn 6 cudl to join
        if (nft != address(cudlPets)) {
            token.burnFrom(msg.sender, giveLifePrice);
        }

        uint256 newId = _tokenIds.current();
        // set the pet struct
        petDetails[newId] = Pet(nft, _id);

        nftToId[nft][_id] = newId;

        isNftInTheGame[nft][_id] = true;

        timeUntilStarving[newId] = block.timestamp + 3 days; //start with 3 days of life.
        timePetBorn[newId] = block.timestamp;

        emit NewPlayer(nft, _id, newId, msg.sender);

        _tokenIds.increment();
    }

    // GETTERS
    // check that pet didn't starve
    function isPetSafe(uint256 _nftId) public view returns (bool) {
        uint256 _timeUntilStarving = timeUntilStarving[_nftId];
        if (
            (_timeUntilStarving != 0 && _timeUntilStarving >= block.timestamp)
        ) {
            return true;
        } else {
            return false;
        }
    }

    // Allowed contracts

    function burnScore(uint256 petId, uint256 amount) external onlyOperator {
        require(!petDead[petId]);

        petScore[petId] -= amount;
    }

    function addScore(uint256 petId, uint256 amount) external onlyOperator {
        require(!petDead[petId]);
        petScore[petId] += amount;
    }

    function addTOD(uint256 petId, uint256 duration) external onlyOperator {
        require(!petDead[petId]);
        timeUntilStarving[petId] += duration;
    }

    function burnTod(uint256 petId, uint256 duration) external onlyOperator {
        require(!petDead[petId]);
        timeUntilStarving[petId] -= duration;
    }

    // GETTERS

    function getPetInfo(uint256 _nftId)
        public
        view
        returns (
            uint256 _pet,
            bool _isStarving,
            uint256 _score,
            uint256 _level,
            uint256 _expectedReward,
            uint256 _timeUntilStarving,
            uint256 _lastTimeMined,
            uint256 _timepetBorn,
            address _owner,
            address _token,
            uint256 _tokenId,
            bool _isAlive
        )
    {
        Pet memory thisPet = petDetails[_nftId];

        _pet = _nftId;
        _isStarving = !this.isPetSafe(_nftId);
        _score = petScore[_nftId];
        _level = level(_nftId);
        _expectedReward = getRewards(_nftId);
        _timeUntilStarving = timeUntilStarving[_nftId];
        _lastTimeMined = lastTimeMined[_nftId];
        _timepetBorn = timePetBorn[_nftId];
        _owner = IERC721(thisPet.nft).ownerOf(thisPet.id);
        _token = petDetails[_nftId].nft;
        _tokenId = petDetails[_nftId].id;
        _isAlive = !petDead[_nftId];
    }

    // get the level the pet is on to calculate the token reward
    function getRewards(uint256 tokenId) public view returns (uint256) {
        // This is the formula to get token rewards R(level)=(level)*6/7+6
        uint256 _level = level(tokenId);
        if (_level == 1) {
            return 600000000000000000;
        }
        _level = (_level * 100000000000000000 * ra) / rb;
        return (_level + 500000000000000000);
    }

    // get the level the pet is on to calculate points
    function level(uint256 tokenId) public view returns (uint256) {
        // This is the formula L(x) = 2 * sqrt(x * 2)
        uint256 _score = petScore[tokenId] / 100;
        if (_score == 0) {
            return 1;
        }
        uint256 _level = sqrtu(_score * la);
        return (_level * lb);
    }

    // ADMIN

    function editCurves(
        uint256 _la,
        uint256 _lb,
        uint256 _ra,
        uint256 _rb
    ) external onlyOperator {
        la = _la;
        lb = _lb;
        ra = _ra;
        rb = _rb;
    }

    function changeToken(address newToken) external onlyOperator {
        token = IToken(newToken);
    }

    function setGiveLifePrice(uint256 _price) external onlyOperator {
        giveLifePrice = _price;
    }

    function setPets(address _pets) external onlyOperator {
        cudlPets = iCUDLPets(_pets);
    }

    // edit specific item in case token goes up in value and the price for items gets to expensive for normal users.
    function editItem(
        uint256 _id,
        uint256 _price,
        uint256 _points,
        string calldata _name,
        uint256 _timeExtension
    ) external onlyOperator {
        itemPrice[_id] = _price;
        itemPoints[_id] = _points;
        itemName[_id] = _name;
        itemTimeExtension[_id] = _timeExtension;
    }

    // to support more projects
    function setSupported(address _nft, bool isSupported) public onlyOperator {
        supportedNfts[_nft] = isSupported;
    }

    function addOperator(address _address, bool _isAllowed) public onlyOwner {
        isOperator[_address] = _isAllowed;
    }

    // add items/accessories
    function createItem(
        string calldata name,
        uint256 price,
        uint256 points,
        uint256 timeExtension
    ) external onlyOperator {
        _itemIds.increment();
        uint256 newItemId = _itemIds.current();
        itemName[newItemId] = name;
        itemPrice[newItemId] = price;
        itemPoints[newItemId] = points;
        itemTimeExtension[newItemId] = timeExtension;
    }

    function changeEarners(address _newAddress, address _dao) public onlyOwner {
        MUSE_DEVS = _newAddress;
        MUSE_DAO = _dao;
    }

    // anyone can call this
    function claimEarnings() public {
        token.mint(address(this), feesEarned);
        feesEarned = 0;

        uint256 balance = token.balanceOf(address(this));
        token.transfer(MUSE_DAO, (balance * 70) / 100);
        token.transfer(MUSE_DEVS, (balance * 30) / 100);
    }

    function sqrtu(uint256 x) private pure returns (uint128) {
        if (x == 0) return 0;
        else {
            uint256 xx = x;
            uint256 r = 1;
            if (xx >= 0x100000000000000000000000000000000) {
                xx >>= 128;
                r <<= 64;
            }
            if (xx >= 0x10000000000000000) {
                xx >>= 64;
                r <<= 32;
            }
            if (xx >= 0x100000000) {
                xx >>= 32;
                r <<= 16;
            }
            if (xx >= 0x10000) {
                xx >>= 16;
                r <<= 8;
            }
            if (xx >= 0x100) {
                xx >>= 8;
                r <<= 4;
            }
            if (xx >= 0x10) {
                xx >>= 4;
                r <<= 2;
            }
            if (xx >= 0x8) {
                r <<= 1;
            }
            r = (r + x / r) >> 1;
            r = (r + x / r) >> 1;
            r = (r + x / r) >> 1;
            r = (r + x / r) >> 1;
            r = (r + x / r) >> 1;
            r = (r + x / r) >> 1;
            r = (r + x / r) >> 1; // Seven iterations should be enough
            uint256 r1 = x / r;
            return uint128(r < r1 ? r : r1);
        }
    }
}

File 2 of 8 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 8 : Counters.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @title Counters
 * @author Matt Condon (@shrugs)
 * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number
 * of elements in a mapping, issuing ERC721 ids, or counting request ids.
 *
 * Include with `using Counters for Counters.Counter;`
 */
library Counters {
    struct Counter {
        // This variable should never be directly accessed by users of the library: interactions must be restricted to
        // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add
        // this feature: see https://github.com/ethereum/solidity/issues/4637
        uint256 _value; // default: 0
    }

    function current(Counter storage counter) internal view returns (uint256) {
        return counter._value;
    }

    function increment(Counter storage counter) internal {
        unchecked {
            counter._value += 1;
        }
    }

    function decrement(Counter storage counter) internal {
        uint256 value = counter._value;
        require(value > 0, "Counter: decrement overflow");
        unchecked {
            counter._value = value - 1;
        }
    }

    function reset(Counter storage counter) internal {
        counter._value = 0;
    }
}

File 4 of 8 : IERC721.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../../utils/introspection/IERC165.sol";

/**
 * @dev Required interface of an ERC721 compliant contract.
 */
interface IERC721 is IERC165 {
    /**
     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.
     */
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
     */
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
     */
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /**
     * @dev Returns the number of tokens in ``owner``'s account.
     */
    function balanceOf(address owner) external view returns (uint256 balance);

    /**
     * @dev Returns the owner of the `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function ownerOf(uint256 tokenId) external view returns (address owner);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
     * are aware of the ERC721 protocol to prevent tokens from being forever locked.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Transfers `tokenId` token from `from` to `to`.
     *
     * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Gives permission to `to` to transfer `tokenId` token to another account.
     * The approval is cleared when the token is transferred.
     *
     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.
     *
     * Requirements:
     *
     * - The caller must own the token or be an approved operator.
     * - `tokenId` must exist.
     *
     * Emits an {Approval} event.
     */
    function approve(address to, uint256 tokenId) external;

    /**
     * @dev Returns the account approved for `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function getApproved(uint256 tokenId) external view returns (address operator);

    /**
     * @dev Approve or remove `operator` as an operator for the caller.
     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
     *
     * Requirements:
     *
     * - The `operator` cannot be the caller.
     *
     * Emits an {ApprovalForAll} event.
     */
    function setApprovalForAll(address operator, bool _approved) external;

    /**
     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
     *
     * See {setApprovalForAll}
     */
    function isApprovedForAll(address owner, address operator) external view returns (bool);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;
}

File 5 of 8 : ERC721Holder.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../IERC721Receiver.sol";

/**
 * @dev Implementation of the {IERC721Receiver} interface.
 *
 * Accepts all token transfers.
 * Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}.
 */
contract ERC721Holder is IERC721Receiver {
    /**
     * @dev See {IERC721Receiver-onERC721Received}.
     *
     * Always returns `IERC721Receiver.onERC721Received.selector`.
     */
    function onERC721Received(
        address,
        address,
        uint256,
        bytes memory
    ) public virtual override returns (bytes4) {
        return this.onERC721Received.selector;
    }
}

File 6 of 8 : Context.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 7 of 8 : IERC165.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

File 8 of 8 : IERC721Receiver.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @title ERC721 token receiver interface
 * @dev Interface for any contract that wants to support safeTransfers
 * from ERC721 asset contracts.
 */
interface IERC721Receiver {
    /**
     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}
     * by `operator` from `from`, this function is called.
     *
     * It must return its Solidity selector to confirm the token transfer.
     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.
     *
     * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.
     */
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"attacker","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"victim","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"winner","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"Bonk","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"nftId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"itemId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"itemTimeExtension","type":"uint256"},{"indexed":false,"internalType":"address","name":"buyer","type":"address"}],"name":"BuyAccessory","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"opponentId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nftId","type":"uint256"},{"indexed":false,"internalType":"address","name":"killer","type":"address"}],"name":"Fatalize","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"nftId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"Mined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"nftAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"nftId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"playerId","type":"uint256"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"NewPlayer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"MUSE_DAO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MUSE_DEVS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isAllowed","type":"bool"}],"name":"addOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"petId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addScore","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"petId","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"addTOD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"petId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnScore","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"petId","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"burnTod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nftId","type":"uint256"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"name":"buyAccesory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"careTaker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"},{"internalType":"address","name":"_dao","type":"address"}],"name":"changeEarners","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newToken","type":"address"}],"name":"changeToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimEarnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nftId","type":"uint256"}],"name":"claimMiningRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"claimMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"points","type":"uint256"},{"internalType":"uint256","name":"timeExtension","type":"uint256"}],"name":"createItem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cudlPets","outputs":[{"internalType":"contract iCUDLPets","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_la","type":"uint256"},{"internalType":"uint256","name":"_lb","type":"uint256"},{"internalType":"uint256","name":"_ra","type":"uint256"},{"internalType":"uint256","name":"_rb","type":"uint256"}],"name":"editCurves","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"uint256","name":"_points","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"uint256","name":"_timeExtension","type":"uint256"}],"name":"editItem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadId","type":"uint256"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"fatality","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"name":"feedMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesEarned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"}],"name":"getCareTaker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nftId","type":"uint256"}],"name":"getPetInfo","outputs":[{"internalType":"uint256","name":"_pet","type":"uint256"},{"internalType":"bool","name":"_isStarving","type":"bool"},{"internalType":"uint256","name":"_score","type":"uint256"},{"internalType":"uint256","name":"_level","type":"uint256"},{"internalType":"uint256","name":"_expectedReward","type":"uint256"},{"internalType":"uint256","name":"_timeUntilStarving","type":"uint256"},{"internalType":"uint256","name":"_lastTimeMined","type":"uint256"},{"internalType":"uint256","name":"_timepetBorn","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bool","name":"_isAlive","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"nft","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"giveLife","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"giveLifePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"isNftInTheGame","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nftId","type":"uint256"}],"name":"isPetSafe","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"itemName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"itemPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"itemPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"itemTimeExtension","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"la","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastBonker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastTimeMined","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"level","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nftToId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"petDead","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"petDetails","outputs":[{"internalType":"address","name":"nft","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"petScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_careTaker","type":"address"},{"internalType":"bool","name":"clearCareTaker","type":"bool"}],"name":"setCareTaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"setGiveLifePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pets","type":"address"}],"name":"setPets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_nft","type":"address"},{"internalType":"bool","name":"isSupported","type":"bool"}],"name":"setSupported","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"supportedNfts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"timePetBorn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"timeUntilStarving","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260006014553480156200001657600080fd5b50604051620030a3380380620030a383398101604081905262000039916200058d565b62000044336200048a565b600380546001600160a01b03199081166001600160a01b038416179091556002601881905560198190556006601a556007601b5560018054734b5922abf25858d012d12bb1184e5d3d0b6d6be4908416811790915581549092169091179055620000bb6017620004da602090811b6200217717901c565b6000620000d46017620004e360201b620021801760201c565b60408051808201825260098152683130b730b73ab6b0b760b91b60208083019182526000858152600e9091529290922090519293506200011792909190620004e7565b506000818152600c602090815260408083206706f05b59d3b200009055600d825280832060649055600f82529091206202a3009055620001639060179062002177620004da821b17901c565b6200017a6017620004e360201b620021801760201c565b604080518082018252600681526506361746e69760d41b60208083019182526000858152600e909152929092209051929350620001ba92909190620004e7565b506000818152600c60209081526040808320670853a0d2313c00009055600d825280832060be9055600f82529091206201fa409055620002069060179062002177620004da821b17901c565b6200021d6017620004e360201b620021801760201c565b60408051808201825260088152676375636f6d62726560c01b60208083019182526000858152600e9091529290922090519293506200025f92909190620004e7565b506000818152600c60209081526040808320671bc16d674ec800009055600d825280832060019055600f8252909120620546009055620002ab9060179062002177620004da821b17901c565b620002c26017620004e360201b620021801760201c565b60408051808201825260098152686d6f6f6e206d696c6b60b81b60208083019182526000858152600e9091529290922090519293506200030592909190620004e7565b506000818152600c60209081526040808320674563918244f400009055600d82528083206105149055600f82529091206202a3009055620003529060179062002177620004da821b17901c565b620003696017620004e360201b620021801760201c565b604080518082018252600981526874686963206475636b60b81b60208083019182526000858152600e909152929092209051929350620003ac92909190620004e7565b506000818152600c60209081526040808320670b1a2bc2ec5000009055600d825280832060329055600f82529091206203f4809055620003f89060179062002177620004da821b17901c565b6200040f6017620004e360201b620021801760201c565b604080518082018252600481526374756e6160e01b60208083019182526000858152600e9091529290922090519293506200044d92909190620004e7565b506000908152600c60209081526040808320678ac7230489e800009055600d8252808320610a8c9055600f909152902062069780905550620005fa565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80546001019055565b5490565b828054620004f590620005bd565b90600052602060002090601f01602090048101928262000519576000855562000564565b82601f106200053457805160ff191683800117855562000564565b8280016001018555821562000564579182015b828111156200056457825182559160200191906001019062000547565b506200057292915062000576565b5090565b5b8082111562000572576000815560010162000577565b6000602082840312156200059f578081fd5b81516001600160a01b0381168114620005b6578182fd5b9392505050565b600281046001821680620005d257607f821691505b60208210811415620005f457634e487b7160e01b600052602260045260246000fd5b50919050565b612a99806200060a6000396000f3fe608060405234801561001057600080fd5b50600436106103835760003560e01c80638652e49c116101de578063c0d8012c1161010f578063d9ceab13116100ad578063f2fde38b1161007c578063f2fde38b146108fb578063f5b541a61461090e578063f7b30b6e14610917578063fc0c546a1461096957610383565b8063d9ceab13146108ba578063ddcbf794146108c2578063e6515077146108d5578063ee216e79146108e857610383565b8063cfaa9698116100e9578063cfaa969814610868578063d50509f51461088b578063d5936b7f14610894578063d822d96b146108a757610383565b8063c0d8012c14610818578063c88a7c2f1461082b578063c8cbdedc1461085f57610383565b8063aa00d18e1161017c578063b6ae33d811610156578063b6ae33d8146107c6578063b7a26767146107cf578063bb953261146107f2578063bc721e061461080557610383565b8063aa00d18e14610768578063adcb005c14610793578063b14b29fe146107b357610383565b80638da5cb5b116101b85780638da5cb5b146107285780639051cce91461073957806390c33c3f1461074c57806399cc726d1461075557610383565b80638652e49c146106e25780638838cefb146107025780638d37a4ac1461071557610383565b80635435f9d6116102b857806371701a4411610256578063773cf24311610230578063773cf2431461068957806377fe73e3146106a957806379c5cb1c146106bc57806382b4a084146106cf57610383565b806371701a44146106325780637310dc8a1461063b578063769ab6861461065b57610383565b806366829b161161029257806366829b161461056a57806369c3f3161461057d5780636d70f7ae146105f7578063715018a61461062a57610383565b80635435f9d614610500578063574dd8b91461053757806365d6913f1461055757610383565b806319660d21116103255780632ee8a4a9116102ff5780632ee8a4a9146104be57806345dd6f72146104c75780634f188a75146104da57806350f70af9146104ed57610383565b806319660d211461046b5780632030c4b01461048b5780632af0484d146104ab57610383565b806313c2dfc31161036157806313c2dfc3146103d6578063150b7a02146103f657806317bf7bee1461042d57806317c9dfe01461045857610383565b8063024759c61461038857806305c58df21461039d57806310cc610c146103c3575b600080fd5b61039b6103963660046125be565b61097c565b005b6103b06103ab366004612733565b6109da565b6040519081526020015b60405180910390f35b61039b6103d13660046127c8565b610a4c565b6103b06103e4366004612733565b60096020526000908152604090205481565b6104146104043660046124e5565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016103ba565b600454610440906001600160a01b031681565b6040516001600160a01b0390911681526020016103ba565b61039b6104663660046127c8565b610c27565b6103b0610479366004612733565b600f6020526000908152604090205481565b6103b0610499366004612733565b600d6020526000908152604090205481565b61039b6104b93660046125eb565b610c99565b6103b0601a5481565b61039b6104d5366004612733565b610fc2565b61039b6104e8366004612475565b610ff6565b61039b6104fb366004612733565b611047565b61044061050e366004612763565b60009182526010602090815260408084206001600160a01b039384168552909152909120541690565b6103b0610545366004612733565b60076020526000908152604090205481565b61039b610565366004612787565b611369565b61039b610578366004612475565b6114ea565b61059061058b366004612733565b61153b565b604080519c8d529a151560208d0152998b019890985260608a0196909652608089019490945260a088019290925260c087015260e08601526001600160a01b03908116610100860152166101208401526101408301521515610160820152610180016103ba565b61061a610605366004612475565b60136020526000908152604090205460ff1681565b60405190151581526020016103ba565b61039b611747565b6103b060145481565b61064e610649366004612733565b61177d565b6040516103ba9190612881565b61061a6106693660046125eb565b601160209081526000928352604080842090915290825290205460ff1681565b6103b0610697366004612733565b600b6020526000908152604090205481565b61039b6106b7366004612850565b611817565b61039b6106ca3660046126db565b61185a565b61039b6106dd366004612656565b6118ec565b6103b06106f0366004612733565b60086020526000908152604090205481565b61039b6107103660046124ad565b611966565b600154610440906001600160a01b031681565b6000546001600160a01b0316610440565b61039b610747366004612616565b6119be565b6103b060185481565b61039b6107633660046127e9565b611a0a565b6103b06107763660046125eb565b601260209081526000928352604080842090915290825290205481565b6103b06107a1366004612733565b600c6020526000908152604090205481565b61039b6107c13660046127c8565b611a83565b6103b0601b5481565b61061a6107dd366004612475565b60056020526000908152604090205460ff1681565b601c54610440906001600160a01b031681565b61039b6108133660046127c8565b611aec565b6103b0610826366004612733565b611cb6565b610440610839366004612763565b60106020908152600092835260408084209091529082529020546001600160a01b031681565b6103b060195481565b61061a610876366004612733565b600a6020526000908152604090205460ff1681565b6103b060155481565b61039b6108a23660046125be565b611d25565b61061a6108b5366004612733565b611d7f565b61039b611dbc565b61039b6108d03660046127c8565b61200a565b61039b6108e33660046127c8565b612073565b600254610440906001600160a01b031681565b61039b610909366004612475565b6120dc565b6103b0601d5481565b61094a610925366004612733565b600660205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b0390931683526020830191909152016103ba565b600354610440906001600160a01b031681565b6000546001600160a01b031633146109af5760405162461bcd60e51b81526004016109a690612921565b60405180910390fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b60008181526009602052604081205481906109f79060649061296e565b905080610a08576001915050610a47565b6000610a2060185483610a1b919061298e565b612184565b6fffffffffffffffffffffffffffffffff16905060195481610a42919061298e565b925050505b919050565b6000828152600a602052604090205460ff1615610a955760405162461bcd60e51b8152602060048201526007602482015266191959081c195d60ca1b60448201526064016109a6565b6000818152600c602052604090205480610ae75760405162461bcd60e51b81526020600482015260136024820152721a5d195b48191bd95cc81b9bdd08195e1a5cdd606a1b60448201526064016109a6565b6000828152600f6020526040902054610b009042612956565b600084815260086020908152604080832093909355848252600d81528282205486835260099091529181208054909190610b3b908490612956565b909155505060035460405163079cc67960e41b8152336004820152602481018390526001600160a01b03909116906379cc679090604401600060405180830381600087803b158015610b8c57600080fd5b505af1158015610ba0573d6000803e3d6000fd5b50505050600a81610bb1919061296e565b60156000828254610bc29190612956565b90915550506000828152600f6020908152604091829020548251868152918201859052818301849052606082015233608082015290517f85b7f043f9e667afc493e11c116100c6106826ee7ff6fbabb851dd14432289999181900360a00190a1505050565b3360009081526013602052604090205460ff16610c565760405162461bcd60e51b81526004016109a6906128d4565b6000828152600a602052604090205460ff1615610c7257600080fd5b60008281526008602052604081208054839290610c90908490612956565b90915550505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b03841690636352211e9060240160206040518083038186803b158015610cdb57600080fd5b505afa158015610cef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d139190612491565b6001600160a01b031614610d525760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109a6565b6001600160a01b038216600090815260116020908152604080832084845290915290205460ff1615610dda5760405162461bcd60e51b815260206004820152602b60248201527f74686973206e66742077617320616c726561647920726567697374657265642060448201526a31b0b713ba1030b3b0b4b760a91b60648201526084016109a6565b6001600160a01b03821660009081526005602052604090205460ff16610e2f5760405162461bcd60e51b815260206004820152600a60248201526910b337b93134b23232b760b11b60448201526064016109a6565b6004546001600160a01b03838116911614610ead5760035460145460405163079cc67960e41b815233600482015260248101919091526001600160a01b03909116906379cc679090604401600060405180830381600087803b158015610e9457600080fd5b505af1158015610ea8573d6000803e3d6000fd5b505050505b6000610eb860165490565b6040805180820182526001600160a01b038681168083526020808401888152600087815260068352868120955186546001600160a01b03191695169490941785555160019485015581835260128152848320888452815284832086905590825260118152838220878352905291909120805460ff191690911790559050610f42426203f480612956565b600082815260086020908152604080832093909355600b81529082902042905581516001600160a01b03861681529081018490529081018290523360608201527faad233c151314c66c48330bf875520dddd59a28b9f9e4a48ca74eeedade6e07b9060800160405180910390a1610fbd601680546001019055565b505050565b3360009081526013602052604090205460ff16610ff15760405162461bcd60e51b81526004016109a6906128d4565b601455565b3360009081526013602052604090205460ff166110255760405162461bcd60e51b81526004016109a6906128d4565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60008181526006602090815260408083208151808301835281546001600160a01b031680825260019092015493810184905291516331a9108f60e11b8152600481019390935284939192636352211e9060240160206040518083038186803b1580156110b257600080fd5b505afa1580156110c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ea9190612491565b90506001600160a01b038116331480611126575060008381526010602090815260408083206001600160a01b0385811685529252909120541633145b61115b5760405162461bcd60e51b815260206004820152600660248201526510b7bbb732b960d11b60448201526064016109a6565b61116484611d7f565b6111bc5760405162461bcd60e51b8152602060048201526024808201527f596f757220706574206973207374617276696e672c20796f752063616e2774206044820152636d696e6560e01b60648201526084016109a6565b6000848152600760205260409020546111d89062015180612956565b421015806111f25750600084815260076020526040902054155b6112645760405162461bcd60e51b815260206004820152603760248201527f43757272656e742074696d657374616d70206973206f76657220746865206c6960448201527f6d697420746f20636c61696d2074686520746f6b656e7300000000000000000060648201526084016109a6565b6112714262069780612956565b60008581526008602052604090205411156112a3576112934262015180612956565b6000858152600860205260409020555b60008481526007602052604081204290556112bd85611cb6565b6003546040516340c10f1960e01b8152336004820152602481018390529192506001600160a01b0316906340c10f1990604401600060405180830381600087803b15801561130a57600080fd5b505af115801561131e573d6000803e3d6000fd5b50506040805188815260208101859052338183015290517fb4d85c617a49c30379df4c6de49e4afae67822cfcee57ccc8e4de36eb9bd18c99350908190036060019150a15050505050565b60008381526006602090815260408083208151808301835281546001600160a01b031680825260019092015493810184905291516331a9108f60e11b8152600481019390935286939192636352211e9060240160206040518083038186803b1580156113d457600080fd5b505afa1580156113e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140c9190612491565b90506001600160a01b038116331480611448575060008381526010602090815260408083206001600160a01b0385811685529252909120541633145b61147d5760405162461bcd60e51b815260206004820152600660248201526510b7bbb732b960d11b60448201526064016109a6565b83156114af576000868152601060209081526040808320338452909152902080546001600160a01b03191690556114e2565b6000868152601060209081526040808320338452909152902080546001600160a01b0319166001600160a01b0387161790555b505050505050565b3360009081526013602052604090205460ff166115195760405162461bcd60e51b81526004016109a6906128d4565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60008181526006602090815260408083208151808301835281546001600160a01b03168152600190910154928101929092525163d822d96b60e01b815260048101849052839291829182918291829182918291829182918291829190309063d822d96b9060240160206040518083038186803b1580156115ba57600080fd5b505afa1580156115ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f291906126bf565b60008f81526009602052604090205490159c509a506116108e6109da565b995061161b8e611cb6565b60008f8152600860209081526040808320546007835281842054600b8452938290205486519387015192516331a9108f60e11b8152959e50909c50929a509198506001600160a01b031691636352211e9161167c9160040190815260200190565b60206040518083038186803b15801561169457600080fd5b505afa1580156116a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cc9190612491565b9450600660008f815260200190815260200160002060000160009054906101000a90046001600160a01b03169350600660008f8152602001908152602001600020600101549250600a60008f815260200190815260200160002060009054906101000a900460ff161591505091939597999b5091939597999b565b6000546001600160a01b031633146117715760405162461bcd60e51b81526004016109a690612921565b61177b6000612303565b565b600e6020526000908152604090208054611796906129c4565b80601f01602080910402602001604051908101604052809291908181526020018280546117c2906129c4565b801561180f5780601f106117e45761010080835404028352916020019161180f565b820191906000526020600020905b8154815290600101906020018083116117f257829003601f168201915b505050505081565b3360009081526013602052604090205460ff166118465760405162461bcd60e51b81526004016109a6906128d4565b601893909355601991909155601a55601b55565b3360009081526013602052604090205460ff166118895760405162461bcd60e51b81526004016109a6906128d4565b611897601780546001019055565b60006118a260175490565b6000818152600e602052604090209091506118be908787612353565b506000908152600c6020908152604080832095909555600d815284822093909355600f909252919020555050565b60005b8381101561195f5761194d85858381811061191a57634e487b7160e01b600052603260045260246000fd5b9050602002013584848481811061194157634e487b7160e01b600052603260045260246000fd5b90506020020135610a4c565b80611957816129f9565b9150506118ef565b5050505050565b6000546001600160a01b031633146119905760405162461bcd60e51b81526004016109a690612921565b600280546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055565b60005b81811015610fbd576119f88383838181106119ec57634e487b7160e01b600052603260045260246000fd5b90506020020135611047565b80611a02816129f9565b9150506119c1565b3360009081526013602052604090205460ff16611a395760405162461bcd60e51b81526004016109a6906128d4565b6000868152600c60209081526040808320889055600d8252808320879055600e9091529020611a69908484612353565b506000958652600f60205260409095209490945550505050565b3360009081526013602052604090205460ff16611ab25760405162461bcd60e51b81526004016109a6906128d4565b6000828152600a602052604090205460ff1615611ace57600080fd5b60008281526009602052604081208054839290610c909084906129ad565b611af582611d7f565b158015611b1157506000828152600a602052604090205460ff16155b611b735760405162461bcd60e51b815260206004820152602d60248201527f546865205045542068617320746f206265207374617276656420746f20636c6160448201526c696d2068697320706f696e747360981b60648201526084016109a6565b600082815260096020526040902054606490611b9090601461298e565b611b9a919061296e565b600082815260096020526040902054611bb39190612956565b600082815260096020908152604080832093909355848252828220829055600a9052908120805460ff1916600117905580611bed8461153b565b50600454919c509a506001600160a01b03808d16911614159850611c719750505050505050505760048054604051630852cd8d60e31b81529182018390526001600160a01b0316906342966c6890602401600060405180830381600087803b158015611c5857600080fd5b505af1158015611c6c573d6000803e3d6000fd5b505050505b6040805185815260208101859052338183015290517f6fa8b24f93c54e60a1ddc5f18631ca165606fa21fa2eb0ace62fa9b7f26ca3fc9181900360600190a150505050565b600080611cc2836109da565b90508060011415611cde57670853a0d2313c0000915050610a47565b601b54601a54611cf68367016345785d8a000061298e565b611d00919061298e565b611d0a919061296e565b9050611d1e816706f05b59d3b20000612956565b9392505050565b3360009081526013602052604090205460ff16611d545760405162461bcd60e51b81526004016109a6906128d4565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000818152600860205260408120548015801590611d9d5750428110155b15611dac576001915050610a47565b6000915050610a47565b50919050565b6003546015546040516340c10f1960e01b815230600482015260248101919091526001600160a01b03909116906340c10f1990604401600060405180830381600087803b158015611e0c57600080fd5b505af1158015611e20573d6000803e3d6000fd5b5050600060158190556003546040516370a0823160e01b81523060048201529193506001600160a01b031691506370a082319060240160206040518083038186803b158015611e6e57600080fd5b505afa158015611e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea6919061274b565b6003546001549192506001600160a01b039081169163a9059cbb91166064611ecf85604661298e565b611ed9919061296e565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015611f1f57600080fd5b505af1158015611f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5791906126bf565b506003546002546001600160a01b039182169163a9059cbb91166064611f7e85601e61298e565b611f88919061296e565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015611fce57600080fd5b505af1158015611fe2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200691906126bf565b5050565b3360009081526013602052604090205460ff166120395760405162461bcd60e51b81526004016109a6906128d4565b6000828152600a602052604090205460ff161561205557600080fd5b60008281526009602052604081208054839290610c90908490612956565b3360009081526013602052604090205460ff166120a25760405162461bcd60e51b81526004016109a6906128d4565b6000828152600a602052604090205460ff16156120be57600080fd5b60008281526008602052604081208054839290610c909084906129ad565b6000546001600160a01b031633146121065760405162461bcd60e51b81526004016109a690612921565b6001600160a01b03811661216b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109a6565b61217481612303565b50565b80546001019055565b5490565b60008161219357506000610a47565b816001600160801b82106121ac5760809190911c9060401b5b6801000000000000000082106121c75760409190911c9060201b5b64010000000082106121de5760209190911c9060101b5b6201000082106121f35760109190911c9060081b5b61010082106122075760089190911c9060041b5b6010821061221a5760049190911c9060021b5b600882106122265760011b5b6001612232828661296e565b61223c9083612956565b901c9050600161224c828661296e565b6122569083612956565b901c90506001612266828661296e565b6122709083612956565b901c90506001612280828661296e565b61228a9083612956565b901c9050600161229a828661296e565b6122a49083612956565b901c905060016122b4828661296e565b6122be9083612956565b901c905060016122ce828661296e565b6122d89083612956565b901c905060006122e8828661296e565b90508082106122f757806122f9565b815b9350505050610a47565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805461235f906129c4565b90600052602060002090601f01602090048101928261238157600085556123c7565b82601f1061239a5782800160ff198235161785556123c7565b828001600101855582156123c7579182015b828111156123c75782358255916020019190600101906123ac565b506123d39291506123d7565b5090565b5b808211156123d357600081556001016123d8565b60008083601f8401126123fd578081fd5b50813567ffffffffffffffff811115612414578182fd5b602083019150836020808302850101111561242e57600080fd5b9250929050565b60008083601f840112612446578182fd5b50813567ffffffffffffffff81111561245d578182fd5b60208301915083602082850101111561242e57600080fd5b600060208284031215612486578081fd5b8135611d1e81612a40565b6000602082840312156124a2578081fd5b8151611d1e81612a40565b600080604083850312156124bf578081fd5b82356124ca81612a40565b915060208301356124da81612a40565b809150509250929050565b600080600080608085870312156124fa578182fd5b843561250581612a40565b9350602085013561251581612a40565b925060408501359150606085013567ffffffffffffffff80821115612538578283fd5b818701915087601f83011261254b578283fd5b81358181111561255d5761255d612a2a565b604051601f8201601f19908116603f0116810190838211818310171561258557612585612a2a565b816040528281528a602084870101111561259d578586fd5b82602086016020830137918201602001949094529598949750929550505050565b600080604083850312156125d0578182fd5b82356125db81612a40565b915060208301356124da81612a55565b600080604083850312156125fd578182fd5b823561260881612a40565b946020939093013593505050565b60008060208385031215612628578182fd5b823567ffffffffffffffff81111561263e578283fd5b61264a858286016123ec565b90969095509350505050565b6000806000806040858703121561266b578384fd5b843567ffffffffffffffff80821115612682578586fd5b61268e888389016123ec565b909650945060208701359150808211156126a6578384fd5b506126b3878288016123ec565b95989497509550505050565b6000602082840312156126d0578081fd5b8151611d1e81612a55565b6000806000806000608086880312156126f2578081fd5b853567ffffffffffffffff811115612708578182fd5b61271488828901612435565b9099909850602088013597604081013597506060013595509350505050565b600060208284031215612744578081fd5b5035919050565b60006020828403121561275c578081fd5b5051919050565b60008060408385031215612775578182fd5b8235915060208301356124da81612a40565b60008060006060848603121561279b578081fd5b8335925060208401356127ad81612a40565b915060408401356127bd81612a55565b809150509250925092565b600080604083850312156127da578182fd5b50508035926020909101359150565b60008060008060008060a08789031215612801578384fd5b863595506020870135945060408701359350606087013567ffffffffffffffff81111561282c578182fd5b61283889828a01612435565b979a9699509497949695608090950135949350505050565b60008060008060808587031215612865578182fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b818110156128ad57858101830151858201604001528201612891565b818111156128be5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602d908201527f526f6c65733a2063616c6c657220646f6573206e6f742068617665207468652060408201526c4f50455241544f5220726f6c6560981b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561296957612969612a14565b500190565b60008261298957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156129a8576129a8612a14565b500290565b6000828210156129bf576129bf612a14565b500390565b6002810460018216806129d857607f821691505b60208210811415611db657634e487b7160e01b600052602260045260246000fd5b6000600019821415612a0d57612a0d612a14565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461217457600080fd5b801515811461217457600080fdfea26469706673582212203c88113777fec374c365c8d7116a186123b20f79fa3c8e7fb101b1e076f97d1664736f6c634300080200330000000000000000000000000f4676178b5c53ae0a655f1b19a96387e4b8b5f2

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000f4676178b5c53ae0a655f1b19a96387e4b8b5f2

-----Decoded View---------------
Arg [0] : _token (address): 0x0f4676178b5c53ae0a655f1b19a96387e4b8b5f2

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000f4676178b5c53ae0a655f1b19a96387e4b8b5f2


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.