ETH Price: $2,597.94 (-2.99%)
Gas: 1 Gwei

Contract

0x4197487E0b3802bAF38B8DC39a06F58b06D19A7b
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Purchase Cycle170441272023-04-14 8:03:11483 days ago1681459391IN
0x4197487E...b06D19A7b
0 ETH0.0030022326.12660085
Purchase Cycle169691782023-04-03 14:46:59494 days ago1680533219IN
0x4197487E...b06D19A7b
0 ETH0.0036120430.07404192
Purchase Cycle169593602023-04-02 5:31:59495 days ago1680413519IN
0x4197487E...b06D19A7b
0 ETH0.0022306518.57253931
Purchase Cycle168997882023-03-24 20:38:59504 days ago1679690339IN
0x4197487E...b06D19A7b
0 ETH0.0028969825.21071766
Purchase Cycle167713312023-03-06 19:16:59522 days ago1678130219IN
0x4197487E...b06D19A7b
0 ETH0.0030738338.08442085
Purchase Cycle167254862023-02-28 8:31:35528 days ago1677573095IN
0x4197487E...b06D19A7b
0 ETH0.0020782917.30399629
Purchase Cycle167160422023-02-27 0:43:35530 days ago1677458615IN
0x4197487E...b06D19A7b
0 ETH0.002456821.38002863
Purchase Cycle167136702023-02-26 16:44:11530 days ago1677429851IN
0x4197487E...b06D19A7b
0 ETH0.0022479219.56227314
Purchase Cycle167064872023-02-25 16:29:59531 days ago1677342599IN
0x4197487E...b06D19A7b
0 ETH0.0021788526.9957409
Purchase Cycle166132212023-02-12 14:16:59544 days ago1676211419IN
0x4197487E...b06D19A7b
0 ETH0.0016764114.58877518
Purchase Cycle166000572023-02-10 18:10:35546 days ago1676052635IN
0x4197487E...b06D19A7b
0 ETH0.0037920633
Purchase Cycle165824522023-02-08 7:04:35548 days ago1675839875IN
0x4197487E...b06D19A7b
0 ETH0.0033296328.9758156
Purchase Cycle165565822023-02-04 16:23:11552 days ago1675527791IN
0x4197487E...b06D19A7b
0 ETH0.0027649424.06164255
Purchase Cycle165543692023-02-04 8:56:35552 days ago1675500995IN
0x4197487E...b06D19A7b
0 ETH0.0014118417.49254975
Purchase Cycle165121472023-01-29 11:22:11558 days ago1674991331IN
0x4197487E...b06D19A7b
0 ETH0.0012208315.12600889
Purchase Cycle165092292023-01-29 1:34:59559 days ago1674956099IN
0x4197487E...b06D19A7b
0 ETH0.0016793614.61448115
Purchase Cycle164618602023-01-22 10:51:59565 days ago1674384719IN
0x4197487E...b06D19A7b
0 ETH0.0018013315.67592134
Purchase Cycle164437332023-01-19 22:08:35568 days ago1674166115IN
0x4197487E...b06D19A7b
0 ETH0.0027430523.87113528
Purchase Cycle164134932023-01-15 16:48:23572 days ago1673801303IN
0x4197487E...b06D19A7b
0 ETH0.0016065919.90553049
Purchase Cycle163959742023-01-13 6:06:11574 days ago1673589971IN
0x4197487E...b06D19A7b
0 ETH0.0018145115.79064005
Purchase Cycle163647362023-01-08 21:24:11579 days ago1673213051IN
0x4197487E...b06D19A7b
0 ETH0.0025675322.34371242
Purchase Cycle163625932023-01-08 14:13:35579 days ago1673187215IN
0x4197487E...b06D19A7b
0 ETH0.0012878115.95593038
Purchase Cycle163201962023-01-02 16:10:23585 days ago1672675823IN
0x4197487E...b06D19A7b
0 ETH0.002003117.43176409
Purchase Cycle163128072023-01-01 15:26:59586 days ago1672586819IN
0x4197487E...b06D19A7b
0 ETH0.0018385716
Purchase Cycle163026222022-12-31 5:21:47587 days ago1672464107IN
0x4197487E...b06D19A7b
0 ETH0.0016059919.89814955
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PLTNMPaymentProcessor

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 1500 runs

