MATIC Price: $1.11 (+3.74%)
Gas: 104 GWei
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Buy491722352023-10-26 11:12:36128 days 18 hrs ago1698318756IN
0x7bf7eA...84cB80AF
0 MATIC0.02499404205.77832978
Buy491663822023-10-26 7:43:00128 days 21 hrs ago1698306180IN
0x7bf7eA...84cB80AF
0 MATIC0.01237032106.0147337
Buy491659192023-10-26 7:26:04128 days 22 hrs ago1698305164IN
0x7bf7eA...84cB80AF
0 MATIC0.01183118107.16357631
Buy490973452023-10-24 14:15:30130 days 15 hrs ago1698156930IN
0x7bf7eA...84cB80AF
0 MATIC0.0095129591.14387754
Buy490972142023-10-24 14:10:46130 days 15 hrs ago1698156646IN
0x7bf7eA...84cB80AF
0 MATIC0.0085748982.15622688
Buy490911682023-10-24 10:33:43130 days 19 hrs ago1698143623IN
0x7bf7eA...84cB80AF
0 MATIC0.01189476113.96396904
Buy490911352023-10-24 10:32:31130 days 19 hrs ago1698143551IN
0x7bf7eA...84cB80AF
0 MATIC0.01274261129.77107665
Buy490680922023-10-23 19:51:40131 days 9 hrs ago1698090700IN
0x7bf7eA...84cB80AF
0 MATIC0.01718071149.01785799
Buy490680532023-10-23 19:49:58131 days 9 hrs ago1698090598IN
0x7bf7eA...84cB80AF
0 MATIC0.01468689127.50035438
Buy490678292023-10-23 19:41:50131 days 9 hrs ago1698090110IN
0x7bf7eA...84cB80AF
0 MATIC0.01264105121.11427012
Buy489720272023-10-21 6:21:15133 days 23 hrs ago1697869275IN
0x7bf7eA...84cB80AF
0 MATIC0.0066239866.52387544
Buy489720182023-10-21 6:20:57133 days 23 hrs ago1697869257IN
0x7bf7eA...84cB80AF
0 MATIC0.007852167.30011328
Buy481843002023-10-01 3:33:03154 days 2 hrs ago1696131183IN
0x7bf7eA...84cB80AF
0 MATIC0.0055018841.1285337
Deposit481635232023-09-30 14:13:37154 days 15 hrs ago1696083217IN
0x7bf7eA...84cB80AF
0 MATIC0.0048249680
Withdraw481634782023-09-30 14:12:01154 days 15 hrs ago1696083121IN
0x7bf7eA...84cB80AF
0 MATIC0.0031763280
Deposit481634632023-09-30 14:11:29154 days 15 hrs ago1696083089IN
0x7bf7eA...84cB80AF
0 MATIC0.00482480
Add Stable481326102023-09-29 18:28:51155 days 11 hrs ago1696012131IN
0x7bf7eA...84cB80AF
0 MATIC0.0055215280
Add Stable481326062023-09-29 18:28:41155 days 11 hrs ago1696012121IN
0x7bf7eA...84cB80AF
0 MATIC0.0055215280
Add Stable481326022023-09-29 18:28:33155 days 11 hrs ago1696012113IN
0x7bf7eA...84cB80AF
0 MATIC0.0055215280
Set CRE Price481325972023-09-29 18:28:23155 days 11 hrs ago1696012103IN
0x7bf7eA...84cB80AF
0 MATIC0.003662480
0x60806040481325572023-09-29 18:26:57155 days 11 hrs ago1696012017IN
 Create: Presale
0 MATIC0.0515333266.19294624

Parent Txn Hash Block From To Value
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Presale

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 3 : Presale.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.21;

import {IERC20} from "openzeppelin/token/ERC20/IERC20.sol";
import {IERC20Metadata} from "openzeppelin/token/ERC20/extensions/IERC20Metadata.sol";

interface IPriceOracle {
    function latestRoundData()
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        );
}

