ETH Price: $2,330.90 (+1.02%)

Contract

0x3E460895DdEea50dD67F098F1bCeFfB03F36a04c
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw135167152021-10-30 5:47:081599 days ago1635572828IN
0x3E460895...03F36a04c
0 ETH0.01480389128.51723157
Withdraw135163602021-10-30 4:24:211600 days ago1635567861IN
0x3E460895...03F36a04c
0 ETH0.02062993204.65798662
Withdraw122494562021-04-16 6:26:501796 days ago1618554410IN
0x3E460895...03F36a04c
0 ETH0.01354224174
Withdraw122456462021-04-15 16:06:061797 days ago1618502766IN
0x3E460895...03F36a04c
0 ETH0.007139872
Withdraw122248262021-04-12 10:49:111800 days ago1618224551IN
0x3E460895...03F36a04c
0 ETH0.0019096771.1
Withdraw122248232021-04-12 10:48:221800 days ago1618224502IN
0x3E460895...03F36a04c
0 ETH0.0057315672
Deposit122247832021-04-12 10:39:231800 days ago1618223963IN
0x3E460895...03F36a04c
0 ETH0.0080653575
Withdraw121780762021-04-05 6:41:561807 days ago1617604916IN
0x3E460895...03F36a04c
0 ETH0.0076432396.00000145
Withdraw121780042021-04-05 6:23:301807 days ago1617603810IN
0x3E460895...03F36a04c
0 ETH0.0040856695
Withdraw121780042021-04-05 6:23:301807 days ago1617603810IN
0x3E460895...03F36a04c
0 ETH0.0084087287
Withdraw121722482021-04-04 9:13:411808 days ago1617527621IN
0x3E460895...03F36a04c
0 ETH0.00836104105
Withdraw121652722021-04-03 7:26:211809 days ago1617434781IN
0x3E460895...03F36a04c
0 ETH0.01219601109
Deposit121396672021-03-30 8:51:491813 days ago1617094309IN
0x3E460895...03F36a04c
0 ETH0.01376793128
Withdraw121227172021-03-27 18:28:491816 days ago1616869729IN
0x3E460895...03F36a04c
0 ETH0.00980881123.2
Deposit121218642021-03-27 15:21:581816 days ago1616858518IN
0x3E460895...03F36a04c
0 ETH0.01344375125
Withdraw120591542021-03-17 23:25:481826 days ago1616023548IN
0x3E460895...03F36a04c
0 ETH0.01593746154
Withdraw120591242021-03-17 23:18:511826 days ago1616023131IN
0x3E460895...03F36a04c
0 ETH0.01593746154
Withdraw120379652021-03-14 17:15:271829 days ago1615742127IN
0x3E460895...03F36a04c
0 ETH0.01409433177
Withdraw120379542021-03-14 17:13:221829 days ago1615742002IN
0x3E460895...03F36a04c
0 ETH0.01445452177
Withdraw120379432021-03-14 17:10:281829 days ago1615741828IN
0x3E460895...03F36a04c
0 ETH0.0140922177
Withdraw120379372021-03-14 17:09:341829 days ago1615741774IN
0x3E460895...03F36a04c
0 ETH0.0144524177
Withdraw120363072021-03-14 11:04:141829 days ago1615719854IN
0x3E460895...03F36a04c
0 ETH0.01124063116
Withdraw120349602021-03-14 6:07:131829 days ago1615702033IN
0x3E460895...03F36a04c
0 ETH0.01130089101
Withdraw120340582021-03-14 2:40:561830 days ago1615689656IN
0x3E460895...03F36a04c
0 ETH0.01027059129.00000156
Withdraw120340282021-03-14 2:34:181830 days ago1615689258IN
0x3E460895...03F36a04c
0 ETH0.0141798127
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UniFarm

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2021-02-11
*/

pragma solidity ^0.5.16;


