Contract 0x43C49f8DD240e1545F147211Ec9f917376Ac1e87 1

 

Contract Overview

DODO: Stable Pool Factory V2
Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0xe34a2f61785fd7105d382874cde40c8eb553876e620bd532edda07ed52b290d7Init Owner146044552021-05-17 12:42:45753 days 5 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  DODO: Stable Pool Factory V20 MATIC0.0000642911
0x45a2d693f33f161020797e9698aa98d47d0e5ee902def6d928b5f77a32fa34a00x60e06040146044452021-05-17 12:42:25753 days 5 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  Create: DSPFactory0 MATIC0.0010417251
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DSPFactory

Compiler Version
v0.6.9+commit.3e3065ac

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license
/**
 *Submitted for verification at 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/DODOStablePool/intf/IDSP.sol

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

    function _BASE_TOKEN_() external view returns (address);

    function _QUOTE_TOKEN_() external view returns (address);

    function _I_() external view returns (uint256);

    function _MT_FEE_RATE_MODEL_() external view returns (address);

    function getVaultReserve() external view returns (uint256 baseReserve, uint256 quoteReserve);

    function sellBase(address to) external returns (uint256);

    function sellQuote(address to) external returns (uint256);

    function buyShares(address to) external returns (uint256,uint256,uint256);
}

// File: contracts/Factory/DSPFactory.sol


interface IDSPFactory {
    function createDODOStablePool(
        address baseToken,
        address quoteToken,
        uint256 lpFeeRate,
        uint256 i,
        uint256 k,
        bool isOpenTWAP
    ) external returns (address newStablePool);
}

/**
 * @title DODO StablePool Factory
 * @author DODO Breeder
 *
 * @notice Create And Register DSP Pools
 */
