ETH Price: $3,609.29 (+4.54%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Ownersh...106168532020-08-08 3:55:041609 days ago1596858904IN
DODO: ZOO
0 ETH0.002295750
Breed DODO106163992020-08-08 2:12:011609 days ago1596852721IN
DODO: ZOO
0 ETH0.0943666545.10000135

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DODOZoo

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 Etherscan.io on 2020-08-07
*/

// File: contracts/lib/Ownable.sol

/*

    Copyright 2020 DODO ZOO.
    SPDX-License-Identifier: Apache-2.0

*/

pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;

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

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

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

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

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

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

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

    constructor() internal {
        _OWNER_ = msg.sender;
        emit OwnershipTransferred(address(0), _OWNER_);
    }

    function transferOwnership(address newOwner) external onlyOwner {
        require(newOwner != address(0), "INVALID_OWNER");
        emit OwnershipTransferPrepared(_OWNER_, newOwner);
        _NEW_OWNER_ = newOwner;
    }

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

// File: contracts/intf/IDODO.sol

/*

    Copyright 2020 DODO ZOO.

*/

interface IDODO {
    function init(
        address owner,
        address supervisor,
        address maintainer,
        address baseToken,
        address quoteToken,
        address oracle,
        uint256 lpFeeRate,
        uint256 mtFeeRate,
        uint256 k,
        uint256 gasPriceLimit
    ) external;

    function transferOwnership(address newOwner) external;

    function claimOwnership() external;

    function sellBaseToken(
        uint256 amount,
        uint256 minReceiveQuote,
        bytes calldata data
    ) external returns (uint256);

    function buyBaseToken(
        uint256 amount,
        uint256 maxPayQuote,
        bytes calldata data
    ) external returns (uint256);

    function querySellBaseToken(uint256 amount) external view returns (uint256 receiveQuote);

    function queryBuyBaseToken(uint256 amount) external view returns (uint256 payQuote);

    function depositBaseTo(address to, uint256 amount) external returns (uint256);

    function withdrawBase(uint256 amount) external returns (uint256);

    function withdrawAllBase() external returns (uint256);

    function depositQuoteTo(address to, uint256 amount) external returns (uint256);

    function withdrawQuote(uint256 amount) external returns (uint256);

    function withdrawAllQuote() external returns (uint256);

    function _BASE_CAPITAL_TOKEN_() external returns (address);

    function _QUOTE_CAPITAL_TOKEN_() external returns (address);

    function _BASE_TOKEN_() external returns (address);

    function _QUOTE_TOKEN_() external returns (address);
}

// File: contracts/helper/CloneFactory.sol

/*

    Copyright 2020 DODO ZOO.

*/

interface ICloneFactory {
    function clone(address prototype) external returns (address proxy);
}

// introduction of proxy mode design: https://docs.openzeppelin.com/upgrades/2.8/
// minimum implementation of transparent proxy: https://eips.ethereum.org/EIPS/eip-1167

contract CloneFactory is ICloneFactory {
    function clone(address prototype) external override returns (address proxy) {
        bytes20 targetBytes = bytes20(prototype);
        assembly {
            let clone := mload(0x40)
            mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)
            mstore(add(clone, 0x14), targetBytes)
            mstore(
                add(clone, 0x28),
                0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000
            )
            proxy := create(0, clone, 0x37)
        }
        return proxy;
    }
}

// File: contracts/DODOZoo.sol

/*

    Copyright 2020 DODO ZOO.

*/

/**
 * @title DODOZoo
 * @author DODO Breeder
 *
 * @notice Register of All DODO
 */