interface IERC20 {
    /**
     * @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 `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);

    /**
     * @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);
}

contract WanFarmErrorReporter {
    enum Error {
        NO_ERROR,
        UNAUTHORIZED
    }

    enum FailureInfo {
        ACCEPT_ADMIN_PENDING_ADMIN_CHECK,
        ACCEPT_PENDING_IMPLEMENTATION_ADDRESS_CHECK,
        SET_PENDING_ADMIN_OWNER_CHECK,
        SET_PENDING_IMPLEMENTATION_OWNER_CHECK
    }

    /**
      * @dev `error` corresponds to enum Error; `info` corresponds to enum FailureInfo, and `detail` is an arbitrary
      * contract-specific code that enables us to report opaque error codes from upgradeable contracts.
      **/
    event Failure(uint error, uint info, uint detail);

    /**
      * @dev use this when reporting a known error from the money market or a non-upgradeable collaborator
      */
    function fail(Error err, FailureInfo info) internal returns (uint) {
        emit Failure(uint(err), uint(info), 0);

        return uint(err);
    }

    /**
      * @dev use this when reporting an opaque error from an upgradeable collaborator contract
      */
    function failOpaque(Error err, FailureInfo info, uint opaqueError) internal returns (uint) {
        emit Failure(uint(err), uint(info), opaqueError);

        return uint(err);
    }
}

contract UniFarmAdminStorage {
    /**
    * @notice Administrator for this contract
    */
    address public admin;

    /**
    * @notice Pending administrator for this contract
    */
    address public pendingAdmin;

    /**
    * @notice Active brains of WanFarm
    */
    address public wanFarmImplementation;

    /**
    * @notice Pending brains of WanFarm
    */
    address public pendingWanFarmImplementation;
}


/**
 * @title ComptrollerCore
 * @dev Storage for the comptroller is at this address, while execution is delegated to the `wanFarmImplementation`.
 * CTokens should reference this contract as their comptroller.
 */