Other Settings:
byzantium EvmVersion
File 1 of 3 : pltnmpaymentprocessor.sol
/*
Simple Prepaid Subscription Management Contract using ERC20
2022 Platinum Labs
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@&&&%%%%%%%%%%%###########((@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@&&&&&&&&&&&&%%%%%%%%%%%%########@@@@@@@@@@@@@@@(((((((@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@&&&&&&&&&&&%%%%%%%%%%%%%%###&@@@@@@@&&&&@@@@@@@@((((((((((((@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@&&&&&&&&&&&%%@@@@@@@@@@@@@@@@@@@&&&&&&&&&@@@@@@@@((((((((((((((@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@&&&&&@@@@@&&&&&&&&&&&&(((((((((((((((((@@@@@@@@@@@@@@@@@@
@@@@@@@@@&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@&&&&&@@@@@@@@@&&&&&&&&&&&&&@(((((((((((((((((@@@@@@@@@@@@@@
@@@@@@@@&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@&&&&&@@@@@@@@@@@@@@@&&&&&&&&&&&&@@@@(((((((((((((((@@@@@@@@@@@
@@@@@@@@&&&&&&&@@@@@@@@@@@@@@@@@@@@@&&&&&@@@@@@@@@@@@@@@@@@@&&&&&&%%%%%%%@@@@(((((((((((((((@@@@@@@@
@@@@@@@@&&&&&&&@@@@@@@@@@@@@@&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%%%%%@@@@@(((((((((((((((@@@@@
@@@@@@@@@&&&&&&&@@@@@@@&&&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&%%%%%%%#@@@@(((((((((((((((@@@
@@@@@@@@@@&&&&&&&@@@@&&&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&########@@@@((((((((((((((@@
@@@@@@@@@@@&&&&&&&&@@@@&&&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%&########@@@@@@@((((((((((((((@
@@@@@@@@@@@@@@&&&&&&&@@@@@&&&&&&%%%%%%&@@@@@@@@@@@@@@@@@@@@@@@%%%%%########@@@@@@@@@@@((((((((((((((
@@@@@@@@@@@@@@@@&&&&&&&&@@@@%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@#############@@@@@@@@@@@@@((((((((((((((
@@@@@@@@@@@@@@@@@@@&&&&&&&&@@@@%%%%%%%%%%%%@@@@@@@@@@@@@@%#########(((@@@@@@@@@@@@@@@(((((((((((((((
@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&@%%%##########@@@@@@@@@#####((((((((@@@@@@@@@@@@@@@(((((((((((((((((
@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&##########@@@@@((((((((((((@@@@@@@@@@@@@@%(((((((((((((((((((@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&%((((((((((((((((@@@@@@@@@@((((((((((((((((((((((((@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&%%%%%%%%%%%%%##########((((((((((((((((((((((((@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&%%%%%%%%%%%%%##########((((((((((((((((((&@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%%%%%%%%%%##########((((((((((((((@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 */

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "@openzeppelin/contracts/access/Ownable.sol";

interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

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

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

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

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

    function mint(address to, uint256 amount) external;

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract PLTNMPaymentProcessor is Ownable {
    IERC20 public token;
    uint256 public cyclePrice;
    uint256 public cycleIntervalUntilValidForRenewal;
    uint256 public renewableTimeBeforeExpiry;
    address private pltnmDepositoryWallet;

    string public productName;

    mapping(address => uint256) public cycleRenewableTimeStamp;
    mapping(address => uint256) public expiryForAddress;

    constructor() {
        productName = "PLATINUM TOOLS EXTENSION";
        cyclePrice = 40 * 10**18;
        cycleIntervalUntilValidForRenewal = 5 days;
        renewableTimeBeforeExpiry = 2 days;
        pltnmDepositoryWallet = msg.sender;
        token = IERC20(0xe83341b9D5Cc95f0E0D6b94Ed4820C0F191C51BA);
    }

    function setProductName(string memory _name) external onlyOwner {
        productName = _name;
    }

    function setTokenAddress(address _token) external onlyOwner {
        token = IERC20(_token);
    }

    function setDepositoryWallet(address _address) external onlyOwner {
        pltnmDepositoryWallet = _address;
    }

    function setCyclePrice(uint256 _price) external onlyOwner {
        cyclePrice = _price;
    }

    function setCycleInterVal(uint256 _interval) external onlyOwner {
        cycleIntervalUntilValidForRenewal = _interval;
    }

    function setTimeFromRenewableToExpiry(uint256 _renewableTimeToExpiry)
        external
        onlyOwner
    {
        renewableTimeBeforeExpiry = _renewableTimeToExpiry;
    }

    function getContractTotalSupply() external view returns (uint256) {
        return token.totalSupply();
    }

    function purchaseCycle() external {
        require(
            token.allowance(msg.sender, address(this)) > cyclePrice,
            "You have not approved the required amount on the token contract"
        );
        require(
            block.timestamp > cycleRenewableTimeStamp[msg.sender],
            "You have not yet reached renewal time"
        );
        require(
            token.balanceOf(msg.sender) > cyclePrice,
            "You do not have enough $PLTNM"
        );

        //burn the token
        token.transferFrom(msg.sender, pltnmDepositoryWallet, cyclePrice);

        if (expiryForAddress[msg.sender] < block.timestamp) {
            expiryForAddress[msg.sender] = block.timestamp;
        }

        if (expiryForAddress[msg.sender] == 0) {
            expiryForAddress[msg.sender] = block.timestamp;
        }

        if (cycleRenewableTimeStamp[msg.sender] < block.timestamp) {
            cycleRenewableTimeStamp[msg.sender] = block.timestamp;
        }

        if (cycleRenewableTimeStamp[msg.sender] == 0) {
            cycleRenewableTimeStamp[msg.sender] = block.timestamp;
        }

        cycleRenewableTimeStamp[
            msg.sender
        ] += cycleIntervalUntilValidForRenewal;
        expiryForAddress[msg.sender] =
            cycleRenewableTimeStamp[msg.sender] +
            renewableTimeBeforeExpiry;
    }

    //for third party control
    function purchaseCycleFor(address _address) external {
        require(
            token.allowance(_address, address(this)) > cyclePrice,
            "Address has not approved the required amount on the token contract"
        );
        require(
            block.timestamp > cycleRenewableTimeStamp[_address],
            "Address has not yet reached renewal time"
        );
        require(
            token.balanceOf(_address) > cyclePrice,
            "Address does not have enough $PLTNM"
        );

        //burn the token
        token.transferFrom(_address, pltnmDepositoryWallet, cyclePrice);

        if (expiryForAddress[_address] < block.timestamp) {
            expiryForAddress[_address] = block.timestamp;
        }

        if (expiryForAddress[_address] == 0) {
            expiryForAddress[_address] = block.timestamp;
        }

        if (cycleRenewableTimeStamp[_address] < block.timestamp) {
            cycleRenewableTimeStamp[_address] = block.timestamp;
        }

        if (cycleRenewableTimeStamp[_address] == 0) {
            cycleRenewableTimeStamp[_address] = block.timestamp;
        }

        cycleRenewableTimeStamp[_address] += cycleIntervalUntilValidForRenewal;
        expiryForAddress[_address] =
            cycleRenewableTimeStamp[_address] +
            renewableTimeBeforeExpiry;
    }
}

File 2 of 3 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

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

