Contract 0x42ddEc68db70F5992eB7AB22dfaD8A57109841C9

 

Contract Overview

DODO: Crowd Pooling Factory V2
Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0xa39e976f26757036d200087e2b506fff581cc5a58c4400e03c579d51b8e8f362Init Owner146044372021-05-17 12:42:09746 days 23 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Crowd Pooling Factory V20 MATIC0.0000643361
0x3b703fbb1d1f27ea012800bd73ff2ebb26e9282a3e62820c4f3de6ffdcdea14a0x61012060146044272021-05-17 12:41:49746 days 23 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  Create: CrowdPoolingFactory0 MATIC0.0014501471
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CrowdPoolingFactory

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-06-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/CrowdPooling/intf/ICP.sol


interface ICP {
    function init(
        address[] calldata addressList,
        uint256[] calldata timeLine,
        uint256[] calldata valueList,
        bool isOpenTWAP
    ) external;

    function bid(address to) external;

    function cancel(address assetTo, uint256 amount) external;

    function settle() external;

    function emergencySettle() external;

    function claimBase() external;

    function claimQuote() external;

    function claimLPToken() external;
}

// File: contracts/lib/SafeMath.sol


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

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

        return c;
    }

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

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

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

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

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

// File: contracts/intf/IERC20.sol

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

    function decimals() external view returns (uint8);

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

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

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

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

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

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

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

// File: contracts/lib/DecimalMath.sol


/**
 * @title DecimalMath
 * @author DODO Breeder
 *
 * @notice Functions for fixed point number with 18 decimals
 */
library DecimalMath {
    using SafeMath for uint256;

    uint256 internal constant ONE = 10**18;
    uint256 internal constant ONE2 = 10**36;

    function mulFloor(uint256 target, uint256 d) internal pure returns (uint256) {
        return target.mul(d) / (10**18);
    }

    function mulCeil(uint256 target, uint256 d) internal pure returns (uint256) {
        return target.mul(d).divCeil(10**18);
    }

    function divFloor(uint256 target, uint256 d) internal pure returns (uint256) {
        return target.mul(10**18).div(d);
    }

    function divCeil(uint256 target, uint256 d) internal pure returns (uint256) {
        return target.mul(10**18).divCeil(d);
    }

    function reciprocalFloor(uint256 target) internal pure returns (uint256) {
        return uint256(10**36).div(target);
    }

    function reciprocalCeil(uint256 target) internal pure returns (uint256) {
        return uint256(10**36).divCeil(target);
    }
}

// File: contracts/Factory/CrowdPoolingFactory.sol



/**
 * @title CrowdPoolingFacotry
 * @author DODO Breeder
 *
 * @notice Create And Register CP Pools 
 */