contract DODOZoo is Ownable {
    address public _DODO_LOGIC_;
    address public _CLONE_FACTORY_;

    address public _DEFAULT_SUPERVISOR_;

    mapping(address => mapping(address => address)) internal _DODO_REGISTER_;
    address[] public _DODOs;

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

    event DODOBirth(address newBorn, address baseToken, address quoteToken);

    // ============ Constructor Function ============

    constructor(
        address _dodoLogic,
        address _cloneFactory,
        address _defaultSupervisor
    ) public {
        _DODO_LOGIC_ = _dodoLogic;
        _CLONE_FACTORY_ = _cloneFactory;
        _DEFAULT_SUPERVISOR_ = _defaultSupervisor;
    }

    // ============ Admin Function ============

    function setDODOLogic(address _dodoLogic) external onlyOwner {
        _DODO_LOGIC_ = _dodoLogic;
    }

    function setCloneFactory(address _cloneFactory) external onlyOwner {
        _CLONE_FACTORY_ = _cloneFactory;
    }

    function setDefaultSupervisor(address _defaultSupervisor) external onlyOwner {
        _DEFAULT_SUPERVISOR_ = _defaultSupervisor;
    }

    function removeDODO(address dodo) external onlyOwner {
        address baseToken = IDODO(dodo)._BASE_TOKEN_();
        address quoteToken = IDODO(dodo)._QUOTE_TOKEN_();
        require(isDODORegistered(baseToken, quoteToken), "DODO_NOT_REGISTERED");
        _DODO_REGISTER_[baseToken][quoteToken] = address(0);
        for (uint256 i = 0; i < _DODOs.length - 1; i++) {
            if (_DODOs[i] == dodo) {
                _DODOs[i] = _DODOs[_DODOs.length - 1];
                _DODOs.pop();
                break;
            }
        }
    }

    function addDODO(address dodo) public onlyOwner {
        address baseToken = IDODO(dodo)._BASE_TOKEN_();
        address quoteToken = IDODO(dodo)._QUOTE_TOKEN_();
        require(!isDODORegistered(baseToken, quoteToken), "DODO_REGISTERED");
        _DODO_REGISTER_[baseToken][quoteToken] = dodo;
        _DODOs.push(dodo);
    }

    // ============ Breed DODO Function ============

    function breedDODO(
        address maintainer,
        address baseToken,
        address quoteToken,
        address oracle,
        uint256 lpFeeRate,
        uint256 mtFeeRate,
        uint256 k,
        uint256 gasPriceLimit
    ) external onlyOwner returns (address newBornDODO) {
        require(!isDODORegistered(baseToken, quoteToken), "DODO_REGISTERED");
        newBornDODO = ICloneFactory(_CLONE_FACTORY_).clone(_DODO_LOGIC_);
        IDODO(newBornDODO).init(
            _OWNER_,
            _DEFAULT_SUPERVISOR_,
            maintainer,
            baseToken,
            quoteToken,
            oracle,
            lpFeeRate,
            mtFeeRate,
            k,
            gasPriceLimit
        );
        addDODO(newBornDODO);
        emit DODOBirth(newBornDODO, baseToken, quoteToken);
        return newBornDODO;
    }

    // ============ View Functions ============

    function isDODORegistered(address baseToken, address quoteToken) public view returns (bool) {
        if (
            _DODO_REGISTER_[baseToken][quoteToken] == address(0) &&
            _DODO_REGISTER_[quoteToken][baseToken] == address(0)
        ) {
            return false;
        } else {
            return true;
        }
    }

    function getDODO(address baseToken, address quoteToken) external view returns (address) {
        return _DODO_REGISTER_[baseToken][quoteToken];
    }

    function getDODOs() external view returns (address[] memory) {
        return _DODOs;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_dodoLogic","type":"address"},{"internalType":"address","name":"_cloneFactory","type":"address"},{"internalType":"address","name":"_defaultSupervisor","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newBorn","type":"address"},{"indexed":false,"internalType":"address","name":"baseToken","type":"address"},{"indexed":false,"internalType":"address","name":"quoteToken","type":"address"}],"name":"DODOBirth","type":"event"},{"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"},{"inputs":[],"name":"_CLONE_FACTORY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DEFAULT_SUPERVISOR_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DODO_LOGIC_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_DODOs","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":[{"internalType":"address","name":"dodo","type":"address"}],"name":"addDODO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"maintainer","type":"address"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"address","name":"oracle","type":"address"},{"internalType":"uint256","name":"lpFeeRate","type":"uint256"},{"internalType":"uint256","name":"mtFeeRate","type":"uint256"},{"internalType":"uint256","name":"k","type":"uint256"},{"internalType":"uint256","name":"gasPriceLimit","type":"uint256"}],"name":"breedDODO","outputs":[{"internalType":"address","name":"newBornDODO","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"}],"name":"getDODO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDODOs","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"}],"name":"isDODORegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dodo","type":"address"}],"name":"removeDODO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_cloneFactory","type":"address"}],"name":"setCloneFactory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_dodoLogic","type":"address"}],"name":"setDODOLogic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_defaultSupervisor","type":"address"}],"name":"setDefaultSupervisor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051610fc4380380610fc483398101604081905261002f916100ba565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600280546001600160a01b039485166001600160a01b03199182161790915560038054938516938216939093179092556004805491909316911617905561011e565b6000806000606084860312156100ce578283fd5b83516100d981610106565b60208501519093506100ea81610106565b60408501519092506100fb81610106565b809150509250925092565b6001600160a01b038116811461011b57600080fd5b50565b610e978061012d6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063816bd40e116100a2578063eb774d0511610071578063eb774d05146101e4578063ecfa2d24146101ec578063eef55d3d146101ff578063f2fde38b14610212578063fa20e0d9146102255761010b565b8063816bd40e146101a15780638456db15146101b45780639a07cd82146101bc578063a0b0a4d1146101c45761010b565b80634f4e6eea116100de5780634f4e6eea1461015357806352491217146101665780635891296f1461017b5780636ace4afd1461018e5761010b565b80631273b0c61461011057806316048bc4146101395780633e73d4b4146101415780634e71e0c814610149575b600080fd5b61012361011e366004610bc7565b610238565b6040516101309190610c96565b60405180910390f35b610123610267565b610123610276565b610151610285565b005b610151610161366004610b88565b61031c565b61016e610368565b6040516101309190610d2a565b610151610189366004610b88565b6103ca565b61012361019c366004610bff565b610624565b6101516101af366004610b88565b6107c9565b610123610815565b610123610824565b6101d76101d2366004610bc7565b610833565b6040516101309190610d77565b6101236108a4565b6101516101fa366004610b88565b6108b3565b61015161020d366004610b88565b610a6a565b610151610220366004610b88565b610ab6565b610123610233366004610c7e565b610b61565b6001600160a01b0380831660009081526005602090815260408083208585168452909152902054165b92915050565b6000546001600160a01b031681565b6004546001600160a01b031681565b6001546001600160a01b031633146102b85760405162461bcd60e51b81526004016102af90610d82565b60405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031633146103465760405162461bcd60e51b81526004016102af90610e26565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b606060068054806020026020016040519081016040528092919081815260200182805480156103c057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103a2575b5050505050905090565b6000546001600160a01b031633146103f45760405162461bcd60e51b81526004016102af90610e26565b6000816001600160a01b0316634a248d2a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561043157600080fd5b505af1158015610445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104699190610bab565b90506000826001600160a01b031663d4b970466040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156104a857600080fd5b505af11580156104bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e09190610bab565b90506104ec8282610833565b6105085760405162461bcd60e51b81526004016102af90610df9565b6001600160a01b038083166000908152600560209081526040808320938516835292905290812080546001600160a01b03191690555b6006546000190181101561061e57836001600160a01b03166006828154811061056357fe5b6000918252602090912001546001600160a01b031614156106165760068054600019810190811061059057fe5b600091825260209091200154600680546001600160a01b0390921691839081106105b657fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060068054806105ef57fe5b600082815260209020810160001990810180546001600160a01b031916905501905561061e565b60010161053e565b50505050565b600080546001600160a01b0316331461064f5760405162461bcd60e51b81526004016102af90610e26565b6106598888610833565b156106765760405162461bcd60e51b81526004016102af90610da9565b6003546002546040516340925bc760e11b81526001600160a01b0392831692638124b78e926106aa92911690600401610c96565b602060405180830381600087803b1580156106c457600080fd5b505af11580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc9190610bab565b6000546004805460405163f00f9a0960e01b81529394506001600160a01b038086169463f00f9a09946107479490831693909216918f918f918f918f918f918f918f918f9101610ccd565b600060405180830381600087803b15801561076157600080fd5b505af1158015610775573d6000803e3d6000fd5b50505050610782816108b3565b7f5c428a2e12ecaa744a080b25b4cda8b86359c82d726575d7d747e07708071f938189896040516107b593929190610caa565b60405180910390a198975050505050505050565b6000546001600160a01b031633146107f35760405162461bcd60e51b81526004016102af90610e26565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b6002546001600160a01b031681565b6001600160a01b038281166000908152600560209081526040808320858516845290915281205490911615801561088f57506001600160a01b038281166000908152600560209081526040808320878516845290915290205416155b1561089c57506000610261565b506001610261565b6003546001600160a01b031681565b6000546001600160a01b031633146108dd5760405162461bcd60e51b81526004016102af90610e26565b6000816001600160a01b0316634a248d2a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561091a57600080fd5b505af115801561092e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109529190610bab565b90506000826001600160a01b031663d4b970466040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561099157600080fd5b505af11580156109a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c99190610bab565b90506109d58282610833565b156109f25760405162461bcd60e51b81526004016102af90610da9565b6001600160a01b03918216600090815260056020908152604080832093851683529290529081208054929093166001600160a01b031992831681179093556006805460018101825591527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180549091169091179055565b6000546001600160a01b03163314610a945760405162461bcd60e51b81526004016102af90610e26565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ae05760405162461bcd60e51b81526004016102af90610e26565b6001600160a01b038116610b065760405162461bcd60e51b81526004016102af90610dd2565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b60068181548110610b6e57fe5b6000918252602090912001546001600160a01b0316905081565b600060208284031215610b99578081fd5b8135610ba481610e49565b9392505050565b600060208284031215610bbc578081fd5b8151610ba481610e49565b60008060408385031215610bd9578081fd5b8235610be481610e49565b91506020830135610bf481610e49565b809150509250929050565b600080600080600080600080610100898b031215610c1b578384fd5b8835610c2681610e49565b97506020890135610c3681610e49565b96506040890135610c4681610e49565b95506060890135610c5681610e49565b979a969950949760808101359660a0820135965060c0820135955060e0909101359350915050565b600060208284031215610c8f578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b039a8b168152988a1660208a0152968916604089015294881660608801529287166080870152951660a085015260c084019490945260e08301939093526101008201929092526101208101919091526101400190565b6020808252825182820181905260009190848201906040850190845b81811015610d6b5783516001600160a01b031683529284019291840191600101610d46565b50909695505050505050565b901515815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600f908201526e1113d113d7d49151d254d511549151608a1b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601390820152721113d113d7d393d517d49151d254d511549151606a1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6001600160a01b0381168114610e5e57600080fd5b5056fea2646970667358221220858e3418b47c1cdc82da1bedf16332e4327c780546912171ffb5452fc48f8e2164736f6c63430006090033000000000000000000000000f6a8e47daeeddcce297e7541523e27df2f167bf30000000000000000000000005e5a7b76462e4bdf83aa98795644281bdba80b880000000000000000000000009c59990ec0177d87ed7d60a56f584e6b06c639a2

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063816bd40e116100a2578063eb774d0511610071578063eb774d05146101e4578063ecfa2d24146101ec578063eef55d3d146101ff578063f2fde38b14610212578063fa20e0d9146102255761010b565b8063816bd40e146101a15780638456db15146101b45780639a07cd82146101bc578063a0b0a4d1146101c45761010b565b80634f4e6eea116100de5780634f4e6eea1461015357806352491217146101665780635891296f1461017b5780636ace4afd1461018e5761010b565b80631273b0c61461011057806316048bc4146101395780633e73d4b4146101415780634e71e0c814610149575b600080fd5b61012361011e366004610bc7565b610238565b6040516101309190610c96565b60405180910390f35b610123610267565b610123610276565b610151610285565b005b610151610161366004610b88565b61031c565b61016e610368565b6040516101309190610d2a565b610151610189366004610b88565b6103ca565b61012361019c366004610bff565b610624565b6101516101af366004610b88565b6107c9565b610123610815565b610123610824565b6101d76101d2366004610bc7565b610833565b6040516101309190610d77565b6101236108a4565b6101516101fa366004610b88565b6108b3565b61015161020d366004610b88565b610a6a565b610151610220366004610b88565b610ab6565b610123610233366004610c7e565b610b61565b6001600160a01b0380831660009081526005602090815260408083208585168452909152902054165b92915050565b6000546001600160a01b031681565b6004546001600160a01b031681565b6001546001600160a01b031633146102b85760405162461bcd60e51b81526004016102af90610d82565b60405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031633146103465760405162461bcd60e51b81526004016102af90610e26565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b606060068054806020026020016040519081016040528092919081815260200182805480156103c057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103a2575b5050505050905090565b6000546001600160a01b031633146103f45760405162461bcd60e51b81526004016102af90610e26565b6000816001600160a01b0316634a248d2a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561043157600080fd5b505af1158015610445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104699190610bab565b90506000826001600160a01b031663d4b970466040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156104a857600080fd5b505af11580156104bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e09190610bab565b90506104ec8282610833565b6105085760405162461bcd60e51b81526004016102af90610df9565b6001600160a01b038083166000908152600560209081526040808320938516835292905290812080546001600160a01b03191690555b6006546000190181101561061e57836001600160a01b03166006828154811061056357fe5b6000918252602090912001546001600160a01b031614156106165760068054600019810190811061059057fe5b600091825260209091200154600680546001600160a01b0390921691839081106105b657fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060068054806105ef57fe5b600082815260209020810160001990810180546001600160a01b031916905501905561061e565b60010161053e565b50505050565b600080546001600160a01b0316331461064f5760405162461bcd60e51b81526004016102af90610e26565b6106598888610833565b156106765760405162461bcd60e51b81526004016102af90610da9565b6003546002546040516340925bc760e11b81526001600160a01b0392831692638124b78e926106aa92911690600401610c96565b602060405180830381600087803b1580156106c457600080fd5b505af11580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc9190610bab565b6000546004805460405163f00f9a0960e01b81529394506001600160a01b038086169463f00f9a09946107479490831693909216918f918f918f918f918f918f918f918f9101610ccd565b600060405180830381600087803b15801561076157600080fd5b505af1158015610775573d6000803e3d6000fd5b50505050610782816108b3565b7f5c428a2e12ecaa744a080b25b4cda8b86359c82d726575d7d747e07708071f938189896040516107b593929190610caa565b60405180910390a198975050505050505050565b6000546001600160a01b031633146107f35760405162461bcd60e51b81526004016102af90610e26565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b6002546001600160a01b031681565b6001600160a01b038281166000908152600560209081526040808320858516845290915281205490911615801561088f57506001600160a01b038281166000908152600560209081526040808320878516845290915290205416155b1561089c57506000610261565b506001610261565b6003546001600160a01b031681565b6000546001600160a01b031633146108dd5760405162461bcd60e51b81526004016102af90610e26565b6000816001600160a01b0316634a248d2a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561091a57600080fd5b505af115801561092e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109529190610bab565b90506000826001600160a01b031663d4b970466040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561099157600080fd5b505af11580156109a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c99190610bab565b90506109d58282610833565b156109f25760405162461bcd60e51b81526004016102af90610da9565b6001600160a01b03918216600090815260056020908152604080832093851683529290529081208054929093166001600160a01b031992831681179093556006805460018101825591527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180549091169091179055565b6000546001600160a01b03163314610a945760405162461bcd60e51b81526004016102af90610e26565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ae05760405162461bcd60e51b81526004016102af90610e26565b6001600160a01b038116610b065760405162461bcd60e51b81526004016102af90610dd2565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b60068181548110610b6e57fe5b6000918252602090912001546001600160a01b0316905081565b600060208284031215610b99578081fd5b8135610ba481610e49565b9392505050565b600060208284031215610bbc578081fd5b8151610ba481610e49565b60008060408385031215610bd9578081fd5b8235610be481610e49565b91506020830135610bf481610e49565b809150509250929050565b600080600080600080600080610100898b031215610c1b578384fd5b8835610c2681610e49565b97506020890135610c3681610e49565b96506040890135610c4681610e49565b95506060890135610c5681610e49565b979a969950949760808101359660a0820135965060c0820135955060e0909101359350915050565b600060208284031215610c8f578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b039a8b168152988a1660208a0152968916604089015294881660608801529287166080870152951660a085015260c084019490945260e08301939093526101008201929092526101208101919091526101400190565b6020808252825182820181905260009190848201906040850190845b81811015610d6b5783516001600160a01b031683529284019291840191600101610d46565b50909695505050505050565b901515815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600f908201526e1113d113d7d49151d254d511549151608a1b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601390820152721113d113d7d393d517d49151d254d511549151606a1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6001600160a01b0381168114610e5e57600080fd5b5056fea2646970667358221220858e3418b47c1cdc82da1bedf16332e4327c780546912171ffb5452fc48f8e2164736f6c63430006090033

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

