ETH Price: $3,335.27 (-3.34%)

Contract

0xa18C3352BE081C47aBd207B0361c09B74223a1fE
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer135513682021-11-04 16:46:571118 days ago1636044417IN
0xa18C3352...74223a1fE
0.03 ETH0.00752038126.67408924
Transfer135510352021-11-04 15:34:131118 days ago1636040053IN
0xa18C3352...74223a1fE
0.15 ETH0.01349128222.54395761
Transfer135506942021-11-04 14:15:001118 days ago1636035300IN
0xa18C3352...74223a1fE
0.03 ETH0.00910027153.28593794
Transfer135498662021-11-04 11:09:131118 days ago1636024153IN
0xa18C3352...74223a1fE
0.03 ETH0.00560073131.94335083
Transfer135497062021-11-04 10:34:311118 days ago1636022071IN
0xa18C3352...74223a1fE
0.03 ETH0.00647003108.98193837
Transfer135493932021-11-04 9:19:131118 days ago1636017553IN
0xa18C3352...74223a1fE
0.03 ETH0.00641412108.04004922
Transfer135485332021-11-04 6:02:471118 days ago1636005767IN
0xa18C3352...74223a1fE
0.03 ETH0.00478915112.82403883
Transfer135484182021-11-04 5:38:131118 days ago1636004293IN
0xa18C3352...74223a1fE
0.03 ETH0.00671525113.11240488
Transfer135479162021-11-04 3:45:321118 days ago1635997532IN
0xa18C3352...74223a1fE
0.03 ETH0.00806522135.85136501
Transfer135470122021-11-04 0:12:241118 days ago1635984744IN
0xa18C3352...74223a1fE
0.03 ETH0.01548606260.84871218
Transfer135469722021-11-03 23:59:271118 days ago1635983967IN
0xa18C3352...74223a1fE
0.03 ETH0.01213186204.35028203
Transfer135455312021-11-03 18:37:401119 days ago1635964660IN
0xa18C3352...74223a1fE
0.03 ETH0.00738286173.92725234
Transfer135453842021-11-03 18:07:271119 days ago1635962847IN
0xa18C3352...74223a1fE
0.03 ETH0.00538954126.96817535
Transfer135453172021-11-03 17:52:421119 days ago1635961962IN
0xa18C3352...74223a1fE
0.15 ETH0.00486395111.29568825
Transfer135449962021-11-03 16:44:461119 days ago1635957886IN
0xa18C3352...74223a1fE
0.15 ETH0.00974483160.74488583
Transfer135449302021-11-03 16:28:371119 days ago1635956917IN
0xa18C3352...74223a1fE
0.03 ETH0.01020592171.90955023
Transfer135447372021-11-03 15:47:121119 days ago1635954432IN
0xa18C3352...74223a1fE
0.03 ETH0.00646581152.32325299
Transfer135446912021-11-03 15:38:081119 days ago1635953888IN
0xa18C3352...74223a1fE
0.03 ETH0.01058256178.25369616
Transfer135439962021-11-03 12:57:171119 days ago1635944237IN
0xa18C3352...74223a1fE
0.03 ETH0.00598238140.93442064
Transfer135433672021-11-03 10:34:031119 days ago1635935643IN
0xa18C3352...74223a1fE
0.03 ETH0.00425673100.28111892
Transfer135433672021-11-03 10:34:031119 days ago1635935643IN
0xa18C3352...74223a1fE
0.03 ETH0.0042448100
Transfer135429582021-11-03 8:59:091119 days ago1635929949IN
0xa18C3352...74223a1fE
0.03 ETH0.00494431116.47940395
Transfer135428942021-11-03 8:44:261119 days ago1635929066IN
0xa18C3352...74223a1fE
0.03 ETH0.00821781138.42159962
Transfer135428842021-11-03 8:41:081119 days ago1635928868IN
0xa18C3352...74223a1fE
0.03 ETH0.00607006143
Transfer135428212021-11-03 8:27:361119 days ago1635928056IN
0xa18C3352...74223a1fE
0.03 ETH0.00704243118.62339993
View all transactions

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
135722062021-11-07 22:51:591114 days ago1636325519
0xa18C3352...74223a1fE
7.48 ETH
135014782021-10-27 20:19:151126 days ago1635365955
0xa18C3352...74223a1fE
20 ETH
134595162021-10-21 6:50:511132 days ago1634799051
0xa18C3352...74223a1fE
30 ETH
133750852021-10-08 0:47:171145 days ago1633654037
0xa18C3352...74223a1fE
36 ETH
133283642021-09-30 17:26:401153 days ago1633022800
0xa18C3352...74223a1fE
35 ETH
132795332021-09-23 3:18:111160 days ago1632367091
0xa18C3352...74223a1fE
0.1 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
IcyMembership

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 5 : IcyMembership.sol
// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity 0.8.7;

import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";

// TODO dev only
// import "hardhat/console.sol";

/**
 * IcyMembership contract
 * @author @icy_tools
 */