contract CrowdPoolingFactory is InitializableOwnable {
    using SafeMath for uint256;
    // ============ Templates ============

    address public immutable _CLONE_FACTORY_;
    address public immutable _DVM_FACTORY_;
    address public immutable _DEFAULT_MAINTAINER_;
    address public immutable _DEFAULT_MT_FEE_RATE_MODEL_;
    address public immutable _DEFAULT_PERMISSION_MANAGER_;
    address public _CP_TEMPLATE_;

    // ============ Settings =============

    uint256 public _CAP_RATIO_ = 50; 
    uint256 public _FREEZE_DURATION_ =  30 days;
    uint256 public _CALM_DURATION_ = 0;
    uint256 public _VEST_DURATION_ = 0;
    uint256 public _K_ = 0;
    uint256 public _CLIFF_RATE_ = 10**18;


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

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

    // ============ modifiers ===========

    modifier valueCheck(
        address cpAddress,
        address baseToken,
        uint256[] memory timeLine,
        uint256[] memory valueList)
    {
        require(timeLine[2] == _CALM_DURATION_, "CP_FACTORY : PHASE_CALM_DURATION_INVALID");
        require(timeLine[4] == _VEST_DURATION_, "CP_FACTORY : VEST_DURATION_INVALID");
        require(valueList[1] == _K_, "CP_FACTORY : K_INVALID");
        require(valueList[3] == _CLIFF_RATE_, "CP_FACTORY : CLIFF_RATE_INVALID");

        uint256 baseTokenBalance = IERC20(baseToken).balanceOf(cpAddress);
        require(valueList[0].mul(100) <= baseTokenBalance.mul(valueList[2]).div(10**18).mul(_CAP_RATIO_),"CP_FACTORY : QUOTE_CAP_INVALID");
        require(timeLine[3]>= _FREEZE_DURATION_, "CP_FACTORY : FREEZE_DURATION_INVALID");
        _;
    }

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

    event NewCP(
        address baseToken,
        address quoteToken,
        address creator,
        address cp
    );

    constructor(
        address cloneFactory,
        address cpTemplate,
        address dvmFactory,
        address defaultMaintainer,
        address defaultMtFeeRateModel,
        address defaultPermissionManager
    ) public {
        _CLONE_FACTORY_ = cloneFactory;
        _CP_TEMPLATE_ = cpTemplate;
        _DVM_FACTORY_ = dvmFactory;
        _DEFAULT_MAINTAINER_ = defaultMaintainer;
        _DEFAULT_MT_FEE_RATE_MODEL_ = defaultMtFeeRateModel;
        _DEFAULT_PERMISSION_MANAGER_ = defaultPermissionManager;
    }

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

    function createCrowdPooling() external returns (address newCrowdPooling) {
        newCrowdPooling = ICloneFactory(_CLONE_FACTORY_).clone(_CP_TEMPLATE_);
    }

    function initCrowdPooling(
        address cpAddress,
        address creator,
        address baseToken,
        address quoteToken,
        uint256[] memory timeLine,
        uint256[] memory valueList,
        bool isOpenTWAP
    ) external valueCheck(cpAddress,baseToken,timeLine,valueList) {
        {
        address[] memory addressList = new address[](7);
        addressList[0] = creator;
        addressList[1] = _DEFAULT_MAINTAINER_;
        addressList[2] = baseToken;
        addressList[3] = quoteToken;
        addressList[4] = _DEFAULT_PERMISSION_MANAGER_;
        addressList[5] = _DEFAULT_MT_FEE_RATE_MODEL_;
        addressList[6] = _DVM_FACTORY_;

        ICP(cpAddress).init(
            addressList,
            timeLine,
            valueList,
            isOpenTWAP
        );
        }

        _REGISTRY_[baseToken][quoteToken].push(cpAddress);
        _USER_REGISTRY_[creator].push(cpAddress);

        emit NewCP(baseToken, quoteToken, creator, cpAddress);
    }

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

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

    function getCrowdPoolingBidirection(address token0, address token1)
        external
        view
        returns (address[] memory baseToken0Pools, address[] memory baseToken1Pools)
    {
        return (_REGISTRY_[token0][token1], _REGISTRY_[token1][token0]);
    }

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

    // ============ Owner Functions ============
    
    function updateCPTemplate(address _newCPTemplate) external onlyOwner {
        _CP_TEMPLATE_ = _newCPTemplate;
    }

    function setCapRatio(uint256 _newCapRatio) public onlyOwner {
        require(_newCapRatio > 0 && _newCapRatio <= 100, "CP_FACTORY : INVALID");
        _CAP_RATIO_ = _newCapRatio;
    }

    function setFreezeDuration(uint256 _newFreeDuration) public onlyOwner {
        _FREEZE_DURATION_ = _newFreeDuration;
    }

    function setCalmDuration(uint256 _newCalmDuration) public onlyOwner {
        _CALM_DURATION_ = _newCalmDuration;
    }

    function setVestDuration(uint256 _newVestDuration) public onlyOwner {
        _VEST_DURATION_ = _newVestDuration;
    }

    function setK(uint256 _newK) public onlyOwner {
        require(_newK <= 10**18, "CP_FACTORY : INVALID");
        _K_ = _newK;
    }

    function setCliffRate(uint256 _newCliffRate) public onlyOwner {
        require(_newCliffRate <= 10**18, "CP_FACTORY : INVALID");
        _CLIFF_RATE_ = _newCliffRate;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"cloneFactory","type":"address"},{"internalType":"address","name":"cpTemplate","type":"address"},{"internalType":"address","name":"dvmFactory","type":"address"},{"internalType":"address","name":"defaultMaintainer","type":"address"},{"internalType":"address","name":"defaultMtFeeRateModel","type":"address"},{"internalType":"address","name":"defaultPermissionManager","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":"cp","type":"address"}],"name":"NewCP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferPrepared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"_CALM_DURATION_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_CAP_RATIO_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_CLIFF_RATE_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_CLONE_FACTORY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_CP_TEMPLATE_","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":"_DEFAULT_PERMISSION_MANAGER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DVM_FACTORY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_FREEZE_DURATION_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_K_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"_VEST_DURATION_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createCrowdPooling","outputs":[{"internalType":"address","name":"newCrowdPooling","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"}],"name":"getCrowdPooling","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":"getCrowdPoolingBidirection","outputs":[{"internalType":"address[]","name":"baseToken0Pools","type":"address[]"},{"internalType":"address[]","name":"baseToken1Pools","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getCrowdPoolingByUser","outputs":[{"internalType":"address[]","name":"pools","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"cpAddress","type":"address"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"uint256[]","name":"timeLine","type":"uint256[]"},{"internalType":"uint256[]","name":"valueList","type":"uint256[]"},{"internalType":"bool","name":"isOpenTWAP","type":"bool"}],"name":"initCrowdPooling","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"initOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCalmDuration","type":"uint256"}],"name":"setCalmDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCapRatio","type":"uint256"}],"name":"setCapRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCliffRate","type":"uint256"}],"name":"setCliffRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFreeDuration","type":"uint256"}],"name":"setFreezeDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newK","type":"uint256"}],"name":"setK","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newVestDuration","type":"uint256"}],"name":"setVestDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newCPTemplate","type":"address"}],"name":"updateCPTemplate","outputs":[],"stateMutability":"nonpayable","type":"function"}]

