Contract 0x054925aa212c9CC4610A25df9a18854f461BcdDb 2

 
Ad
Ad
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x3f1c130600e12ce39768292d4df11325b4b5acc93cefa65995559c617fac0526Claim Tokens179456542021-08-13 17:34:3873 days 1 hr ago0xbb9ef97791feed3446682786992639e3d79ba704 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000077427
0x4c9c3adcab8a49018d5ec7852cbbe01c8e531f9fe9e7be61b84d02477b18c526Claim Tokens179335912021-08-13 8:56:5673 days 10 hrs ago0x22fd4633443ae028c28620c79be4a19e2ff39504 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000057296008
0x0cf3a94f7d72e733afab072b8ed320c3d6608482ebce02e53cfa97a80b5847edClaim Tokens179327292021-08-13 8:23:2173 days 11 hrs ago0x22fd4633443ae028c28620c79be4a19e2ff39504 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.00040881456
0x9d3a024719047da7b01fc44ffc695242709ec84f9966bf9b1f777f66db8846d6Claim Tokens178807542021-08-11 21:58:3274 days 21 hrs ago0xf9e85b6dde9245931d699b3591c1be0d92e49130 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.00003760014
0xf654ecca4e75c5bd3770f31d70b1d0a3e4a4d519902965d98b2dbcf7c77df648Claim Tokens178807542021-08-11 21:58:3274 days 21 hrs ago0xf9e85b6dde9245931d699b3591c1be0d92e49130 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.00003760014
0xcbd7b9e02a22c73bc0382b81fecf9d93ec2217c89b9e5c0d6d53892846d459b5Withdraw Unsold ...177650582021-08-08 18:34:3978 days 55 mins agoCosmicSwap: Deployer IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000031799746
0x4afc8c932dd663df6857a8f56f3f365a88bd27b15fa0898872e517431ba57db6Withdraw Funds177650562021-08-08 18:34:3578 days 55 mins agoCosmicSwap: Deployer IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.00002719682
0x34dd466cb8f94d5eb3315515f6dd1bb3716d62338c75467cb1a62ba96b673112Withdraw Funds177650552021-08-08 18:34:2978 days 55 mins agoCosmicSwap: Deployer IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.00002719682
0x2821ce9113052a0c88c389a8a1d1e4b2df3e8fbb192422720683a4f2a62d3b34Claim Tokens177120252021-08-07 8:43:1579 days 10 hrs ago0x1fc7a9477d0b15308e2bf54637ce23b1002990a0 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.00006309414
0x63fbb56399b9ee4d4c12aa9d27336d7d284711597a3f464e50d4c5cb80b33fcfClaim Tokens176580542021-08-05 20:29:1380 days 23 hrs ago0x6eecc285990166d1dfd5f7b6c87454ff0d3db287 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000511656
0x8daceaedc2a18b9302aee62be83934ed0b9752910cd5098e0366d6fb347b11f6Claim Tokens176377582021-08-05 5:51:5281 days 13 hrs ago0x08848aab86be3e92284a77184420eb2460b985ff IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.00007974657
0xd57fa67cc5cfb4dbd8f1a60d7a8c5a2f7f5b311a26009c54b2c919d29d41ce8aClaim Tokens176340212021-08-05 3:16:4181 days 16 hrs ago0xe06e3855c0640d2f1b9b1faa53f3854fc70ff514 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.00013730388
0x5cb54c686a0e3953d77b0bb9f368d05c9b93ebd13eac489d0581ace4cd729777Claim Tokens175868122021-08-03 21:00:2182 days 22 hrs ago0x3ef73075005363d452dc100affde69d6f3d090fe IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000046857
0x802b04e4b4f10f1054bfb4488b39098b71c0007b27793e1a50a9f7e915289147Claim Tokens175786442021-08-03 16:08:3783 days 3 hrs ago0x589436b68aacf61d351a705d36d3350c5beeec63 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000089093761
0x766a3ee64970e9dd292a9ca11cc1191eb2ad22c233132e08545cd72ab45265c5Claim Tokens175758522021-08-03 14:26:1383 days 5 hrs ago0x607987c48402996b687835b79a9532cac3f02091 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000180663
0x30bbe990be0c42f11c7794df83a79c9b88673fe44ea311d68d01a22b10071d7cClaim Tokens175758522021-08-03 14:26:1383 days 5 hrs ago0x607987c48402996b687835b79a9532cac3f02091 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000286608945
0xe1195959828568f908df5be261c5ae458e1dac51e3a1e80151cbce636004c655Claim Tokens175588302021-08-03 4:01:4383 days 15 hrs ago0xd280572f0f2e6386589aaea71fd87a1bdd9bf304 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000061857061
0x16448bacf4cdafbbda3d4a4311f90177314225f9aa1e40e3d2a966de3e8c5b05Claim Tokens175070952021-08-01 19:00:5185 days 29 mins ago0x3ef73075005363d452dc100affde69d6f3d090fe IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000078589318
0x6590d68922e58daf7f913b403d207eceb4db1cbbb2df40f1a93aeb935109b0f5Claim Tokens175004932021-08-01 15:05:1385 days 4 hrs ago0xa14fde14737d77c07929a1446de30e695d71cf37 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.0000515427
0x8bd75dbc427910fc76c43f41eda2fea56ff14d962c05fdcee42c462eae64723cClaim Tokens174940222021-08-01 11:11:0985 days 8 hrs ago0xf689cfba5414db24e9ddf34ccf89eded1e71dfcb IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.0000562284
0x9835aa9be912ef03656e1df42a65921c14542856c35c3b91a21857f202c8bf07Claim Tokens174917102021-08-01 9:43:0585 days 9 hrs ago0x8c7277da7678faea9761f8a40ba6bf3c3b05b23a IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.00004955328
0x24355fc33df1366747c02134def2d456f471e7d6aef8d055168ace83cdd2b539Claim Tokens174743182021-07-31 22:27:1685 days 21 hrs ago0x338c118877f807ec4f89afa46e98ac63938dab85 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000037295951
0xbce6d1c2897d442fe0fff34b573b9a8561716270aa570dd549c8c2cbeabde7d5Claim Tokens174656652021-07-31 16:44:3386 days 2 hrs ago0xfa8e996fb22759ae5769af69a0e85208d215e330 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000077427
0x68717d9b5ef4677d621707222f346a5739f2140a8fb74a6caa2f4a4095c7e65cClaim Tokens174639992021-07-31 15:38:3586 days 3 hrs ago0x589436b68aacf61d351a705d36d3350c5beeec63 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000061857
0xdeca798ed34635043d844866ce4798992071bd405644b7ce5e8b50068c2148a8Claim Tokens174459042021-07-31 3:26:4586 days 16 hrs ago0xa14fde14737d77c07929a1446de30e695d71cf37 IN  0x054925aa212c9cc4610a25df9a18854f461bcddb0 MATIC0.000061857062
[ Download CSV Export 
Latest 3 internal transactions
Parent Txn Hash Block From To Value
0x730b0ab9a49fca96dd2a89420aedc55c432b1e2d185ab0a506c3e3379f34ad9c159161972021-06-19 22:59:07127 days 20 hrs ago 0x054925aa212c9cc4610a25df9a18854f461bcddbCosmicSwap: Deployer1,181 MATIC
0x15467dbed6805aba084c6086c25900b3ef6794da825bc664faa369821d0833ee157168642021-06-14 19:31:43132 days 23 hrs ago 0x054925aa212c9cc4610a25df9a18854f461bcddbCosmicSwap: Deployer152,038.826936046837497936 MATIC
0x08ba62f14b8e804e635e5a5280d0ea23e05cb3bf8036d290c534e975929b97b0157014512021-06-14 10:15:59133 days 9 hrs ago 0x054925aa212c9cc4610a25df9a18854f461bcddbCosmicSwap: Deployer60 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Presale

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at polygonscan.com on 2021-06-12
*/

// File: @openzeppelin\contracts\math\SafeMath.sol

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

// File: @openzeppelin\contracts\utils\ReentrancyGuard.sol



pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor () internal {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and make it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

// File: contracts\libs\IBEP20.sol



pragma solidity >=0.4.0;

interface IBEP20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the token decimals.
     */
    function decimals() external view returns (uint8);

    /**
     * @dev Returns the token symbol.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the token name.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the bep token owner.
     */
    function getOwner() external view returns (address);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address _owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: contracts\Presale.sol


pragma solidity ^0.6.12;




contract Presale is ReentrancyGuard {
  using SafeMath for uint256;
  // Maps user to the number of tokens owned
  mapping (address => uint256) public tokensOwned;
  // The block when the user claimed tokens prevously
  mapping (address => uint256) public lastTokensClaimed;
  // The number of times the user has claimed tokens;
  mapping (address => uint256) public numClaims;
  // The number of unclaimed tokens the user has
  mapping (address => uint256) public tokensUnclaimed;

  // Cosmic token
  IBEP20 cosmic;
  // Sale ended
  bool isSaleActive;
  // Starting timestamp normal
  uint256 startingTimeStamp;
  uint256 totalTokensSold = 0;
  uint256 tokensPerMATIC = 24; //24/100
  uint256 maticReceived = 0;
  
  address payable owner;
  
  modifier onlyOwner(){
    require(msg.sender == owner, "You are not the owner");
    _;
  }
  
  event TokenBuy(address user, uint256 tokens);
  event TokenClaim(address user, uint256 tokens);

  constructor (address _cosmicAddress, uint256 _startingTimestamp) public {
    cosmic = IBEP20(_cosmicAddress);
    isSaleActive = true;
    owner = msg.sender;
    startingTimeStamp = _startingTimestamp;
  }

  receive() external payable {
    buy (msg.sender);
  }
  
  
  function buy (address beneficiary) public payable nonReentrant {
    require(isSaleActive, "Sale is not active yet");
      
    address _buyer = beneficiary;
    uint256 _maticSent = msg.value;
    uint256 tokens = _maticSent.mul(tokensPerMATIC).div(100);
    
    
    require (_maticSent >= 60 ether, "MATIC is lesser than min value");
    require (_maticSent <= 2200 ether, "MATIC is greater than max value");
    require (maticReceived <= 250000 ether, "Hardcap reached");
    require(block.timestamp >= startingTimeStamp, "Presale has not started");
    
    tokensOwned[_buyer] = tokensOwned[_buyer].add(tokens);
    tokensUnclaimed[_buyer] = tokensUnclaimed[_buyer].add(tokens);
    totalTokensSold = totalTokensSold.add(tokens);
    maticReceived = maticReceived.add(msg.value);
    emit TokenBuy(beneficiary, tokens);
  }
  
  function setSaleActive(bool _isSaleActive) external onlyOwner {
      isSaleActive = _isSaleActive;
  }

  function getTokensOwned () external view returns (uint256) {
    return tokensOwned[msg.sender];
  }

  function getTokensUnclaimed () external view returns (uint256) {
    return tokensUnclaimed[msg.sender];
  }

  function getLastTokensClaimed () external view returns (uint256) {
    return lastTokensClaimed[msg.sender];
  }

  function getCosmicTokensLeft () external view returns (uint256) {
    return cosmic.balanceOf(address(this));
  }
  
  function getNumClaims () external view returns (uint256) {
      return numClaims[msg.sender];
  }
  
  function claimTokens () external {
    require (isSaleActive == false, "Sale is still active");
    require (tokensOwned[msg.sender] > 0, "User should own some cosmic tokens");
    require (tokensUnclaimed[msg.sender] > 0, "User should have unclaimed cosmic tokens");
    require (cosmic.balanceOf(address(this)) >= tokensOwned[msg.sender], "There are not enough cosmic tokens to transfer");
    require (block.number.sub(lastTokensClaimed[msg.sender]) >= 41143, "It has not been 41,143 blocks since last claim"); 
    require (numClaims[msg.sender] < 10, "Only 10 claims can be made to the smart contract");

    tokensUnclaimed[msg.sender] = tokensUnclaimed[msg.sender].sub(tokensOwned[msg.sender].div(10));
    lastTokensClaimed[msg.sender] = block.number;
    numClaims[msg.sender] = numClaims[msg.sender].add(1);
    
    cosmic.transfer(msg.sender, tokensOwned[msg.sender].div(10));
    emit TokenClaim(msg.sender, tokensOwned[msg.sender].div(10));
  }

  function withdrawFunds () external onlyOwner {
    owner.transfer(address(this).balance);
  }
  
  function withdrawUnsoldCosmic() external onlyOwner {
      cosmic.transfer(msg.sender, cosmic.balanceOf(address(this)));
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_cosmicAddress","type":"address"},{"internalType":"uint256","name":"_startingTimestamp","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"TokenBuy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"TokenClaim","type":"event"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCosmicTokensLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastTokensClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNumClaims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokensOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokensUnclaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTokensClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numClaims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_isSaleActive","type":"bool"}],"name":"setSaleActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokensOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokensUnclaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawUnsoldCosmic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260006007556018600855600060095534801561001f57600080fd5b50604051611c0b380380611c0b8339818101604052604081101561004257600080fd5b810190808051906020019092919080519060200190929190505050600160008190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560146101000a81548160ff02191690831515021790555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806006819055505050611af18061011a6000396000f3fe6080604052600436106100e15760003560e01c8063759b51391161007f578063993b54ba11610059578063993b54ba1461033c578063c48877b314610367578063ea2d24d31461037e578063f088d547146103e3576100f1565b8063759b513914610235578063807bf2291461029a578063841718a6146102ff576100f1565b80632c2edb6c116100bb5780632c2edb6c1461019d57806348c54b9d146101c857806366fec5bb146101df5780637580c1571461020a576100f1565b806319902986146100f657806321cda7901461012157806324600fc314610186576100f1565b366100f1576100ef33610427565b005b600080fd5b34801561010257600080fd5b5061010b61091b565b6040518082815260200191505060405180910390f35b34801561012d57600080fd5b506101706004803603602081101561014457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610962565b6040518082815260200191505060405180910390f35b34801561019257600080fd5b5061019b61097a565b005b3480156101a957600080fd5b506101b2610aa8565b6040518082815260200191505060405180910390f35b3480156101d457600080fd5b506101dd610aef565b005b3480156101eb57600080fd5b506101f46112d2565b6040518082815260200191505060405180910390f35b34801561021657600080fd5b5061021f611319565b6040518082815260200191505060405180910390f35b34801561024157600080fd5b506102846004803603602081101561025857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611360565b6040518082815260200191505060405180910390f35b3480156102a657600080fd5b506102e9600480360360208110156102bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611378565b6040518082815260200191505060405180910390f35b34801561030b57600080fd5b5061033a6004803603602081101561032257600080fd5b81019080803515159060200190929190505050611390565b005b34801561034857600080fd5b50610351611470565b6040518082815260200191505060405180910390f35b34801561037357600080fd5b5061037c61153b565b005b34801561038a57600080fd5b506103cd600480360360208110156103a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611792565b6040518082815260200191505060405180910390f35b610425600480360360208110156103f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610427565b005b600260005414156104a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600560149054906101000a900460ff1661052a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53616c65206973206e6f7420616374697665207965740000000000000000000081525060200191505060405180910390fd5b60008190506000349050600061055e6064610550600854856117aa90919063ffffffff16565b61183090919063ffffffff16565b9050680340aad21b3b7000008210156105df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4d41544943206973206c6573736572207468616e206d696e2076616c7565000081525060200191505060405180910390fd5b6877432217e68360000082111561065e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d415449432069732067726561746572207468616e206d61782076616c75650081525060200191505060405180910390fd5b6934f086f3b33b6840000060095411156106e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f486172646361702072656163686564000000000000000000000000000000000081525060200191505060405180910390fd5b600654421015610758576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f50726573616c6520686173206e6f74207374617274656400000000000000000081525060200191505060405180910390fd5b6107aa81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118b990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061083f81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118b990919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610897816007546118b990919063ffffffff16565b6007819055506108b2346009546118b990919063ffffffff16565b6009819055507f0c031f45b18305561115944c48c15b7aef3fdfe9182afbf6b01c249542ec6a118482604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050600160008190555050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60016020528060005260406000206000915090505481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610aa5573d6000803e3d6000fd5b50565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60001515600560149054906101000a900460ff16151514610b78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f53616c65206973207374696c6c2061637469766500000000000000000000000081525060200191505060405180910390fd5b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611a6c6022913960400191505060405180910390fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611a236028913960400191505060405180910390fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d7157600080fd5b505afa158015610d85573d6000803e3d6000fd5b505050506040513d6020811015610d9b57600080fd5b81019080805190602001909291905050501015610e03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611a8e602e913960400191505060405180910390fd5b61a0b7610e58600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544361194190919063ffffffff16565b1015610eaf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806119c5602e913960400191505060405180910390fd5b600a600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410610f47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806119f36030913960400191505060405180910390fd5b610feb610f9d600a600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461183090919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194190919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110c56001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118b990919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3361119a600a600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461183090919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156111ed57600080fd5b505af1158015611201573d6000803e3d6000fd5b505050506040513d602081101561121757600080fd5b8101908080519060200190929190505050507ffcd6a0cf5a625280133c034863698c011fa0aefbee7f3be397f86fabd98918523361129e600a600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461183090919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60036020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611453576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b80600560146101000a81548160ff02191690831515021790555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b8101908080519060200190929190505050905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156116c657600080fd5b505afa1580156116da573d6000803e3d6000fd5b505050506040513d60208110156116f057600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561175457600080fd5b505af1158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b810190808051906020019092919050505050565b60026020528060005260406000206000915090505481565b6000808314156117bd576000905061182a565b60008284029050828482816117ce57fe5b0414611825576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611a4b6021913960400191505060405180910390fd5b809150505b92915050565b60008082116118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8183816118b057fe5b04905092915050565b600080828401905083811015611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000828211156119b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b81830390509291505056fe497420686173206e6f74206265656e2034312c31343320626c6f636b732073696e6365206c61737420636c61696d4f6e6c7920313020636c61696d732063616e206265206d61646520746f2074686520736d61727420636f6e7472616374557365722073686f756c64206861766520756e636c61696d656420636f736d696320746f6b656e73536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77557365722073686f756c64206f776e20736f6d6520636f736d696320746f6b656e73546865726520617265206e6f7420656e6f75676820636f736d696320746f6b656e7320746f207472616e73666572a26469706673582212207197aef8d0d5febcd6ba58217ba6b38c447ceb8a2f5fe15d0908e1979e19c8ba64736f6c634300060c0033000000000000000000000000a5eb60ca85898f8b26e18ff7c7e43623ccba772c0000000000000000000000000000000000000000000000000000000000000000

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

000000000000000000000000a5eb60ca85898f8b26e18ff7c7e43623ccba772c0000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _cosmicAddress (address): 0xa5eb60ca85898f8b26e18ff7c7e43623ccba772c
Arg [1] : _startingTimestamp (uint256): 0

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a5eb60ca85898f8b26e18ff7c7e43623ccba772c
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

13491:4014:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14718:16;14723:10;14718:3;:16::i;:::-;13491:4014;;;;;16187:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13609:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17273:95;;;;;;;;;;;;;:::i;:::-;;15720:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16295:972;;;;;;;;;;;;;:::i;:::-;;15828:110;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15944:114;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13829:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13929:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15609:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16064:115;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17376:126;;;;;;;;;;;;;:::i;:::-;;13716:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14752:849;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;9247:1;9853:7;;:19;;9845:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9247:1;9986:7;:18;;;;14830:12:::1;;;;;;;;;;;14822:47;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;14884:14;14901:11;14884:28;;14919:18;14940:9;14919:30;;14956:14;14973:39;15008:3;14973:30;14988:14;;14973:10;:14;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;14956:56;;15054:8;15040:10;:22;;15031:66;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15127:10;15113;:24;;15104:69;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15206:12;15189:13;;:29;;15180:58;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15272:17;;15253:15;:36;;15245:72;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15352:31;15376:6;15352:11;:19;15364:6;15352:19;;;;;;;;;;;;;;;;:23;;:31;;;;:::i;:::-;15330:11;:19;15342:6;15330:19;;;;;;;;;;;;;;;:53;;;;15416:35;15444:6;15416:15;:23;15432:6;15416:23;;;;;;;;;;;;;;;;:27;;:35;;;;:::i;:::-;15390:15;:23;15406:6;15390:23;;;;;;;;;;;;;;;:61;;;;15476:27;15496:6;15476:15;;:19;;:27;;;;:::i;:::-;15458:15;:45;;;;15526:28;15544:9;15526:13;;:17;;:28;;;;:::i;:::-;15510:13;:44;;;;15566:29;15575:11;15588:6;15566:29;;;;;;;;;;;;;;;;;;;;;;;;;;10017:1;;;9203::::0;10165:7;:22;;;;14752:849;:::o;16187:100::-;16235:7;16260:9;:21;16270:10;16260:21;;;;;;;;;;;;;;;;16253:28;;16187:100;:::o;13609:47::-;;;;;;;;;;;;;;;;;:::o;17273:95::-;14311:5;;;;;;;;;;;14297:19;;:10;:19;;;14289:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17325:5:::1;;;;;;;;;;;:14;;:37;17340:21;17325:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17273:95::o:0;15720:102::-;15770:7;15793:11;:23;15805:10;15793:23;;;;;;;;;;;;;;;;15786:30;;15720:102;:::o;16295:972::-;16360:5;16344:21;;:12;;;;;;;;;;;:21;;;16335:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16432:1;16406:11;:23;16418:10;16406:23;;;;;;;;;;;;;;;;:27;16397:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16518:1;16488:15;:27;16504:10;16488:27;;;;;;;;;;;;;;;;:31;16479:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16615:11;:23;16627:10;16615:23;;;;;;;;;;;;;;;;16580:6;;;;;;;;;;;:16;;;16605:4;16580:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:58;;16571:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16756:5;16705:47;16722:17;:29;16740:10;16722:29;;;;;;;;;;;;;;;;16705:12;:16;;:47;;;;:::i;:::-;:56;;16696:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16853:2;16829:9;:21;16839:10;16829:21;;;;;;;;;;;;;;;;:26;16820:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16947:64;16979:31;17007:2;16979:11;:23;16991:10;16979:23;;;;;;;;;;;;;;;;:27;;:31;;;;:::i;:::-;16947:15;:27;16963:10;16947:27;;;;;;;;;;;;;;;;:31;;:64;;;;:::i;:::-;16917:15;:27;16933:10;16917:27;;;;;;;;;;;;;;;:94;;;;17050:12;17018:17;:29;17036:10;17018:29;;;;;;;;;;;;;;;:44;;;;17093:28;17119:1;17093:9;:21;17103:10;17093:21;;;;;;;;;;;;;;;;:25;;:28;;;;:::i;:::-;17069:9;:21;17079:10;17069:21;;;;;;;;;;;;;;;:52;;;;17134:6;;;;;;;;;;;:15;;;17150:10;17162:31;17190:2;17162:11;:23;17174:10;17162:23;;;;;;;;;;;;;;;;:27;;:31;;;;:::i;:::-;17134:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17206:55;17217:10;17229:31;17257:2;17229:11;:23;17241:10;17229:23;;;;;;;;;;;;;;;;:27;;:31;;;;:::i;:::-;17206:55;;;;;;;;;;;;;;;;;;;;;;;;;;16295:972::o;15828:110::-;15882:7;15905:15;:27;15921:10;15905:27;;;;;;;;;;;;;;;;15898:34;;15828:110;:::o;15944:114::-;16000:7;16023:17;:29;16041:10;16023:29;;;;;;;;;;;;;;;;16016:36;;15944:114;:::o;13829:45::-;;;;;;;;;;;;;;;;;:::o;13929:51::-;;;;;;;;;;;;;;;;;:::o;15609:105::-;14311:5;;;;;;;;;;;14297:19;;:10;:19;;;14289:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15695:13:::1;15680:12;;:28;;;;;;;;;;;;;;;;;;15609:105:::0;:::o;16064:115::-;16119:7;16142:6;;;;;;;;;;;:16;;;16167:4;16142:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16135:38;;16064:115;:::o;17376:126::-;14311:5;;;;;;;;;;;14297:19;;:10;:19;;;14289:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17436:6:::1;;;;;;;;;;;:15;;;17452:10;17464:6;;;;;;;;;;;:16;;;17489:4;17464:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;17436:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;17376:126::o:0;13716:53::-;;;;;;;;;;;;;;;;;:::o;3707:220::-;3765:7;3794:1;3789;:6;3785:20;;;3804:1;3797:8;;;;3785:20;3816:9;3832:1;3828;:5;3816:17;;3861:1;3856;3852;:5;;;;;;:10;3844:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3918:1;3911:8;;;3707:220;;;;;:::o;4405:153::-;4463:7;4495:1;4491;:5;4483:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4549:1;4545;:5;;;;;;4538:12;;4405:153;;;;:::o;2828:179::-;2886:7;2906:9;2922:1;2918;:5;2906:17;;2947:1;2942;:6;;2934:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2998:1;2991:8;;;2828:179;;;;:::o;3290:158::-;3348:7;3381:1;3376;:6;;3368:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3439:1;3435;:5;3428:12;;3290:158;;;;:::o

Swarm Source

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