Contract 0xd0e1aA51dF0896c126Ce6F8A064E551e0DD3D39b

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x87e10b59aa1498f5382ca57d88e7bfd22ded410428cd5ef2fdc486aab0e81548Init Owner8531252021-11-05 6:54:24200 days 2 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  0xd0e1aa51df0896c126ce6f8a064e551e0dd3d39b0 MOVR0.000064313
0xeaa578ce0068656ed56ab662fb2f5e47c1ce67ee9db56f631ddaca19ddec84f50x60e060408480942021-11-04 8:35:42201 days 1 hr ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  Create: DPPFactory0 MOVR0.001555249
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DPPFactory

Compiler Version
v0.6.9+commit.3e3065ac

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at moonriver.moonscan.io on 2021-11-04
*/

// File: contracts/lib/InitializableOwnable.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 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/lib/CloneFactory.sol


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/lib/FeeRateModel.sol


interface IFeeRateImpl {
    function getFeeRate(address pool, address trader) external view returns (uint256);
}

interface IFeeRateModel {
    function getFeeRate(address trader) external view returns (uint256);
}

contract FeeRateModel is InitializableOwnable {
    address public feeRateImpl;

    function setFeeProxy(address _feeRateImpl) public onlyOwner {
        feeRateImpl = _feeRateImpl;
    }
    
    function getFeeRate(address trader) external view returns (uint256) {
        if(feeRateImpl == address(0))
            return 0;
        return IFeeRateImpl(feeRateImpl).getFeeRate(msg.sender,trader);
    }
}

// File: contracts/DODOPrivatePool/intf/IDPP.sol


interface IDPP {
    function init(
        address owner,
        address maintainer,
        address baseTokenAddress,
        address quoteTokenAddress,
        uint256 lpFeeRate,
        address mtFeeRateModel,
        uint256 k,
        uint256 i,
        bool isOpenTWAP
    ) external;

    function _MT_FEE_RATE_MODEL_() external returns (address);

    //=========== admin ==========
    function ratioSync() external;

    function retrieve(
        address payable to,
        address token,
        uint256 amount
    ) external;

    function reset(
        address assetTo,
        uint256 newLpFeeRate,
        uint256 newI,
        uint256 newK,
        uint256 baseOutAmount,
        uint256 quoteOutAmount,
        uint256 minBaseReserve,
        uint256 minQuoteReserve
    ) external returns (bool);

    //========== advanced ========
    function tuneParameters(
        uint256 newLpFeeRate,
        uint256 newI,
        uint256 newK,
        uint256 minBaseReserve,
        uint256 minQuoteReserve
    ) external returns (bool);

    function tunePrice(
        uint256 newI,
        uint256 minBaseReserve,
        uint256 minQuoteReserve
    ) external returns (bool);
}

// File: contracts/DODOPrivatePool/intf/IDPPAdmin.sol


interface IDPPAdmin {
    function init(address owner, address dpp,address operator, address dodoSmartApprove) external;
}

// File: contracts/Factory/DPPFactory.sol


/**
 * @title DODO PrivatePool Factory
 * @author DODO Breeder
 *
 * @notice Create And Register DPP Pools 
 */