contract UniFarm is UniFarmAdminStorage, WanFarmErrorReporter {

    /**
      * @notice Emitted when pendingWanFarmImplementation is changed
      */
    event NewPendingImplementation(address oldPendingImplementation, address newPendingImplementation);

    /**
      * @notice Emitted when pendingWanFarmImplementation is accepted, which means comptroller implementation is updated
      */
    event NewImplementation(address oldImplementation, address newImplementation);

    /**
      * @notice Emitted when pendingAdmin is changed
      */
    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);

    /**
      * @notice Emitted when pendingAdmin is accepted, which means admin is updated
      */
    event NewAdmin(address oldAdmin, address newAdmin);

    constructor() public {
        // Set admin to caller
        admin = msg.sender;
    }

    /*** Admin Functions ***/
    function _setPendingImplementation(address newPendingImplementation) public returns (uint) {

        if (msg.sender != admin) {
            return fail(Error.UNAUTHORIZED, FailureInfo.SET_PENDING_IMPLEMENTATION_OWNER_CHECK);
        }

        address oldPendingImplementation = pendingWanFarmImplementation;

        pendingWanFarmImplementation = newPendingImplementation;

        emit NewPendingImplementation(oldPendingImplementation, pendingWanFarmImplementation);

        return uint(Error.NO_ERROR);
    }

    /**
    * @notice Accepts new implementation of comptroller. msg.sender must be pendingImplementation
    * @dev Admin function for new implementation to accept it's role as implementation
    * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
    */
    function _acceptImplementation() public returns (uint) {
        // Check caller is pendingImplementation and pendingImplementation ≠ address(0)
        if (msg.sender != pendingWanFarmImplementation || pendingWanFarmImplementation == address(0)) {
            return fail(Error.UNAUTHORIZED, FailureInfo.ACCEPT_PENDING_IMPLEMENTATION_ADDRESS_CHECK);
        }

        // Save current values for inclusion in log
        address oldImplementation = wanFarmImplementation;
        address oldPendingImplementation = pendingWanFarmImplementation;

        wanFarmImplementation = pendingWanFarmImplementation;

        pendingWanFarmImplementation = address(0);

        emit NewImplementation(oldImplementation, wanFarmImplementation);
        emit NewPendingImplementation(oldPendingImplementation, pendingWanFarmImplementation);

        return uint(Error.NO_ERROR);
    }


    /**
      * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
      * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
      * @param newPendingAdmin New pending admin.
      * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
      */
    function _setPendingAdmin(address newPendingAdmin) public returns (uint) {
        // Check caller = admin
        if (msg.sender != admin) {
            return fail(Error.UNAUTHORIZED, FailureInfo.SET_PENDING_ADMIN_OWNER_CHECK);
        }

        // Save current value, if any, for inclusion in log
        address oldPendingAdmin = pendingAdmin;

        // Store pendingAdmin with value newPendingAdmin
        pendingAdmin = newPendingAdmin;

        // Emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin)
        emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin);

        return uint(Error.NO_ERROR);
    }

    /**
      * @notice Accepts transfer of admin rights. msg.sender must be pendingAdmin
      * @dev Admin function for pending admin to accept role and update admin
      * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
      */
    function _acceptAdmin() public returns (uint) {
        // Check caller is pendingAdmin and pendingAdmin ≠ address(0)
        if (msg.sender != pendingAdmin || msg.sender == address(0)) {
            return fail(Error.UNAUTHORIZED, FailureInfo.ACCEPT_ADMIN_PENDING_ADMIN_CHECK);
        }

        // Save current values for inclusion in log
        address oldAdmin = admin;
        address oldPendingAdmin = pendingAdmin;

        // Store admin with value pendingAdmin
        admin = pendingAdmin;

        // Clear the pending value
        pendingAdmin = address(0);

        emit NewAdmin(oldAdmin, admin);
        emit NewPendingAdmin(oldPendingAdmin, pendingAdmin);

        return uint(Error.NO_ERROR);
    }

    /**
     * @dev Delegates execution to an implementation contract.
     * It returns to the external caller whatever the implementation returns
     * or forwards reverts.
     */
    function () payable external {
        // delegate all other functions to current implementation
        (bool success, ) = wanFarmImplementation.delegatecall(msg.data);

        assembly {
              let free_mem_ptr := mload(0x40)
              returndatacopy(free_mem_ptr, 0, returndatasize)

              switch success
              case 0 { revert(free_mem_ptr, returndatasize) }
              default { return(free_mem_ptr, returndatasize) }
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"error","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"info","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"detail","type":"uint256"}],"name":"Failure","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingImplementation","type":"address"}],"name":"NewPendingImplementation","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[],"name":"_acceptAdmin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"_acceptImplementation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"_setPendingAdmin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newPendingImplementation","type":"address"}],"name":"_setPendingImplementation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingWanFarmImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wanFarmImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50600080546001600160a01b031916331790556105e4806100326000396000f3fe60806040526004361061007b5760003560e01c8063c1e803341161004e578063c1e803341461019e578063e992a041146101b3578063e9c714f2146101e6578063f851a440146101fb5761007b565b806326782247146100fe5780634a036c501461012f5780636c6a0a0e14610144578063b71d1a0c14610159575b6002546040516000916001600160a01b031690829036908083838082843760405192019450600093509091505080830381855af49150503d80600081146100de576040519150601f19603f3d011682016040523d82523d6000602084013e6100e3565b606091505b505090506040513d6000823e8180156100fa573d82f35b3d82fd5b34801561010a57600080fd5b50610113610210565b604080516001600160a01b039092168252519081900360200190f35b34801561013b57600080fd5b5061011361021f565b34801561015057600080fd5b5061011361022e565b34801561016557600080fd5b5061018c6004803603602081101561017c57600080fd5b50356001600160a01b031661023d565b60408051918252519081900360200190f35b3480156101aa57600080fd5b5061018c6102ce565b3480156101bf57600080fd5b5061018c600480360360208110156101d657600080fd5b50356001600160a01b03166103c9565b3480156101f257600080fd5b5061018c61044d565b34801561020757600080fd5b50610113610533565b6001546001600160a01b031681565b6003546001600160a01b031681565b6002546001600160a01b031681565b600080546001600160a01b031633146102635761025c60016002610542565b90506102c9565b600180546001600160a01b038481166001600160a01b0319831681179093556040805191909216808252602082019390935281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a160005b9150505b919050565b6003546000906001600160a01b0316331415806102f457506003546001600160a01b0316155b1561030b57610304600180610542565b90506103c6565b60028054600380546001600160a01b038082166001600160a01b031980861682179687905590921690925560408051938316808552949092166020840152815190927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a92908290030190a1600354604080516001600160a01b038085168252909216602083015280517fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d8159281900390910190a160005b925050505b90565b600080546001600160a01b031633146103e85761025c60016003610542565b600380546001600160a01b038481166001600160a01b0319831617928390556040805192821680845293909116602083015280517fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d8159281900390910190a160006102c5565b6001546000906001600160a01b031633141580610468575033155b156104795761030460016000610542565b60008054600180546001600160a01b038082166001600160a01b031980861682179687905590921690925560408051938316808552949092166020840152815190927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92908290030190a1600154604080516001600160a01b038085168252909216602083015280517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a99281900390910190a160006103c1565b6000546001600160a01b031681565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa083600181111561057157fe5b83600381111561057d57fe5b604080519283526020830191909152600082820152519081900360600190a18260018111156105a857fe5b939250505056fea265627a7a72315820551eb6e8a67d3a2965fd243e7e2a25a81587914e8795350764745743efbca3ad64736f6c63430005100032