610120604052603260035562278d00600455600060055560006006556000600755670de0b6b3a76400006008553480156200003957600080fd5b5060405162001969380380620019698339810160408190526200005c91620000d4565b606095861b6001600160601b0319908116608052600280546001600160a01b0319166001600160a01b03979097169690961790955592851b841660a05290841b831660c052831b821660e05290911b16610100526200015a565b80516001600160a01b0381168114620000ce57600080fd5b92915050565b60008060008060008060c08789031215620000ed578182fd5b620000f98888620000b6565b95506200010a8860208901620000b6565b94506200011b8860408901620000b6565b93506200012c8860608901620000b6565b92506200013d8860808901620000b6565b91506200014e8860a08901620000b6565b90509295509295509295565b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c6117a7620001c260003980610a6d5280610ddd5250806107d35280610e2b52508061082c5280610d335250806107af5280610e7952508061087a5280610a9152506117a76000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063792d793b1161010f578063c06fe4ab116100a2578063eb774d0511610071578063eb774d0514610391578063ec2fd46d14610399578063ecfc2db0146103a1578063f2fde38b146103b4576101e5565b8063c06fe4ab14610366578063c2c2757b14610379578063ce90ea7414610381578063e0f5d89e14610389576101e5565b8063a58888db116100de578063a58888db14610325578063a6569b3f14610338578063a820636b14610340578063bdeb0a9114610353576101e5565b8063792d793b1461030557806381ab4d0a1461030d5780638456db151461031557806389edcf141461031d576101e5565b80634e71e0c81161018757806367de8be91161015657806367de8be9146102cf57806369e4e417146102e25780636c5ccb9b146102ea5780636ca2aa95146102f2576101e5565b80634e71e0c8146102815780635568587a1461028957806364ddb0131461029c5780636556c7e5146102af576101e5565b8063294dafc0116101c3578063294dafc0146102305780633ff9b61e1461024557806341a1759c1461024d5780634c59de661461026e576101e5565b806307b8a636146101ea5780630d009297146101ff57806316048bc414610212575b600080fd5b6101fd6101f8366004611389565b6103c7565b005b6101fd61020d3660046111ea565b6103ff565b61021a61045f565b604051610227919061142b565b60405180910390f35b61023861046e565b6040516102279190611750565b610238610474565b61026061025b366004611222565b61047a565b60405161022792919061147d565b6101fd61027c366004611389565b610572565b6101fd6105c9565b6101fd610297366004611389565b610657565b6101fd6102aa3660046111ea565b610686565b6102c26102bd366004611222565b6106d2565b604051610227919061146a565b6101fd6102dd366004611389565b610756565b61021a6107ad565b61021a6107d1565b6101fd610300366004611389565b6107f5565b610238610824565b61021a61082a565b61021a61084e565b61021a61085d565b61021a61033336600461135e565b610907565b61021a61093c565b6102c261034e3660046111ea565b61094b565b61021a61036136600461131e565b6109c1565b6101fd610374366004611389565b610a03565b610238610a5f565b610238610a65565b61021a610a6b565b61021a610a8f565b610238610ab3565b6101fd6103af36600461125a565b610ab9565b6101fd6103c23660046111ea565b61105f565b6000546001600160a01b031633146103fa5760405162461bcd60e51b81526004016103f19061170a565b60405180910390fd5b600555565b600154600160a01b900460ff16156104295760405162461bcd60e51b81526004016103f1906116e0565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b039092166001600160a01b0319909216919091179055565b6000546001600160a01b031681565b60085481565b60065481565b6001600160a01b038083166000818152600960208181526040808420958716845294815284832091815284832093835292835290839020815484518185028101850190955280855260609485949091849183018282801561050457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104e6575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561056057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610542575b50505050509050915091509250929050565b6000546001600160a01b0316331461059c5760405162461bcd60e51b81526004016103f19061170a565b670de0b6b3a76400008111156105c45760405162461bcd60e51b81526004016103f1906114f7565b600855565b6001546001600160a01b031633146105f35760405162461bcd60e51b81526004016103f190611525565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031633146106815760405162461bcd60e51b81526004016103f19061170a565b600655565b6000546001600160a01b031633146106b05760405162461bcd60e51b81526004016103f19061170a565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808316600090815260096020908152604080832093851683529281529082902080548351818402810184019094528084526060939283018282801561074857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161072a575b505050505090505b92915050565b6000546001600160a01b031633146107805760405162461bcd60e51b81526004016103f19061170a565b670de0b6b3a76400008111156107a85760405162461bcd60e51b81526004016103f1906114f7565b600755565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b0316331461081f5760405162461bcd60e51b81526004016103f19061170a565b600455565b60035481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031681565b6002546040516340925bc760e11b81526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811692638124b78e926108b092169060040161142b565b602060405180830381600087803b1580156108ca57600080fd5b505af11580156108de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109029190611206565b905090565b600a602052816000526040600020818154811061092057fe5b6000918252602090912001546001600160a01b03169150829050565b6002546001600160a01b031681565b6001600160a01b0381166000908152600a60209081526040918290208054835181840281018401909452808452606093928301828280156109b557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610997575b50505050509050919050565b600960205282600052604060002060205281600052604060002081815481106109e657fe5b6000918252602090912001546001600160a01b0316925083915050565b6000546001600160a01b03163314610a2d5760405162461bcd60e51b81526004016103f19061170a565b600081118015610a3e575060648111155b610a5a5760405162461bcd60e51b81526004016103f1906114f7565b600355565b60055481565b60045481565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60075481565b8685848460055482600281518110610acd57fe5b602002602001015114610af25760405162461bcd60e51b81526004016103f190611656565b60065482600481518110610b0257fe5b602002602001015114610b275760405162461bcd60e51b81526004016103f19061169e565b60075481600181518110610b3757fe5b602002602001015114610b5c5760405162461bcd60e51b81526004016103f1906115ef565b60085481600381518110610b6c57fe5b602002602001015114610b915760405162461bcd60e51b81526004016103f190611590565b6040516370a0823160e01b81526000906001600160a01b038516906370a0823190610bc090889060040161142b565b60206040518083038186803b158015610bd857600080fd5b505afa158015610bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1091906113a1565b9050610c63600354610c57670de0b6b3a7640000610c4b86600281518110610c3457fe5b6020026020010151866110e490919063ffffffff16565b9063ffffffff61112516565b9063ffffffff6110e416565b610c8b606484600081518110610c7557fe5b60200260200101516110e490919063ffffffff16565b1115610ca95760405162461bcd60e51b81526004016103f19061161f565b60045483600381518110610cb957fe5b60200260200101511015610cdf5760405162461bcd60e51b81526004016103f19061154c565b60408051600780825261010082019092526060916020820160e0803683370190505090508b81600081518110610d1157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610d5f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508a81600281518110610d8d57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508981600381518110610dbb57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600481518110610e0957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600581518110610e5757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600681518110610ea557fe5b6001600160a01b0392831660209182029290920101526040516341dd3c3360e11b8152908e16906383ba786690610ee69084908d908d908d906004016114ab565b600060405180830381600087803b158015610f0057600080fd5b505af1158015610f14573d6000803e3d6000fd5b5050505050600960008b6001600160a01b03166001600160a01b0316815260200190815260200160002060008a6001600160a01b03166001600160a01b031681526020019081526020016000208c9080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b03160217905550600a60008c6001600160a01b03166001600160a01b031681526020019081526020016000208c9080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055507f0bd1e8ce555b4ec75d8b1c8113a8812659e0d94f0b4c67637dc049434604b45d8a8a8d8f604051611049949392919061143f565b60405180910390a1505050505050505050505050565b6000546001600160a01b031633146110895760405162461bcd60e51b81526004016103f19061170a565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000826110f357506000610750565b8282028284828161110057fe5b041461111e5760405162461bcd60e51b81526004016103f19061172d565b9392505050565b60008082116111465760405162461bcd60e51b81526004016103f1906115c7565b81838161114f57fe5b049392505050565b600082601f830112611167578081fd5b813567ffffffffffffffff8082111561117e578283fd5b60208083026040518282820101818110858211171561119b578687fd5b6040528481529450818501925085820181870183018810156111bc57600080fd5b600091505b848210156111df5780358452928201926001919091019082016111c1565b505050505092915050565b6000602082840312156111fb578081fd5b813561111e81611759565b600060208284031215611217578081fd5b815161111e81611759565b60008060408385031215611234578081fd5b823561123f81611759565b9150602083013561124f81611759565b809150509250929050565b600080600080600080600060e0888a031215611274578283fd5b873561127f81611759565b9650602088013561128f81611759565b9550604088013561129f81611759565b945060608801356112af81611759565b9350608088013567ffffffffffffffff808211156112cb578485fd5b6112d78b838c01611157565b945060a08a01359150808211156112ec578384fd5b506112f98a828b01611157565b92505060c0880135801515811461130e578182fd5b8091505092959891949750929550565b600080600060608486031215611332578283fd5b833561133d81611759565b9250602084013561134d81611759565b929592945050506040919091013590565b60008060408385031215611370578182fd5b823561137b81611759565b946020939093013593505050565b60006020828403121561139a578081fd5b5035919050565b6000602082840312156113b2578081fd5b5051919050565b6000815180845260208085019450808401835b838110156113f15781516001600160a01b0316875295820195908201906001016113cc565b509495945050505050565b6000815180845260208085019450808401835b838110156113f15781518752958201959082019060010161140f565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b60006020825261111e60208301846113b9565b60006040825261149060408301856113b9565b82810360208401526114a281856113b9565b95945050505050565b6000608082526114be60808301876113b9565b82810360208401526114d081876113fc565b83810360408501526114e281876113fc565b92505050821515606083015295945050505050565b60208082526014908201527310d417d19050d513d496480e881253959053125160621b604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526024908201527f43505f464143544f5259203a20465245455a455f4455524154494f4e5f494e566040820152631053125160e21b606082015260800190565b6020808252601f908201527f43505f464143544f5259203a20434c4946465f524154455f494e56414c494400604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526016908201527510d417d19050d513d496480e8812d7d253959053125160521b604082015260600190565b6020808252601e908201527f43505f464143544f5259203a2051554f54455f4341505f494e56414c49440000604082015260600190565b60208082526028908201527f43505f464143544f5259203a2050484153455f43414c4d5f4455524154494f4e60408201526717d253959053125160c21b606082015260800190565b60208082526022908201527f43505f464143544f5259203a20564553545f4455524154494f4e5f494e56414c604082015261125160f21b606082015260800190565b60208082526010908201526f1113d113d7d25392551250531256915160821b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b6001600160a01b038116811461176e57600080fd5b5056fea2646970667358221220095287d6accd2d07ce7beed492999da6b899aa5f3317f5efef9b3b985c6624e464736f6c63430006090033000000000000000000000000729f7f44bf64ce814716b6261e267dbe6cdf021c000000000000000000000000f50bdc9e90b7a1c138cb7935071b85c417c4cb8e00000000000000000000000079887f65f83bdf15bcc8736b5e5bcdb48fb8fe130000000000000000000000003cd6d7f5ff977bf8069548ea1f9441b061162b4200000000000000000000000018b0bd918b55f995fd404b872404378a62cb403b000000000000000000000000550b2e7bd9605b8dcdd20d01ba73f1feb6ce289b

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