contract DPPFactory is InitializableOwnable {
    // ============ Templates ============

    address public immutable _CLONE_FACTORY_;
    address public immutable _DEFAULT_MT_FEE_RATE_MODEL_;
    address public immutable _DODO_APPROVE_PROXY_;
    address public _DEFAULT_MAINTAINER_;
    address public _DPP_TEMPLATE_;
    address public _DPP_ADMIN_TEMPLATE_;

    mapping (address => bool) public isAdminListed;

    // ============ Registry ============

    // base -> quote -> DPP address list
    mapping(address => mapping(address => address[])) public _REGISTRY_;
    // creator -> DPP address list
    mapping(address => address[]) public _USER_REGISTRY_;

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

    event NewDPP(
        address baseToken,
        address quoteToken,
        address creator,
        address dpp
    );

    event RemoveDPP(address dpp);

    event addAdmin(address admin);
    event removeAdmin(address admin);

    constructor(
        address cloneFactory,
        address dppTemplate,
        address dppAdminTemplate,
        address defaultMaintainer,
        address defaultMtFeeRateModel,
        address dodoApproveProxy
    ) public {
        _CLONE_FACTORY_ = cloneFactory;
        _DPP_TEMPLATE_ = dppTemplate;
        _DPP_ADMIN_TEMPLATE_ = dppAdminTemplate;
        _DEFAULT_MAINTAINER_ = defaultMaintainer;
        _DEFAULT_MT_FEE_RATE_MODEL_ = defaultMtFeeRateModel;
        _DODO_APPROVE_PROXY_ = dodoApproveProxy;
    }

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

    function createDODOPrivatePool() external returns (address newPrivatePool) {
        newPrivatePool = ICloneFactory(_CLONE_FACTORY_).clone(_DPP_TEMPLATE_);
    }

    function initDODOPrivatePool(
        address dppAddress,
        address creator,
        address baseToken,
        address quoteToken,
        uint256 lpFeeRate,
        uint256 k,
        uint256 i,
        bool isOpenTwap
    ) external {
        require(isAdminListed[msg.sender], "ACCESS_DENIED");
        {
            address _dppAddress = dppAddress;
            address adminModel = _createDPPAdminModel(
                creator,
                _dppAddress,
                creator,
                _DODO_APPROVE_PROXY_
            );
            IDPP(_dppAddress).init(
                adminModel,
                _DEFAULT_MAINTAINER_,
                baseToken,
                quoteToken,
                lpFeeRate,
                _DEFAULT_MT_FEE_RATE_MODEL_,
                k,
                i,
                isOpenTwap
            );
        }

        _REGISTRY_[baseToken][quoteToken].push(dppAddress);
        _USER_REGISTRY_[creator].push(dppAddress);
        emit NewDPP(baseToken, quoteToken, creator, dppAddress);
    }

    function _createDPPAdminModel(
        address owner,
        address dpp,
        address operator,
        address dodoApproveProxy
    ) internal returns (address adminModel) {
        adminModel = ICloneFactory(_CLONE_FACTORY_).clone(_DPP_ADMIN_TEMPLATE_);
        IDPPAdmin(adminModel).init(owner, dpp, operator, dodoApproveProxy);
    }

    // ============ Admin Operation Functions ============
    
    function updateAdminTemplate(address _newDPPAdminTemplate) external onlyOwner {
        _DPP_ADMIN_TEMPLATE_ = _newDPPAdminTemplate;
    }

    function updateDefaultMaintainer(address _newMaintainer) external onlyOwner {
        _DEFAULT_MAINTAINER_ = _newMaintainer;
    }

    function updateDppTemplate(address _newDPPTemplate) external onlyOwner {
        _DPP_TEMPLATE_ = _newDPPTemplate;
    }

    function addAdminList (address contractAddr) external onlyOwner {
        isAdminListed[contractAddr] = true;
        emit addAdmin(contractAddr);
    }

    function removeAdminList (address contractAddr) external onlyOwner {
        isAdminListed[contractAddr] = false;
        emit removeAdmin(contractAddr);
    }

    function addPoolByAdmin(
        address creator,
        address baseToken, 
        address quoteToken,
        address pool
    ) external onlyOwner {
        _REGISTRY_[baseToken][quoteToken].push(pool);
        _USER_REGISTRY_[creator].push(pool);
        emit NewDPP(baseToken, quoteToken, creator, pool);
    }

    function batchAddPoolByAdmin(
        address[] memory creators,
        address[] memory baseTokens, 
        address[] memory quoteTokens,
        address[] memory pools
    ) external onlyOwner {
        require(creators.length == baseTokens.length,"PARAMS_INVALID");
        require(creators.length == quoteTokens.length,"PARAMS_INVALID");
        require(creators.length == pools.length,"PARAMS_INVALID");
        for(uint256 i = 0; i < creators.length; i++) {
            address creator = creators[i];
            address baseToken = baseTokens[i];
            address quoteToken = quoteTokens[i];
            address pool = pools[i];
            
            _REGISTRY_[baseToken][quoteToken].push(pool);
            _USER_REGISTRY_[creator].push(pool);
            emit NewDPP(baseToken, quoteToken, creator, pool);
        }
    }

    function removePoolByAdmin(
        address creator,
        address baseToken, 
        address quoteToken,
        address pool
    ) external onlyOwner {
        address[] memory registryList = _REGISTRY_[baseToken][quoteToken];
        for (uint256 i = 0; i < registryList.length; i++) {
            if (registryList[i] == pool) {
                registryList[i] = registryList[registryList.length - 1];
                break;
            }
        }
        _REGISTRY_[baseToken][quoteToken] = registryList;
        _REGISTRY_[baseToken][quoteToken].pop();
        address[] memory userRegistryList = _USER_REGISTRY_[creator];
        for (uint256 i = 0; i < userRegistryList.length; i++) {
            if (userRegistryList[i] == pool) {
                userRegistryList[i] = userRegistryList[userRegistryList.length - 1];
                break;
            }
        }
        _USER_REGISTRY_[creator] = userRegistryList;
        _USER_REGISTRY_[creator].pop();
        emit RemoveDPP(pool);
    }

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

    function getDODOPool(address baseToken, address quoteToken)
        external
        view
        returns (address[] memory pools)
    {
        return _REGISTRY_[baseToken][quoteToken];
    }

    function getDODOPoolBidirection(address token0, address token1)
        external
        view
        returns (address[] memory baseToken0Pool, address[] memory baseToken1Pool)
    {
        return (_REGISTRY_[token0][token1], _REGISTRY_[token1][token0]);
    }

    function getDODOPoolByUser(address user) 
        external
        view
        returns (address[] memory pools)
    {
        return _USER_REGISTRY_[user];
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"cloneFactory","type":"address"},{"internalType":"address","name":"dppTemplate","type":"address"},{"internalType":"address","name":"dppAdminTemplate","type":"address"},{"internalType":"address","name":"defaultMaintainer","type":"address"},{"internalType":"address","name":"defaultMtFeeRateModel","type":"address"},{"internalType":"address","name":"dodoApproveProxy","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"baseToken","type":"address"},{"indexed":false,"internalType":"address","name":"quoteToken","type":"address"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":false,"internalType":"address","name":"dpp","type":"address"}],"name":"NewDPP","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"dpp","type":"address"}],"name":"RemoveDPP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"admin","type":"address"}],"name":"addAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"admin","type":"address"}],"name":"removeAdmin","type":"event"},{"inputs":[],"name":"_CLONE_FACTORY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DEFAULT_MAINTAINER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DEFAULT_MT_FEE_RATE_MODEL_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DODO_APPROVE_PROXY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DPP_ADMIN_TEMPLATE_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DPP_TEMPLATE_","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":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"_REGISTRY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"_USER_REGISTRY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddr","type":"address"}],"name":"addAdminList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"address","name":"pool","type":"address"}],"name":"addPoolByAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"creators","type":"address[]"},{"internalType":"address[]","name":"baseTokens","type":"address[]"},{"internalType":"address[]","name":"quoteTokens","type":"address[]"},{"internalType":"address[]","name":"pools","type":"address[]"}],"name":"batchAddPoolByAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createDODOPrivatePool","outputs":[{"internalType":"address","name":"newPrivatePool","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"}],"name":"getDODOPool","outputs":[{"internalType":"address[]","name":"pools","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"}],"name":"getDODOPoolBidirection","outputs":[{"internalType":"address[]","name":"baseToken0Pool","type":"address[]"},{"internalType":"address[]","name":"baseToken1Pool","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getDODOPoolByUser","outputs":[{"internalType":"address[]","name":"pools","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dppAddress","type":"address"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"uint256","name":"lpFeeRate","type":"uint256"},{"internalType":"uint256","name":"k","type":"uint256"},{"internalType":"uint256","name":"i","type":"uint256"},{"internalType":"bool","name":"isOpenTwap","type":"bool"}],"name":"initDODOPrivatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"initOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAdminListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddr","type":"address"}],"name":"removeAdminList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"address","name":"pool","type":"address"}],"name":"removePoolByAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newDPPAdminTemplate","type":"address"}],"name":"updateAdminTemplate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMaintainer","type":"address"}],"name":"updateDefaultMaintainer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newDPPTemplate","type":"address"}],"name":"updateDppTemplate","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60e06040523480156200001157600080fd5b5060405162001b7938038062001b798339810160408190526200003491620000bc565b6001600160601b0319606096871b8116608052600380546001600160a01b039788166001600160a01b03199182161790915560048054968816968216969096179095556002805494909616939094169290921790935591831b811660a052911b1660c05262000142565b80516001600160a01b0381168114620000b657600080fd5b92915050565b60008060008060008060c08789031215620000d5578182fd5b620000e188886200009e565b9550620000f288602089016200009e565b94506200010388604089016200009e565b93506200011488606089016200009e565b92506200012588608089016200009e565b9150620001368860a089016200009e565b90509295509295509295565b60805160601c60a05160601c60c05160601c6119ed6200018c600039806106b352806111da52508061070d5280610e6052508061039e52806111b6528061131952506119ed6000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063794e5538116100f9578063ae52aae711610097578063eb774d0511610071578063eb774d051461034b578063eb99be1214610353578063f2fde38b1461035b578063fd8bd8491461036e576101a9565b8063ae52aae714610312578063bdeb0a9114610325578063e65f702914610338576101a9565b80638456db15116100d35780638456db15146102dc5780639e988ee3146102e4578063a58888db146102f7578063ace378ca1461030a576101a9565b8063794e5538146102a05780637d2c82d7146102c157806381ab4d0a146102d4576101a9565b806339d00ef9116101665780634e71e0c8116101405780634e71e0c81461026857806357a281dc14610270578063633644d6146102905780636c5ccb9b14610298576101a9565b806339d00ef91461022f57806343274b821461024257806344b7f78e14610255576101a9565b806309b8adb8146101ae5780630d009297146101cc57806316048bc4146101e15780631822c0c0146101e9578063182e8dbb14610209578063195eefe01461021c575b600080fd5b6101b6610381565b6040516101c391906117fc565b60405180910390f35b6101df6101da366004611543565b61042b565b005b6101b6610494565b6101fc6101f7366004611543565b6104a3565b6040516101c391906118d1565b6101df610217366004611711565b6104b8565b6101df61022a366004611615565b610679565b6101df61023d3660046115ba565b6108b1565b6101df6102503660046115ba565b61098e565b6101df610263366004611543565b610cf1565b6101df610d3d565b61028361027e366004611582565b610dcb565b6040516101c39190611890565b6101b6610e4f565b6101b6610e5e565b6102b36102ae366004611582565b610e82565b6040516101c39291906118a3565b6101df6102cf366004611543565b610f7a565b6101b6610fc6565b6101b6610fd5565b6101df6102f2366004611543565b610fe4565b6101b66103053660046116e6565b611030565b6101b6611065565b6101df610320366004611543565b611074565b6101b66103333660046116a6565b6110fc565b610283610346366004611543565b61113e565b6101b66111b4565b6101b66111d8565b6101df610369366004611543565b6111fc565b6101df61037c366004611543565b611281565b6003546040516340925bc760e11b81526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811692638124b78e926103d49216906004016117fc565b602060405180830381600087803b1580156103ee57600080fd5b505af1158015610402573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104269190611566565b905090565b600154600160a01b900460ff161561045e5760405162461bcd60e51b81526004016104559061192b565b60405180910390fd5b6001805460ff60a01b1916600160a01b179055600080546001600160a01b039092166001600160a01b0319909216919091179055565b6000546001600160a01b031681565b60056020526000908152604090205460ff1681565b6000546001600160a01b031633146104e25760405162461bcd60e51b81526004016104559061197c565b82518451146105035760405162461bcd60e51b815260040161045590611903565b81518451146105245760405162461bcd60e51b815260040161045590611903565b80518451146105455760405162461bcd60e51b815260040161045590611903565b60005b845181101561067257600085828151811061055f57fe5b60200260200101519050600085838151811061057757fe5b60200260200101519050600085848151811061058f57fe5b6020026020010151905060008585815181106105a757fe5b6020908102919091018101516001600160a01b038086166000908152600684526040808220878416835285528082208054600181810183559184528684200180548587166001600160a01b03199182168117909255948b16845260078752828420805492830181558452959092209091018054909216909317905590519091507f8494fe594cd5087021d4b11758a2bbc7be28a430e94f2b268d668e5991ed3b8a9061065a908590859088908690611810565b60405180910390a15050600190920191506105489050565b5050505050565b3360009081526005602052604090205460ff166106a85760405162461bcd60e51b815260040161045590611955565b8760006106d78983817f00000000000000000000000000000000000000000000000000000000000000006112fb565b6002546040516301a3c30b60e01b81529192506001600160a01b03808516926301a3c30b9261073b9286929116908d908d908d907f0000000000000000000000000000000000000000000000000000000000000000908e908e908e9060040161183b565b600060405180830381600087803b15801561075557600080fd5b505af1158015610769573d6000803e3d6000fd5b50505050505060066000876001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b03168152602001908152602001600020889080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b0316021790555060076000886001600160a01b03166001600160a01b03168152602001908152602001600020889080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055507f8494fe594cd5087021d4b11758a2bbc7be28a430e94f2b268d668e5991ed3b8a8686898b60405161089f9493929190611810565b60405180910390a15050505050505050565b6000546001600160a01b031633146108db5760405162461bcd60e51b81526004016104559061197c565b6001600160a01b038084166000908152600660209081526040808320868516845282528083208054600181810183559185528385200180548787166001600160a01b03199182168117909255958a1685526007845282852080549283018155855292909320909201805490931617909155517f8494fe594cd5087021d4b11758a2bbc7be28a430e94f2b268d668e5991ed3b8a90610980908590859088908690611810565b60405180910390a150505050565b6000546001600160a01b031633146109b85760405162461bcd60e51b81526004016104559061197c565b6001600160a01b038084166000908152600660209081526040808320938616835292815290829020805483518184028101840190945280845260609392830182828015610a2e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a10575b50939450600093505050505b8151811015610ac157826001600160a01b0316828281518110610a5957fe5b60200260200101516001600160a01b03161415610ab95781600183510381518110610a8057fe5b6020026020010151828281518110610a9457fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610ac1565b600101610a3a565b506001600160a01b03808516600090815260066020908152604080832093871683529281529190208251610af792840190611411565b506001600160a01b038085166000908152600660209081526040808320938716835292905220805480610b2657fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b038716825260078152604091829020805483518184028101840190945280845260609392830182828015610bb057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b92575b50939450600093505050505b8151811015610c4357836001600160a01b0316828281518110610bdb57fe5b60200260200101516001600160a01b03161415610c3b5781600183510381518110610c0257fe5b6020026020010151828281518110610c1657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610c43565b600101610bbc565b506001600160a01b03861660009081526007602090815260409091208251610c6d92840190611411565b506001600160a01b0386166000908152600760205260409020805480610c8f57fe5b600082815260209020810160001990810180546001600160a01b03191690550190556040517fafed4f6701f0e943874e915e49e2e7b67ae31f18e083f540e890af2275aa116d90610ce19085906117fc565b60405180910390a1505050505050565b6000546001600160a01b03163314610d1b5760405162461bcd60e51b81526004016104559061197c565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610d675760405162461bcd60e51b8152600401610455906118dc565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b038083166000908152600660209081526040808320938516835292815290829020805483518184028101840190945280845260609392830182828015610e4157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e23575b505050505090505b92915050565b6004546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0380831660008181526006602081815260408084209587168452948152848320918152848320938352928352908390208154845181850281018501909552808552606094859490918491830182828015610f0c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610eee575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610f6857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f4a575b50505050509050915091509250929050565b6000546001600160a01b03163314610fa45760405162461bcd60e51b81526004016104559061197c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031681565b6001546001600160a01b031681565b6000546001600160a01b0316331461100e5760405162461bcd60e51b81526004016104559061197c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6007602052816000526040600020818154811061104957fe5b6000918252602090912001546001600160a01b03169150829050565b6003546001600160a01b031681565b6000546001600160a01b0316331461109e5760405162461bcd60e51b81526004016104559061197c565b6001600160a01b03811660009081526005602052604090819020805460ff19166001179055517f7048027520ecbaa8947764cd502c5c78c2c53bbd902e06b108da1cbdf98c6fc4906110f19083906117fc565b60405180910390a150565b6006602052826000526040600020602052816000526040600020818154811061112157fe5b6000918252602090912001546001600160a01b0316925083915050565b6001600160a01b0381166000908152600760209081526040918290208054835181840281018401909452808452606093928301828280156111a857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161118a575b50505050509050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031633146112265760405162461bcd60e51b81526004016104559061197c565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112ab5760405162461bcd60e51b81526004016104559061197c565b6001600160a01b03811660009081526005602052604090819020805460ff19169055517f1785f53c768259a7ab38ed67e958aab075b56ff206e3d7f29ea4ca203d1a9774906110f19083906117fc565b600480546040516340925bc760e11b81526000926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811693638124b78e93611350939190921691016117fc565b602060405180830381600087803b15801561136a57600080fd5b505af115801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a29190611566565b6040516306552ff360e01b81529091506001600160a01b038216906306552ff3906113d7908890889088908890600401611810565b600060405180830381600087803b1580156113f157600080fd5b505af1158015611405573d6000803e3d6000fd5b50505050949350505050565b828054828255906000526020600020908101928215611466579160200282015b8281111561146657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611431565b50611472929150611476565b5090565b61149a91905b808211156114725780546001600160a01b031916815560010161147c565b90565b8035610e498161199f565b600082601f8301126114b8578081fd5b813567ffffffffffffffff808211156114cf578283fd5b6020808302604051828282010181811085821117156114ec578687fd5b60405284815294508185019250858201818701830188101561150d57600080fd5b600091505b8482101561153857611524888261149d565b845292820192600191909101908201611512565b505050505092915050565b600060208284031215611554578081fd5b813561155f8161199f565b9392505050565b600060208284031215611577578081fd5b815161155f8161199f565b60008060408385031215611594578081fd5b823561159f8161199f565b915060208301356115af8161199f565b809150509250929050565b600080600080608085870312156115cf578182fd5b84356115da8161199f565b935060208501356115ea8161199f565b925060408501356115fa8161199f565b9150606085013561160a8161199f565b939692955090935050565b600080600080600080600080610100898b031215611631578384fd5b883561163c8161199f565b9750602089013561164c8161199f565b9650604089013561165c8161199f565b9550606089013561166c8161199f565b94506080890135935060a0890135925060c0890135915060e08901358015158114611695578182fd5b809150509295985092959890939650565b6000806000606084860312156116ba578283fd5b83356116c58161199f565b925060208401356116d58161199f565b929592945050506040919091013590565b600080604083850312156116f8578182fd5b82356117038161199f565b946020939093013593505050565b60008060008060808587031215611726578384fd5b843567ffffffffffffffff8082111561173d578586fd5b611749888389016114a8565b9550602087013591508082111561175e578485fd5b61176a888389016114a8565b9450604087013591508082111561177f578384fd5b61178b888389016114a8565b935060608701359150808211156117a0578283fd5b506117ad878288016114a8565b91505092959194509250565b6000815180845260208085019450808401835b838110156117f15781516001600160a01b0316875295820195908201906001016117cc565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6001600160a01b03998a168152978916602089015295881660408801529387166060870152608086019290925290941660a084015260c083019390935260e08201929092529015156101008201526101200190565b60006020825261155f60208301846117b9565b6000604082526118b660408301856117b9565b82810360208401526118c881856117b9565b95945050505050565b901515815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600e908201526d141054905354d7d253959053125160921b604082015260600190565b60208082526010908201526f1113d113d7d25392551250531256915160821b604082015260600190565b6020808252600d908201526c1050d0d154d4d7d11153925151609a1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6001600160a01b03811681146119b457600080fd5b5056fea264697066735822122022979acca57820a11ee4d1226fe89f87067efff48a2cc1e5b1ed46638871277164736f6c63430006090033000000000000000000000000dfaf9584f5d229a9dbe5978523317820a8897c5a0000000000000000000000006fddb76c93299d985f4d3fc7ac468f9a168577a4000000000000000000000000041aba00c57dd47abc37a2931df569a2a2cc57be000000000000000000000000ef49a6dba1c8df859e49c17e9a485b439c7689d30000000000000000000000002bbd66fc4898242bdbd2583bbe1d76e8b8f714450000000000000000000000007737fd30535c69545deeea54ab8dd590ccaebd3c

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

