Contract 0xd24153244066F0afA9415563bFC7Ba248bfB7a51

 

Contract Overview

DODO: Private Pool Factory V2
Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xf6c477952fd5f7764efac70942cd6bddd12a0c62079bdd4e14b02f1081523737Transfer Ownersh...217303442021-11-24 3:09:22369 days 19 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Private Pool Factory V20 MATIC0.00107376535
0x2794e38bb5b661242da585748f35dc4f0909796f8495b5dfffde113ce562bd93Batch Add Pool B...209353962021-11-03 12:55:52390 days 9 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Private Pool Factory V20 MATIC0.01111288535
0x5c8e5ed1235bf6a66b8f54dda25ea49ba2df1caf8d5fbf2bbf347526d752beb0Batch Add Pool B...208065512021-10-31 4:31:40393 days 18 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Private Pool Factory V20 MATIC0.0538446330
0x2464cf7bbd7294639bca65b166966ebe1315854143a40510d8e94654a3bbe93dBatch Add Pool B...202393832021-10-15 9:56:21409 days 12 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Private Pool Factory V20 MATIC0.1237132435
0xc831beff3a7b5ce78908a5dc1858e34817aa82f6c654d602d793e6d14857125dBatch Add Pool B...202393712021-10-15 9:55:57409 days 12 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Private Pool Factory V20 MATIC0.1412612840
0xaa4398f0f07dd6d359140eb2965aac70147b8d1143084e71a5ae779bd2889fe0Batch Add Pool B...202393632021-10-15 9:55:41409 days 12 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Private Pool Factory V20 MATIC0.1438931240
0x1f6e936a99f924a855aa5df0c7f5d2bc01d4c6e0ecc9b6ced0c8f652ad522710Batch Add Pool B...202393442021-10-15 9:54:59409 days 12 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Private Pool Factory V20 MATIC0.1798750
0x22931e270e376fe6c8d9988e1233ae44531fb1cab91da14f1d526071c1e4f747Batch Add Pool B...202393272021-10-15 9:54:25409 days 12 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Private Pool Factory V20 MATIC0.181338850
0xb0d1705cc366b5c06ca9b30c018cb11a639ab4dccad20bfc3788cc33f04b053fBatch Add Pool B...202392902021-10-15 9:53:07409 days 12 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Private Pool Factory V20 MATIC0.186837850
0x5dae863af57a9cd83025acb0e15df7b16c7c99ee7cd6a0e8cf91e919a105715aBatch Add Pool B...202390462021-10-15 9:44:47409 days 13 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Private Pool Factory V20 MATIC0.2371005660
0xdb6fa1db05f66c8f6a963c654bd62fa5932a9e93254055f702c8866cc0e618afAdd Admin List200978392021-10-11 12:09:43413 days 10 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Private Pool Factory V20 MATIC0.002362350
0x3f3b7281a8f23752a63c74369b767ebbde1a85ea373d10e62e3160d4c8acd4a7Init Owner200950262021-10-11 10:05:43413 days 12 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Private Pool Factory V20 MATIC0.0019863930
0x3d6588fd9bcad8ed727ac1adfaa361f73e6f8d4cd2a6ae34d0288e245e4923700x60e06040200949842021-10-11 10:04:19413 days 12 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  Create: DPPFactory0 MATIC0.0779580550
[ 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 polygonscan.com on 2021-10-11
*/

// 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 Security Audit

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"}]

60e06040523480156200001157600080fd5b5060405162001b7938038062001b798339810160408190526200003491620000bc565b6001600160601b0319606096871b8116608052600380546001600160a01b039788166001600160a01b03199182161790915560048054968816968216969096179095556002805494909616939094169290921790935591831b811660a052911b1660c05262000142565b80516001600160a01b0381168114620000b657600080fd5b92915050565b60008060008060008060c08789031215620000d5578182fd5b620000e188886200009e565b9550620000f288602089016200009e565b94506200010388604089016200009e565b93506200011488606089016200009e565b92506200012588608089016200009e565b9150620001368860a089016200009e565b90509295509295509295565b60805160601c60a05160601c60c05160601c6119ed6200018c600039806106b352806111da52508061070d5280610e6052508061039e52806111b6528061131952506119ed6000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063794e5538116100f9578063ae52aae711610097578063eb774d0511610071578063eb774d051461034b578063eb99be1214610353578063f2fde38b1461035b578063fd8bd8491461036e576101a9565b8063ae52aae714610312578063bdeb0a9114610325578063e65f702914610338576101a9565b80638456db15116100d35780638456db15146102dc5780639e988ee3146102e4578063a58888db146102f7578063ace378ca1461030a576101a9565b8063794e5538146102a05780637d2c82d7146102c157806381ab4d0a146102d4576101a9565b806339d00ef9116101665780634e71e0c8116101405780634e71e0c81461026857806357a281dc14610270578063633644d6146102905780636c5ccb9b14610298576101a9565b806339d00ef91461022f57806343274b821461024257806344b7f78e14610255576101a9565b806309b8adb8146101ae5780630d009297146101cc57806316048bc4146101e15780631822c0c0146101e9578063182e8dbb14610209578063195eefe01461021c575b600080fd5b6101b6610381565b6040516101c391906117fc565b60405180910390f35b6101df6101da366004611543565b61042b565b005b6101b6610494565b6101fc6101f7366004611543565b6104a3565b6040516101c391906118d1565b6101df610217366004611711565b6104b8565b6101df61022a366004611615565b610679565b6101df61023d3660046115ba565b6108b1565b6101df6102503660046115ba565b61098e565b6101df610263366004611543565b610cf1565b6101df610d3d565b61028361027e366004611582565b610dcb565b6040516101c39190611890565b6101b6610e4f565b6101b6610e5e565b6102b36102ae366004611582565b610e82565b6040516101c39291906118a3565b6101df6102cf366004611543565b610f7a565b6101b6610fc6565b6101b6610fd5565b6101df6102f2366004611543565b610fe4565b6101b66103053660046116e6565b611030565b6101b6611065565b6101df610320366004611543565b611074565b6101b66103333660046116a6565b6110fc565b610283610346366004611543565b61113e565b6101b66111b4565b6101b66111d8565b6101df610369366004611543565b6111fc565b6101df61037c366004611543565b611281565b6003546040516340925bc760e11b81526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811692638124b78e926103d49216906004016117fc565b602060405180830381600087803b1580156103ee57600080fd5b505af1158015610402573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104269190611566565b905090565b600154600160a01b900460ff161561045e5760405162461bcd60e51b81526004016104559061192b565b60405180910390fd5b6001805460ff60a01b1916600160a01b179055600080546001600160a01b039092166001600160a01b0319909216919091179055565b6000546001600160a01b031681565b60056020526000908152604090205460ff1681565b6000546001600160a01b031633146104e25760405162461bcd60e51b81526004016104559061197c565b82518451146105035760405162461bcd60e51b815260040161045590611903565b81518451146105245760405162461bcd60e51b815260040161045590611903565b80518451146105455760405162461bcd60e51b815260040161045590611903565b60005b845181101561067257600085828151811061055f57fe5b60200260200101519050600085838151811061057757fe5b60200260200101519050600085848151811061058f57fe5b6020026020010151905060008585815181106105a757fe5b6020908102919091018101516001600160a01b038086166000908152600684526040808220878416835285528082208054600181810183559184528684200180548587166001600160a01b03199182168117909255948b16845260078752828420805492830181558452959092209091018054909216909317905590519091507f8494fe594cd5087021d4b11758a2bbc7be28a430e94f2b268d668e5991ed3b8a9061065a908590859088908690611810565b60405180910390a15050600190920191506105489050565b5050505050565b3360009081526005602052604090205460ff166106a85760405162461bcd60e51b815260040161045590611955565b8760006106d78983817f00000000000000000000000000000000000000000000000000000000000000006112fb565b6002546040516301a3c30b60e01b81529192506001600160a01b03808516926301a3c30b9261073b9286929116908d908d908d907f0000000000000000000000000000000000000000000000000000000000000000908e908e908e9060040161183b565b600060405180830381600087803b15801561075557600080fd5b505af1158015610769573d6000803e3d6000fd5b50505050505060066000876001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b03168152602001908152602001600020889080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b0316021790555060076000886001600160a01b03166001600160a01b03168152602001908152602001600020889080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055507f8494fe594cd5087021d4b11758a2bbc7be28a430e94f2b268d668e5991ed3b8a8686898b60405161089f9493929190611810565b60405180910390a15050505050505050565b6000546001600160a01b031633146108db5760405162461bcd60e51b81526004016104559061197c565b6001600160a01b038084166000908152600660209081526040808320868516845282528083208054600181810183559185528385200180548787166001600160a01b03199182168117909255958a1685526007845282852080549283018155855292909320909201805490931617909155517f8494fe594cd5087021d4b11758a2bbc7be28a430e94f2b268d668e5991ed3b8a90610980908590859088908690611810565b60405180910390a150505050565b6000546001600160a01b031633146109b85760405162461bcd60e51b81526004016104559061197c565b6001600160a01b038084166000908152600660209081526040808320938616835292815290829020805483518184028101840190945280845260609392830182828015610a2e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a10575b50939450600093505050505b8151811015610ac157826001600160a01b0316828281518110610a5957fe5b60200260200101516001600160a01b03161415610ab95781600183510381518110610a8057fe5b6020026020010151828281518110610a9457fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610ac1565b600101610a3a565b506001600160a01b03808516600090815260066020908152604080832093871683529281529190208251610af792840190611411565b506001600160a01b038085166000908152600660209081526040808320938716835292905220805480610b2657fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b038716825260078152604091829020805483518184028101840190945280845260609392830182828015610bb057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b92575b50939450600093505050505b8151811015610c4357836001600160a01b0316828281518110610bdb57fe5b60200260200101516001600160a01b03161415610c3b5781600183510381518110610c0257fe5b6020026020010151828281518110610c1657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610c43565b600101610bbc565b506001600160a01b03861660009081526007602090815260409091208251610c6d92840190611411565b506001600160a01b0386166000908152600760205260409020805480610c8f57fe5b600082815260209020810160001990810180546001600160a01b03191690550190556040517fafed4f6701f0e943874e915e49e2e7b67ae31f18e083f540e890af2275aa116d90610ce19085906117fc565b60405180910390a1505050505050565b6000546001600160a01b03163314610d1b5760405162461bcd60e51b81526004016104559061197c565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610d675760405162461bcd60e51b8152600401610455906118dc565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b038083166000908152600660209081526040808320938516835292815290829020805483518184028101840190945280845260609392830182828015610e4157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e23575b505050505090505b92915050565b6004546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0380831660008181526006602081815260408084209587168452948152848320918152848320938352928352908390208154845181850281018501909552808552606094859490918491830182828015610f0c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610eee575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610f6857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f4a575b50505050509050915091509250929050565b6000546001600160a01b03163314610fa45760405162461bcd60e51b81526004016104559061197c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031681565b6001546001600160a01b031681565b6000546001600160a01b0316331461100e5760405162461bcd60e51b81526004016104559061197c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6007602052816000526040600020818154811061104957fe5b6000918252602090912001546001600160a01b03169150829050565b6003546001600160a01b031681565b6000546001600160a01b0316331461109e5760405162461bcd60e51b81526004016104559061197c565b6001600160a01b03811660009081526005602052604090819020805460ff19166001179055517f7048027520ecbaa8947764cd502c5c78c2c53bbd902e06b108da1cbdf98c6fc4906110f19083906117fc565b60405180910390a150565b6006602052826000526040600020602052816000526040600020818154811061112157fe5b6000918252602090912001546001600160a01b0316925083915050565b6001600160a01b0381166000908152600760209081526040918290208054835181840281018401909452808452606093928301828280156111a857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161118a575b50505050509050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031633146112265760405162461bcd60e51b81526004016104559061197c565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112ab5760405162461bcd60e51b81526004016104559061197c565b6001600160a01b03811660009081526005602052604090819020805460ff19169055517f1785f53c768259a7ab38ed67e958aab075b56ff206e3d7f29ea4ca203d1a9774906110f19083906117fc565b600480546040516340925bc760e11b81526000926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811693638124b78e93611350939190921691016117fc565b602060405180830381600087803b15801561136a57600080fd5b505af115801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a29190611566565b6040516306552ff360e01b81529091506001600160a01b038216906306552ff3906113d7908890889088908890600401611810565b600060405180830381600087803b1580156113f157600080fd5b505af1158015611405573d6000803e3d6000fd5b50505050949350505050565b828054828255906000526020600020908101928215611466579160200282015b8281111561146657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611431565b50611472929150611476565b5090565b61149a91905b808211156114725780546001600160a01b031916815560010161147c565b90565b8035610e498161199f565b600082601f8301126114b8578081fd5b813567ffffffffffffffff808211156114cf578283fd5b6020808302604051828282010181811085821117156114ec578687fd5b60405284815294508185019250858201818701830188101561150d57600080fd5b600091505b8482101561153857611524888261149d565b845292820192600191909101908201611512565b505050505092915050565b600060208284031215611554578081fd5b813561155f8161199f565b9392505050565b600060208284031215611577578081fd5b815161155f8161199f565b60008060408385031215611594578081fd5b823561159f8161199f565b915060208301356115af8161199f565b809150509250929050565b600080600080608085870312156115cf578182fd5b84356115da8161199f565b935060208501356115ea8161199f565b925060408501356115fa8161199f565b9150606085013561160a8161199f565b939692955090935050565b600080600080600080600080610100898b031215611631578384fd5b883561163c8161199f565b9750602089013561164c8161199f565b9650604089013561165c8161199f565b9550606089013561166c8161199f565b94506080890135935060a0890135925060c0890135915060e08901358015158114611695578182fd5b809150509295985092959890939650565b6000806000606084860312156116ba578283fd5b83356116c58161199f565b925060208401356116d58161199f565b929592945050506040919091013590565b600080604083850312156116f8578182fd5b82356117038161199f565b946020939093013593505050565b60008060008060808587031215611726578384fd5b843567ffffffffffffffff8082111561173d578586fd5b611749888389016114a8565b9550602087013591508082111561175e578485fd5b61176a888389016114a8565b9450604087013591508082111561177f578384fd5b61178b888389016114a8565b935060608701359150808211156117a0578283fd5b506117ad878288016114a8565b91505092959194509250565b6000815180845260208085019450808401835b838110156117f15781516001600160a01b0316875295820195908201906001016117cc565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6001600160a01b03998a168152978916602089015295881660408801529387166060870152608086019290925290941660a084015260c083019390935260e08201929092529015156101008201526101200190565b60006020825261155f60208301846117b9565b6000604082526118b660408301856117b9565b82810360208401526118c881856117b9565b95945050505050565b901515815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600e908201526d141054905354d7d253959053125160921b604082015260600190565b60208082526010908201526f1113d113d7d25392551250531256915160821b604082015260600190565b6020808252600d908201526c1050d0d154d4d7d11153925151609a1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6001600160a01b03811681146119b457600080fd5b5056fea264697066735822122022979acca57820a11ee4d1226fe89f87067efff48a2cc1e5b1ed46638871277164736f6c63430006090033000000000000000000000000729f7f44bf64ce814716b6261e267dbe6cdf021c00000000000000000000000080930cb1849f7d42531506ff45e66724338a821b000000000000000000000000b5dc5e183c2acf02ab879a8569ab4edaf147d5370000000000000000000000003cd6d7f5ff977bf8069548ea1f9441b061162b4200000000000000000000000018b0bd918b55f995fd404b872404378a62cb403b00000000000000000000000001feea29da5ae41b0b5f6b10b93ee34752ef80d7

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

000000000000000000000000729f7f44bf64ce814716b6261e267dbe6cdf021c00000000000000000000000080930cb1849f7d42531506ff45e66724338a821b000000000000000000000000b5dc5e183c2acf02ab879a8569ab4edaf147d5370000000000000000000000003cd6d7f5ff977bf8069548ea1f9441b061162b4200000000000000000000000018b0bd918b55f995fd404b872404378a62cb403b00000000000000000000000001feea29da5ae41b0b5f6b10b93ee34752ef80d7

-----Decoded View---------------
Arg [0] : cloneFactory (address): 0x729f7f44bf64ce814716b6261e267dbe6cdf021c
Arg [1] : dppTemplate (address): 0x80930cb1849f7d42531506ff45e66724338a821b
Arg [2] : dppAdminTemplate (address): 0xb5dc5e183c2acf02ab879a8569ab4edaf147d537
Arg [3] : defaultMaintainer (address): 0x3cd6d7f5ff977bf8069548ea1f9441b061162b42
Arg [4] : defaultMtFeeRateModel (address): 0x18b0bd918b55f995fd404b872404378a62cb403b
Arg [5] : dodoApproveProxy (address): 0x01feea29da5ae41b0b5f6b10b93ee34752ef80d7

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000729f7f44bf64ce814716b6261e267dbe6cdf021c
Arg [1] : 00000000000000000000000080930cb1849f7d42531506ff45e66724338a821b
Arg [2] : 000000000000000000000000b5dc5e183c2acf02ab879a8569ab4edaf147d537
Arg [3] : 0000000000000000000000003cd6d7f5ff977bf8069548ea1f9441b061162b42
Arg [4] : 00000000000000000000000018b0bd918b55f995fd404b872404378a62cb403b
Arg [5] : 00000000000000000000000001feea29da5ae41b0b5f6b10b93ee34752ef80d7


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.