contract IcyMembership is ReentrancyGuard, Ownable {
  using SafeMath for uint256;

  // Events
  event ClaimTrial(address indexed _from);
  event Pay(address indexed _from, uint _value);

  // Enable/disable new/trial members
  bool public isAcceptingNewMemberships = true;
  bool public isAcceptingTrialMemberships = false;

  // 0.0008 ETH
  uint256 public serviceFeePerDay = 800000000000000;

  // Minimum days that can be purchased
  uint8 public minimumServiceDays = 30;

  // Number of days in a trial membership
  uint256 public numberOfTrialMembershipDays = 7;

  // Number of days at which to grant a bonus
  uint256 public bonusIntervalInDays = 300;
  uint256 public bonusDaysGrantedPerInterval = 60;

  mapping(address => uint256) private addressPaidUpTo;
  mapping(address => bool) private addressClaimedTrialMembership;
  mapping(address => bool) private blocklist;

  // Called when contract receives ether
  receive() external payable {
    payForServices();
  }

  function payForServices() public payable {
    require(!blocklist[msg.sender], "Sender not allowed.");
    require(isAcceptingNewMemberships, "Memberships are paused.");

    uint256 minimumServiceFee = serviceFeePerDay.mul(minimumServiceDays);
    require(msg.value >= minimumServiceFee, "Minimum payment not met.");

    // Calculate how many seconds we're buying
    uint256 secondsPerWei = serviceFeePerDay.div(86400);
    uint256 secondsToAdd = msg.value.div(secondsPerWei);
    uint256 daysToAdd = secondsToAdd.div(86400);

    if (bonusDaysGrantedPerInterval > 0 && daysToAdd >= bonusIntervalInDays) {
      secondsToAdd = secondsToAdd.add(daysToAdd.div(bonusIntervalInDays).mul(bonusDaysGrantedPerInterval).mul(86400));
    }

    if (addressPaidUpTo[msg.sender] == 0) {
      addressPaidUpTo[msg.sender] = block.timestamp.add(secondsToAdd);
    } else {
      addressPaidUpTo[msg.sender] = addressPaidUpTo[msg.sender].add(secondsToAdd);
    }

    emit Pay(msg.sender, msg.value);
  }

  function hasActiveMembership(address _addr) external view returns(bool) {
    // get the active address
    // compare active address addressPaidUpTo to current time
    return !isAddressBlocked(_addr) && addressPaidUpTo[_addr] >= block.timestamp;
  }

  // Allows anyone to get the paid up to of an address
  function getAddressPaidUpTo(address _addr) public view returns(uint256) {
    return !isAddressBlocked(_addr) ? addressPaidUpTo[_addr] : 0;
  }

  // Allows anyone to see if an address is on the blocklist
  function isAddressBlocked(address _addr) public view returns(bool) {
    return blocklist[_addr];
  }

  // Allows anyone to claim a trial membership if they haven't already
  function claimTrialMembership() external nonReentrant {
    require(isAcceptingTrialMemberships, "Trials not active.");
    require(!blocklist[msg.sender], "Sender not allowed.");
    require(!addressClaimedTrialMembership[msg.sender], "Trial already claimed.");
    require(addressPaidUpTo[msg.sender] == 0, "Trial not allowed.");

    addressPaidUpTo[msg.sender] = block.timestamp.add(numberOfTrialMembershipDays.mul(86400));
    addressClaimedTrialMembership[msg.sender] = true;

    emit ClaimTrial(msg.sender);
  }

  //
  // ADMIN FUNCTIONS
  //

  // Allows `owner` to add an address to the blocklist
  function addAddressToBlocklist(address _addr) external onlyOwner {
    blocklist[_addr] = true;
  }

  // Allows `owner` to remove an address from the blocklist
  function removeAddressFromBlocklist(address _addr) external onlyOwner {
    delete blocklist[_addr];
  }

  // Allows `owner` to set serviceFeePerDay
  function setBonusIntervalInDays(uint256 _bonusIntervalInDays) external onlyOwner {
    bonusIntervalInDays = _bonusIntervalInDays;
  }

  // Allows `owner` to set serviceFeePerDay
  function setBonusDaysGrantedPerInterval(uint256 _bonusDaysGrantedPerInterval) external onlyOwner {
    bonusDaysGrantedPerInterval = _bonusDaysGrantedPerInterval;
  }

  // Allows `owner` to set address paid up to
  function setAddressPaidUpTo(address _addr, uint256 _paidUpTo) external onlyOwner {
    addressPaidUpTo[_addr] = _paidUpTo;
  }

  // Allows `owner` to set serviceFeePerDay
  function setServiceFeePerDay(uint256 _serviceFeePerDay) external onlyOwner {
    require(_serviceFeePerDay > 0, "serviceFeePerDay cannot be 0");
    serviceFeePerDay = _serviceFeePerDay;
  }

  // Allows `owner` to set minimumServiceDays
  function setMinimumServiceDays(uint8 _minimumServiceDays) external onlyOwner {
    require(_minimumServiceDays > 0, "minimumServiceDays cannot be 0");
    minimumServiceDays = _minimumServiceDays;
  }

  // Allows `owner` to set numberOfTrialMembershipDays
  function setNumberOfTrialMembershipDays(uint8 _numberOfTrialMembershipDays) external onlyOwner {
    require(_numberOfTrialMembershipDays > 0, "numberOfTrialMembershipDays cannot be 0");
    numberOfTrialMembershipDays = _numberOfTrialMembershipDays;
  }

  // Allows `owner` to collect service fees.
  function withdraw(uint256 _amount) external nonReentrant onlyOwner {
    require(_amount <= address(this).balance, "Withdraw less");
    require(_amount > 0, "Withdraw more");

    address owner = _msgSender();
    payable(owner).transfer(_amount);
  }

  // Allows `owner` to toggle if minting is active
  function toggleAcceptingNewMemberships() public onlyOwner {
    isAcceptingNewMemberships = !isAcceptingNewMemberships;
  }

  // Allows `owner` to toggle if minting is active
  function toggleAcceptingTrialMemberships() public onlyOwner {
    isAcceptingTrialMemberships = !isAcceptingTrialMemberships;
  }

  function renounceOwnership() public override view onlyOwner {
    revert("Not allowed");
  }
}