contract DSPFactory is InitializableOwnable {
    // ============ Templates ============

    address public immutable _CLONE_FACTORY_;
    address public immutable _DEFAULT_MAINTAINER_;
    address public immutable _DEFAULT_MT_FEE_RATE_MODEL_;
    address public _DSP_TEMPLATE_;

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

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

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

    event NewDSP(address baseToken, address quoteToken, address creator, address DSP);

    event RemoveDSP(address DSP);

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

    constructor(
        address cloneFactory,
        address DSPTemplate,
        address defaultMaintainer,
        address defaultMtFeeRateModel
    ) public {
        _CLONE_FACTORY_ = cloneFactory;
        _DSP_TEMPLATE_ = DSPTemplate;
        _DEFAULT_MAINTAINER_ = defaultMaintainer;
        _DEFAULT_MT_FEE_RATE_MODEL_ = defaultMtFeeRateModel;
    }

    function createDODOStablePool(
        address baseToken,
        address quoteToken,
        uint256 lpFeeRate,
        uint256 i,
        uint256 k,
        bool isOpenTWAP
    ) external returns (address newStablePool) {
        newStablePool = ICloneFactory(_CLONE_FACTORY_).clone(_DSP_TEMPLATE_);
        {
            IDSP(newStablePool).init(
                _DEFAULT_MAINTAINER_,
                baseToken,
                quoteToken,
                lpFeeRate,
                _DEFAULT_MT_FEE_RATE_MODEL_,
                i,
                k,
                isOpenTWAP
            );
        }
        _REGISTRY_[baseToken][quoteToken].push(newStablePool);
        _USER_REGISTRY_[tx.origin].push(newStablePool);
        emit NewDSP(baseToken, quoteToken, tx.origin, newStablePool);
    }

    // ============ Admin Operation Functions ============

    function updateDSPTemplate(address _newDSPTemplate) external onlyOwner {
        _DSP_TEMPLATE_ = _newDSPTemplate;
    }

    function addPoolByAdmin(
        address creator,
        address baseToken,
        address quoteToken,
        address pool
    ) external onlyOwner {
        _REGISTRY_[baseToken][quoteToken].push(pool);
        _USER_REGISTRY_[creator].push(pool);
        emit NewDSP(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 RemoveDSP(pool);
    }

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"cloneFactory","type":"address"},{"internalType":"address","name":"DSPTemplate","type":"address"},{"internalType":"address","name":"defaultMaintainer","type":"address"},{"internalType":"address","name":"defaultMtFeeRateModel","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":"DSP","type":"address"}],"name":"NewDSP","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":"DSP","type":"address"}],"name":"RemoveDSP","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":"_DSP_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":"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":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"uint256","name":"lpFeeRate","type":"uint256"},{"internalType":"uint256","name":"i","type":"uint256"},{"internalType":"uint256","name":"k","type":"uint256"},{"internalType":"bool","name":"isOpenTWAP","type":"bool"}],"name":"createDODOStablePool","outputs":[{"internalType":"address","name":"newStablePool","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":"machines","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":"baseToken0Machines","type":"address[]"},{"internalType":"address[]","name":"baseToken1Machines","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getDODOPoolByUser","outputs":[{"internalType":"address[]","name":"machines","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"initOwner","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":"_newDSPTemplate","type":"address"}],"name":"updateDSPTemplate","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60e06040523480156200001157600080fd5b50604051620012ad380380620012ad83398101604081905262000034916200009c565b606093841b6001600160601b0319908116608052600280546001600160a01b0319166001600160a01b03959095169490941790935590831b821660a05290911b1660c052620000fc565b80516001600160a01b03811681146200009657600080fd5b92915050565b60008060008060808587031215620000b2578384fd5b620000be86866200007e565b9350620000cf86602087016200007e565b9250620000e086604087016200007e565b9150620000f186606087016200007e565b905092959194509250565b60805160601c60a05160601c60c05160601c61116c620001416000398061087d5280610b355250806109995280610b0d525080610a5e5280610cc2525061116c6000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063794e5538116100a2578063bdeb0a9111610071578063bdeb0a9114610203578063cf5c2f1014610216578063e65f702914610229578063eb774d051461023c578063f2fde38b1461024457610116565b8063794e5538146101bf57806381ab4d0a146101e05780638456db15146101e8578063a58888db146101f057610116565b806343274b82116100e957806343274b82146101745780634e71e0c81461018757806357a281dc1461018f57806359358068146101af5780636c5ccb9b146101b757610116565b80630d0092971461011b57806316048bc4146101305780631cdd50941461014e57806339d00ef914610161575b600080fd5b61012e610129366004610df5565b610257565b005b6101386102c0565b6040516101459190610fdf565b60405180910390f35b61012e61015c366004610df5565b6102cf565b61012e61016f366004610e6c565b61031b565b61012e610182366004610e6c565b6103f8565b61012e61075b565b6101a261019d366004610e34565b6107e9565b6040516101459190611069565b61013861086c565b61013861087b565b6101d26101cd366004610e34565b61089f565b60405161014592919061107c565b610138610997565b6101386109bb565b6101386101fe366004610f71565b6109ca565b610138610211366004610ec7565b6109ff565b610138610224366004610f07565b610a41565b6101a2610237366004610df5565b610c4a565b610138610cc0565b61012e610252366004610df5565b610ce4565b600154600160a01b900460ff161561028a5760405162461bcd60e51b8152600401610281906110d1565b60405180910390fd5b6001805460ff60a01b1916600160a01b179055600080546001600160a01b039092166001600160a01b0319909216919091179055565b6000546001600160a01b031681565b6000546001600160a01b031633146102f95760405162461bcd60e51b8152600401610281906110fb565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146103455760405162461bcd60e51b8152600401610281906110fb565b6001600160a01b038084166000908152600360209081526040808320868516845282528083208054600181810183559185528385200180548787166001600160a01b03199182168117909255958a1685526004845282852080549283018155855292909320909201805490931617909155517fbc1083a2c1c5ef31e13fb436953d22b47880cf7db279c2c5666b16083afd6b9d906103ea908590859088908690610ff3565b60405180910390a150505050565b6000546001600160a01b031633146104225760405162461bcd60e51b8152600401610281906110fb565b6001600160a01b03808416600090815260036020908152604080832093861683529281529082902080548351818402810184019094528084526060939283018282801561049857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161047a575b50939450600093505050505b815181101561052b57826001600160a01b03168282815181106104c357fe5b60200260200101516001600160a01b0316141561052357816001835103815181106104ea57fe5b60200260200101518282815181106104fe57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061052b565b6001016104a4565b506001600160a01b0380851660009081526003602090815260408083209387168352928152919020825161056192840190610d69565b506001600160a01b03808516600090815260036020908152604080832093871683529290522080548061059057fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03871682526004815260409182902080548351818402810184019094528084526060939283018282801561061a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105fc575b50939450600093505050505b81518110156106ad57836001600160a01b031682828151811061064557fe5b60200260200101516001600160a01b031614156106a5578160018351038151811061066c57fe5b602002602001015182828151811061068057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506106ad565b600101610626565b506001600160a01b038616600090815260046020908152604090912082516106d792840190610d69565b506001600160a01b03861660009081526004602052604090208054806106f957fe5b600082815260209020810160001990810180546001600160a01b03191690550190556040517f896d6f4e7068e6d194a5b84bf222d513973a0dc5ae9687123d5c61329d4489f29061074b908590610fdf565b60405180910390a1505050505050565b6001546001600160a01b031633146107855760405162461bcd60e51b8152600401610281906110aa565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b03808316600090815260036020908152604080832093851683529281529082902080548351818402810184019094528084526060939283018282801561085f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610841575b5050505050905092915050565b6002546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b038083166000818152600360208181526040808420958716845294815284832091815284832093835292835290839020815484518185028101850190955280855260609485949091849183018282801561092957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161090b575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561098557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610967575b50505050509050915091509250929050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031681565b600460205281600052604060002081815481106109e357fe5b6000918252602090912001546001600160a01b03169150829050565b60036020528260005260406000206020528160005260406000208181548110610a2457fe5b6000918252602090912001546001600160a01b0316925083915050565b6002546040516340925bc760e11b81526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811692638124b78e92610a94921690600401610fdf565b602060405180830381600087803b158015610aae57600080fd5b505af1158015610ac2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae69190610e18565b60405163281ccb9560e11b81529091506001600160a01b03821690635039972a90610b63907f0000000000000000000000000000000000000000000000000000000000000000908b908b908b907f0000000000000000000000000000000000000000000000000000000000000000908c908c908c9060040161101e565b600060405180830381600087803b158015610b7d57600080fd5b505af1158015610b91573d6000803e3d6000fd5b5050506001600160a01b0380891660009081526003602090815260408083208b8516845282528083208054600181810183559185528385200180549588166001600160a01b03199687168117909155328086526004855283862080549384018155865293909420018054909416909217909255517fbc1083a2c1c5ef31e13fb436953d22b47880cf7db279c2c5666b16083afd6b9d9250610c38918a918a91908690610ff3565b60405180910390a19695505050505050565b6001600160a01b038116600090815260046020908152604091829020805483518184028101840190945280845260609392830182828015610cb457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c96575b50505050509050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03163314610d0e5760405162461bcd60e51b8152600401610281906110fb565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b828054828255906000526020600020908101928215610dbe579160200282015b82811115610dbe57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610d89565b50610dca929150610dce565b5090565b610df291905b80821115610dca5780546001600160a01b0319168155600101610dd4565b90565b600060208284031215610e06578081fd5b8135610e118161111e565b9392505050565b600060208284031215610e29578081fd5b8151610e118161111e565b60008060408385031215610e46578081fd5b8235610e518161111e565b91506020830135610e618161111e565b809150509250929050565b60008060008060808587031215610e81578182fd5b8435610e8c8161111e565b93506020850135610e9c8161111e565b92506040850135610eac8161111e565b91506060850135610ebc8161111e565b939692955090935050565b600080600060608486031215610edb578283fd5b8335610ee68161111e565b92506020840135610ef68161111e565b929592945050506040919091013590565b60008060008060008060c08789031215610f1f578182fd5b8635610f2a8161111e565b95506020870135610f3a8161111e565b945060408701359350606087013592506080870135915060a08701358015158114610f63578182fd5b809150509295509295509295565b60008060408385031215610f83578182fd5b8235610f8e8161111e565b946020939093013593505050565b6000815180845260208085019450808401835b83811015610fd45781516001600160a01b031687529582019590820190600101610faf565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6001600160a01b0398891681529688166020880152948716604087015260608601939093529416608084015260a083019390935260c082019290925290151560e08201526101000190565b600060208252610e116020830184610f9c565b60006040825261108f6040830185610f9c565b82810360208401526110a18185610f9c565b95945050505050565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526010908201526f1113d113d7d25392551250531256915160821b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6001600160a01b038116811461113357600080fd5b5056fea2646970667358221220182669abb01b0a140f8b21157c621a941518ae00cfd10716a289247c989120aa64736f6c63430006090033000000000000000000000000729f7f44bf64ce814716b6261e267dbe6cdf021c000000000000000000000000be9a66e49503e84ae59a4d0545365aabedf33b400000000000000000000000003cd6d7f5ff977bf8069548ea1f9441b061162b4200000000000000000000000018b0bd918b55f995fd404b872404378a62cb403b

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

000000000000000000000000729f7f44bf64ce814716b6261e267dbe6cdf021c000000000000000000000000be9a66e49503e84ae59a4d0545365aabedf33b400000000000000000000000003cd6d7f5ff977bf8069548ea1f9441b061162b4200000000000000000000000018b0bd918b55f995fd404b872404378a62cb403b

-----Decoded View---------------
Arg [0] : cloneFactory (address): 0x729f7f44bf64ce814716b6261e267dbe6cdf021c
Arg [1] : DSPTemplate (address): 0xbe9a66e49503e84ae59a4d0545365aabedf33b40
Arg [2] : defaultMaintainer (address): 0x3cd6d7f5ff977bf8069548ea1f9441b061162b42
Arg [3] : defaultMtFeeRateModel (address): 0x18b0bd918b55f995fd404b872404378a62cb403b

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000729f7f44bf64ce814716b6261e267dbe6cdf021c
Arg [1] : 000000000000000000000000be9a66e49503e84ae59a4d0545365aabedf33b40
Arg [2] : 0000000000000000000000003cd6d7f5ff977bf8069548ea1f9441b061162b42
Arg [3] : 00000000000000000000000018b0bd918b55f995fd404b872404378a62cb403b


Deployed ByteCode Sourcemap

3790:4214:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;965:127;;;;;;;;;:::i;:::-;;332:22;;;:::i;:::-;;;;;;;;;;;;;;;;5822:122;;;;;;;;;:::i;5952:325::-;;;;;;;;;:::i;6285:1027::-;;;;;;;;;:::i;1271:228::-;;;:::i;7371:201::-;;;;;;;;;:::i;:::-;;;;;;;;4045:29;;;:::i;3986:52::-;;;:::i;7580:275::-;;;;;;;;;:::i;:::-;;;;;;;;;3934:45;;;:::i;361:26::-;;;:::i;4280:52::-;;;;;;;;;:::i;4170:67::-;;;;;;;;;:::i;4929:823::-;;;;;;;;;:::i;7863:138::-;;;;;;;;;:::i;3887:40::-;;;:::i;1100:163::-;;;;;;;;;:::i;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;5822:122::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;5904:14:::1;:32:::0;;-1:-1:-1;;;;;;5904:32:0::1;-1:-1:-1::0;;;;;5904:32:0;;;::::1;::::0;;;::::1;::::0;;5822:122::o;5952:325::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;-1:-1:-1;;;;;6119:21:0;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:33;;::::1;::::0;;;;;;;:44;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;6119:44:0;;::::1;::::0;::::1;::::0;;;6174:24;;::::1;::::0;;:15:::1;:24:::0;;;;;:35;;;;::::1;::::0;;;;;;;;;;::::1;::::0;;;;::::1;;::::0;;;6225:44;::::1;::::0;::::1;::::0;6130:9;;6141:10;;6190:7;;6158:4;;6225:44:::1;;;;;;;;;;5952:325:::0;;;;:::o;6285:1027::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;-1:-1:-1;;;;;6487:21:0;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;6455:65;;;;;;::::1;::::0;;;;;;;;;;:29:::1;::::0;:65;;::::1;6487:33:::0;6455:65;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;6455:65:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;6455:65:0;;-1:-1:-1;6536:9:0::1;::::0;-1:-1:-1;;;;6531:219:0::1;6555:12;:19;6551:1;:23;6531:219;;;6619:4;-1:-1:-1::0;;;;;6600:23:0::1;:12;6613:1;6600:15;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6600:23:0::1;;6596:143;;;6662:12;6697:1;6675:12;:19;:23;6662:37;;;;;;;;;;;;;;6644:12;6657:1;6644:15;;;;;;;;;;;;;:55;-1:-1:-1::0;;;;;6644:55:0::1;;;-1:-1:-1::0;;;;;6644:55:0::1;;;::::0;::::1;6718:5;;6596:143;6576:3;;6531:219;;;-1:-1:-1::0;;;;;;6760:21:0;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;:48;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;;6819:21:0;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:33;;::::1;::::0;;;;;;:39;;;::::1;;;;;::::0;;;::::1;::::0;;;;;-1:-1:-1;;6819:39:0;;;;;-1:-1:-1;;;;;;6819:39:0::1;::::0;;;;;;;;-1:-1:-1;;;;;6905:24:0;::::1;::::0;;:15:::1;:24:::0;;;;;;;6869:60;;;;;;::::1;::::0;;;;;;;;;;:33:::1;::::0;:60;;::::1;6905:24:::0;6869:60;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;6869:60:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;6869:60:0;;-1:-1:-1;6945:9:0::1;::::0;-1:-1:-1;;;;6940:239:0::1;6964:16;:23;6960:1;:27;6940:239;;;7036:4;-1:-1:-1::0;;;;;7013:27:0::1;:16;7030:1;7013:19;;;;;;;;;;;;;;-1:-1:-1::0;;;;;7013:27:0::1;;7009:159;;;7083:16;7126:1;7100:16;:23;:27;7083:45;;;;;;;;;;;;;;7061:16;7078:1;7061:19;;;;;;;;;;;;;:67;-1:-1:-1::0;;;;;7061:67:0::1;;;-1:-1:-1::0;;;;;7061:67:0::1;;;::::0;::::1;7147:5;;7009:159;6989:3;;6940:239;;;-1:-1:-1::0;;;;;;7189:24:0;::::1;;::::0;;;:15:::1;:24;::::0;;;;;;;:43;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;;7243:24:0;::::1;;::::0;;;:15:::1;:24;::::0;;;;:30;;;::::1;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;7243:30:0;;;;;-1:-1:-1;;;;;;7243:30:0::1;::::0;;;;;7289:15:::1;::::0;::::1;::::0;::::1;::::0;7299:4;;7289:15:::1;;;;;;;;;;902:1;;6285:1027:::0;;;;:::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;7371:201::-;-1:-1:-1;;;;;7531:21:0;;;;;;;:10;:21;;;;;;;;:33;;;;;;;;;;;;7524:40;;;;;;;;;;;;;;;;;7481:25;;7524:40;;;7531:33;7524:40;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7524:40:0;;;;;;;;;;;;;;;;;;;;;;;7371:201;;;;:::o;4045:29::-;;;-1:-1:-1;;;;;4045:29:0;;:::o;3986:52::-;;;:::o;7580:275::-;-1:-1:-1;;;;;7792:18:0;;;;;;;:10;:18;;;;;;;;:26;;;;;;;;;;;7820:18;;;;;;:26;;;;;;;;;;7784:63;;;;;;;;;;;;;;;;;7694:35;;;;7784:63;;7792:26;;7784:63;;7792:26;7784:63;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7784:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7784:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7580:275;;;;;:::o;3934:45::-;;;:::o;361:26::-;;;-1:-1:-1;;;;;361:26:0;;:::o;4280:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4280:52:0;;-1:-1:-1;4280:52:0;;-1:-1:-1;4280:52:0:o;4170:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4170:67:0;;-1:-1:-1;4170:67:0;;-1:-1:-1;;4170:67:0:o;4929:823::-;5222:14;;5185:52;;-1:-1:-1;;;5185:52:0;;5135:21;;-1:-1:-1;;;;;5199:15:0;5185:36;;;;;:52;;5222:14;;5185:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5263:278;;-1:-1:-1;;;5263:278:0;;5169:68;;-1:-1:-1;;;;;;5263:24:0;;;;;:278;;5306:20;;5345:9;;5373:10;;5402:9;;5430:27;;5476:1;;5496;;5516:10;;5263:278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;5563:21:0;;;;;;;:10;:21;;;;;;;;:33;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5563:53:0;;;;;;;;5643:9;5627:26;;;:15;:26;;;;;:46;;;;;;;;;;;;;;;;;;;;;;;;;5689:55;;;-1:-1:-1;5689:55:0;;5574:9;;5585:10;;5643:9;5602:13;;5689:55;;;;;;;;;;4929:823;;;;;;;;:::o;7863:138::-;-1:-1:-1;;;;;7972:21:0;;;;;;:15;:21;;;;;;;;;7965:28;;;;;;;;;;;;;;;;;7927:25;;7965:28;;;7972:21;7965:28;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7965:28:0;;;;;;;;;;;;;;;;;;;;;;;7863:138;;;:::o;3887:40::-;;;:::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;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;551:241::-;;655:2;643:9;634:7;630:23;626:32;623:2;;;-1:-1;;661:12;623:2;85:6;72:20;97:33;124:5;97:33;;;713:63;617:175;-1:-1;;;617:175;799:263;;914:2;902:9;893:7;889:23;885:32;882:2;;;-1:-1;;920:12;882:2;226:6;220:13;238:33;265:5;238:33;;1069:366;;;1190:2;1178:9;1169:7;1165:23;1161:32;1158:2;;;-1:-1;;1196:12;1158:2;85:6;72:20;97:33;124:5;97:33;;;1248:63;-1:-1;1348:2;1387:22;;72:20;97:33;72:20;97:33;;;1356:63;;;;1152:283;;;;;;1442:617;;;;;1597:3;1585:9;1576:7;1572:23;1568:33;1565:2;;;-1:-1;;1604:12;1565:2;85:6;72:20;97:33;124:5;97:33;;;1656:63;-1:-1;1756:2;1795:22;;72:20;97:33;72:20;97:33;;;1764:63;-1:-1;1864:2;1903:22;;72:20;97:33;72:20;97:33;;;1872:63;-1:-1;1972:2;2011:22;;72:20;97:33;72:20;97:33;;;1559:500;;;;-1:-1;1559:500;;-1:-1;;1559:500;2066:491;;;;2204:2;2192:9;2183:7;2179:23;2175:32;2172:2;;;-1:-1;;2210:12;2172:2;85:6;72:20;97:33;124:5;97:33;;;2262:63;-1:-1;2362:2;2401:22;;72:20;97:33;72:20;97:33;;;2166:391;;2370:63;;-1:-1;;;2470:2;2509:22;;;;481:20;;2166:391;2564:863;;;;;;;2750:3;2738:9;2729:7;2725:23;2721:33;2718:2;;;-1:-1;;2757:12;2718:2;85:6;72:20;97:33;124:5;97:33;;;2809:63;-1:-1;2909:2;2948:22;;72:20;97:33;72:20;97:33;;;2917:63;-1:-1;3017:2;3056:22;;481:20;;-1:-1;3125:2;3164:22;;481:20;;-1:-1;3233:3;3273:22;;481:20;;-1:-1;3342:3;3379:22;;347:20;11884:13;;11877:21;12676:32;;12666:2;;-1:-1;;12712:12;12666:2;3351:60;;;;2712:715;;;;;;;;;3434:366;;;3555:2;3543:9;3534:7;3530:23;3526:32;3523:2;;;-1:-1;;3561:12;3523:2;85:6;72:20;97:33;124:5;97:33;;;3613:63;3713:2;3752:22;;;;481:20;;-1:-1;;;3517:283;4399:690;;4592:5;11205:12;11492:6;11487:3;11480:19;11529:4;;11524:3;11520:14;4604:93;;11529:4;4768:5;11059:14;-1:-1;4807:260;4832:6;4829:1;4826:13;4807:260;;;4893:13;;-1:-1;;;;;11972:54;4199:37;;3961:14;;;;11335;;;;11983:42;4847:9;4807:260;;;-1:-1;5073:10;;4523:566;-1:-1;;;;;4523:566;6292:222;-1:-1;;;;;11972:54;;;;4199:37;;6419:2;6404:18;;6390:124;6521:572;-1:-1;;;;;11972:54;;;4199:37;;11972:54;;;6905:2;6890:18;;4199:37;11972:54;;;6996:2;6981:18;;4068:58;11972:54;;;7079:2;7064:18;;4199:37;6740:3;6725:19;;6711:382;7663:992;-1:-1;;;;;11972:54;;;4199:37;;11972:54;;;8145:2;8130:18;;4199:37;11972:54;;;8228:2;8213:18;;4199:37;8311:2;8296:18;;6243:37;;;;11972:54;;8394:3;8379:19;;4199:37;11983:42;8463:19;;6243:37;;;;8562:3;8547:19;;6243:37;;;;11884:13;;11877:21;8640:3;8625:19;;5162:34;7980:3;7965:19;;7951:704;8662:370;;8839:2;8860:17;8853:47;8914:108;8839:2;8828:9;8824:18;9008:6;8914:108;;9039:629;;9294:2;9315:17;9308:47;9369:108;9294:2;9283:9;9279:18;9463:6;9369:108;;;9525:9;9519:4;9515:20;9510:2;9499:9;9495:18;9488:48;9550:108;9653:4;9644:6;9550:108;;;9542:116;9265:403;-1:-1;;;;;9265:403;9675:416;9875:2;9889:47;;;5433:2;9860:18;;;11480:19;-1:-1;;;11520:14;;;5449:36;5504:12;;;9846:245;10098:416;10298:2;10312:47;;;5755:2;10283:18;;;11480:19;-1:-1;;;11520:14;;;5771:39;5829:12;;;10269:245;10521:416;10721:2;10735:47;;;6080:1;10706:18;;;11480:19;-1:-1;;;11520:14;;;6095:32;6146:12;;;10692:245;12496:117;-1:-1;;;;;11972:54;;12555:35;;12545:2;;12604:1;;12594:12;12545:2;12539:74;

Swarm Source

ipfs://182669abb01b0a140f8b21157c621a941518ae00cfd10716a289247c989120aa
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.