Deployed Bytecode

0x60806040526004361061007b5760003560e01c8063c1e803341161004e578063c1e803341461019e578063e992a041146101b3578063e9c714f2146101e6578063f851a440146101fb5761007b565b806326782247146100fe5780634a036c501461012f5780636c6a0a0e14610144578063b71d1a0c14610159575b6002546040516000916001600160a01b031690829036908083838082843760405192019450600093509091505080830381855af49150503d80600081146100de576040519150601f19603f3d011682016040523d82523d6000602084013e6100e3565b606091505b505090506040513d6000823e8180156100fa573d82f35b3d82fd5b34801561010a57600080fd5b50610113610210565b604080516001600160a01b039092168252519081900360200190f35b34801561013b57600080fd5b5061011361021f565b34801561015057600080fd5b5061011361022e565b34801561016557600080fd5b5061018c6004803603602081101561017c57600080fd5b50356001600160a01b031661023d565b60408051918252519081900360200190f35b3480156101aa57600080fd5b5061018c6102ce565b3480156101bf57600080fd5b5061018c600480360360208110156101d657600080fd5b50356001600160a01b03166103c9565b3480156101f257600080fd5b5061018c61044d565b34801561020757600080fd5b50610113610533565b6001546001600160a01b031681565b6003546001600160a01b031681565b6002546001600160a01b031681565b600080546001600160a01b031633146102635761025c60016002610542565b90506102c9565b600180546001600160a01b038481166001600160a01b0319831681179093556040805191909216808252602082019390935281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a160005b9150505b919050565b6003546000906001600160a01b0316331415806102f457506003546001600160a01b0316155b1561030b57610304600180610542565b90506103c6565b60028054600380546001600160a01b038082166001600160a01b031980861682179687905590921690925560408051938316808552949092166020840152815190927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a92908290030190a1600354604080516001600160a01b038085168252909216602083015280517fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d8159281900390910190a160005b925050505b90565b600080546001600160a01b031633146103e85761025c60016003610542565b600380546001600160a01b038481166001600160a01b0319831617928390556040805192821680845293909116602083015280517fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d8159281900390910190a160006102c5565b6001546000906001600160a01b031633141580610468575033155b156104795761030460016000610542565b60008054600180546001600160a01b038082166001600160a01b031980861682179687905590921690925560408051938316808552949092166020840152815190927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92908290030190a1600154604080516001600160a01b038085168252909216602083015280517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a99281900390910190a160006103c1565b6000546001600160a01b031681565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa083600181111561057157fe5b83600381111561057d57fe5b604080519283526020830191909152600082820152519081900360600190a18260018111156105a857fe5b939250505056fea265627a7a72315820551eb6e8a67d3a2965fd243e7e2a25a81587914e8795350764745743efbca3ad64736f6c63430005100032

Deployed Bytecode Sourcemap