000000000000000000000000729f7f44bf64ce814716b6261e267dbe6cdf021c000000000000000000000000f50bdc9e90b7a1c138cb7935071b85c417c4cb8e00000000000000000000000079887f65f83bdf15bcc8736b5e5bcdb48fb8fe130000000000000000000000003cd6d7f5ff977bf8069548ea1f9441b061162b4200000000000000000000000018b0bd918b55f995fd404b872404378a62cb403b000000000000000000000000550b2e7bd9605b8dcdd20d01ba73f1feb6ce289b

-----Decoded View---------------
Arg [0] : cloneFactory (address): 0x729f7f44bf64ce814716b6261e267dbe6cdf021c
Arg [1] : cpTemplate (address): 0xf50bdc9e90b7a1c138cb7935071b85c417c4cb8e
Arg [2] : dvmFactory (address): 0x79887f65f83bdf15bcc8736b5e5bcdb48fb8fe13
Arg [3] : defaultMaintainer (address): 0x3cd6d7f5ff977bf8069548ea1f9441b061162b42
Arg [4] : defaultMtFeeRateModel (address): 0x18b0bd918b55f995fd404b872404378a62cb403b
Arg [5] : defaultPermissionManager (address): 0x550b2e7bd9605b8dcdd20d01ba73f1feb6ce289b

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000729f7f44bf64ce814716b6261e267dbe6cdf021c
Arg [1] : 000000000000000000000000f50bdc9e90b7a1c138cb7935071b85c417c4cb8e
Arg [2] : 00000000000000000000000079887f65f83bdf15bcc8736b5e5bcdb48fb8fe13
Arg [3] : 0000000000000000000000003cd6d7f5ff977bf8069548ea1f9441b061162b42
Arg [4] : 00000000000000000000000018b0bd918b55f995fd404b872404378a62cb403b
Arg [5] : 000000000000000000000000550b2e7bd9605b8dcdd20d01ba73f1feb6ce289b