contract Presale {
    address public constant CRE = 0xe81432473290F4ffCFc5E823F8069Db83e8A677B;

    address public gov;

    bool public paused;

    // CRE price(deicmals: 8)
    uint256 public crePrice;

    // ๊ฐ ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ์˜ ์ฒด์ธ๋งํฌ heartbeat ์ฃผ๊ธฐ
    mapping(address => uint256) heartbeats;
    // ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ์˜ ์ฒด์ธ๋งํฌ ์˜ค๋ผํด ์ฃผ์†Œ
    mapping(address => address) priceOracles;

    constructor(address _gov) {
        gov = _gov;
    }

    modifier onlyGov() {
        require(msg.sender == gov, "Presale: only gov");
        _;
    }

    function setGov(address _gov) external onlyGov {
        gov = _gov;
    }

    function pause() external onlyGov {
        paused = !paused;
    }

    /// @notice CRE๋กœ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ ์ถ”๊ฐ€
    /// @param token ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ ์ฃผ์†Œ
    /// @param oracle ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ์˜ ์ฒด์ธ๋งํฌ ์˜ค๋ผํด ์ฃผ์†Œ
    /// @param heartbeat ์ฒด์ธ๋งํฌ heartbeat ์ฃผ๊ธฐ, ์˜ค๋ž˜๋œ ๊ฐ€๊ฒฉ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•จ
    function addStable(
        address token,
        address oracle,
        uint256 heartbeat
    ) external onlyGov {
        heartbeats[token] = heartbeat;
        priceOracles[token] = oracle;
    }

    /// @notice CRE๋กœ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ ์ œ๊ฑฐ
    /// @param token ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ ์ฃผ์†Œ
    function removeStable(address token) external onlyGov {
        priceOracles[token] = address(0);
    }

    function setCREPrice(uint256 price) external onlyGov {
        crePrice = price;
    }

    function deposit(uint256 amount) external {
        IERC20(CRE).transferFrom(msg.sender, address(this), amount);
    }

    function withdraw(
        address token,
        address to,
        uint256 amount
    ) external onlyGov {
        require(
            amount <= IERC20(token).balanceOf(address(this)),
            "Presale: insufficient balance"
        );

        IERC20(token).transfer(to, amount);
    }

    function getPrice(address token) private view returns (uint256) {
        address priceOracle = priceOracles[token];
        require(priceOracle != address(0), "Presale: unknown token");

        (, int256 price, , uint256 updatedAt, ) = IPriceOracle(priceOracle)
            .latestRoundData();
        require(
            updatedAt > (block.timestamp - heartbeats[token]),
            "Presale: price error"
        );

        return uint256(price);
    }

    function exchangeRate(address stable) public view returns (uint256) {
        // ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ ๊ฐ€๊ฒฉ ํ™•์ธ(decimal: 8)
        uint256 stablePrice = getPrice(stable);

        // ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ 1๊ฐœ๋‹น ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” CRE ํ† ํฐ ์ˆ˜๋Ÿ‰ ๊ณ„์‚ฐ
        // stablePrice๊ณผ crePrice์˜ deicmals๊ฐ€ 8์ด๋ฏ€๋กœ CRE ํ† ํฐ์˜ decimals ๊ฐ’์ธ 18๋กœ ๋งž์ถ”๊ธฐ ์œ„ํ•ด 1e10 ์ถ”๊ฐ€ํ•ด์„œ ๊ณฑํ•จ
        return (stablePrice * 1e18) / crePrice;
    }

    /// @notice ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ์œผ๋กœ CRE ํ† ํฐ์„ ๊ตฌ๋งคํ•˜๋Š” ๊ธฐ๋Šฅ
    /// @param stable ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ ์ฃผ์†Œ
    /// @param stableAmount CRE ํ† ํฐ ๊ตฌ๋งค์— ์‚ฌ์šฉํ•  ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ ์ˆ˜๋Ÿ‰
    function buy(address stable, uint256 stableAmount) external {
        require(!paused, "Presale: paused");

        // ์Šคํ…Œ์ด๋ธ” ์ฝ”์ธ 1๊ฐœ๋‹น ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” CRE ํ† ํฐ ์ˆ˜๋Ÿ‰ ๊ณ„์‚ฐ
        // stablePrice๊ณผ crePrice์˜ deicmals๊ฐ€ 8์ด๋ฏ€๋กœ CRE ํ† ํฐ์˜ decimals ๊ฐ’์ธ 18๋กœ ๋งž์ถ”๊ธฐ ์œ„ํ•ด 1e10 ์ถ”๊ฐ€ํ•ด์„œ ๊ณฑํ•จ
        uint256 stablePerCRE = exchangeRate(stable);

        // ์ „์†กํ•  CRE ํ† ํฐ ์ˆ˜๋Ÿ‰ ๊ณ„์‚ฐ
        uint256 stableDecimals = IERC20Metadata(stable).decimals();
        uint256 amount = (stableAmount * stablePerCRE) / (10 ** stableDecimals);

        require(
            IERC20(CRE).balanceOf(address(this)) >= amount,
            "Presale: insufficient balance"
        );
        IERC20(CRE).transfer(msg.sender, amount);

        IERC20(stable).transferFrom(msg.sender, address(this), stableAmount);
    }
}