000000000000000000000000f6a8e47daeeddcce297e7541523e27df2f167bf30000000000000000000000005e5a7b76462e4bdf83aa98795644281bdba80b880000000000000000000000009c59990ec0177d87ed7d60a56f584e6b06c639a2

-----Decoded View---------------
Arg [0] : _dodoLogic (address): 0xF6A8E47daEEdDcCe297e7541523e27DF2f167BF3
Arg [1] : _cloneFactory (address): 0x5E5a7b76462E4BdF83Aa98795644281BdbA80B88
Arg [2] : _defaultSupervisor (address): 0x9c59990ec0177d87ED7D60A56F584E6b06C639a2

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000f6a8e47daeeddcce297e7541523e27df2f167bf3
Arg [1] : 0000000000000000000000005e5a7b76462e4bdf83aa98795644281bdba80b88
Arg [2] : 0000000000000000000000009c59990ec0177d87ed7d60a56f584e6b06c639a2


Deployed Bytecode Sourcemap

4266:3642:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7652:152;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;306:22;;;:::i;4374:35::-;;;:::i;1156:230::-;;;:::i;:::-;;5143:117;;;;;;;;;:::i;7812:93::-;;;:::i;:::-;;;;;;;;5413:555;;;;;;;;;:::i;6375:866::-;;;;;;;;;:::i;5030:105::-;;;;;;;;;:::i;335:26::-;;;:::i;4301:27::-;;;:::i;7300:344::-;;;;;;;;;:::i;:::-;;;;;;;;4335:30;;;:::i;5976:335::-;;;;;;;;;:::i;5268:137::-;;;;;;;;;:::i;924:224::-;;;;;;;;;:::i;4497:23::-;;;;;;;;;:::i;7652:152::-;-1:-1:-1;;;;;7758:26:0;;;7731:7;7758:26;;;:15;:26;;;;;;;;:38;;;;;;;;;;;;7652:152;;;;;:::o;306:22::-;;;-1:-1:-1;;;;;306:22:0;;:::o;4374:35::-;;;-1:-1:-1;;;;;4374:35:0;;:::o;1156:230::-;1224:11;;-1:-1:-1;;;;;1224:11:0;1210:10;:25;1202:51;;;;-1:-1:-1;;;1202:51:0;;;;;;;;;;;;;;;;;1299:11;;;1290:7;;1269:42;;-1:-1:-1;;;;;1299:11:0;;;;1290:7;;;;1269:42;;;1332:11;;;;1322:21;;-1:-1:-1;;;;;;1322:21:0;;;-1:-1:-1;;;;;1332:11:0;;1322:21;;;;1354:24;;;1156:230::o;5143:117::-;702:7;;-1:-1:-1;;;;;702:7:0;688:10;:21;680:43;;;;-1:-1:-1;;;680:43:0;;;;;;;;;5221:15:::1;:31:::0;;-1:-1:-1;;;;;;5221:31:0::1;-1:-1:-1::0;;;;;5221:31:0;;;::::1;::::0;;;::::1;::::0;;5143:117::o;7812:93::-;7855:16;7891:6;7884:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7884:13:0;;;;;;;;;;;;;;;;;;;;;;;7812:93;:::o;5413:555::-;702:7;;-1:-1:-1;;;;;702:7:0;688:10;:21;680:43;;;;-1:-1:-1;;;680:43:0;;;;;;;;;5477:17:::1;5503:4;-1:-1:-1::0;;;;;5497:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5477:46;;5534:18;5561:4;-1:-1:-1::0;;;;;5555:25:0::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5534:48;;5601:39;5618:9;5629:10;5601:16;:39::i;:::-;5593:71;;;;-1:-1:-1::0;;;5593:71:0::1;;;;;;;;;-1:-1:-1::0;;;;;5675:26:0;;::::1;5724:1;5675:26:::0;;;:15:::1;:26;::::0;;;;;;;:38;;::::1;::::0;;;;;;;;:51;;-1:-1:-1;;;;;;5675:51:0::1;::::0;;5737:224:::1;5761:6;:13:::0;-1:-1:-1;;5761:17:0;5757:21;::::1;5737:224;;;5817:4;-1:-1:-1::0;;;;;5804:17:0::1;:6;5811:1;5804:9;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;5804:9:0::1;:17;5800:150;;;5854:6;5861:13:::0;;-1:-1:-1;;5861:17:0;;;5854:25;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;5842:6:::1;:9:::0;;-1:-1:-1;;;;;5854:25:0;;::::1;::::0;5849:1;;5842:9;::::1;;;;;;;;;;;;;:37;;;;;-1:-1:-1::0;;;;;5842:37:0::1;;;;;-1:-1:-1::0;;;;;5842:37:0::1;;;;;;5898:6;:12;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;5898:12:0;;;;;-1:-1:-1;;;;;;5898:12:0::1;::::0;;;;;5929:5:::1;;5800:150;5780:3;;5737:224;;;;734:1;;5413:555:::0;:::o;6375:866::-;6648:19;702:7;;-1:-1:-1;;;;;702:7:0;688:10;:21;680:43;;;;-1:-1:-1;;;680:43:0;;;;;;;;;6689:39:::1;6706:9;6717:10;6689:16;:39::i;:::-;6688:40;6680:68;;;;-1:-1:-1::0;;;6680:68:0::1;;;;;;;;;6787:15;::::0;6810:12:::1;::::0;6773:50:::1;::::0;-1:-1:-1;;;6773:50:0;;-1:-1:-1;;;;;6787:15:0;;::::1;::::0;6773:36:::1;::::0;:50:::1;::::0;6810:12;::::1;::::0;6773:50:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6872:7;::::0;6894:20:::1;::::0;;6834:278:::1;::::0;-1:-1:-1;;;6834:278:0;;6759:64;;-1:-1:-1;;;;;;6834:23:0;;::::1;::::0;::::1;::::0;:278:::1;::::0;6872:7;;::::1;::::0;6894:20;;::::1;::::0;6929:10;;6954:9;;6978:10;;7003:6;;7024:9;;7048;;7072:1;;7088:13;;6834:278:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7123:20;7131:11;7123:7;:20::i;:::-;7159:45;7169:11;7182:9;7193:10;7159:45;;;;;;;;;;;;;;;;;6375:866:::0;;;;;;;;;;:::o;5030:105::-;702:7;;-1:-1:-1;;;;;702:7:0;688:10;:21;680:43;;;;-1:-1:-1;;;680:43:0;;;;;;;;;5102:12:::1;:25:::0;;-1:-1:-1;;;;;;5102:25:0::1;-1:-1:-1::0;;;;;5102:25:0;;;::::1;::::0;;;::::1;::::0;;5030:105::o;335:26::-;;;-1:-1:-1;;;;;335:26:0;;:::o;4301:27::-;;;-1:-1:-1;;;;;4301:27:0;;:::o;7300:344::-;-1:-1:-1;;;;;7421:26:0;;;7386:4;7421:26;;;:15;:26;;;;;;;;:38;;;;;;;;;;;7386:4;;7421:38;:52;:121;;;;-1:-1:-1;;;;;;7490:27:0;;;7540:1;7490:27;;;:15;:27;;;;;;;;:38;;;;;;;;;;;;:52;7421:121;7403:234;;;-1:-1:-1;7576:5:0;7569:12;;7403:234;-1:-1:-1;7621:4:0;7614:11;;4335:30;;;-1:-1:-1;;;;;4335:30:0;;:::o;5976:335::-;702:7;;-1:-1:-1;;;;;702:7:0;688:10;:21;680:43;;;;-1:-1:-1;;;680:43:0;;;;;;;;;6035:17:::1;6061:4;-1:-1:-1::0;;;;;6055:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6035:46;;6092:18;6119:4;-1:-1:-1::0;;;;;6113:25:0::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6092:48;;6160:39;6177:9;6188:10;6160:16;:39::i;:::-;6159:40;6151:68;;;;-1:-1:-1::0;;;6151:68:0::1;;;;;;;;;-1:-1:-1::0;;;;;6230:26:0;;::::1;;::::0;;;:15:::1;:26;::::0;;;;;;;:38;;::::1;::::0;;;;;;;;:45;;;;;::::1;-1:-1:-1::0;;;;;;6230:45:0;;::::1;::::0;::::1;::::0;;;6286:6:::1;:17:::0;;6230:45;6286:17;::::1;::::0;;;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;5976:335::o;5268:137::-;702:7;;-1:-1:-1;;;;;702:7:0;688:10;:21;680:43;;;;-1:-1:-1;;;680:43:0;;;;;;;;;5356:20:::1;:41:::0;;-1:-1:-1;;;;;;5356:41:0::1;-1:-1:-1::0;;;;;5356:41:0;;;::::1;::::0;;;::::1;::::0;;5268:137::o;924:224::-;702:7;;-1:-1:-1;;;;;702:7:0;688:10;:21;680:43;;;;-1:-1:-1;;;680:43:0;;;;;;;;;-1:-1:-1;;;;;1007:22:0;::::1;999:48;;;;-1:-1:-1::0;;;999:48:0::1;;;;;;;;;1089:7;::::0;;1063:44:::1;::::0;-1:-1:-1;;;;;1063:44:0;;::::1;::::0;1089:7;::::1;::::0;1063:44:::1;::::0;::::1;1118:11;:22:::0;;-1:-1:-1;;;;;;1118:22:0::1;-1:-1:-1::0;;;;;1118:22:0;;;::::1;::::0;;;::::1;::::0;;924:224::o;4497:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4497:23:0;;-1:-1:-1;4497:23:0;:::o;420:241:-1:-;;524:2;512:9;503:7;499:23;495:32;492:2;;;-1:-1;;530:12;492:2;85:6;72:20;97:33;124:5;97:33;;;582:63;486:175;-1:-1;;;486:175;668:263;;783:2;771:9;762:7;758:23;754:32;751:2;;;-1:-1;;789:12;751:2;226:6;220:13;238:33;265:5;238:33;;938:366;;;1059:2;1047:9;1038:7;1034:23;1030:32;1027:2;;;-1:-1;;1065:12;1027:2;85:6;72:20;97:33;124:5;97:33;;;1117:63;-1:-1;1217:2;1256:22;;72:20;97:33;72:20;97:33;;;1225:63;;;;1021:283;;;;;;1311:1121;;;;;;;;;1534:3;1522:9;1513:7;1509:23;1505:33;1502:2;;;-1:-1;;1541:12;1502:2;85:6;72:20;97:33;124:5;97:33;;;1593:63;-1:-1;1693:2;1732:22;;72:20;97:33;72:20;97:33;;;1701:63;-1:-1;1801:2;1840:22;;72:20;97:33;72:20;97:33;;;1809:63;-1:-1;1909:2;1948:22;;72:20;97:33;72:20;97:33;;;1496:936;;;;-1:-1;1496:936;;2017:3;2057:22;;350:20;;2126:3;2166:22;;350:20;;-1:-1;2235:3;2275:22;;350:20;;-1:-1;2344:3;2384:22;;;350:20;;-1:-1;1496:936;-1:-1;;1496:936;2439:241;;2543:2;2531:9;2522:7;2518:23;2514:32;2511:2;;;-1:-1;;2549:12;2511:2;-1:-1;350:20;;2505:175;-1:-1;2505:175;5672:222;-1:-1;;;;;11324:54;;;;2930:37;;5799:2;5784:18;;5770:124;5901:444;-1:-1;;;;;11324:54;;;2930:37;;11324:54;;;6248:2;6233:18;;2930:37;11324:54;;;6331:2;6316:18;;2930:37;6084:2;6069:18;;6055:290;6352:1228;-1:-1;;;;;11324:54;;;2930:37;;11324:54;;;6896:2;6881:18;;2930:37;11324:54;;;6979:2;6964:18;;2930:37;11324:54;;;7062:2;7047:18;;2930:37;11324:54;;;7145:3;7130:19;;2930:37;11324:54;;11335:42;7214:19;;2930:37;7313:3;7298:19;;5623:37;;;;7397:3;7382:19;;5623:37;;;;7481:3;7466:19;;5623:37;;;;7565:3;7550:19;;5623:37;;;;6731:3;6716:19;;6702:878;7587:370;7764:2;7778:47;;;10557:12;;7749:18;;;10832:19;;;7587:370;;7764:2;10411:14;;;;10872;;;;7587:370;3538:260;3563:6;3560:1;3557:13;3538:260;;;3624:13;;-1:-1;;;;;11324:54;2930:37;;10687:14;;;;2841;;;;11335:42;3578:9;3538:260;;;-1:-1;7831:116;;7735:222;-1:-1;;;;;;7735:222;7964:210;11236:13;;11229:21;3893:34;;8085:2;8070:18;;8056:118;8181:416;8381:2;8395:47;;;4164:2;8366:18;;;10832:19;-1:-1;;;10872:14;;;4180:36;4235:12;;;8352:245;8604:416;8804:2;8818:47;;;4486:2;8789:18;;;10832:19;-1:-1;;;10872:14;;;4502:38;4559:12;;;8775:245;9027:416;9227:2;9241:47;;;4810:2;9212:18;;;10832:19;-1:-1;;;10872:14;;;4826:36;4881:12;;;9198:245;9450:416;9650:2;9664:47;;;5132:2;9635:18;;;10832:19;-1:-1;;;10872:14;;;5148:42;5209:12;;;9621:245;9873:416;10073:2;10087:47;;;5460:1;10058:18;;;10832:19;-1:-1;;;10872:14;;;5475:32;5526:12;;;10044:245;11469:117;-1:-1;;;;;11324:54;;11528:35;;11518:2;;11577:1;;11567:12;11518:2;11512:74;

Swarm Source

ipfs://858e3418b47c1cdc82da1bedf16332e4327c780546912171ffb5452fc48f8e21

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.