File 3 of 3 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

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() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        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 {
        _transferOwnership(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");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 1500
  },
  "evmVersion": "byzantium",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cycleIntervalUntilValidForRenewal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cyclePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"cycleRenewableTimeStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"expiryForAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractTotalSupply","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":"productName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"purchaseCycle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"purchaseCycleFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renewableTimeBeforeExpiry","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_interval","type":"uint256"}],"name":"setCycleInterVal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"setCyclePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setDepositoryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"setProductName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_renewableTimeToExpiry","type":"uint256"}],"name":"setTimeFromRenewableToExpiry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506200003862000029640100000000620000d1810204565b640100000000620000d5810204565b60408051808201909152601881527f504c4154494e554d20544f4f4c5320455854454e53494f4e000000000000000060208201526006906200007b9082620001fc565b5068022b1c8c1227a00000600255620697806003556202a30060045560058054600160a060020a031990811633179091556001805490911673e83341b9d5cc95f0e0d6b94ed4820c0f191c51ba179055620002cf565b3390565b60008054600160a060020a03838116600160a060020a0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6002810460018216806200016957607f821691505b602082108103620001a3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115620001f7576000818152602081206020601f86010481016020861015620001d25750805b6020601f860104820191505b81811015620001f357828155600101620001de565b5050505b505050565b815167ffffffffffffffff81111562000219576200021962000125565b62000231816200022a845462000154565b84620001a9565b602080601f8311600181146200026d5760008415620002505750858301515b60028086026008870290910a6000190419821617865550620001f3565b600085815260208120601f198616915b828110156200029e578886015182559484019460019091019084016200027d565b5085821015620002bf57878501516008601f88160260020a60001904191681555b5050505050600202600101905550565b61147880620002df6000396000f3fe608060405234801561001057600080fd5b506004361061016e576000357c010000000000000000000000000000000000000000000000000000000090048063910943fe116100ea578063d5dbf8d21161009e578063f2fde38b11610083578063f2fde38b146102c1578063f852d3fc146102d4578063fc0c546a146102e757600080fd5b8063d5dbf8d21461029b578063ef458fea146102ae57600080fd5b8063ab2f99dc116100cf578063ab2f99dc14610276578063ab856cb61461027f578063b0284d731461029257600080fd5b8063910943fe146102665780639eda36101461026e57600080fd5b8063607aed5211610141578063715018a611610126578063715018a61461020a5780637f7650eb146102125780638da5cb5b1461022757600080fd5b8063607aed52146101d757806362e83b96146101ea57600080fd5b806326a4e8d21461017357806336c0af391461018857806355c52dec146101bb5780635d2fd960146101c4575b600080fd5b6101866101813660046110db565b610307565b005b6101a86101963660046110db565b60076020526000908152604090205481565b6040519081526020015b60405180910390f35b6101a860035481565b6101866101d2366004611118565b61034b565b6101866101e5366004611118565b610358565b6101a86101f83660046110db565b60086020526000908152604090205481565b610186610365565b61021a610379565b6040516101b29190611131565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b2565b610186610407565b6101a8610874565b6101a860025481565b61018661028d3660046110db565b61090d565b6101a860045481565b6101866102a9366004611118565b610ed0565b6101866102bc3660046111ae565b610edd565b6101866102cf3660046110db565b610ef5565b6101866102e23660046110db565b610fac565b6001546102419073ffffffffffffffffffffffffffffffffffffffff1681565b61030f610ff0565b6001805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610353610ff0565b600255565b610360610ff0565b600455565b61036d610ff0565b6103776000611071565b565b600680546103869061125f565b80601f01602080910402602001604051908101604052809291908181526020018280546103b29061125f565b80156103ff5780601f106103d4576101008083540402835291602001916103ff565b820191906000526020600020905b8154815290600101906020018083116103e257829003601f168201915b505050505081565b6002546001546040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015273ffffffffffffffffffffffffffffffffffffffff9091169063dd62ed3e90604401602060405180830381865afa15801561047e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a291906112b2565b11610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f596f752068617665206e6f7420617070726f766564207468652072657175697260448201527f656420616d6f756e74206f6e2074686520746f6b656e20636f6e74726163740060648201526084015b60405180910390fd5b3360009081526007602052604090205442116105d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f596f752068617665206e6f742079657420726561636865642072656e6577616c60448201527f2074696d65000000000000000000000000000000000000000000000000000000606482015260840161052b565b6002546001546040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610643573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066791906112b2565b116106ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f596f7520646f206e6f74206861766520656e6f7567682024504c544e4d000000604482015260640161052b565b6001546005546002546040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff928316602482015260448101919091529116906323b872dd906064016020604051808303816000875af1158015610753573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077791906112cb565b50336000908152600860205260409020544211156107a2573360009081526008602052604090204290555b3360009081526008602052604081205490036107cb573360009081526008602052604090204290555b336000908152600760205260409020544211156107f5573360009081526007602052604090204290555b33600090815260076020526040812054900361081e573360009081526007602052604090204290555b60035433600090815260076020526040812080549091906108409084906112ed565b90915550506004543360009081526007602052604090205461086291906112ed565b33600090815260086020526040902055565b600154604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916318160ddd9160048083019260209291908290030181865afa1580156108e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090891906112b2565b905090565b6002546001546040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301523060248301529091169063dd62ed3e90604401602060405180830381865afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa91906112b2565b11610a5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f4164647265737320686173206e6f7420617070726f766564207468652072657160448201527f756972656420616d6f756e74206f6e2074686520746f6b656e20636f6e74726160648201527f6374000000000000000000000000000000000000000000000000000000000000608482015260a40161052b565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600760205260409020544211610b11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4164647265737320686173206e6f742079657420726561636865642072656e6560448201527f77616c2074696d65000000000000000000000000000000000000000000000000606482015260840161052b565b6002546001546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152909116906370a0823190602401602060405180830381865afa158015610b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba891906112b2565b11610c35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4164647265737320646f6573206e6f74206861766520656e6f7567682024504c60448201527f544e4d0000000000000000000000000000000000000000000000000000000000606482015260840161052b565b6001546005546002546040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152928316602482015260448101919091529116906323b872dd906064016020604051808303816000875af1158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce091906112cb565b5073ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902054421115610d375773ffffffffffffffffffffffffffffffffffffffff811660009081526008602052604090204290555b73ffffffffffffffffffffffffffffffffffffffff81166000908152600860205260408120549003610d8c5773ffffffffffffffffffffffffffffffffffffffff811660009081526008602052604090204290555b73ffffffffffffffffffffffffffffffffffffffff8116600090815260076020526040902054421115610de25773ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604090204290555b73ffffffffffffffffffffffffffffffffffffffff81166000908152600760205260408120549003610e375773ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604090204290555b60035473ffffffffffffffffffffffffffffffffffffffff821660009081526007602052604081208054909190610e6f9084906112ed565b909155505060045473ffffffffffffffffffffffffffffffffffffffff8216600090815260076020526040902054610ea791906112ed565b73ffffffffffffffffffffffffffffffffffffffff909116600090815260086020526040902055565b610ed8610ff0565b600355565b610ee5610ff0565b6006610ef1828261137c565b5050565b610efd610ff0565b73ffffffffffffffffffffffffffffffffffffffff8116610fa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161052b565b610fa981611071565b50565b610fb4610ff0565b6005805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161052b565b6000805473ffffffffffffffffffffffffffffffffffffffff83811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156110ed57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461111157600080fd5b9392505050565b60006020828403121561112a57600080fd5b5035919050565b600060208083528351808285015260005b8181101561115e57858101830151858201604001528201611142565b506000604082860101526040601f19601f8301168501019250505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156111c057600080fd5b813567ffffffffffffffff808211156111d857600080fd5b818401915084601f8301126111ec57600080fd5b8135818111156111fe576111fe61117f565b604051601f8201601f19908116603f011681019083821181831017156112265761122661117f565b8160405282815287602084870101111561123f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60028104600182168061127357607f821691505b6020821081036112ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000602082840312156112c457600080fd5b5051919050565b6000602082840312156112dd57600080fd5b8151801515811461111157600080fd5b80820180821115611327577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b601f821115611377576000818152602081206020601f860104810160208610156113545750805b6020601f860104820191505b8181101561137357828155600101611360565b5050505b505050565b815167ffffffffffffffff8111156113965761139661117f565b6113aa816113a4845461125f565b8461132d565b602080601f8311600181146113e357600084156113c75750858301515b60028086026008870290910a6000190419821617865550611373565b600085815260208120601f198616915b82811015611412578886015182559484019460019091019084016113f3565b508582101561143257878501516008601f88160260020a60001904191681555b505050505060020260010190555056fea264697066735822122061d8d8b6bbc3d4c4ee7ba1f65997db5f994603de779f7c9fd1b311460e3c6dd164736f6c63430008110033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061016e576000357c010000000000000000000000000000000000000000000000000000000090048063910943fe116100ea578063d5dbf8d21161009e578063f2fde38b11610083578063f2fde38b146102c1578063f852d3fc146102d4578063fc0c546a146102e757600080fd5b8063d5dbf8d21461029b578063ef458fea146102ae57600080fd5b8063ab2f99dc116100cf578063ab2f99dc14610276578063ab856cb61461027f578063b0284d731461029257600080fd5b8063910943fe146102665780639eda36101461026e57600080fd5b8063607aed5211610141578063715018a611610126578063715018a61461020a5780637f7650eb146102125780638da5cb5b1461022757600080fd5b8063607aed52146101d757806362e83b96146101ea57600080fd5b806326a4e8d21461017357806336c0af391461018857806355c52dec146101bb5780635d2fd960146101c4575b600080fd5b6101866101813660046110db565b610307565b005b6101a86101963660046110db565b60076020526000908152604090205481565b6040519081526020015b60405180910390f35b6101a860035481565b6101866101d2366004611118565b61034b565b6101866101e5366004611118565b610358565b6101a86101f83660046110db565b60086020526000908152604090205481565b610186610365565b61021a610379565b6040516101b29190611131565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b2565b610186610407565b6101a8610874565b6101a860025481565b61018661028d3660046110db565b61090d565b6101a860045481565b6101866102a9366004611118565b610ed0565b6101866102bc3660046111ae565b610edd565b6101866102cf3660046110db565b610ef5565b6101866102e23660046110db565b610fac565b6001546102419073ffffffffffffffffffffffffffffffffffffffff1681565b61030f610ff0565b6001805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610353610ff0565b600255565b610360610ff0565b600455565b61036d610ff0565b6103776000611071565b565b600680546103869061125f565b80601f01602080910402602001604051908101604052809291908181526020018280546103b29061125f565b80156103ff5780601f106103d4576101008083540402835291602001916103ff565b820191906000526020600020905b8154815290600101906020018083116103e257829003601f168201915b505050505081565b6002546001546040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015273ffffffffffffffffffffffffffffffffffffffff9091169063dd62ed3e90604401602060405180830381865afa15801561047e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a291906112b2565b11610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f596f752068617665206e6f7420617070726f766564207468652072657175697260448201527f656420616d6f756e74206f6e2074686520746f6b656e20636f6e74726163740060648201526084015b60405180910390fd5b3360009081526007602052604090205442116105d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f596f752068617665206e6f742079657420726561636865642072656e6577616c60448201527f2074696d65000000000000000000000000000000000000000000000000000000606482015260840161052b565b6002546001546040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610643573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066791906112b2565b116106ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f596f7520646f206e6f74206861766520656e6f7567682024504c544e4d000000604482015260640161052b565b6001546005546002546040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff928316602482015260448101919091529116906323b872dd906064016020604051808303816000875af1158015610753573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077791906112cb565b50336000908152600860205260409020544211156107a2573360009081526008602052604090204290555b3360009081526008602052604081205490036107cb573360009081526008602052604090204290555b336000908152600760205260409020544211156107f5573360009081526007602052604090204290555b33600090815260076020526040812054900361081e573360009081526007602052604090204290555b60035433600090815260076020526040812080549091906108409084906112ed565b90915550506004543360009081526007602052604090205461086291906112ed565b33600090815260086020526040902055565b600154604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916318160ddd9160048083019260209291908290030181865afa1580156108e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090891906112b2565b905090565b6002546001546040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301523060248301529091169063dd62ed3e90604401602060405180830381865afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa91906112b2565b11610a5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f4164647265737320686173206e6f7420617070726f766564207468652072657160448201527f756972656420616d6f756e74206f6e2074686520746f6b656e20636f6e74726160648201527f6374000000000000000000000000000000000000000000000000000000000000608482015260a40161052b565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600760205260409020544211610b11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4164647265737320686173206e6f742079657420726561636865642072656e6560448201527f77616c2074696d65000000000000000000000000000000000000000000000000606482015260840161052b565b6002546001546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152909116906370a0823190602401602060405180830381865afa158015610b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba891906112b2565b11610c35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4164647265737320646f6573206e6f74206861766520656e6f7567682024504c60448201527f544e4d0000000000000000000000000000000000000000000000000000000000606482015260840161052b565b6001546005546002546040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152928316602482015260448101919091529116906323b872dd906064016020604051808303816000875af1158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce091906112cb565b5073ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902054421115610d375773ffffffffffffffffffffffffffffffffffffffff811660009081526008602052604090204290555b73ffffffffffffffffffffffffffffffffffffffff81166000908152600860205260408120549003610d8c5773ffffffffffffffffffffffffffffffffffffffff811660009081526008602052604090204290555b73ffffffffffffffffffffffffffffffffffffffff8116600090815260076020526040902054421115610de25773ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604090204290555b73ffffffffffffffffffffffffffffffffffffffff81166000908152600760205260408120549003610e375773ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604090204290555b60035473ffffffffffffffffffffffffffffffffffffffff821660009081526007602052604081208054909190610e6f9084906112ed565b909155505060045473ffffffffffffffffffffffffffffffffffffffff8216600090815260076020526040902054610ea791906112ed565b73ffffffffffffffffffffffffffffffffffffffff909116600090815260086020526040902055565b610ed8610ff0565b600355565b610ee5610ff0565b6006610ef1828261137c565b5050565b610efd610ff0565b73ffffffffffffffffffffffffffffffffffffffff8116610fa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161052b565b610fa981611071565b50565b610fb4610ff0565b6005805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161052b565b6000805473ffffffffffffffffffffffffffffffffffffffff83811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156110ed57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461111157600080fd5b9392505050565b60006020828403121561112a57600080fd5b5035919050565b600060208083528351808285015260005b8181101561115e57858101830151858201604001528201611142565b506000604082860101526040601f19601f8301168501019250505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156111c057600080fd5b813567ffffffffffffffff808211156111d857600080fd5b818401915084601f8301126111ec57600080fd5b8135818111156111fe576111fe61117f565b604051601f8201601f19908116603f011681019083821181831017156112265761122661117f565b8160405282815287602084870101111561123f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60028104600182168061127357607f821691505b6020821081036112ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000602082840312156112c457600080fd5b5051919050565b6000602082840312156112dd57600080fd5b8151801515811461111157600080fd5b80820180821115611327577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b601f821115611377576000818152602081206020601f860104810160208610156113545750805b6020601f860104820191505b8181101561137357828155600101611360565b5050505b505050565b815167ffffffffffffffff8111156113965761139661117f565b6113aa816113a4845461125f565b8461132d565b602080601f8311600181146113e357600084156113c75750858301515b60028086026008870290910a6000190419821617865550611373565b600085815260208120601f198616915b82811015611412578886015182559484019460019091019084016113f3565b508582101561143257878501516008601f88160260020a60001904191681555b505050505060020260010190555056fea264697066735822122061d8d8b6bbc3d4c4ee7ba1f65997db5f994603de779f7c9fd1b311460e3c6dd164736f6c63430008110033

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  ]

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.