000000000000000000000000dfaf9584f5d229a9dbe5978523317820a8897c5a0000000000000000000000006fddb76c93299d985f4d3fc7ac468f9a168577a4000000000000000000000000041aba00c57dd47abc37a2931df569a2a2cc57be000000000000000000000000ef49a6dba1c8df859e49c17e9a485b439c7689d30000000000000000000000002bbd66fc4898242bdbd2583bbe1d76e8b8f714450000000000000000000000007737fd30535c69545deeea54ab8dd590ccaebd3c

-----Decoded View---------------
Arg [0] : cloneFactory (address): 0xdfaf9584f5d229a9dbe5978523317820a8897c5a
Arg [1] : dppTemplate (address): 0x6fddb76c93299d985f4d3fc7ac468f9a168577a4
Arg [2] : dppAdminTemplate (address): 0x041aba00c57dd47abc37a2931df569a2a2cc57be
Arg [3] : defaultMaintainer (address): 0xef49a6dba1c8df859e49c17e9a485b439c7689d3
Arg [4] : defaultMtFeeRateModel (address): 0x2bbd66fc4898242bdbd2583bbe1d76e8b8f71445
Arg [5] : dodoApproveProxy (address): 0x7737fd30535c69545deeea54ab8dd590ccaebd3c

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000dfaf9584f5d229a9dbe5978523317820a8897c5a
Arg [1] : 0000000000000000000000006fddb76c93299d985f4d3fc7ac468f9a168577a4
Arg [2] : 000000000000000000000000041aba00c57dd47abc37a2931df569a2a2cc57be
Arg [3] : 000000000000000000000000ef49a6dba1c8df859e49c17e9a485b439c7689d3
Arg [4] : 0000000000000000000000002bbd66fc4898242bdbd2583bbe1d76e8b8f71445
Arg [5] : 0000000000000000000000007737fd30535c69545deeea54ab8dd590ccaebd3c


