POL Price: $0.624571 (-1.57%)
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Gov651205612024-12-05 16:53:147 days ago1733417594IN
0x7bf7eA00...b84cB80AF
0 POL0.0134825500
Set Gov627776812024-10-08 8:33:4866 days ago1728376428IN
0x7bf7eA00...b84cB80AF
0 POL0.0008372531.04986836
Buy491722352023-10-26 11:12:36414 days ago1698318756IN
0x7bf7eA00...b84cB80AF
0 POL0.02499404205.77832978
Buy491663822023-10-26 7:43:00414 days ago1698306180IN
0x7bf7eA00...b84cB80AF
0 POL0.01237032106.0147337
Buy491659192023-10-26 7:26:04414 days ago1698305164IN
0x7bf7eA00...b84cB80AF
0 POL0.01183118107.16357631
Buy490973452023-10-24 14:15:30415 days ago1698156930IN
0x7bf7eA00...b84cB80AF
0 POL0.0095129591.14387754
Buy490972142023-10-24 14:10:46415 days ago1698156646IN
0x7bf7eA00...b84cB80AF
0 POL0.0085748982.15622688
Buy490911682023-10-24 10:33:43416 days ago1698143623IN
0x7bf7eA00...b84cB80AF
0 POL0.01189476113.96396904
Buy490911352023-10-24 10:32:31416 days ago1698143551IN
0x7bf7eA00...b84cB80AF
0 POL0.01274261129.77107665
Buy490680922023-10-23 19:51:40416 days ago1698090700IN
0x7bf7eA00...b84cB80AF
0 POL0.01718071149.01785799
Buy490680532023-10-23 19:49:58416 days ago1698090598IN
0x7bf7eA00...b84cB80AF
0 POL0.01468689127.50035438
Buy490678292023-10-23 19:41:50416 days ago1698090110IN
0x7bf7eA00...b84cB80AF
0 POL0.01264105121.11427012
Buy489720272023-10-21 6:21:15419 days ago1697869275IN
0x7bf7eA00...b84cB80AF
0 POL0.0066239866.52387544
Buy489720182023-10-21 6:20:57419 days ago1697869257IN
0x7bf7eA00...b84cB80AF
0 POL0.007852167.30011328
Buy481843002023-10-01 3:33:03439 days ago1696131183IN
0x7bf7eA00...b84cB80AF
0 POL0.0055018841.1285337
Deposit481635232023-09-30 14:13:37439 days ago1696083217IN
0x7bf7eA00...b84cB80AF
0 POL0.0048249680
Withdraw481634782023-09-30 14:12:01439 days ago1696083121IN
0x7bf7eA00...b84cB80AF
0 POL0.0031763280
Deposit481634632023-09-30 14:11:29439 days ago1696083089IN
0x7bf7eA00...b84cB80AF
0 POL0.00482480
Add Stable481326102023-09-29 18:28:51440 days ago1696012131IN
0x7bf7eA00...b84cB80AF
0 POL0.0055215280
Add Stable481326062023-09-29 18:28:41440 days ago1696012121IN
0x7bf7eA00...b84cB80AF
0 POL0.0055215280
Add Stable481326022023-09-29 18:28:33440 days ago1696012113IN
0x7bf7eA00...b84cB80AF
0 POL0.0055215280
Set CRE Price481325972023-09-29 18:28:23440 days ago1696012103IN
0x7bf7eA00...b84cB80AF
0 POL0.003662480

Parent Transaction Hash Block From To
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
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 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
[ 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.