File 2 of 3 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

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

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

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

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

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

File 3 of 3 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

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

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "openzeppelin/=lib/openzeppelin-contracts/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CRE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"oracle","type":"address"},{"internalType":"uint256","name":"heartbeat","type":"uint256"}],"name":"addStable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stable","type":"address"},{"internalType":"uint256","name":"stableAmount","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"crePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stable","type":"address"}],"name":"exchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"removeStable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setCREPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"setGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051610d41380380610d4183398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610cae806100936000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063a46722011161008c578063cfad57a211610066578063cfad57a2146101b0578063d9caed12146101c3578063dc3b7c8b146101d6578063efe12ba0146101e957600080fd5b8063a467220114610177578063b6b55f251461018a578063cce7ec131461019d57600080fd5b806312d43a51146100d45780634de1faeb146101045780635c975abb1461011b578063653bba641461013f5780638456cb591461015a5780639754fee414610164575b600080fd5b6000546100e7906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61010d60015481565b6040519081526020016100fb565b60005461012f90600160a01b900460ff1681565b60405190151581526020016100fb565b6100e773e81432473290f4ffcfc5e823f8069db83e8a677b81565b6101626101fc565b005b610162610172366004610997565b610250565b6101626101853660046109d3565b6102b4565b6101626101983660046109ee565b610305565b6101626101ab366004610a07565b61038b565b6101626101be3660046109d3565b610630565b6101626101d1366004610997565b61067c565b61010d6101e43660046109d3565b6107d6565b6101626101f73660046109ee565b61080b565b6000546001600160a01b0316331461022f5760405162461bcd60e51b815260040161022690610a31565b60405180910390fd5b6000805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000546001600160a01b0316331461027a5760405162461bcd60e51b815260040161022690610a31565b6001600160a01b03928316600090815260026020908152604080832093909355600390522080546001600160a01b03191691909216179055565b6000546001600160a01b031633146102de5760405162461bcd60e51b815260040161022690610a31565b6001600160a01b0316600090815260036020526040902080546001600160a01b0319169055565b6040516323b872dd60e01b81523360048201523060248201526044810182905273e81432473290f4ffcfc5e823f8069db83e8a677b906323b872dd906064016020604051808303816000875af1158015610363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103879190610a5c565b5050565b600054600160a01b900460ff16156103d75760405162461bcd60e51b815260206004820152600f60248201526e141c995cd85b194e881c185d5cd959608a1b6044820152606401610226565b60006103e2836107d6565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104489190610a7e565b60ff169050600061045a82600a610b9d565b6104648486610ba9565b61046e9190610bc0565b6040516370a0823160e01b8152306004820152909150819073e81432473290f4ffcfc5e823f8069db83e8a677b906370a0823190602401602060405180830381865afa1580156104c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e69190610be2565b10156105345760405162461bcd60e51b815260206004820152601d60248201527f50726573616c653a20696e73756666696369656e742062616c616e63650000006044820152606401610226565b60405163a9059cbb60e01b81523360048201526024810182905273e81432473290f4ffcfc5e823f8069db83e8a677b9063a9059cbb906044016020604051808303816000875af115801561058c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b09190610a5c565b506040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b038616906323b872dd906064016020604051808303816000875af1158015610604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106289190610a5c565b505050505050565b6000546001600160a01b0316331461065a5760405162461bcd60e51b815260040161022690610a31565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146106a65760405162461bcd60e51b815260040161022690610a31565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156106ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070e9190610be2565b81111561075d5760405162461bcd60e51b815260206004820152601d60248201527f50726573616c653a20696e73756666696369656e742062616c616e63650000006044820152606401610226565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156107ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d09190610a5c565b50505050565b6000806107e28361083a565b6001549091506107fa82670de0b6b3a7640000610ba9565b6108049190610bc0565b9392505050565b6000546001600160a01b031633146108355760405162461bcd60e51b815260040161022690610a31565b600155565b6001600160a01b038082166000908152600360205260408120549091168061089d5760405162461bcd60e51b8152602060048201526016602482015275283932b9b0b6329d103ab735b737bbb7103a37b5b2b760511b6044820152606401610226565b600080826001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156108de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109029190610c15565b506001600160a01b038916600090815260026020526040902054929550935061092e9250429050610c65565b81116109735760405162461bcd60e51b8152602060048201526014602482015273283932b9b0b6329d10383934b1b29032b93937b960611b6044820152606401610226565b509392505050565b80356001600160a01b038116811461099257600080fd5b919050565b6000806000606084860312156109ac57600080fd5b6109b58461097b565b92506109c36020850161097b565b9150604084013590509250925092565b6000602082840312156109e557600080fd5b6108048261097b565b600060208284031215610a0057600080fd5b5035919050565b60008060408385031215610a1a57600080fd5b610a238361097b565b946020939093013593505050565b602080825260119082015270283932b9b0b6329d1037b7363c9033b7bb60791b604082015260600190565b600060208284031215610a6e57600080fd5b8151801515811461080457600080fd5b600060208284031215610a9057600080fd5b815160ff8116811461080457600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610af2578160001904821115610ad857610ad8610aa1565b80851615610ae557918102915b93841c9390800290610abc565b509250929050565b600082610b0957506001610b97565b81610b1657506000610b97565b8160018114610b2c5760028114610b3657610b52565b6001915050610b97565b60ff841115610b4757610b47610aa1565b50506001821b610b97565b5060208310610133831016604e8410600b8410161715610b75575081810a610b97565b610b7f8383610ab7565b8060001904821115610b9357610b93610aa1565b0290505b92915050565b60006108048383610afa565b8082028115828204841417610b9757610b97610aa1565b600082610bdd57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610bf457600080fd5b5051919050565b805169ffffffffffffffffffff8116811461099257600080fd5b600080600080600060a08688031215610c2d57600080fd5b610c3686610bfb565b9450602086015193506040860151925060608601519150610c5960808701610bfb565b90509295509295909350565b81810381811115610b9757610b97610aa156fea2646970667358221220c7b256d00df7ff789cc1621359e3b688a8e150c3e7db063dcbeaf7c4feb4248764736f6c634300081500330000000000000000000000001337ef3cf8aebbac95b8e3b496cfcbb489cd72cc

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063a46722011161008c578063cfad57a211610066578063cfad57a2146101b0578063d9caed12146101c3578063dc3b7c8b146101d6578063efe12ba0146101e957600080fd5b8063a467220114610177578063b6b55f251461018a578063cce7ec131461019d57600080fd5b806312d43a51146100d45780634de1faeb146101045780635c975abb1461011b578063653bba641461013f5780638456cb591461015a5780639754fee414610164575b600080fd5b6000546100e7906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61010d60015481565b6040519081526020016100fb565b60005461012f90600160a01b900460ff1681565b60405190151581526020016100fb565b6100e773e81432473290f4ffcfc5e823f8069db83e8a677b81565b6101626101fc565b005b610162610172366004610997565b610250565b6101626101853660046109d3565b6102b4565b6101626101983660046109ee565b610305565b6101626101ab366004610a07565b61038b565b6101626101be3660046109d3565b610630565b6101626101d1366004610997565b61067c565b61010d6101e43660046109d3565b6107d6565b6101626101f73660046109ee565b61080b565b6000546001600160a01b0316331461022f5760405162461bcd60e51b815260040161022690610a31565b60405180910390fd5b6000805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000546001600160a01b0316331461027a5760405162461bcd60e51b815260040161022690610a31565b6001600160a01b03928316600090815260026020908152604080832093909355600390522080546001600160a01b03191691909216179055565b6000546001600160a01b031633146102de5760405162461bcd60e51b815260040161022690610a31565b6001600160a01b0316600090815260036020526040902080546001600160a01b0319169055565b6040516323b872dd60e01b81523360048201523060248201526044810182905273e81432473290f4ffcfc5e823f8069db83e8a677b906323b872dd906064016020604051808303816000875af1158015610363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103879190610a5c565b5050565b600054600160a01b900460ff16156103d75760405162461bcd60e51b815260206004820152600f60248201526e141c995cd85b194e881c185d5cd959608a1b6044820152606401610226565b60006103e2836107d6565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104489190610a7e565b60ff169050600061045a82600a610b9d565b6104648486610ba9565b61046e9190610bc0565b6040516370a0823160e01b8152306004820152909150819073e81432473290f4ffcfc5e823f8069db83e8a677b906370a0823190602401602060405180830381865afa1580156104c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e69190610be2565b10156105345760405162461bcd60e51b815260206004820152601d60248201527f50726573616c653a20696e73756666696369656e742062616c616e63650000006044820152606401610226565b60405163a9059cbb60e01b81523360048201526024810182905273e81432473290f4ffcfc5e823f8069db83e8a677b9063a9059cbb906044016020604051808303816000875af115801561058c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b09190610a5c565b506040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b038616906323b872dd906064016020604051808303816000875af1158015610604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106289190610a5c565b505050505050565b6000546001600160a01b0316331461065a5760405162461bcd60e51b815260040161022690610a31565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146106a65760405162461bcd60e51b815260040161022690610a31565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156106ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070e9190610be2565b81111561075d5760405162461bcd60e51b815260206004820152601d60248201527f50726573616c653a20696e73756666696369656e742062616c616e63650000006044820152606401610226565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156107ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d09190610a5c565b50505050565b6000806107e28361083a565b6001549091506107fa82670de0b6b3a7640000610ba9565b6108049190610bc0565b9392505050565b6000546001600160a01b031633146108355760405162461bcd60e51b815260040161022690610a31565b600155565b6001600160a01b038082166000908152600360205260408120549091168061089d5760405162461bcd60e51b8152602060048201526016602482015275283932b9b0b6329d103ab735b737bbb7103a37b5b2b760511b6044820152606401610226565b600080826001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156108de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109029190610c15565b506001600160a01b038916600090815260026020526040902054929550935061092e9250429050610c65565b81116109735760405162461bcd60e51b8152602060048201526014602482015273283932b9b0b6329d10383934b1b29032b93937b960611b6044820152606401610226565b509392505050565b80356001600160a01b038116811461099257600080fd5b919050565b6000806000606084860312156109ac57600080fd5b6109b58461097b565b92506109c36020850161097b565b9150604084013590509250925092565b6000602082840312156109e557600080fd5b6108048261097b565b600060208284031215610a0057600080fd5b5035919050565b60008060408385031215610a1a57600080fd5b610a238361097b565b946020939093013593505050565b602080825260119082015270283932b9b0b6329d1037b7363c9033b7bb60791b604082015260600190565b600060208284031215610a6e57600080fd5b8151801515811461080457600080fd5b600060208284031215610a9057600080fd5b815160ff8116811461080457600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610af2578160001904821115610ad857610ad8610aa1565b80851615610ae557918102915b93841c9390800290610abc565b509250929050565b600082610b0957506001610b97565b81610b1657506000610b97565b8160018114610b2c5760028114610b3657610b52565b6001915050610b97565b60ff841115610b4757610b47610aa1565b50506001821b610b97565b5060208310610133831016604e8410600b8410161715610b75575081810a610b97565b610b7f8383610ab7565b8060001904821115610b9357610b93610aa1565b0290505b92915050565b60006108048383610afa565b8082028115828204841417610b9757610b97610aa1565b600082610bdd57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610bf457600080fd5b5051919050565b805169ffffffffffffffffffff8116811461099257600080fd5b600080600080600060a08688031215610c2d57600080fd5b610c3686610bfb565b9450602086015193506040860151925060608601519150610c5960808701610bfb565b90509295509295909350565b81810381811115610b9757610b97610aa156fea2646970667358221220c7b256d00df7ff789cc1621359e3b688a8e150c3e7db063dcbeaf7c4feb4248764736f6c63430008150033

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

0000000000000000000000001337ef3cf8aebbac95b8e3b496cfcbb489cd72cc

-----Decoded View---------------
Arg [0] : _gov (address): 0x1337ef3cF8aEbBAc95b8E3b496CfCBB489cd72cC

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001337ef3cf8aebbac95b8e3b496cfcbb489cd72cc


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

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.