File 2 of 5 : 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 5 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT

pragma solidity ^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() {
        _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 4 of 5 : SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler
 * now has built in overflow checking.
 */
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) {
        unchecked {
            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) {
        unchecked {
            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) {
        unchecked {
            // 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) {
        unchecked {
            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) {
        unchecked {
            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) {
        return a + b;
    }

    /**
     * @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) {
        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) {
        return a * b;
    }

    /**
     * @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.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        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) {
        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) {
        unchecked {
            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.
     *
     * 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) {
        unchecked {
            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) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

File 5 of 5 : 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;
    }
}

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

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"}],"name":"ClaimTrial","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Pay","type":"event"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"addAddressToBlocklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bonusDaysGrantedPerInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bonusIntervalInDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimTrialMembership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"getAddressPaidUpTo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"hasActiveMembership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isAcceptingNewMemberships","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isAcceptingTrialMemberships","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"isAddressBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumServiceDays","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numberOfTrialMembershipDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payForServices","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"removeAddressFromBlocklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"serviceFeePerDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"_paidUpTo","type":"uint256"}],"name":"setAddressPaidUpTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_bonusDaysGrantedPerInterval","type":"uint256"}],"name":"setBonusDaysGrantedPerInterval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_bonusIntervalInDays","type":"uint256"}],"name":"setBonusIntervalInDays","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_minimumServiceDays","type":"uint8"}],"name":"setMinimumServiceDays","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_numberOfTrialMembershipDays","type":"uint8"}],"name":"setNumberOfTrialMembershipDays","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_serviceFeePerDay","type":"uint256"}],"name":"setServiceFeePerDay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleAcceptingNewMemberships","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleAcceptingTrialMemberships","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260018060146101000a81548160ff0219169083151502179055506000600160156101000a81548160ff0219169083151502179055506602d79883d20000600255601e600360006101000a81548160ff021916908360ff160217905550600760045561012c600555603c60065534801561007c57600080fd5b5060016000819055506100a16100966100a660201b60201c565b6100ae60201b60201c565b610174565b600033905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61242f80620001846000396000f3fe6080604052600436106101855760003560e01c8063a4b2b4f4116100d1578063c7074dac1161008a578063e76b774411610064578063e76b7744146104ee578063e7dad4f914610519578063f2fde38b14610556578063ffd946d11461057f57610194565b8063c7074dac14610473578063de610fd71461049c578063e3d6c089146104c557610194565b8063a4b2b4f4146103a8578063b4229afc146103d3578063b4340a07146103fc578063bee40f8814610413578063bf5b7b8d1461041d578063c0d69b821461044857610194565b80633c0cf1e81161013e578063791b29f011610118578063791b29f01461032457806381ea47dd1461033b578063821f7dec146103665780638da5cb5b1461037d57610194565b80633c0cf1e8146102b957806361da5300146102e2578063715018a61461030d57610194565b806306789dd0146101995780631f945288146101c257806324b6d69b146101eb5780632a6b7d14146102285780632e1a7d4d146102535780633a75a0d01461027c57610194565b36610194576101926105a8565b005b600080fd5b3480156101a557600080fd5b506101c060048036038101906101bb9190611a95565b610938565b005b3480156101ce57600080fd5b506101e960048036038101906101e49190611a95565b610a07565b005b3480156101f757600080fd5b50610212600480360381019061020d91906119fb565b610ae7565b60405161021f9190611f21565b60405180910390f35b34801561023457600080fd5b5061023d610b46565b60405161024a9190611f21565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190611a68565b610b4c565b005b34801561028857600080fd5b506102a3600480360381019061029e91906119fb565b610cfb565b6040516102b09190611d26565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db91906119fb565b610d59565b005b3480156102ee57600080fd5b506102f7610e27565b6040516103049190611d26565b60405180910390f35b34801561031957600080fd5b50610322610e3a565b005b34801561033057600080fd5b50610339610ef1565b005b34801561034757600080fd5b50610350610f99565b60405161035d9190611f21565b60405180910390f35b34801561037257600080fd5b5061037b610f9f565b005b34801561038957600080fd5b50610392611047565b60405161039f9190611d0b565b60405180910390f35b3480156103b457600080fd5b506103bd611071565b6040516103ca9190611f3c565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f591906119fb565b611084565b005b34801561040857600080fd5b5061041161115b565b005b61041b6105a8565b005b34801561042957600080fd5b506104326114a6565b60405161043f9190611d26565b60405180910390f35b34801561045457600080fd5b5061045d6114b9565b60405161046a9190611f21565b60405180910390f35b34801561047f57600080fd5b5061049a60048036038101906104959190611a68565b6114bf565b005b3480156104a857600080fd5b506104c360048036038101906104be9190611a68565b611588565b005b3480156104d157600080fd5b506104ec60048036038101906104e79190611a68565b61160e565b005b3480156104fa57600080fd5b50610503611694565b6040516105109190611f21565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b91906119fb565b61169a565b60405161054d9190611d26565b60405180910390f35b34801561056257600080fd5b5061057d600480360381019061057891906119fb565b6116f0565b005b34801561058b57600080fd5b506105a660048036038101906105a19190611a28565b6117e8565b005b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062c90611ea1565b60405180910390fd5b600160149054906101000a900460ff16610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067b90611e21565b60405180910390fd5b60006106ad600360009054906101000a900460ff1660ff166002546118ac90919063ffffffff16565b9050803410156106f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e990611de1565b60405180910390fd5b600061070c620151806002546118c290919063ffffffff16565b9050600061072382346118c290919063ffffffff16565b9050600061073d62015180836118c290919063ffffffff16565b9050600060065411801561075357506005548110155b156107ab576107a86107996201518061078b60065461077d600554876118c290919063ffffffff16565b6118ac90919063ffffffff16565b6118ac90919063ffffffff16565b836118d890919063ffffffff16565b91505b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561084e5761080682426118d890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108e4565b6108a082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118d890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b3373ffffffffffffffffffffffffffffffffffffffff167f357b676c439b9e49b4410f8eb8680bee4223724802d8e3fd422e1756f87b475f3460405161092a9190611f21565b60405180910390a250505050565b6109406118ee565b73ffffffffffffffffffffffffffffffffffffffff1661095e611047565b73ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90611e81565b60405180910390fd5b60008160ff16116109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190611ee1565b60405180910390fd5b8060ff1660048190555050565b610a0f6118ee565b73ffffffffffffffffffffffffffffffffffffffff16610a2d611047565b73ffffffffffffffffffffffffffffffffffffffff1614610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90611e81565b60405180910390fd5b60008160ff1611610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090611dc1565b60405180910390fd5b80600360006101000a81548160ff021916908360ff16021790555050565b6000610af28261169a565b15610afe576000610b3f565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020545b9050919050565b60055481565b60026000541415610b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8990611f01565b60405180910390fd5b6002600081905550610ba26118ee565b73ffffffffffffffffffffffffffffffffffffffff16610bc0611047565b73ffffffffffffffffffffffffffffffffffffffff1614610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90611e81565b60405180910390fd5b47811115610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090611d41565b60405180910390fd5b60008111610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9390611e41565b60405180910390fd5b6000610ca66118ee565b90508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610cee573d6000803e3d6000fd5b5050600160008190555050565b6000610d068261169a565b158015610d52575042600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b610d616118ee565b73ffffffffffffffffffffffffffffffffffffffff16610d7f611047565b73ffffffffffffffffffffffffffffffffffffffff1614610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc90611e81565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905550565b600160149054906101000a900460ff1681565b610e426118ee565b73ffffffffffffffffffffffffffffffffffffffff16610e60611047565b73ffffffffffffffffffffffffffffffffffffffff1614610eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ead90611e81565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee890611e61565b60405180910390fd5b610ef96118ee565b73ffffffffffffffffffffffffffffffffffffffff16610f17611047565b73ffffffffffffffffffffffffffffffffffffffff1614610f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6490611e81565b60405180910390fd5b600160149054906101000a900460ff1615600160146101000a81548160ff021916908315150217905550565b60065481565b610fa76118ee565b73ffffffffffffffffffffffffffffffffffffffff16610fc5611047565b73ffffffffffffffffffffffffffffffffffffffff161461101b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101290611e81565b60405180910390fd5b600160159054906101000a900460ff1615600160156101000a81548160ff021916908315150217905550565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900460ff1681565b61108c6118ee565b73ffffffffffffffffffffffffffffffffffffffff166110aa611047565b73ffffffffffffffffffffffffffffffffffffffff1614611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f790611e81565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600260005414156111a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119890611f01565b60405180910390fd5b6002600081905550600160159054906101000a900460ff166111f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ef90611e01565b60405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611285576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127c90611ea1565b60405180910390fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990611ec1565b60405180910390fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90611d81565b60405180910390fd5b6113be6113af620151806004546118ac90919063ffffffff16565b426118d890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f234a5f924e74bed3e538617669080b7682252208e053edf19cd96ebc829fe88360405160405180910390a26001600081905550565b600160159054906101000a900460ff1681565b60045481565b6114c76118ee565b73ffffffffffffffffffffffffffffffffffffffff166114e5611047565b73ffffffffffffffffffffffffffffffffffffffff161461153b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153290611e81565b60405180910390fd5b6000811161157e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157590611da1565b60405180910390fd5b8060028190555050565b6115906118ee565b73ffffffffffffffffffffffffffffffffffffffff166115ae611047565b73ffffffffffffffffffffffffffffffffffffffff1614611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90611e81565b60405180910390fd5b8060058190555050565b6116166118ee565b73ffffffffffffffffffffffffffffffffffffffff16611634611047565b73ffffffffffffffffffffffffffffffffffffffff161461168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190611e81565b60405180910390fd5b8060068190555050565b60025481565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6116f86118ee565b73ffffffffffffffffffffffffffffffffffffffff16611716611047565b73ffffffffffffffffffffffffffffffffffffffff161461176c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176390611e81565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390611d61565b60405180910390fd5b6117e5816118f6565b50565b6117f06118ee565b73ffffffffffffffffffffffffffffffffffffffff1661180e611047565b73ffffffffffffffffffffffffffffffffffffffff1614611864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185b90611e81565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600081836118ba9190611fef565b905092915050565b600081836118d09190611fbe565b905092915050565b600081836118e69190611f68565b905092915050565b600033905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000813590506119cb816123b4565b92915050565b6000813590506119e0816123cb565b92915050565b6000813590506119f5816123e2565b92915050565b600060208284031215611a1157611a106120fc565b5b6000611a1f848285016119bc565b91505092915050565b60008060408385031215611a3f57611a3e6120fc565b5b6000611a4d858286016119bc565b9250506020611a5e858286016119d1565b9150509250929050565b600060208284031215611a7e57611a7d6120fc565b5b6000611a8c848285016119d1565b91505092915050565b600060208284031215611aab57611aaa6120fc565b5b6000611ab9848285016119e6565b91505092915050565b611acb81612049565b82525050565b611ada8161205b565b82525050565b6000611aed600d83611f57565b9150611af882612101565b602082019050919050565b6000611b10602683611f57565b9150611b1b8261212a565b604082019050919050565b6000611b33601283611f57565b9150611b3e82612179565b602082019050919050565b6000611b56601c83611f57565b9150611b61826121a2565b602082019050919050565b6000611b79601e83611f57565b9150611b84826121cb565b602082019050919050565b6000611b9c601883611f57565b9150611ba7826121f4565b602082019050919050565b6000611bbf601283611f57565b9150611bca8261221d565b602082019050919050565b6000611be2601783611f57565b9150611bed82612246565b602082019050919050565b6000611c05600d83611f57565b9150611c108261226f565b602082019050919050565b6000611c28600b83611f57565b9150611c3382612298565b602082019050919050565b6000611c4b602083611f57565b9150611c56826122c1565b602082019050919050565b6000611c6e601383611f57565b9150611c79826122ea565b602082019050919050565b6000611c91601683611f57565b9150611c9c82612313565b602082019050919050565b6000611cb4602783611f57565b9150611cbf8261233c565b604082019050919050565b6000611cd7601f83611f57565b9150611ce28261238b565b602082019050919050565b611cf681612087565b82525050565b611d0581612091565b82525050565b6000602082019050611d206000830184611ac2565b92915050565b6000602082019050611d3b6000830184611ad1565b92915050565b60006020820190508181036000830152611d5a81611ae0565b9050919050565b60006020820190508181036000830152611d7a81611b03565b9050919050565b60006020820190508181036000830152611d9a81611b26565b9050919050565b60006020820190508181036000830152611dba81611b49565b9050919050565b60006020820190508181036000830152611dda81611b6c565b9050919050565b60006020820190508181036000830152611dfa81611b8f565b9050919050565b60006020820190508181036000830152611e1a81611bb2565b9050919050565b60006020820190508181036000830152611e3a81611bd5565b9050919050565b60006020820190508181036000830152611e5a81611bf8565b9050919050565b60006020820190508181036000830152611e7a81611c1b565b9050919050565b60006020820190508181036000830152611e9a81611c3e565b9050919050565b60006020820190508181036000830152611eba81611c61565b9050919050565b60006020820190508181036000830152611eda81611c84565b9050919050565b60006020820190508181036000830152611efa81611ca7565b9050919050565b60006020820190508181036000830152611f1a81611cca565b9050919050565b6000602082019050611f366000830184611ced565b92915050565b6000602082019050611f516000830184611cfc565b92915050565b600082825260208201905092915050565b6000611f7382612087565b9150611f7e83612087565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611fb357611fb261209e565b5b828201905092915050565b6000611fc982612087565b9150611fd483612087565b925082611fe457611fe36120cd565b5b828204905092915050565b6000611ffa82612087565b915061200583612087565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561203e5761203d61209e565b5b828202905092915050565b600061205482612067565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b7f5769746864726177206c65737300000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f547269616c206e6f7420616c6c6f7765642e0000000000000000000000000000600082015250565b7f736572766963654665655065724461792063616e6e6f74206265203000000000600082015250565b7f6d696e696d756d53657276696365446179732063616e6e6f7420626520300000600082015250565b7f4d696e696d756d207061796d656e74206e6f74206d65742e0000000000000000600082015250565b7f547269616c73206e6f74206163746976652e0000000000000000000000000000600082015250565b7f4d656d626572736869707320617265207061757365642e000000000000000000600082015250565b7f5769746864726177206d6f726500000000000000000000000000000000000000600082015250565b7f4e6f7420616c6c6f776564000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f53656e646572206e6f7420616c6c6f7765642e00000000000000000000000000600082015250565b7f547269616c20616c726561647920636c61696d65642e00000000000000000000600082015250565b7f6e756d6265724f66547269616c4d656d62657273686970446179732063616e6e60008201527f6f74206265203000000000000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6123bd81612049565b81146123c857600080fd5b50565b6123d481612087565b81146123df57600080fd5b50565b6123eb81612091565b81146123f657600080fd5b5056fea2646970667358221220dd259b64d060dab5f22bd500def64e9df0ce3e885cf56e11bdde533bbc26849f64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063a4b2b4f4116100d1578063c7074dac1161008a578063e76b774411610064578063e76b7744146104ee578063e7dad4f914610519578063f2fde38b14610556578063ffd946d11461057f57610194565b8063c7074dac14610473578063de610fd71461049c578063e3d6c089146104c557610194565b8063a4b2b4f4146103a8578063b4229afc146103d3578063b4340a07146103fc578063bee40f8814610413578063bf5b7b8d1461041d578063c0d69b821461044857610194565b80633c0cf1e81161013e578063791b29f011610118578063791b29f01461032457806381ea47dd1461033b578063821f7dec146103665780638da5cb5b1461037d57610194565b80633c0cf1e8146102b957806361da5300146102e2578063715018a61461030d57610194565b806306789dd0146101995780631f945288146101c257806324b6d69b146101eb5780632a6b7d14146102285780632e1a7d4d146102535780633a75a0d01461027c57610194565b36610194576101926105a8565b005b600080fd5b3480156101a557600080fd5b506101c060048036038101906101bb9190611a95565b610938565b005b3480156101ce57600080fd5b506101e960048036038101906101e49190611a95565b610a07565b005b3480156101f757600080fd5b50610212600480360381019061020d91906119fb565b610ae7565b60405161021f9190611f21565b60405180910390f35b34801561023457600080fd5b5061023d610b46565b60405161024a9190611f21565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190611a68565b610b4c565b005b34801561028857600080fd5b506102a3600480360381019061029e91906119fb565b610cfb565b6040516102b09190611d26565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db91906119fb565b610d59565b005b3480156102ee57600080fd5b506102f7610e27565b6040516103049190611d26565b60405180910390f35b34801561031957600080fd5b50610322610e3a565b005b34801561033057600080fd5b50610339610ef1565b005b34801561034757600080fd5b50610350610f99565b60405161035d9190611f21565b60405180910390f35b34801561037257600080fd5b5061037b610f9f565b005b34801561038957600080fd5b50610392611047565b60405161039f9190611d0b565b60405180910390f35b3480156103b457600080fd5b506103bd611071565b6040516103ca9190611f3c565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f591906119fb565b611084565b005b34801561040857600080fd5b5061041161115b565b005b61041b6105a8565b005b34801561042957600080fd5b506104326114a6565b60405161043f9190611d26565b60405180910390f35b34801561045457600080fd5b5061045d6114b9565b60405161046a9190611f21565b60405180910390f35b34801561047f57600080fd5b5061049a60048036038101906104959190611a68565b6114bf565b005b3480156104a857600080fd5b506104c360048036038101906104be9190611a68565b611588565b005b3480156104d157600080fd5b506104ec60048036038101906104e79190611a68565b61160e565b005b3480156104fa57600080fd5b50610503611694565b6040516105109190611f21565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b91906119fb565b61169a565b60405161054d9190611d26565b60405180910390f35b34801561056257600080fd5b5061057d600480360381019061057891906119fb565b6116f0565b005b34801561058b57600080fd5b506105a660048036038101906105a19190611a28565b6117e8565b005b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062c90611ea1565b60405180910390fd5b600160149054906101000a900460ff16610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067b90611e21565b60405180910390fd5b60006106ad600360009054906101000a900460ff1660ff166002546118ac90919063ffffffff16565b9050803410156106f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e990611de1565b60405180910390fd5b600061070c620151806002546118c290919063ffffffff16565b9050600061072382346118c290919063ffffffff16565b9050600061073d62015180836118c290919063ffffffff16565b9050600060065411801561075357506005548110155b156107ab576107a86107996201518061078b60065461077d600554876118c290919063ffffffff16565b6118ac90919063ffffffff16565b6118ac90919063ffffffff16565b836118d890919063ffffffff16565b91505b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561084e5761080682426118d890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108e4565b6108a082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118d890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b3373ffffffffffffffffffffffffffffffffffffffff167f357b676c439b9e49b4410f8eb8680bee4223724802d8e3fd422e1756f87b475f3460405161092a9190611f21565b60405180910390a250505050565b6109406118ee565b73ffffffffffffffffffffffffffffffffffffffff1661095e611047565b73ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90611e81565b60405180910390fd5b60008160ff16116109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190611ee1565b60405180910390fd5b8060ff1660048190555050565b610a0f6118ee565b73ffffffffffffffffffffffffffffffffffffffff16610a2d611047565b73ffffffffffffffffffffffffffffffffffffffff1614610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90611e81565b60405180910390fd5b60008160ff1611610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090611dc1565b60405180910390fd5b80600360006101000a81548160ff021916908360ff16021790555050565b6000610af28261169a565b15610afe576000610b3f565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020545b9050919050565b60055481565b60026000541415610b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8990611f01565b60405180910390fd5b6002600081905550610ba26118ee565b73ffffffffffffffffffffffffffffffffffffffff16610bc0611047565b73ffffffffffffffffffffffffffffffffffffffff1614610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90611e81565b60405180910390fd5b47811115610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090611d41565b60405180910390fd5b60008111610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9390611e41565b60405180910390fd5b6000610ca66118ee565b90508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610cee573d6000803e3d6000fd5b5050600160008190555050565b6000610d068261169a565b158015610d52575042600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b610d616118ee565b73ffffffffffffffffffffffffffffffffffffffff16610d7f611047565b73ffffffffffffffffffffffffffffffffffffffff1614610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc90611e81565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905550565b600160149054906101000a900460ff1681565b610e426118ee565b73ffffffffffffffffffffffffffffffffffffffff16610e60611047565b73ffffffffffffffffffffffffffffffffffffffff1614610eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ead90611e81565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee890611e61565b60405180910390fd5b610ef96118ee565b73ffffffffffffffffffffffffffffffffffffffff16610f17611047565b73ffffffffffffffffffffffffffffffffffffffff1614610f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6490611e81565b60405180910390fd5b600160149054906101000a900460ff1615600160146101000a81548160ff021916908315150217905550565b60065481565b610fa76118ee565b73ffffffffffffffffffffffffffffffffffffffff16610fc5611047565b73ffffffffffffffffffffffffffffffffffffffff161461101b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101290611e81565b60405180910390fd5b600160159054906101000a900460ff1615600160156101000a81548160ff021916908315150217905550565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900460ff1681565b61108c6118ee565b73ffffffffffffffffffffffffffffffffffffffff166110aa611047565b73ffffffffffffffffffffffffffffffffffffffff1614611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f790611e81565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600260005414156111a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119890611f01565b60405180910390fd5b6002600081905550600160159054906101000a900460ff166111f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ef90611e01565b60405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611285576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127c90611ea1565b60405180910390fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990611ec1565b60405180910390fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90611d81565b60405180910390fd5b6113be6113af620151806004546118ac90919063ffffffff16565b426118d890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f234a5f924e74bed3e538617669080b7682252208e053edf19cd96ebc829fe88360405160405180910390a26001600081905550565b600160159054906101000a900460ff1681565b60045481565b6114c76118ee565b73ffffffffffffffffffffffffffffffffffffffff166114e5611047565b73ffffffffffffffffffffffffffffffffffffffff161461153b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153290611e81565b60405180910390fd5b6000811161157e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157590611da1565b60405180910390fd5b8060028190555050565b6115906118ee565b73ffffffffffffffffffffffffffffffffffffffff166115ae611047565b73ffffffffffffffffffffffffffffffffffffffff1614611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90611e81565b60405180910390fd5b8060058190555050565b6116166118ee565b73ffffffffffffffffffffffffffffffffffffffff16611634611047565b73ffffffffffffffffffffffffffffffffffffffff161461168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190611e81565b60405180910390fd5b8060068190555050565b60025481565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6116f86118ee565b73ffffffffffffffffffffffffffffffffffffffff16611716611047565b73ffffffffffffffffffffffffffffffffffffffff161461176c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176390611e81565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390611d61565b60405180910390fd5b6117e5816118f6565b50565b6117f06118ee565b73ffffffffffffffffffffffffffffffffffffffff1661180e611047565b73ffffffffffffffffffffffffffffffffffffffff1614611864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185b90611e81565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600081836118ba9190611fef565b905092915050565b600081836118d09190611fbe565b905092915050565b600081836118e69190611f68565b905092915050565b600033905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000813590506119cb816123b4565b92915050565b6000813590506119e0816123cb565b92915050565b6000813590506119f5816123e2565b92915050565b600060208284031215611a1157611a106120fc565b5b6000611a1f848285016119bc565b91505092915050565b60008060408385031215611a3f57611a3e6120fc565b5b6000611a4d858286016119bc565b9250506020611a5e858286016119d1565b9150509250929050565b600060208284031215611a7e57611a7d6120fc565b5b6000611a8c848285016119d1565b91505092915050565b600060208284031215611aab57611aaa6120fc565b5b6000611ab9848285016119e6565b91505092915050565b611acb81612049565b82525050565b611ada8161205b565b82525050565b6000611aed600d83611f57565b9150611af882612101565b602082019050919050565b6000611b10602683611f57565b9150611b1b8261212a565b604082019050919050565b6000611b33601283611f57565b9150611b3e82612179565b602082019050919050565b6000611b56601c83611f57565b9150611b61826121a2565b602082019050919050565b6000611b79601e83611f57565b9150611b84826121cb565b602082019050919050565b6000611b9c601883611f57565b9150611ba7826121f4565b602082019050919050565b6000611bbf601283611f57565b9150611bca8261221d565b602082019050919050565b6000611be2601783611f57565b9150611bed82612246565b602082019050919050565b6000611c05600d83611f57565b9150611c108261226f565b602082019050919050565b6000611c28600b83611f57565b9150611c3382612298565b602082019050919050565b6000611c4b602083611f57565b9150611c56826122c1565b602082019050919050565b6000611c6e601383611f57565b9150611c79826122ea565b602082019050919050565b6000611c91601683611f57565b9150611c9c82612313565b602082019050919050565b6000611cb4602783611f57565b9150611cbf8261233c565b604082019050919050565b6000611cd7601f83611f57565b9150611ce28261238b565b602082019050919050565b611cf681612087565b82525050565b611d0581612091565b82525050565b6000602082019050611d206000830184611ac2565b92915050565b6000602082019050611d3b6000830184611ad1565b92915050565b60006020820190508181036000830152611d5a81611ae0565b9050919050565b60006020820190508181036000830152611d7a81611b03565b9050919050565b60006020820190508181036000830152611d9a81611b26565b9050919050565b60006020820190508181036000830152611dba81611b49565b9050919050565b60006020820190508181036000830152611dda81611b6c565b9050919050565b60006020820190508181036000830152611dfa81611b8f565b9050919050565b60006020820190508181036000830152611e1a81611bb2565b9050919050565b60006020820190508181036000830152611e3a81611bd5565b9050919050565b60006020820190508181036000830152611e5a81611bf8565b9050919050565b60006020820190508181036000830152611e7a81611c1b565b9050919050565b60006020820190508181036000830152611e9a81611c3e565b9050919050565b60006020820190508181036000830152611eba81611c61565b9050919050565b60006020820190508181036000830152611eda81611c84565b9050919050565b60006020820190508181036000830152611efa81611ca7565b9050919050565b60006020820190508181036000830152611f1a81611cca565b9050919050565b6000602082019050611f366000830184611ced565b92915050565b6000602082019050611f516000830184611cfc565b92915050565b600082825260208201905092915050565b6000611f7382612087565b9150611f7e83612087565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611fb357611fb261209e565b5b828201905092915050565b6000611fc982612087565b9150611fd483612087565b925082611fe457611fe36120cd565b5b828204905092915050565b6000611ffa82612087565b915061200583612087565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561203e5761203d61209e565b5b828202905092915050565b600061205482612067565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b7f5769746864726177206c65737300000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f547269616c206e6f7420616c6c6f7765642e0000000000000000000000000000600082015250565b7f736572766963654665655065724461792063616e6e6f74206265203000000000600082015250565b7f6d696e696d756d53657276696365446179732063616e6e6f7420626520300000600082015250565b7f4d696e696d756d207061796d656e74206e6f74206d65742e0000000000000000600082015250565b7f547269616c73206e6f74206163746976652e0000000000000000000000000000600082015250565b7f4d656d626572736869707320617265207061757365642e000000000000000000600082015250565b7f5769746864726177206d6f726500000000000000000000000000000000000000600082015250565b7f4e6f7420616c6c6f776564000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f53656e646572206e6f7420616c6c6f7765642e00000000000000000000000000600082015250565b7f547269616c20616c726561647920636c61696d65642e00000000000000000000600082015250565b7f6e756d6265724f66547269616c4d656d62657273686970446179732063616e6e60008201527f6f74206265203000000000000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6123bd81612049565b81146123c857600080fd5b50565b6123d481612087565b81146123df57600080fd5b50565b6123eb81612091565b81146123f657600080fd5b5056fea2646970667358221220dd259b64d060dab5f22bd500def64e9df0ce3e885cf56e11bdde533bbc26849f64736f6c63430008070033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.