Contract 0xa867241cdc8d3b0c07c85cc06f25a0cd3b5474d8 8

 

Contract Overview

DODO: Approve V2
Balance:
0 ETH

ETH Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6857ada4c9fb7ffe4352ab4c421a8501f710820037c1ea0364ad84dad27a8435Init2266642021-08-30 10:59:33956 days 23 hrs ago0x7081685ff3ff16fb6c0df08ac93bdb7299eeefc9 IN  DODO: Approve V20 ETH0.00115776717 ETH0.868038491
0x7b51fef0d2233a12c1d626c7499063704fc982f2e27ca92ee2e58c50cc9955b90x608060402264902021-08-30 5:24:30957 days 4 hrs ago0x7081685ff3ff16fb6c0df08ac93bdb7299eeefc9 IN  Contract Creation0 ETH0.004598269713 ETH0.897776564
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x48f4a5524db7960441318ae4147eda2dd453924b36d564590fca5f6402bb1824720865502023-03-21 10:18:18388 days 23 hrs ago DODO: Approve V2 Tether: USDT Token0 ETH
0x48f4a5524db7960441318ae4147eda2dd453924b36d564590fca5f6402bb1824720865502023-03-21 10:18:18388 days 23 hrs ago DODO: Approve Proxy V2 DODO: Approve V20 ETH
0x2411ed888fc11346964251e3946c468e9e05fae30b9a57c6672019d3a2cad32d720861682023-03-21 10:16:47388 days 23 hrs ago DODO: Approve V2 Tether: USDT Token0 ETH
0x2411ed888fc11346964251e3946c468e9e05fae30b9a57c6672019d3a2cad32d720861682023-03-21 10:16:47388 days 23 hrs ago DODO: Approve Proxy V2 DODO: Approve V20 ETH
0x96ef3a0539c428d573013ef9aef91a6fa24c38205f96297b6851e94b0da5405f720860812023-03-21 10:16:24388 days 23 hrs ago DODO: Approve V2 Tether: USDT Token0 ETH
0x96ef3a0539c428d573013ef9aef91a6fa24c38205f96297b6851e94b0da5405f720860812023-03-21 10:16:24388 days 23 hrs ago DODO: Approve Proxy V2 DODO: Approve V20 ETH
0x5688b4dce2dbfe775db3d877737029b337979fca3f0181b0646c5a2d4c3ed270720853882023-03-21 10:13:29388 days 23 hrs ago DODO: Approve V2 Tether: USDT Token0 ETH
0x5688b4dce2dbfe775db3d877737029b337979fca3f0181b0646c5a2d4c3ed270720853882023-03-21 10:13:29388 days 23 hrs ago DODO: Approve Proxy V2 DODO: Approve V20 ETH
0x7927aa6ea1463c4a21f6023373101e7175efb8554065876692752d6fdb33846c720849182023-03-21 10:11:37388 days 23 hrs ago DODO: Approve V2 Tether: USDT Token0 ETH
0x7927aa6ea1463c4a21f6023373101e7175efb8554065876692752d6fdb33846c720849182023-03-21 10:11:37388 days 23 hrs ago DODO: Approve Proxy V2 DODO: Approve V20 ETH
0x215903645af70621c3320439e7326d42dd7a7857f7be221b839bb2b51eebe7f7720849132023-03-21 10:11:35388 days 23 hrs ago DODO: Approve V2 dForce: USX Token0 ETH
0x215903645af70621c3320439e7326d42dd7a7857f7be221b839bb2b51eebe7f7720849132023-03-21 10:11:35388 days 23 hrs ago DODO: Approve Proxy V2 DODO: Approve V20 ETH
0xe944c93ed3165f2de45bfa54ad2c020704606610b53db07d4477e8df9aa8a803720847982023-03-21 10:11:06388 days 23 hrs ago DODO: Approve V2 0xad9e06cd20cb6dc5356b51ee41107e9456028fd20 ETH
0xe944c93ed3165f2de45bfa54ad2c020704606610b53db07d4477e8df9aa8a803720847982023-03-21 10:11:06388 days 23 hrs ago DODO: Approve Proxy V2 DODO: Approve V20 ETH
0xe9811b9bd4a74bcc520bda8f24abbbc37b2898d5895334cab247a0ba12a9f91d720845252023-03-21 10:09:56389 days ago DODO: Approve V2 Tether: USDT Token0 ETH
0xe9811b9bd4a74bcc520bda8f24abbbc37b2898d5895334cab247a0ba12a9f91d720845252023-03-21 10:09:56389 days ago DODO: Approve Proxy V2 DODO: Approve V20 ETH
0x668f8b9e0f8ed5c178bce70ec4bd85bcd071a5e6bfb82ae9354ee9874bb42334720843542023-03-21 10:09:13389 days ago DODO: Approve V2 Tether: USDT Token0 ETH
0x668f8b9e0f8ed5c178bce70ec4bd85bcd071a5e6bfb82ae9354ee9874bb42334720843542023-03-21 10:09:13389 days ago DODO: Approve Proxy V2 DODO: Approve V20 ETH
0x6554a086f4bf20fb65cb8c18d86df4505065628e53fb8ac5ad7a1c6d0b7b411a720840162023-03-21 10:07:47389 days 2 mins ago DODO: Approve V2 0xa0459edcad5aac14dc32775d22ff7bd33027cac70 ETH
0x6554a086f4bf20fb65cb8c18d86df4505065628e53fb8ac5ad7a1c6d0b7b411a720840162023-03-21 10:07:47389 days 2 mins ago DODO: Approve Proxy V2 DODO: Approve V20 ETH
0x03ba35f89e20efba570ab79cd364fc9465f50c8dacf36271da8bce4b9a84e0d4720837342023-03-21 10:06:36389 days 3 mins ago DODO: Approve V2 Arbitrum: USDC Token0 ETH
0x03ba35f89e20efba570ab79cd364fc9465f50c8dacf36271da8bce4b9a84e0d4720837342023-03-21 10:06:36389 days 3 mins ago DODO: Approve Proxy V2 DODO: Approve V20 ETH
0x0f2d9c4debcd2ff0231d5e0be7ac13d16c7908a2e78fb60f66a8ded4a4f67ba9720836812023-03-21 10:06:22389 days 3 mins ago DODO: Approve V2 Arbitrum: USDC Token0 ETH
0x0f2d9c4debcd2ff0231d5e0be7ac13d16c7908a2e78fb60f66a8ded4a4f67ba9720836812023-03-21 10:06:22389 days 3 mins ago DODO: Approve Proxy V2 DODO: Approve V20 ETH
0x7b994b437b53020d57362d15a2e9b79268525cca567d9b502179d54eee5916c8720832052023-03-21 10:04:30389 days 5 mins ago DODO: Approve V2 Arbitrum: USDC Token0 ETH
[ Download CSV Export 
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x00971e21955F1bb8021a5eF2546beC2Ff896EE42
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
DODOApprove

Compiler Version
v0.6.9+commit.3e3065ac

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license
/**
 *Submitted for verification at Arbiscan.io on 2021-08-30
*/

// File: contracts/intf/IERC20.sol

// This is a file copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

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

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

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

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

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

// File: contracts/lib/SafeMath.sol


/**
 * @title SafeMath
 * @author DODO Breeder
 *
 * @notice Math operations with safety checks that revert on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "MUL_ERROR");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "DIVIDING_ERROR");
        return a / b;
    }

    function divCeil(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 quotient = div(a, b);
        uint256 remainder = a - quotient * b;
        if (remainder > 0) {
            return quotient + 1;
        } else {
            return quotient;
        }
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SUB_ERROR");
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "ADD_ERROR");
        return c;
    }

    function sqrt(uint256 x) internal pure returns (uint256 y) {
        uint256 z = x / 2 + 1;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
}

// File: contracts/lib/SafeERC20.sol



/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure (when the token
 * contract returns false). Tokens that return no value (and instead revert or
 * throw on failure) are also supported, non-reverting calls are assumed to be
 * successful.
 * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    using SafeMath for uint256;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(
            token,
            abi.encodeWithSelector(token.transferFrom.selector, from, to, value)
        );
    }

    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        // solhint-disable-next-line max-line-length
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    /**
     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
     * on the return value: the return value is optional (but if data is returned, it must not be false).
     * @param token The token targeted by the call.
     * @param data The call data (encoded using abi.encode or one of its variants).
     */
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves.

        // A Solidity high level call has three parts:
        //  1. The target address is checked to verify it contains contract code
        //  2. The call itself is made, and success asserted
        //  3. The return value is decoded, which in turn checks the size of the returned data.
        // solhint-disable-next-line max-line-length

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) {
            // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

// File: contracts/lib/InitializableOwnable.sol


/**
 * @title Ownable
 * @author DODO Breeder
 *
 * @notice Ownership related functions
 */
contract InitializableOwnable {
    address public _OWNER_;
    address public _NEW_OWNER_;
    bool internal _INITIALIZED_;

    // ============ Events ============

    event OwnershipTransferPrepared(address indexed previousOwner, address indexed newOwner);

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    // ============ Modifiers ============

    modifier notInitialized() {
        require(!_INITIALIZED_, "DODO_INITIALIZED");
        _;
    }

    modifier onlyOwner() {
        require(msg.sender == _OWNER_, "NOT_OWNER");
        _;
    }

    // ============ Functions ============

    function initOwner(address newOwner) public notInitialized {
        _INITIALIZED_ = true;
        _OWNER_ = newOwner;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        emit OwnershipTransferPrepared(_OWNER_, newOwner);
        _NEW_OWNER_ = newOwner;
    }

    function claimOwnership() public {
        require(msg.sender == _NEW_OWNER_, "INVALID_CLAIM");
        emit OwnershipTransferred(_OWNER_, _NEW_OWNER_);
        _OWNER_ = _NEW_OWNER_;
        _NEW_OWNER_ = address(0);
    }
}

// File: contracts/SmartRoute/DODOApprove.sol


/**
 * @title DODOApprove
 * @author DODO Breeder
 *
 * @notice Handle authorizations in DODO platform
 */
contract DODOApprove is InitializableOwnable {
    using SafeERC20 for IERC20;
    
    // ============ Storage ============
    uint256 private constant _TIMELOCK_DURATION_ = 3 days;
    uint256 private constant _TIMELOCK_EMERGENCY_DURATION_ = 24 hours;
    uint256 public _TIMELOCK_;
    address public _PENDING_DODO_PROXY_;
    address public _DODO_PROXY_;

    // ============ Events ============

    event SetDODOProxy(address indexed oldProxy, address indexed newProxy);

    
    // ============ Modifiers ============
    modifier notLocked() {
        require(
            _TIMELOCK_ <= block.timestamp,
            "SetProxy is timelocked"
        );
        _;
    }

    function init(address owner, address initProxyAddress) external {
        initOwner(owner);
        _DODO_PROXY_ = initProxyAddress;
    }

    function unlockSetProxy(address newDodoProxy) public onlyOwner {
        if(_DODO_PROXY_ == address(0))
            _TIMELOCK_ = block.timestamp + _TIMELOCK_EMERGENCY_DURATION_;
        else
            _TIMELOCK_ = block.timestamp + _TIMELOCK_DURATION_;
        _PENDING_DODO_PROXY_ = newDodoProxy;
    }


    function lockSetProxy() public onlyOwner {
       _PENDING_DODO_PROXY_ = address(0);
       _TIMELOCK_ = 0;
    }


    function setDODOProxy() external onlyOwner notLocked() {
        emit SetDODOProxy(_DODO_PROXY_, _PENDING_DODO_PROXY_);
        _DODO_PROXY_ = _PENDING_DODO_PROXY_;
        lockSetProxy();
    }


    function claimTokens(
        address token,
        address who,
        address dest,
        uint256 amount
    ) external {
        require(msg.sender == _DODO_PROXY_, "DODOApprove:Access restricted");
        if (amount > 0) {
            IERC20(token).safeTransferFrom(who, dest, amount);
        }
    }

    function getDODOProxy() public view returns (address) {
        return _DODO_PROXY_;
    }
}

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferPrepared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldProxy","type":"address"},{"indexed":true,"internalType":"address","name":"newProxy","type":"address"}],"name":"SetDODOProxy","type":"event"},{"inputs":[],"name":"_DODO_PROXY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_NEW_OWNER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_OWNER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_PENDING_DODO_PROXY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_TIMELOCK_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"dest","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDODOProxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"initProxyAddress","type":"address"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"initOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockSetProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setDODOProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDodoProxy","type":"address"}],"name":"unlockSetProxy","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638456db151161008c578063b75dbf6811610066578063b75dbf6814610178578063e54c80331461018d578063f09a401614610195578063f2fde38b146101a8576100ea565b80638456db15146101605780638cdb65741461016857806393773aec14610170576100ea565b806331fa1319116100c857806331fa13191461013557806341c256c11461013d5780634e71e0c8146101505780634f3cef8414610158576100ea565b80630a5ea466146100ef5780630d0092971461010457806316048bc414610117575b600080fd5b6101026100fd3660046106ee565b6101bb565b005b610102610112366004610698565b610215565b61011f610275565b60405161012c9190610797565b60405180910390f35b61011f610284565b61010261014b366004610698565b610293565b610102610307565b610102610395565b61011f6103d6565b6101026103e5565b61011f61049c565b6101806104ab565b60405161012c9190610929565b61011f6104b1565b6101026101a33660046106ba565b6104c0565b6101026101b6366004610698565b6104ec565b6004546001600160a01b031633146101ee5760405162461bcd60e51b81526004016101e59061082b565b60405180910390fd5b801561020f5761020f6001600160a01b03851684848463ffffffff61057116565b50505050565b600154600160a01b900460ff161561023f5760405162461bcd60e51b81526004016101e590610892565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b039092166001600160a01b0319909216919091179055565b6000546001600160a01b031681565b6004546001600160a01b031690565b6000546001600160a01b031633146102bd5760405162461bcd60e51b81526004016101e5906108bc565b6004546001600160a01b03166102db574262015180016002556102e5565b426203f480016002555b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146103315760405162461bcd60e51b81526004016101e5906107cf565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031633146103bf5760405162461bcd60e51b81526004016101e5906108bc565b600380546001600160a01b03191690556000600255565b6001546001600160a01b031681565b6000546001600160a01b0316331461040f5760405162461bcd60e51b81526004016101e5906108bc565b4260025411156104315760405162461bcd60e51b81526004016101e590610862565b6003546004546040516001600160a01b0392831692909116907fd356351ffbb32d7a93878d5fbbd5c39435bbae136f428b0d574242f63bb803cb90600090a3600354600480546001600160a01b0319166001600160a01b0390921691909117905561049a610395565b565b6003546001600160a01b031681565b60025481565b6004546001600160a01b031681565b6104c982610215565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b031633146105165760405162461bcd60e51b81526004016101e5906108bc565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b61020f846323b872dd60e01b858585604051602401610592939291906107ab565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915260006060836001600160a01b0316836040516105e0919061075e565b6000604051808303816000865af19150503d806000811461061d576040519150601f19603f3d011682016040523d82523d6000602084013e610622565b606091505b5091509150816106445760405162461bcd60e51b81526004016101e5906107f6565b80511561020f578080602001905181019061065f919061073e565b61020f5760405162461bcd60e51b81526004016101e5906108df565b80356001600160a01b038116811461069257600080fd5b92915050565b6000602082840312156106a9578081fd5b6106b3838361067b565b9392505050565b600080604083850312156106cc578081fd5b6106d6848461067b565b91506106e5846020850161067b565b90509250929050565b60008060008060808587031215610703578182fd5b843561070e81610932565b9350602085013561071e81610932565b9250604085013561072e81610932565b9396929550929360600135925050565b60006020828403121561074f578081fd5b815180151581146106b3578182fd5b60008251815b8181101561077e5760208186018101518583015201610764565b8181111561078c5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252601d908201527f444f444f417070726f76653a4163636573732072657374726963746564000000604082015260600190565b60208082526016908201527514d95d141c9bde1e481a5cc81d1a5b595b1bd8dad95960521b604082015260600190565b60208082526010908201526f1113d113d7d25392551250531256915160821b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b90815260200190565b6001600160a01b038116811461094757600080fd5b5056fea264697066735822122088bedcbe1b5a429730ead62cb5b6a3ef7763e31f9abfef37920d77c41369be2764736f6c63430006090033

Deployed ByteCode Sourcemap

8823:1935:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10335:320;;;;;;;;;:::i;:::-;;8118:127;;;;;;;;;:::i;7485:22::-;;;:::i;:::-;;;;;;;;;;;;;;;;10663:92;;;:::i;9680:311::-;;;;;;;;;:::i;8424:228::-;;;:::i;10001:116::-;;;:::i;7514:26::-;;;:::i;10127:198::-;;;:::i;9120:35::-;;;:::i;9088:25::-;;;:::i;:::-;;;;;;;;9162:27;;;:::i;9531:141::-;;;;;;;;;:::i;8253:163::-;;;;;;;;;:::i;10335:320::-;10499:12;;-1:-1:-1;;;;;10499:12:0;10485:10;:26;10477:68;;;;-1:-1:-1;;;10477:68:0;;;;;;;;;;;;;;;;;10560:10;;10556:92;;10587:49;-1:-1:-1;;;;;10587:30:0;;10618:3;10623:4;10629:6;10587:49;:30;:49;:::i;:::-;10335:320;;;;:::o;8118:127::-;7907:13;;-1:-1:-1;;;7907:13:0;;;;7906:14;7898:43;;;;-1:-1:-1;;;7898:43:0;;;;;;;;;8204:4:::1;8188:20:::0;;-1:-1:-1;;;;8188:20:0::1;-1:-1:-1::0;;;8188:20:0::1;::::0;;;8219:18;;-1:-1:-1;;;;;8219:18:0;;::::1;-1:-1:-1::0;;;;;;8219:18:0;;::::1;::::0;;;::::1;::::0;;8118:127::o;7485:22::-;;;-1:-1:-1;;;;;7485:22:0;;:::o;10663:92::-;10735:12;;-1:-1:-1;;;;;10735:12:0;10663:92;:::o;9680:311::-;8023:7;;-1:-1:-1;;;;;8023:7:0;8009:10;:21;8001:43;;;;-1:-1:-1;;;8001:43:0;;;;;;;;;9757:12:::1;::::0;-1:-1:-1;;;;;9757:12:0::1;9754:183;;9811:15;9073:8;9811:47;9798:10;:60:::0;9754:183:::1;;;9900:15;9003:6;9900:37;9887:10;:50:::0;9754:183:::1;9948:20;:35:::0;;-1:-1:-1;;;;;;9948:35:0::1;-1:-1:-1::0;;;;;9948:35:0;;;::::1;::::0;;;::::1;::::0;;9680:311::o;8424:228::-;8490:11;;-1:-1:-1;;;;;8490:11:0;8476:10;:25;8468:51;;;;-1:-1:-1;;;8468:51:0;;;;;;;;;8565:11;;;8556:7;;8535:42;;-1:-1:-1;;;;;8565:11:0;;;;8556:7;;;;8535:42;;;8598:11;;;;8588:21;;-1:-1:-1;;;;;;8588:21:0;;;-1:-1:-1;;;;;8598:11:0;;8588:21;;;;8620:24;;;8424:228::o;10001:116::-;8023:7;;-1:-1:-1;;;;;8023:7:0;8009:10;:21;8001:43;;;;-1:-1:-1;;;8001:43:0;;;;;;;;;10052:20:::1;:33:::0;;-1:-1:-1;;;;;;10052:33:0::1;::::0;;10083:1:::1;10095:10;:14:::0;10001:116::o;7514:26::-;;;-1:-1:-1;;;;;7514:26:0;;:::o;10127:198::-;8023:7;;-1:-1:-1;;;;;8023:7:0;8009:10;:21;8001:43;;;;-1:-1:-1;;;8001:43:0;;;;;;;;;9438:15:::1;9424:10;;:29;;9402:101;;;;-1:-1:-1::0;;;9402:101:0::1;;;;;;;;;10225:20:::2;::::0;10211:12:::2;::::0;10198:48:::2;::::0;-1:-1:-1;;;;;10225:20:0;;::::2;::::0;10211:12;;::::2;::::0;10198:48:::2;::::0;10225:20:::2;::::0;10198:48:::2;10272:20;::::0;10257:12:::2;:35:::0;;-1:-1:-1;;;;;;10257:35:0::2;-1:-1:-1::0;;;;;10272:20:0;;::::2;10257:35:::0;;;::::2;::::0;;10303:14:::2;:12;:14::i;:::-;10127:198::o:0;9120:35::-;;;-1:-1:-1;;;;;9120:35:0;;:::o;9088:25::-;;;;:::o;9162:27::-;;;-1:-1:-1;;;;;9162:27:0;;:::o;9531:141::-;9606:16;9616:5;9606:9;:16::i;:::-;9633:12;:31;;-1:-1:-1;;;;;;9633:31:0;-1:-1:-1;;;;;9633:31:0;;;;;;;;;;-1:-1:-1;9531:141:0:o;8253:163::-;8023:7;;-1:-1:-1;;;;;8023:7:0;8009:10;:21;8001:43;;;;-1:-1:-1;;;8001:43:0;;;;;;;;;8357:7:::1;::::0;;8331:44:::1;::::0;-1:-1:-1;;;;;8331:44:0;;::::1;::::0;8357:7;::::1;::::0;8331:44:::1;::::0;::::1;8386:11;:22:::0;;-1:-1:-1;;;;;;8386:22:0::1;-1:-1:-1::0;;;;;8386:22:0;;;::::1;::::0;;;::::1;::::0;;8253:163::o;4890:285::-;5034:133;5068:5;5111:27;;;5140:4;5146:2;5150:5;5088:68;;;;;;;;;;;;;;;-1:-1:-1;;5088:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;5088:68:0;-1:-1:-1;;;;;;5088:68:0;;;;;;;;;;6904:12;6918:23;6953:5;-1:-1:-1;;;;;6945:19:0;6965:4;6945:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6903:67;;;;6989:7;6981:52;;;;-1:-1:-1;;;6981:52:0;;;;;;;;;7050:17;;:21;7046:237;;7205:10;7194:30;;;;;;;;;;;;;;7186:85;;;;-1:-1:-1;;;7186:85:0;;;;;;;;5:130:-1;72:20;;-1:-1;;;;;9741:54;;10222:35;;10212:2;;10271:1;;10261:12;10212:2;57:78;;;;;414:241;;518:2;506:9;497:7;493:23;489:32;486:2;;;-1:-1;;524:12;486:2;586:53;631:7;607:22;586:53;;;576:63;480:175;-1:-1;;;480:175;662:366;;;783:2;771:9;762:7;758:23;754:32;751:2;;;-1:-1;;789:12;751:2;851:53;896:7;872:22;851:53;;;841:63;;959:53;1004:7;941:2;984:9;980:22;959:53;;;949:63;;745:283;;;;;;1035:617;;;;;1190:3;1178:9;1169:7;1165:23;1161:33;1158:2;;;-1:-1;;1197:12;1158:2;85:6;72:20;97:33;124:5;97:33;;;1249:63;-1:-1;1349:2;1388:22;;72:20;97:33;72:20;97:33;;;1357:63;-1:-1;1457:2;1496:22;;72:20;97:33;72:20;97:33;;;1152:500;;;;-1:-1;1465:63;;1565:2;1604:22;344:20;;-1:-1;;1152:500;1659:257;;1771:2;1759:9;1750:7;1746:23;1742:32;1739:2;;;-1:-1;;1777:12;1739:2;223:6;217:13;10368:5;9653:13;9646:21;10346:5;10343:32;10333:2;;-1:-1;;10379:12;4888:271;;2203:5;9123:12;-1:-1;9959:101;9973:6;9970:1;9967:13;9959:101;;;2347:4;10040:11;;;;;10034:18;10021:11;;;10014:39;9988:10;9959:101;;;10075:6;10072:1;10069:13;10066:2;;;-1:-1;10131:6;10126:3;10122:16;10115:27;10066:2;-1:-1;2378:16;;;;;5022:137;-1:-1;;5022:137;5166:222;-1:-1;;;;;9741:54;;;;1994:37;;5293:2;5278:18;;5264:124;5395:444;-1:-1;;;;;9741:54;;;1994:37;;9741:54;;;;5742:2;5727:18;;1994:37;5825:2;5810:18;;4839:37;;;;5578:2;5563:18;;5549:290;5846:416;6046:2;6060:47;;;2631:2;6031:18;;;9421:19;-1:-1;;;9461:14;;;2647:36;2702:12;;;6017:245;6269:416;6469:2;6483:47;;;6454:18;;;9421:19;2989:34;9461:14;;;2969:55;3043:12;;;6440:245;6692:416;6892:2;6906:47;;;3294:2;6877:18;;;9421:19;3330:31;9461:14;;;3310:52;3381:12;;;6863:245;7115:416;7315:2;7329:47;;;3632:2;7300:18;;;9421:19;-1:-1;;;9461:14;;;3648:45;3712:12;;;7286:245;7538:416;7738:2;7752:47;;;3963:2;7723:18;;;9421:19;-1:-1;;;9461:14;;;3979:39;4037:12;;;7709:245;7961:416;8161:2;8175:47;;;4288:1;8146:18;;;9421:19;-1:-1;;;9461:14;;;4303:32;4354:12;;;8132:245;8384:416;8584:2;8598:47;;;4605:2;8569:18;;;9421:19;4641:34;9461:14;;;4621:55;-1:-1;;;4696:12;;;4689:34;4742:12;;;8555:245;8807:222;4839:37;;;8934:2;8919:18;;8905:124;10163:117;-1:-1;;;;;9741:54;;10222:35;;10212:2;;10271:1;;10261:12;10212:2;10206:74;

Metadata Hash

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