Deployed ByteCode Sourcemap

4805:6945:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6373:163;;;:::i;:::-;;;;;;;;;;;;;;;;965:127;;;;;;;;;:::i;:::-;;332:22;;;:::i;5182:46::-;;;;;;;;;:::i;:::-;;;;;;;;9144:859;;;;;;;;;:::i;6544:1083::-;;;;;;;;;:::i;8810:326::-;;;;;;;;;:::i;10011:1028::-;;;;;;;;;:::i;8347:122::-;;;;;;;;;:::i;1271:228::-;;;:::i;11098:198::-;;;;;;;;;:::i;:::-;;;;;;;;5138:35;;;:::i;4949:52::-;;;:::i;11304:267::-;;;;;;;;;:::i;:::-;;;;;;;;;8059:140;;;;;;;;;:::i;5060:35::-;;;:::i;361:26::-;;;:::i;8207:132::-;;;;;;;;;:::i;5434:52::-;;;;;;;;;:::i;5102:29::-;;;:::i;8477:155::-;;;;;;;;;:::i;5324:67::-;;;;;;;;;:::i;11579:168::-;;;;;;;;;:::i;4902:40::-;;;:::i;5008:45::-;;;:::i;1100:163::-;;;;;;;;;:::i;8640:162::-;;;;;;;;;:::i;6373:163::-;6513:14;;6476:52;;-1:-1:-1;;;6476:52:0;;6424:22;;-1:-1:-1;;;;;6490:15:0;6476:36;;;;;:52;;6513:14;;6476:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6459:69;;6373:163;:::o;965:127::-;754:13;;-1:-1:-1;;;754:13:0;;;;753:14;745:43;;;;-1:-1:-1;;;745:43:0;;;;;;;;;;;;;;;;;1051:4:::1;1035:20:::0;;-1:-1:-1;;;;1035:20:0::1;-1:-1:-1::0;;;1035:20:0::1;::::0;;;1066:18;;-1:-1:-1;;;;;1066:18:0;;::::1;-1:-1:-1::0;;;;;;1066:18:0;;::::1;::::0;;;::::1;::::0;;965:127::o;332:22::-;;;-1:-1:-1;;;;;332:22:0;;:::o;5182:46::-;;;;;;;;;;;;;;;:::o;9144:859::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;9384:10:::1;:17;9365:8;:15;:36;9357:62;;;;-1:-1:-1::0;;;9357:62:0::1;;;;;;;;;9457:11;:18;9438:8;:15;:37;9430:63;;;;-1:-1:-1::0;;;9430:63:0::1;;;;;;;;;9531:5;:12;9512:8;:15;:31;9504:57;;;;-1:-1:-1::0;;;9504:57:0::1;;;;;;;;;9576:9;9572:424;9595:8;:15;9591:1;:19;9572:424;;;9632:15;9650:8;9659:1;9650:11;;;;;;;;;;;;;;9632:29;;9676:17;9696:10;9707:1;9696:13;;;;;;;;;;;;;;9676:33;;9724:18;9745:11;9757:1;9745:14;;;;;;;;;;;;;;9724:35;;9774:12;9789:5;9795:1;9789:8;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9826:21:0;;::::1;;::::0;;;:10:::1;:21:::0;;;;;;:33;;::::1;::::0;;;;;;;:44;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;9826:44:0;;::::1;::::0;::::1;::::0;;;9885:24;;::::1;::::0;;:15:::1;:24:::0;;;;;:35;;;;::::1;::::0;;;;;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;9940:44;;9789:8;;-1:-1:-1;9940:44:0::1;::::0;::::1;::::0;9837:9;;9848:10;;9901:7;;9789:8;;9940:44:::1;;;;;;;;;;-1:-1:-1::0;;9612:3:0::1;::::0;;::::1;::::0;-1:-1:-1;9572:424:0::1;::::0;-1:-1:-1;9572:424:0::1;;;9144:859:::0;;;;:::o;6544:1083::-;6828:10;6814:25;;;;:13;:25;;;;;;;;6806:51;;;;-1:-1:-1;;;6806:51:0;;;;;;;;;6905:10;6883:19;6951:156;6990:7;6905:10;6990:7;7072:20;6951;:156::i;:::-;7192:20;;7122:305;;-1:-1:-1;;;7122:305:0;;6930:177;;-1:-1:-1;;;;;;7122:22:0;;;;;;:305;;6930:177;;7192:20;;;7231:9;;7259:10;;7288:9;;7316:27;;7362:1;;7382;;7402:10;;7122:305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6544:1083;;7451:10;:21;7462:9;-1:-1:-1;;;;;7451:21:0;-1:-1:-1;;;;;7451:21:0;;;;;;;;;;;;:33;7473:10;-1:-1:-1;;;;;7451:33:0;-1:-1:-1;;;;;7451:33:0;;;;;;;;;;;;7490:10;7451:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7451:50:0;;;;;-1:-1:-1;;;;;7451:50:0;;;;;;7512:15;:24;7528:7;-1:-1:-1;;;;;7512:24:0;-1:-1:-1;;;;;7512:24:0;;;;;;;;;;;;7542:10;7512:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7512:41:0;;;;;-1:-1:-1;;;;;7512:41:0;;;;;;7569:50;7576:9;7587:10;7599:7;7608:10;7569:50;;;;;;;;;;;;;;;;;;6544:1083;;;;;;;;:::o;8810:326::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;-1:-1:-1;;;;;8978:21:0;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:33;;::::1;::::0;;;;;;;:44;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;8978:44:0;;::::1;::::0;::::1;::::0;;;9033:24;;::::1;::::0;;:15:::1;:24:::0;;;;;:35;;;;::::1;::::0;;;;;;;;;;::::1;::::0;;;;::::1;;::::0;;;9084:44;::::1;::::0;::::1;::::0;8989:9;;9000:10;;9049:7;;9017:4;;9084:44:::1;;;;;;;;;;8810:326:::0;;;;:::o;10011:1028::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;-1:-1:-1;;;;;10214:21:0;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;10182:65;;;;;;::::1;::::0;;;;;;;;;;:29:::1;::::0;:65;;::::1;10214:33:::0;10182:65;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;10182:65:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;10182:65:0;;-1:-1:-1;10263:9:0::1;::::0;-1:-1:-1;;;;10258:219:0::1;10282:12;:19;10278:1;:23;10258:219;;;10346:4;-1:-1:-1::0;;;;;10327:23:0::1;:12;10340:1;10327:15;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10327:23:0::1;;10323:143;;;10389:12;10424:1;10402:12;:19;:23;10389:37;;;;;;;;;;;;;;10371:12;10384:1;10371:15;;;;;;;;;;;;;:55;-1:-1:-1::0;;;;;10371:55:0::1;;;-1:-1:-1::0;;;;;10371:55:0::1;;;::::0;::::1;10445:5;;10323:143;10303:3;;10258:219;;;-1:-1:-1::0;;;;;;10487:21:0;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;:48;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;;10546:21:0;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:33;;::::1;::::0;;;;;;:39;;;::::1;;;;;::::0;;;::::1;::::0;;;;;-1:-1:-1;;10546:39:0;;;;;-1:-1:-1;;;;;;10546:39:0::1;::::0;;;;;;;;-1:-1:-1;;;;;10632:24:0;::::1;::::0;;:15:::1;:24:::0;;;;;;;10596:60;;;;;;::::1;::::0;;;;;;;;;;:33:::1;::::0;:60;;::::1;10632:24:::0;10596:60;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;10596:60:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;10596:60:0;;-1:-1:-1;10672:9:0::1;::::0;-1:-1:-1;;;;10667:239:0::1;10691:16;:23;10687:1;:27;10667:239;;;10763:4;-1:-1:-1::0;;;;;10740:27:0::1;:16;10757:1;10740:19;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10740:27:0::1;;10736:159;;;10810:16;10853:1;10827:16;:23;:27;10810:45;;;;;;;;;;;;;;10788:16;10805:1;10788:19;;;;;;;;;;;;;:67;-1:-1:-1::0;;;;;10788:67:0::1;;;-1:-1:-1::0;;;;;10788:67:0::1;;;::::0;::::1;10874:5;;10736:159;10716:3;;10667:239;;;-1:-1:-1::0;;;;;;10916:24:0;::::1;;::::0;;;:15:::1;:24;::::0;;;;;;;:43;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;;10970:24:0;::::1;;::::0;;;:15:::1;:24;::::0;;;;:30;;;::::1;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10970:30:0;;;;;-1:-1:-1;;;;;;10970:30:0::1;::::0;;;;;11016:15:::1;::::0;::::1;::::0;::::1;::::0;11026:4;;11016:15:::1;;;;;;;;;;902:1;;10011:1028:::0;;;;:::o;8347:122::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;8429:14:::1;:32:::0;;-1:-1:-1;;;;;;8429:32:0::1;-1:-1:-1::0;;;;;8429:32:0;;;::::1;::::0;;;::::1;::::0;;8347:122::o;1271:228::-;1337:11;;-1:-1:-1;;;;;1337:11:0;1323:10;:25;1315:51;;;;-1:-1:-1;;;1315:51:0;;;;;;;;;1412:11;;;1403:7;;1382:42;;-1:-1:-1;;;;;1412:11:0;;;;1403:7;;;;1382:42;;;1445:11;;;;1435:21;;-1:-1:-1;;;;;;1435:21:0;;;-1:-1:-1;;;;;1445:11:0;;1435:21;;;;1467:24;;;1271:228::o;11098:198::-;-1:-1:-1;;;;;11255:21:0;;;;;;;:10;:21;;;;;;;;:33;;;;;;;;;;;;11248:40;;;;;;;;;;;;;;;;;11208:22;;11248:40;;;11255:33;11248:40;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11248:40:0;;;;;;;;;;;;;;;;;;;;;;;11098:198;;;;;:::o;5138:35::-;;;-1:-1:-1;;;;;5138:35:0;;:::o;4949:52::-;;;:::o;11304:267::-;-1:-1:-1;;;;;11508:18:0;;;;;;;:10;:18;;;;;;;;:26;;;;;;;;;;;11536:18;;;;;;:26;;;;;;;;;;11500:63;;;;;;;;;;;;;;;;;11418:31;;;;11500:63;;11508:26;;11500:63;;11508:26;11500:63;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11500:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11500:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11304:267;;;;;:::o;8059:140::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;8148:20:::1;:43:::0;;-1:-1:-1;;;;;;8148:43:0::1;-1:-1:-1::0;;;;;8148:43:0;;;::::1;::::0;;;::::1;::::0;;8059:140::o;5060:35::-;;;-1:-1:-1;;;;;5060:35:0;;:::o;361:26::-;;;-1:-1:-1;;;;;361:26:0;;:::o;8207:132::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;8294:20:::1;:37:::0;;-1:-1:-1;;;;;;8294:37:0::1;-1:-1:-1::0;;;;;8294:37:0;;;::::1;::::0;;;::::1;::::0;;8207:132::o;5434:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5434:52:0;;-1:-1:-1;5434:52:0;;-1:-1:-1;5434:52:0:o;5102:29::-;;;-1:-1:-1;;;;;5102:29:0;;:::o;8477:155::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;-1:-1:-1;;;;;8552:27:0;::::1;;::::0;;;:13:::1;:27;::::0;;;;;;:34;;-1:-1:-1;;8552:34:0::1;8582:4;8552:34;::::0;;8602:22;::::1;::::0;::::1;::::0;8566:12;;8602:22:::1;;;;;;;;;;8477:155:::0;:::o;5324:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5324:67:0;;-1:-1:-1;5324:67:0;;-1:-1:-1;;5324:67:0:o;11579:168::-;-1:-1:-1;;;;;11718:21:0;;;;;;:15;:21;;;;;;;;;11711:28;;;;;;;;;;;;;;;;;11671:22;;11711:28;;;11718:21;11711:28;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11711:28:0;;;;;;;;;;;;;;;;;;;;;;;11579:168;;;:::o;4902:40::-;;;:::o;5008:45::-;;;:::o;1100:163::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;1204:7:::1;::::0;;1178:44:::1;::::0;-1:-1:-1;;;;;1178:44:0;;::::1;::::0;1204:7;::::1;::::0;1178:44:::1;::::0;::::1;1233:11;:22:::0;;-1:-1:-1;;;;;;1233:22:0::1;-1:-1:-1::0;;;;;1233:22:0;;;::::1;::::0;;;::::1;::::0;;1100:163::o;8640:162::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;-1:-1:-1;;;;;8718:27:0;::::1;8748:5;8718:27:::0;;;:13:::1;:27;::::0;;;;;;:35;;-1:-1:-1;;8718:35:0::1;::::0;;8769:25;::::1;::::0;::::1;::::0;8732:12;;8769:25:::1;;7635:350:::0;7879:20;;;7842:58;;-1:-1:-1;;;7842:58:0;;7798:18;;-1:-1:-1;;;;;7856:15:0;7842:36;;;;;:58;;7879:20;;;;;7842:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7911:66;;-1:-1:-1;;;7911:66:0;;7829:71;;-1:-1:-1;;;;;;7911:26:0;;;;;:66;;7938:5;;7945:3;;7950:8;;7960:16;;7911:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7635:350;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;72:20;;97:33;72:20;97:33;;301:707;;418:3;411:4;403:6;399:17;395:27;385:2;;-1:-1;;426:12;385:2;473:6;460:20;14611:18;;14603:6;14600:30;14597:2;;;-1:-1;;14633:12;14597:2;14678:4;;14670:6;14666:17;14251:2;14245:9;14678:4;14666:17;14281:6;14277:17;;14388:6;14376:10;14373:22;14611:18;14340:10;14337:34;14334:62;14331:2;;;-1:-1;;14399:12;14331:2;14251;14418:22;603:21;;;486:89;-1:-1;660:14;;;;-1:-1;635:17;;;740:27;;;;;737:36;-1:-1;734:2;;;786:1;;776:12;734:2;811:1;802:10;;796:206;821:6;818:1;815:13;796:206;;;901:37;934:3;922:10;901:37;;;889:50;;953:14;;;;843:1;836:9;;;;;981:14;;796:206;;;800:14;;;;;378:630;;;;;1284:241;;1388:2;1376:9;1367:7;1363:23;1359:32;1356:2;;;-1:-1;;1394:12;1356:2;85:6;72:20;97:33;124:5;97:33;;;1446:63;1350:175;-1:-1;;;1350:175;1532:263;;1647:2;1635:9;1626:7;1622:23;1618:32;1615:2;;;-1:-1;;1653:12;1615:2;226:6;220:13;238:33;265:5;238:33;;1802:366;;;1923:2;1911:9;1902:7;1898:23;1894:32;1891:2;;;-1:-1;;1929:12;1891:2;85:6;72:20;97:33;124:5;97:33;;;1981:63;-1:-1;2081:2;2120:22;;72:20;97:33;72:20;97:33;;;2089:63;;;;1885:283;;;;;;2175:617;;;;;2330:3;2318:9;2309:7;2305:23;2301:33;2298:2;;;-1:-1;;2337:12;2298:2;85:6;72:20;97:33;124:5;97:33;;;2389:63;-1:-1;2489:2;2528:22;;72:20;97:33;72:20;97:33;;;2497:63;-1:-1;2597:2;2636:22;;72:20;97:33;72:20;97:33;;;2605:63;-1:-1;2705:2;2744:22;;72:20;97:33;72:20;97:33;;;2292:500;;;;-1:-1;2292:500;;-1:-1;;2292:500;2799:1115;;;;;;;;;3019:3;3007:9;2998:7;2994:23;2990:33;2987:2;;;-1:-1;;3026:12;2987:2;85:6;72:20;97:33;124:5;97:33;;;3078:63;-1:-1;3178:2;3217:22;;72:20;97:33;72:20;97:33;;;3186:63;-1:-1;3286:2;3325:22;;72:20;97:33;72:20;97:33;;;3294:63;-1:-1;3394:2;3433:22;;72:20;97:33;72:20;97:33;;;3402:63;-1:-1;3502:3;3542:22;;1214:20;;-1:-1;3611:3;3651:22;;1214:20;;-1:-1;3720:3;3760:22;;1214:20;;-1:-1;3829:3;3866:22;;1080:20;15703:13;;15696:21;16116:32;;16106:2;;-1:-1;;16152:12;16106:2;3838:60;;;;2981:933;;;;;;;;;;;;3921:491;;;;4059:2;4047:9;4038:7;4034:23;4030:32;4027:2;;;-1:-1;;4065:12;4027:2;85:6;72:20;97:33;124:5;97:33;;;4117:63;-1:-1;4217:2;4256:22;;72:20;97:33;72:20;97:33;;;4021:391;;4225:63;;-1:-1;;;4325:2;4364:22;;;;1214:20;;4021:391;4419:366;;;4540:2;4528:9;4519:7;4515:23;4511:32;4508:2;;;-1:-1;;4546:12;4508:2;85:6;72:20;97:33;124:5;97:33;;;4598:63;4698:2;4737:22;;;;1214:20;;-1:-1;;;4502:283;4792:1161;;;;;5047:3;5035:9;5026:7;5022:23;5018:33;5015:2;;;-1:-1;;5054:12;5015:2;5112:17;5099:31;5150:18;;5142:6;5139:30;5136:2;;;-1:-1;;5172:12;5136:2;5202:78;5272:7;5263:6;5252:9;5248:22;5202:78;;;5192:88;;5345:2;5334:9;5330:18;5317:32;5303:46;;5150:18;5361:6;5358:30;5355:2;;;-1:-1;;5391:12;5355:2;5421:78;5491:7;5482:6;5471:9;5467:22;5421:78;;;5411:88;;5564:2;5553:9;5549:18;5536:32;5522:46;;5150:18;5580:6;5577:30;5574:2;;;-1:-1;;5610:12;5574:2;5640:78;5710:7;5701:6;5690:9;5686:22;5640:78;;;5630:88;;5783:2;5772:9;5768:18;5755:32;5741:46;;5150:18;5799:6;5796:30;5793:2;;;-1:-1;;5829:12;5793:2;;5859:78;5929:7;5920:6;5909:9;5905:22;5859:78;;;5849:88;;;5009:944;;;;;;;;6403:690;;6596:5;15024:12;15311:6;15306:3;15299:19;15348:4;;15343:3;15339:14;6608:93;;15348:4;6772:5;14878:14;-1:-1;6811:260;6836:6;6833:1;6830:13;6811:260;;;6897:13;;-1:-1;;;;;15791:54;6203:37;;6114:14;;;;15154;;;;14611:18;6851:9;6811:260;;;-1:-1;7077:10;;6527:566;-1:-1;;;;;6527:566;8941:222;-1:-1;;;;;15791:54;;;;6203:37;;9068:2;9053:18;;9039:124;9170:556;-1:-1;;;;;15791:54;;;6203:37;;15791:54;;;9546:2;9531:18;;6203:37;15791:54;;;9629:2;9614:18;;6203:37;15791:54;;;9712:2;9697:18;;6203:37;9381:3;9366:19;;9352:374;9733:1104;-1:-1;;;;;15791:54;;;6203:37;;15791:54;;;10243:2;10228:18;;6203:37;15791:54;;;10326:2;10311:18;;6203:37;15791:54;;;10409:2;10394:18;;6203:37;10492:3;10477:19;;8892:37;;;;15791:54;;;15802:42;10561:19;;6203:37;10660:3;10645:19;;8892:37;;;;10744:3;10729:19;;8892:37;;;;15703:13;;15696:21;10822:3;10807:19;;7166:34;10078:3;10063:19;;10049:788;10844:370;;11021:2;11042:17;11035:47;11096:108;11021:2;11010:9;11006:18;11190:6;11096:108;;11221:629;;11476:2;11497:17;11490:47;11551:108;11476:2;11465:9;11461:18;11645:6;11551:108;;;11707:9;11701:4;11697:20;11692:2;11681:9;11677:18;11670:48;11732:108;11835:4;11826:6;11732:108;;;11724:116;11447:403;-1:-1;;;;;11447:403;11857:210;15703:13;;15696:21;7166:34;;11978:2;11963:18;;11949:118;12074:416;12274:2;12288:47;;;7437:2;12259:18;;;15299:19;-1:-1;;;15339:14;;;7453:36;7508:12;;;12245:245;12497:416;12697:2;12711:47;;;7759:2;12682:18;;;15299:19;-1:-1;;;15339:14;;;7775:37;7831:12;;;12668:245;12920:416;13120:2;13134:47;;;8082:2;13105:18;;;15299:19;-1:-1;;;15339:14;;;8098:39;8156:12;;;13091:245;13343:416;13543:2;13557:47;;;8407:2;13528:18;;;15299:19;-1:-1;;;15339:14;;;8423:36;8478:12;;;13514:245;13766:416;13966:2;13980:47;;;8729:1;13951:18;;;15299:19;-1:-1;;;15339:14;;;8744:32;8795:12;;;13937:245;15936:117;-1:-1;;;;;15791:54;;15995:35;;15985:2;;16044:1;;16034:12;15985:2;15979:74;

Swarm Source

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