Deployed ByteCode Sourcemap

8199:5630:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13249:121;;;;;;;;;:::i;:::-;;965:127;;;;;;;;;:::i;332:22::-;;;:::i;:::-;;;;;;;;;;;;;;;;8884:36;;;:::i;:::-;;;;;;;;8814:34;;;:::i;12278:273::-;;;;;;;;;:::i;:::-;;;;;;;;;13650:176;;;;;;;;;:::i;1271:228::-;;;:::i;13378:121::-;;;;;;;;;:::i;12794:118::-;;;;;;;;;:::i;12068:202::-;;;;;;;;;:::i;:::-;;;;;;;;13507:135;;;;;;;;;:::i;8385:38::-;;;:::i;8482:52::-;;;:::i;13116:125::-;;;;;;;;;:::i;8684:31::-;;;:::i;8430:45::-;;;:::i;361:26::-;;;:::i;10819:161::-;;;:::i;9126:52::-;;;;;;;;;:::i;8601:28::-;;;:::i;12559:171::-;;;;;;;;;:::i;9017:67::-;;;;;;;;;:::i;12920:188::-;;;;;;;;;:::i;8773:34::-;;;:::i;8723:43::-;;;:::i;8541:53::-;;;:::i;8338:40::-;;;:::i;8855:22::-;;;:::i;10988:1021::-;;;;;;;;;:::i;1100:163::-;;;;;;;;;:::i;13249:121::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;;;;;;;;;13328:15:::1;:34:::0;13249:121::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;8884:36::-;;;;:::o;8814:34::-;;;;:::o;12278:273::-;-1:-1:-1;;;;;12488:18:0;;;;;;;:10;:18;;;;;;;;:26;;;;;;;;;;;12516:18;;;;;;:26;;;;;;;;;;12480:63;;;;;;;;;;;;;;;;;12396:32;;;;12480:63;;12488:26;;12480:63;;12488:26;12480:63;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12480:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12480:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;12278:273;;;;;:::o;13650:176::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;13748:6:::1;13731:13;:23;;13723:56;;;;-1:-1:-1::0;;;13723:56:0::1;;;;;;;;;13790:12;:28:::0;13650:176::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;13378:121::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;13457:15:::1;:34:::0;13378:121::o;12794:118::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;12874:13:::1;:30:::0;;-1:-1:-1;;;;;;12874:30:0::1;-1:-1:-1::0;;;;;12874:30:0;;;::::1;::::0;;;::::1;::::0;;12794:118::o;12068:202::-;-1:-1:-1;;;;;12229:21:0;;;;;;;:10;:21;;;;;;;;:33;;;;;;;;;;;;12222:40;;;;;;;;;;;;;;;;;12182:22;;12222:40;;;12229:33;12222:40;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12222:40:0;;;;;;;;;;;;;;;;;;;;;;;12068:202;;;;;:::o;13507:135::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;13581:6:::1;13572:5;:15;;13564:48;;;;-1:-1:-1::0;;;13564:48:0::1;;;;;;;;;13623:3;:11:::0;13507:135::o;8385:38::-;;;:::o;8482:52::-;;;:::o;13116:125::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;13197:17:::1;:36:::0;13116:125::o;8684:31::-;;;;:::o;8430:45::-;;;:::o;361:26::-;;;-1:-1:-1;;;;;361:26:0;;:::o;10819:161::-;10958:13;;10921:51;;-1:-1:-1;;;10921:51:0;;10867:23;;-1:-1:-1;;;;;10935:15:0;10921:36;;;;;:51;;10958:13;;10921:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10903:69;;10819:161;:::o;9126:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9126:52:0;;-1:-1:-1;9126:52:0;;-1:-1:-1;9126:52:0:o;8601:28::-;;;-1:-1:-1;;;;;8601:28:0;;:::o;12559:171::-;-1:-1:-1;;;;;12701:21:0;;;;;;:15;:21;;;;;;;;;12694:28;;;;;;;;;;;;;;;;;12654:22;;12694:28;;;12701:21;12694:28;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12694:28:0;;;;;;;;;;;;;;;;;;;;;;;12559:171;;;:::o;9017:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9017:67:0;;-1:-1:-1;9017:67:0;;-1:-1:-1;;9017:67:0:o;12920:188::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;13014:1:::1;12999:12;:16;:39;;;;;13035:3;13019:12;:19;;12999:39;12991:72;;;;-1:-1:-1::0;;;12991:72:0::1;;;;;;;;;13074:11;:26:::0;12920:188::o;8773:34::-;;;;:::o;8723:43::-;;;;:::o;8541:53::-;;;:::o;8338:40::-;;;:::o;8855:22::-;;;;:::o;10988:1021::-;11251:9;11261;11271:8;11280:9;9421:15;;9406:8;9415:1;9406:11;;;;;;;;;;;;;;:30;9398:83;;;;-1:-1:-1;;;9398:83:0;;;;;;;;;9515:15;;9500:8;9509:1;9500:11;;;;;;;;;;;;;;:30;9492:77;;;;-1:-1:-1;;;9492:77:0;;;;;;;;;9604:3;;9588:9;9598:1;9588:12;;;;;;;;;;;;;;:19;9580:54;;;;-1:-1:-1;;;9580:54:0;;;;;;;;;9669:12;;9653:9;9663:1;9653:12;;;;;;;;;;;;;;:28;9645:72;;;;-1:-1:-1;;;9645:72:0;;;;;;;;;9757:38;;-1:-1:-1;;;9757:38:0;;9730:24;;-1:-1:-1;;;;;9757:27:0;;;;;:38;;9785:9;;9757:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9730:65;;9839:63;9890:11;;9839:46;9878:6;9839:34;9860:9;9870:1;9860:12;;;;;;;;;;;;;;9839:16;:20;;:34;;;;:::i;:::-;:38;:46;:38;:46;:::i;:::-;:50;:63;:50;:63;:::i;:::-;9814:21;9831:3;9814:9;9824:1;9814:12;;;;;;;;;;;;;;:16;;:21;;;;:::i;:::-;:88;;9806:130;;;;-1:-1:-1;;;9806:130:0;;;;;;;;;9969:17;;9955:8;9964:1;9955:11;;;;;;;;;;;;;;:31;;9947:80;;;;-1:-1:-1;;;9947:80:0;;;;;;;;;11344:16:::1;::::0;;11358:1:::1;11344:16:::0;;;;;::::1;::::0;;;11313:28:::1;::::0;11344:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11344:16:0::1;11313:47;;11388:7;11371:11;11383:1;11371:14;;;;;;;;;;;;;:24;-1:-1:-1::0;;;;;11371:24:0::1;;;-1:-1:-1::0;;;;;11371:24:0::1;;;::::0;::::1;11423:20;11406:11;11418:1;11406:14;;;;;;;;;;;;;:37;-1:-1:-1::0;;;;;11406:37:0::1;;;-1:-1:-1::0;;;;;11406:37:0::1;;;::::0;::::1;11471:9;11454:11;11466:1;11454:14;;;;;;;;;;;;;:26;-1:-1:-1::0;;;;;11454:26:0::1;;;-1:-1:-1::0;;;;;11454:26:0::1;;;::::0;::::1;11508:10;11491:11;11503:1;11491:14;;;;;;;;;;;;;:27;-1:-1:-1::0;;;;;11491:27:0::1;;;-1:-1:-1::0;;;;;11491:27:0::1;;;::::0;::::1;11546:28;11529:11;11541:1;11529:14;;;;;;;;;;;;;:45;-1:-1:-1::0;;;;;11529:45:0::1;;;-1:-1:-1::0;;;;;11529:45:0::1;;;::::0;::::1;11602:27;11585:11;11597:1;11585:14;;;;;;;;;;;;;:44;-1:-1:-1::0;;;;;11585:44:0::1;;;-1:-1:-1::0;;;;;11585:44:0::1;;;::::0;::::1;11657:13;11640:11;11652:1;11640:14;;;;;;;;-1:-1:-1::0;;;;;11640:30:0;;::::1;:14;::::0;;::::1;::::0;;;;;:30;11683:128:::1;::::0;-1:-1:-1;;;11683:128:0;;:19;;::::1;::::0;::::1;::::0;:128:::1;::::0;11717:11;;11743:8;;11766:9;;11790:10;;11683:128:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10038:1;11835:10;:21;11846:9;-1:-1:-1::0;;;;;11835:21:0::1;-1:-1:-1::0;;;;;11835:21:0::1;;;;;;;;;;;;:33;11857:10;-1:-1:-1::0;;;;;11835:33:0::1;-1:-1:-1::0;;;;;11835:33:0::1;;;;;;;;;;;;11874:9;11835:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;11835:49:0::1;;;;;-1:-1:-1::0;;;;;11835:49:0::1;;;;;;11895:15;:24;11911:7;-1:-1:-1::0;;;;;11895:24:0::1;-1:-1:-1::0;;;;;11895:24:0::1;;;;;;;;;;;;11925:9;11895:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;11895:40:0::1;;;;;-1:-1:-1::0;;;;;11895:40:0::1;;;;;;11953:48;11959:9;11970:10;11982:7;11991:9;11953:48;;;;;;;;;;;;;;;;;;10988:1021:::0;;;;;;;;;;;;:::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;3205:226::-;3263:7;3287:6;3283:47;;-1:-1:-1;3317:1:0;3310:8;;3283:47;3354:5;;;3358:1;3354;:5;:1;3378:5;;;;;:10;3370:32;;;;-1:-1:-1;;;3370:32:0;;;;;;;;;3422:1;3205:226;-1:-1:-1;;;3205:226:0:o;3439:141::-;3497:7;3529:1;3525;:5;3517:32;;;;-1:-1:-1;;;3517:32:0;;;;;;;;;3571:1;3567;:5;;;;;;;3439:141;-1:-1:-1;;;3439:141:0:o;301:707:-1:-;;418:3;411:4;403:6;399:17;395:27;385:2;;-1:-1;;426:12;385:2;473:6;460:20;19984:18;;19976:6;19973:30;19970:2;;;-1:-1;;20006:12;19970:2;20051:4;;20043:6;20039:17;19624:2;19618:9;20051:4;20039:17;19654:6;19650:17;;19761:6;19749:10;19746:22;19984:18;19713:10;19710:34;19707:62;19704:2;;;-1:-1;;19772:12;19704:2;19624;19791: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;;;1214:20;;889:50;;953:14;;;;843:1;836:9;;;;;981:14;;796:206;;;800:14;;;;;378:630;;;;;1425:241;;1529:2;1517:9;1508:7;1504:23;1500:32;1497:2;;;-1:-1;;1535:12;1497:2;85:6;72:20;97:33;124:5;97:33;;1673:263;;1788:2;1776:9;1767:7;1763:23;1759:32;1756:2;;;-1:-1;;1794:12;1756:2;226:6;220:13;238:33;265:5;238:33;;1943:366;;;2064:2;2052:9;2043:7;2039:23;2035:32;2032:2;;;-1:-1;;2070:12;2032:2;85:6;72:20;97:33;124:5;97:33;;;2122:63;-1:-1;2222:2;2261:22;;72:20;97:33;72:20;97:33;;;2230:63;;;;2026:283;;;;;;2316:1261;;;;;;;;2569:3;2557:9;2548:7;2544:23;2540:33;2537:2;;;-1:-1;;2576:12;2537:2;85:6;72:20;97:33;124:5;97:33;;;2628:63;-1:-1;2728:2;2767:22;;72:20;97:33;72:20;97:33;;;2736:63;-1:-1;2836:2;2875:22;;72:20;97:33;72:20;97:33;;;2844:63;-1:-1;2944:2;2983:22;;72:20;97:33;72:20;97:33;;;2952:63;-1:-1;3080:3;3065:19;;3052:33;3105:18;3094:30;;;3091:2;;;-1:-1;;3127:12;3091:2;3157:78;3227:7;3218:6;3207:9;3203:22;3157:78;;;3147:88;;3300:3;3289:9;3285:19;3272:33;3258:47;;3105:18;3317:6;3314:30;3311:2;;;-1:-1;;3347:12;3311:2;;3377:78;3447:7;3438:6;3427:9;3423:22;3377:78;;;3367:88;;;3492:3;3533:9;3529:22;1080:20;22118:5;21680:13;21673:21;22096:5;22093:32;22083:2;;-1:-1;;22129:12;22083:2;3501:60;;;;2531:1046;;;;;;;;;;;3584:491;;;;3722:2;3710:9;3701:7;3697:23;3693:32;3690:2;;;-1:-1;;3728:12;3690:2;85:6;72:20;97:33;124:5;97:33;;;3780:63;-1:-1;3880:2;3919:22;;72:20;97:33;72:20;97:33;;;3684:391;;3888:63;;-1:-1;;;3988:2;4027:22;;;;1214:20;;3684:391;4082:366;;;4203:2;4191:9;4182:7;4178:23;4174:32;4171:2;;;-1:-1;;4209:12;4171:2;85:6;72:20;97:33;124:5;97:33;;;4261:63;4361:2;4400:22;;;;1214:20;;-1:-1;;;4165:283;4455:241;;4559:2;4547:9;4538:7;4534:23;4530:32;4527:2;;;-1:-1;;4565:12;4527:2;-1:-1;1214:20;;4521:175;-1:-1;4521:175;4703:263;;4818:2;4806:9;4797:7;4793:23;4789:32;4786:2;;;-1:-1;;4824:12;4786:2;-1:-1;1362:13;;4780:186;-1:-1;4780:186;5598:690;;5791:5;20555:12;21101:6;21096:3;21089:19;21138:4;;21133:3;21129:14;5803:93;;21138:4;5967:5;20251:14;-1:-1;6006:260;6031:6;6028:1;6025:13;6006:260;;;6092:13;;-1:-1;;;;;21768:54;5398:37;;5127:14;;;;20829;;;;19984:18;6046:9;6006:260;;;-1:-1;6272:10;;5722:566;-1:-1;;;;;5722:566;6327:690;;6520:5;20555:12;21101:6;21096:3;21089:19;21138:4;;21133:3;21129:14;6532:93;;21138:4;6696:5;20251:14;-1:-1;6735:260;6760:6;6757:1;6754:13;6735:260;;;6821:13;;11288:37;;5309:14;;;;20829;;;;6782:1;6775:9;6735:260;;11457:222;-1:-1;;;;;21768:54;;;;5398:37;;11584:2;11569:18;;11555:124;11686:556;-1:-1;;;;;21768:54;;;5398:37;;21768:54;;;12062:2;12047:18;;5398:37;21768:54;;;12145:2;12130:18;;5398:37;21768:54;;;12228:2;12213:18;;5398:37;11897:3;11882:19;;11868:374;12249:370;;12426:2;12447:17;12440:47;12501:108;12426:2;12415:9;12411:18;12595:6;12501:108;;12626:629;;12881:2;12902:17;12895:47;12956:108;12881:2;12870:9;12866:18;13050:6;12956:108;;;13112:9;13106:4;13102:20;13097:2;13086:9;13082:18;13075:48;13137:108;13240:4;13231:6;13137:108;;;13129:116;12852:403;-1:-1;;;;;12852:403;13262:988;;13617:3;13639:17;13632:47;13693:108;13617:3;13606:9;13602:19;13787:6;13693:108;;;13849:9;13843:4;13839:20;13834:2;13823:9;13819:18;13812:48;13874:108;13977:4;13968:6;13874:108;;;14030:9;14024:4;14020:20;14015:2;14004:9;14000:18;13993:48;14055:108;14158:4;14149:6;14055:108;;;14047:116;;;;7117:5;21680:13;21673:21;14236:2;14225:9;14221:18;7090:34;13588:662;;;;;;;;14257:416;14457:2;14471:47;;;7361:2;14442:18;;;21089:19;-1:-1;;;21129:14;;;7377:43;7439:12;;;14428:245;14680:416;14880:2;14894:47;;;7690:2;14865:18;;;21089:19;-1:-1;;;21129:14;;;7706:36;7761:12;;;14851:245;15103:416;15303:2;15317:47;;;8012:2;15288:18;;;21089:19;8048:34;21129:14;;;8028:55;-1:-1;;;8103:12;;;8096:28;8143:12;;;15274:245;15526:416;15726:2;15740:47;;;8394:2;15711:18;;;21089:19;8430:33;21129:14;;;8410:54;8483:12;;;15697:245;15949:416;16149:2;16163:47;;;8734:2;16134:18;;;21089:19;-1:-1;;;21129:14;;;8750:37;8806:12;;;16120:245;16372:416;16572:2;16586:47;;;9057:2;16557:18;;;21089:19;-1:-1;;;21129:14;;;9073:45;9137:12;;;16543:245;16795:416;16995:2;17009:47;;;9388:2;16980:18;;;21089:19;9424:32;21129:14;;;9404:53;9476:12;;;16966:245;17218:416;17418:2;17432:47;;;9727:2;17403:18;;;21089:19;9763:34;21129:14;;;9743:55;-1:-1;;;9818:12;;;9811:32;9862:12;;;17389:245;17641:416;17841:2;17855:47;;;10113:2;17826:18;;;21089:19;10149:34;21129:14;;;10129:55;-1:-1;;;10204:12;;;10197:26;10242:12;;;17812:245;18064:416;18264:2;18278:47;;;10493:2;18249:18;;;21089:19;-1:-1;;;21129:14;;;10509:39;10567:12;;;18235:245;18487:416;18687:2;18701:47;;;10818:1;18672:18;;;21089:19;-1:-1;;;21129:14;;;10833:32;10884:12;;;18658:245;18910:416;19110:2;19124:47;;;11135:1;19095:18;;;21089:19;-1:-1;;;21129:14;;;11150:32;11201:12;;;19081:245;19333:222;11288:37;;;19460:2;19445:18;;19431:124;21913:117;-1:-1;;;;;21768:54;;21972:35;;21962:2;;22021:1;;22011:12;21962:2;21956:74;

Swarm Source

ipfs://095287d6accd2d07ce7beed492999da6b899aa5f3317f5efef9b3b985c6624e4
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.