4560:5411:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9614:21;;:44;;9596:12;;-1:-1:-1;;;;;9614:21:0;;9596:12;;9649:8;;9614:44;9596:12;9649:8;;9596:12;9614:44;1:33:-1;9614:44:0;;45:16:-1;;;-1:-1;9614:44:0;;-1:-1:-1;9614:44:0;;-1:-1:-1;;9614:44:0;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;9595:63:0;;;9723:4;9717:11;9776:14;9773:1;9759:12;9744:47;9816:7;9839:47;;;;9933:14;9919:12;9912:36;9839:47;9869:14;9855:12;9848:36;4091:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4091:27:0;;;:::i;:::-;;;;-1:-1:-1;;;;;4091:27:0;;;;;;;;;;;;;;4287:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4287:43:0;;;:::i;4184:36::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4184:36:0;;;:::i;7636:637::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7636:637:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7636:637:0;-1:-1:-1;;;;;7636:637:0;;:::i;:::-;;;;;;;;;;;;;;;;6326:894;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6326:894:0;;;:::i;5499:528::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5499:528:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5499:528:0;-1:-1:-1;;;;;5499:528:0;;:::i;8551:740::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8551:740:0;;;:::i;3990:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3990:20:0;;;:::i;4091:27::-;;;-1:-1:-1;;;;;4091:27:0;;:::o;4287:43::-;;;-1:-1:-1;;;;;4287:43:0;;:::o;4184:36::-;;;-1:-1:-1;;;;;4184:36:0;;:::o;7636:637::-;7703:4;7771:5;;-1:-1:-1;;;;;7771:5:0;7757:10;:19;7753:126;;7800:67;7805:18;7825:41;7800:4;:67::i;:::-;7793:74;;;;7753:126;7978:12;;;-1:-1:-1;;;;;8061:30:0;;;-1:-1:-1;;;;;;8061:30:0;;;;;;;8176:49;;;7978:12;;;;8176:49;;;;;;;;;;;;;;;;;;;;;;;8250:14;8245:20;8238:27;;;7636:637;;;;:::o;6326:894::-;6501:28;;6375:4;;-1:-1:-1;;;;;6501:28:0;6487:10;:42;;;:88;;-1:-1:-1;6533:28:0;;-1:-1:-1;;;;;6533:28:0;:42;6487:88;6483:209;;;6599:81;6604:18;6624:55;6599:4;:81::i;:::-;6592:88;;;;6483:209;6785:21;;;6852:28;;;-1:-1:-1;;;;;6852:28:0;;;-1:-1:-1;;;;;;6893:52:0;;;;;;;;;6958:41;;;;;;7017:59;;;6785:21;;;7017:59;;;7054:21;;;;7017:59;;;;;;6852:28;;7017:59;;;;;;;;;7143:28;;7092:80;;;-1:-1:-1;;;;;7092:80:0;;;;;7143:28;;;7092:80;;;;;;;;;;;;;;;;7197:14;7192:20;7185:27;;;;6326:894;;:::o;5499:528::-;5584:4;5621:5;;-1:-1:-1;;;;;5621:5:0;5607:10;:19;5603:135;;5650:76;5655:18;5675:50;5650:4;:76::i;5603:135::-;5785:28;;;-1:-1:-1;;;;;5826:55:0;;;-1:-1:-1;;;;;;5826:55:0;;;;;;;5899:80;;;5785:28;;;5899:80;;;5950:28;;;;5899:80;;;;;;;;;;;;;;;;6004:14;5999:20;;8551:740;8699:12;;8591:4;;-1:-1:-1;;;;;8699:12:0;8685:10;:26;;;:54;;-1:-1:-1;8715:10:0;:24;8685:54;8681:164;;;8763:70;8768:18;8788:44;8763:4;:70::i;8681:164::-;8910:16;8929:5;;;8971:12;;-1:-1:-1;;;;;8971:12:0;;;-1:-1:-1;;;;;;9044:20:0;;;;;;;;;9113:25;;;;;;9156;;;8929:5;;;9156:25;;;9175:5;;;;9156:25;;;;;;8971:12;;9156:25;;;;;;;;;9230:12;;9197:46;;;-1:-1:-1;;;;;9197:46:0;;;;;9230:12;;;9197:46;;;;;;;;;;;;;;;;9268:14;9263:20;;3990;;;-1:-1:-1;;;;;3990:20:0;;:::o;3420:153::-;3481:4;3503:33;3516:3;3511:9;;;;;;;;3527:4;3522:10;;;;;;;;3503:33;;;;;;;;;;;;;3534:1;3503:33;;;;;;;;;;;;;3561:3;3556:9;;;;;;;;3549:16;3420:153;-1:-1:-1;;;3420:153:0:o

Swarm Source

bzzr://551eb6e8a67d3a2965fd243e7e2a25a81587914e8795350764745743efbca3ad

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.