Contract 0x738Ebf387A0CE0eb46b0eF8Fa5DEa2EaE6B1Df51 2

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x12cf7ca7b0fc5f930a8347f4d66d3ffa12ae1eb83508d42bec7795c6af45cfe5Init Owner5452172021-09-17 3:03:06249 days 4 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  0x738ebf387a0ce0eb46b0ef8fa5dea2eae6b1df510 MOVR0.000064291
0x4e926228d8c824c3497eea68fb3d35db409743bf0772c44b4d5c7d5d6066042b0x60c060405452152021-09-17 3:02:42249 days 4 hrs ago0x16cc37d06fe5061cd0023fb8d142abaabb396a2b IN  Create: DVMFactory0 MOVR0.001075403
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DVMFactory

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 moonriver.moonscan.io on 2021-11-04
*/

// File: contracts/lib/InitializableOwnable.sol

/*

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

*/

pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;

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

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

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

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

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

    modifier notInitialized() {
        require(!_INITIALIZED_, "DODO_INITIALIZED");
        _;
    }

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

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

    function initOwner(address newOwner) public notInitialized {
        _INITIALIZED_ = true;
        _OWNER_ = newOwner;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        emit OwnershipTransferPrepared(_OWNER_, newOwner);
        _NEW_OWNER_ = newOwner;
    }

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

// File: contracts/lib/CloneFactory.sol

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

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

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

// File: contracts/DODOVendingMachine/intf/IDVM.sol


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

    function _BASE_TOKEN_() external returns (address);

    function _QUOTE_TOKEN_() external returns (address);

    function _MT_FEE_RATE_MODEL_() external returns (address);

    function getVaultReserve() external 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);

    function addressToShortString(address _addr) external pure returns (string memory);

    function getMidPrice() external view returns (uint256 midPrice);

    function sellShares(
        uint256 shareAmount,
        address to,
        uint256 baseMinAmount,
        uint256 quoteMinAmount,
        bytes calldata data,
        uint256 deadline
    ) external  returns (uint256 baseAmount, uint256 quoteAmount);

}

// File: contracts/Factory/DVMFactory.sol

interface IDVMFactory {
    function createDODOVendingMachine(
        address baseToken,
        address quoteToken,
        uint256 lpFeeRate,
        uint256 i,
        uint256 k,
        bool isOpenTWAP
    ) external returns (address newVendingMachine);
}


/**
 * @title DODO VendingMachine Factory
 * @author DODO Breeder
 *
 * @notice Create And Register DVM Pools 
 */
contract DVMFactory is InitializableOwnable {
    // ============ Templates ============

    address public immutable _CLONE_FACTORY_;
    address public immutable _DEFAULT_MT_FEE_RATE_MODEL_;
    address public _DEFAULT_MAINTAINER_;
    address public _DVM_TEMPLATE_;

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

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

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

    event NewDVM(
        address baseToken,
        address quoteToken,
        address creator,
        address dvm
    );

    event RemoveDVM(address dvm);

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

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

    function createDODOVendingMachine(
        address baseToken,
        address quoteToken,
        uint256 lpFeeRate,
        uint256 i,
        uint256 k,
        bool isOpenTWAP
    ) external returns (address newVendingMachine) {
        newVendingMachine = ICloneFactory(_CLONE_FACTORY_).clone(_DVM_TEMPLATE_);
        {
            IDVM(newVendingMachine).init(
                _DEFAULT_MAINTAINER_,
                baseToken,
                quoteToken,
                lpFeeRate,
                _DEFAULT_MT_FEE_RATE_MODEL_,
                i,
                k,
                isOpenTWAP
            );
        }
        _REGISTRY_[baseToken][quoteToken].push(newVendingMachine);
        _USER_REGISTRY_[tx.origin].push(newVendingMachine);
        emit NewDVM(baseToken, quoteToken, tx.origin, newVendingMachine);
    }

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

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

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

[{"inputs":[{"internalType":"address","name":"cloneFactory","type":"address"},{"internalType":"address","name":"dvmTemplate","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":"dvm","type":"address"}],"name":"NewDVM","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":"dvm","type":"address"}],"name":"RemoveDVM","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":"_DVM_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":"createDODOVendingMachine","outputs":[{"internalType":"address","name":"newVendingMachine","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":"_newMaintainer","type":"address"}],"name":"updateDefaultMaintainer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newDVMTemplate","type":"address"}],"name":"updateDvmTemplate","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c06040523480156200001157600080fd5b50604051620012da380380620012da8339810160408190526200003491620000a1565b6001600160601b0319606094851b8116608052600380546001600160a01b039586166001600160a01b0319918216179091556002805494909516931692909217909255911b1660a05262000101565b80516001600160a01b03811681146200009b57600080fd5b92915050565b60008060008060808587031215620000b7578384fd5b620000c3868662000083565b9350620000d4866020870162000083565b9250620000e5866040870162000083565b9150620000f6866060870162000083565b905092959194509250565b60805160601c60a05160601c6111a562000135600039806108405280610b6e525080610ab35280610cfb52506111a56000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80638456db15116100ad578063d99b8ad411610071578063d99b8ad414610221578063e18c40c714610234578063e65f702914610247578063eb774d051461025a578063f2fde38b1461026257610121565b80638456db15146101d85780639e988ee3146101e0578063a58888db146101f3578063bdeb0a9114610206578063ccf0c0591461021957610121565b80634e71e0c8116100f45780634e71e0c81461017f57806357a281dc146101875780636c5ccb9b146101a7578063794e5538146101af57806381ab4d0a146101d057610121565b80630d0092971461012657806316048bc41461013b57806339d00ef91461015957806343274b821461016c575b600080fd5b610139610134366004610e2e565b610275565b005b6101436102de565b6040516101509190611018565b60405180910390f35b610139610167366004610ea5565b6102ed565b61013961017a366004610ea5565b6103ca565b61013961072d565b61019a610195366004610e6d565b6107bb565b60405161015091906110a2565b61014361083e565b6101c26101bd366004610e6d565b610862565b6040516101509291906110b5565b61014361095a565b610143610969565b6101396101ee366004610e2e565b610978565b610143610201366004610faa565b6109c4565b610143610214366004610f00565b6109f9565b610143610a3b565b61013961022f366004610e2e565b610a4a565b610143610242366004610f40565b610a96565b61019a610255366004610e2e565b610c83565b610143610cf9565b610139610270366004610e2e565b610d1d565b600154600160a01b900460ff16156102a85760405162461bcd60e51b815260040161029f9061110a565b60405180910390fd5b6001805460ff60a01b1916600160a01b179055600080546001600160a01b039092166001600160a01b0319909216919091179055565b6000546001600160a01b031681565b6000546001600160a01b031633146103175760405162461bcd60e51b815260040161029f90611134565b6001600160a01b038084166000908152600460209081526040808320868516845282528083208054600181810183559185528385200180548787166001600160a01b03199182168117909255958a1685526005845282852080549283018155855292909320909201805490931617909155517faf5c5f12a80fc937520df6fcaed66262a4cc775e0f3fceaf7a7cfe476d9a751d906103bc90859085908890869061102c565b60405180910390a150505050565b6000546001600160a01b031633146103f45760405162461bcd60e51b815260040161029f90611134565b6001600160a01b03808416600090815260046020908152604080832093861683529281529082902080548351818402810184019094528084526060939283018282801561046a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161044c575b50939450600093505050505b81518110156104fd57826001600160a01b031682828151811061049557fe5b60200260200101516001600160a01b031614156104f557816001835103815181106104bc57fe5b60200260200101518282815181106104d057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506104fd565b600101610476565b506001600160a01b0380851660009081526004602090815260408083209387168352928152919020825161053392840190610da2565b506001600160a01b03808516600090815260046020908152604080832093871683529290522080548061056257fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0387168252600581526040918290208054835181840281018401909452808452606093928301828280156105ec57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105ce575b50939450600093505050505b815181101561067f57836001600160a01b031682828151811061061757fe5b60200260200101516001600160a01b03161415610677578160018351038151811061063e57fe5b602002602001015182828151811061065257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061067f565b6001016105f8565b506001600160a01b038616600090815260056020908152604090912082516106a992840190610da2565b506001600160a01b03861660009081526005602052604090208054806106cb57fe5b600082815260209020810160001990810180546001600160a01b03191690550190556040517f63971a172c674ce2e9da5e027e9e81a54fd3aa74a2c246a2eb473dc0aa7f5cdd9061071d908590611018565b60405180910390a1505050505050565b6001546001600160a01b031633146107575760405162461bcd60e51b815260040161029f906110e3565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b03808316600090815260046020908152604080832093851683529281529082902080548351818402810184019094528084526060939283018282801561083157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610813575b5050505050905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03808316600081815260046020818152604080842095871684529481528483209181528483209383529283529083902081548451818502810185019095528085526060948594909184918301828280156108ec57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108ce575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561094857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161092a575b50505050509050915091509250929050565b6002546001600160a01b031681565b6001546001600160a01b031681565b6000546001600160a01b031633146109a25760405162461bcd60e51b815260040161029f90611134565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600560205281600052604060002081815481106109dd57fe5b6000918252602090912001546001600160a01b03169150829050565b60046020528260005260406000206020528160005260406000208181548110610a1e57fe5b6000918252602090912001546001600160a01b0316925083915050565b6003546001600160a01b031681565b6000546001600160a01b03163314610a745760405162461bcd60e51b815260040161029f90611134565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546040516340925bc760e11b81526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811692638124b78e92610ae9921690600401611018565b602060405180830381600087803b158015610b0357600080fd5b505af1158015610b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3b9190610e51565b60025460405163281ccb9560e11b81529192506001600160a01b0380841692635039972a92610b9c9216908b908b908b907f0000000000000000000000000000000000000000000000000000000000000000908c908c908c90600401611057565b600060405180830381600087803b158015610bb657600080fd5b505af1158015610bca573d6000803e3d6000fd5b5050506001600160a01b0380891660009081526004602090815260408083208b8516845282528083208054600181810183559185528385200180549588166001600160a01b03199687168117909155328086526005855283862080549384018155865293909420018054909416909217909255517faf5c5f12a80fc937520df6fcaed66262a4cc775e0f3fceaf7a7cfe476d9a751d9250610c71918a918a9190869061102c565b60405180910390a19695505050505050565b6001600160a01b038116600090815260056020908152604091829020805483518184028101840190945280845260609392830182828015610ced57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ccf575b50505050509050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03163314610d475760405162461bcd60e51b815260040161029f90611134565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b828054828255906000526020600020908101928215610df7579160200282015b82811115610df757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610dc2565b50610e03929150610e07565b5090565b610e2b91905b80821115610e035780546001600160a01b0319168155600101610e0d565b90565b600060208284031215610e3f578081fd5b8135610e4a81611157565b9392505050565b600060208284031215610e62578081fd5b8151610e4a81611157565b60008060408385031215610e7f578081fd5b8235610e8a81611157565b91506020830135610e9a81611157565b809150509250929050565b60008060008060808587031215610eba578182fd5b8435610ec581611157565b93506020850135610ed581611157565b92506040850135610ee581611157565b91506060850135610ef581611157565b939692955090935050565b600080600060608486031215610f14578283fd5b8335610f1f81611157565b92506020840135610f2f81611157565b929592945050506040919091013590565b60008060008060008060c08789031215610f58578182fd5b8635610f6381611157565b95506020870135610f7381611157565b945060408701359350606087013592506080870135915060a08701358015158114610f9c578182fd5b809150509295509295509295565b60008060408385031215610fbc578182fd5b8235610fc781611157565b946020939093013593505050565b6000815180845260208085019450808401835b8381101561100d5781516001600160a01b031687529582019590820190600101610fe8565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6001600160a01b0398891681529688166020880152948716604087015260608601939093529416608084015260a083019390935260c082019290925290151560e08201526101000190565b600060208252610e4a6020830184610fd5565b6000604082526110c86040830185610fd5565b82810360208401526110da8185610fd5565b95945050505050565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526010908201526f1113d113d7d25392551250531256915160821b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6001600160a01b038116811461116c57600080fd5b5056fea26469706673582212204d9f4b4c874ad88e27a6e42879a914e77f226818a888dc7df2ad781c765c809f64736f6c63430006090033000000000000000000000000dfaf9584f5d229a9dbe5978523317820a8897c5a000000000000000000000000c3bed579cab3ec29b22d9ab99f4e586af42496b9000000000000000000000000ef49a6dba1c8df859e49c17e9a485b439c7689d30000000000000000000000002bbd66fc4898242bdbd2583bbe1d76e8b8f71445

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

000000000000000000000000dfaf9584f5d229a9dbe5978523317820a8897c5a000000000000000000000000c3bed579cab3ec29b22d9ab99f4e586af42496b9000000000000000000000000ef49a6dba1c8df859e49c17e9a485b439c7689d30000000000000000000000002bbd66fc4898242bdbd2583bbe1d76e8b8f71445

-----Decoded View---------------
Arg [0] : cloneFactory (address): 0xdfaf9584f5d229a9dbe5978523317820a8897c5a
Arg [1] : dvmTemplate (address): 0xc3bed579cab3ec29b22d9ab99f4e586af42496b9
Arg [2] : defaultMaintainer (address): 0xef49a6dba1c8df859e49c17e9a485b439c7689d3
Arg [3] : defaultMtFeeRateModel (address): 0x2bbd66fc4898242bdbd2583bbe1d76e8b8f71445

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000dfaf9584f5d229a9dbe5978523317820a8897c5a
Arg [1] : 000000000000000000000000c3bed579cab3ec29b22d9ab99f4e586af42496b9
Arg [2] : 000000000000000000000000ef49a6dba1c8df859e49c17e9a485b439c7689d3
Arg [3] : 0000000000000000000000002bbd66fc4898242bdbd2583bbe1d76e8b8f71445


Deployed ByteCode Sourcemap

4165:4453:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;965:127;;;;;;;;;:::i;:::-;;332:22;;;:::i;:::-;;;;;;;;;;;;;;;;6532:326;;;;;;;;;:::i;6866:1028::-;;;;;;;;;:::i;1271:228::-;;;:::i;7953:201::-;;;;;;;;;:::i;:::-;;;;;;;;4309:52;;;:::i;8162:275::-;;;;;;;;;:::i;:::-;;;;;;;;;4368:35;;;:::i;361:26::-;;;:::i;6392:132::-;;;;;;;;;:::i;4645:52::-;;;;;;;;;:::i;4535:67::-;;;;;;;;;:::i;4410:29::-;;;:::i;6258:122::-;;;;;;;;;:::i;5337:851::-;;;;;;;;;:::i;8445:170::-;;;;;;;;;:::i;4262: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;6532:326::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;-1:-1:-1;;;;;6700:21:0;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:33;;::::1;::::0;;;;;;;:44;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;6700:44:0;;::::1;::::0;::::1;::::0;;;6755:24;;::::1;::::0;;:15:::1;:24:::0;;;;;:35;;;;::::1;::::0;;;;;;;;;;::::1;::::0;;;;::::1;;::::0;;;6806:44;::::1;::::0;::::1;::::0;6711:9;;6722:10;;6771:7;;6739:4;;6806:44:::1;;;;;;;;;;6532:326:::0;;;;:::o;6866:1028::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;-1:-1:-1;;;;;7069:21:0;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;7037:65;;;;;;::::1;::::0;;;;;;;;;;:29:::1;::::0;:65;;::::1;7069:33:::0;7037:65;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7037:65:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;7037:65:0;;-1:-1:-1;7118:9:0::1;::::0;-1:-1:-1;;;;7113:219:0::1;7137:12;:19;7133:1;:23;7113:219;;;7201:4;-1:-1:-1::0;;;;;7182:23:0::1;:12;7195:1;7182:15;;;;;;;;;;;;;;-1:-1:-1::0;;;;;7182:23:0::1;;7178:143;;;7244:12;7279:1;7257:12;:19;:23;7244:37;;;;;;;;;;;;;;7226:12;7239:1;7226:15;;;;;;;;;;;;;:55;-1:-1:-1::0;;;;;7226:55:0::1;;;-1:-1:-1::0;;;;;7226:55:0::1;;;::::0;::::1;7300:5;;7178:143;7158:3;;7113:219;;;-1:-1:-1::0;;;;;;7342:21:0;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;:48;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;;7401:21:0;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:33;;::::1;::::0;;;;;;:39;;;::::1;;;;;::::0;;;::::1;::::0;;;;;-1:-1:-1;;7401:39:0;;;;;-1:-1:-1;;;;;;7401:39:0::1;::::0;;;;;;;;-1:-1:-1;;;;;7487:24:0;::::1;::::0;;:15:::1;:24:::0;;;;;;;7451:60;;;;;;::::1;::::0;;;;;;;;;;:33:::1;::::0;:60;;::::1;7487:24:::0;7451:60;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7451:60:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;7451:60:0;;-1:-1:-1;7527:9:0::1;::::0;-1:-1:-1;;;;7522:239:0::1;7546:16;:23;7542:1;:27;7522:239;;;7618:4;-1:-1:-1::0;;;;;7595:27:0::1;:16;7612:1;7595:19;;;;;;;;;;;;;;-1:-1:-1::0;;;;;7595:27:0::1;;7591:159;;;7665:16;7708:1;7682:16;:23;:27;7665:45;;;;;;;;;;;;;;7643:16;7660:1;7643:19;;;;;;;;;;;;;:67;-1:-1:-1::0;;;;;7643:67:0::1;;;-1:-1:-1::0;;;;;7643:67:0::1;;;::::0;::::1;7729:5;;7591:159;7571:3;;7522:239;;;-1:-1:-1::0;;;;;;7771:24:0;::::1;;::::0;;;:15:::1;:24;::::0;;;;;;;:43;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;;7825:24:0;::::1;;::::0;;;:15:::1;:24;::::0;;;;:30;;;::::1;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;7825:30:0;;;;;-1:-1:-1;;;;;;7825:30:0::1;::::0;;;;;7871:15:::1;::::0;::::1;::::0;::::1;::::0;7881:4;;7871:15:::1;;;;;;;;;;902:1;;6866:1028:::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;7953:201::-;-1:-1:-1;;;;;8113:21:0;;;;;;;:10;:21;;;;;;;;:33;;;;;;;;;;;;8106:40;;;;;;;;;;;;;;;;;8063:25;;8106:40;;;8113:33;8106:40;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8106:40:0;;;;;;;;;;;;;;;;;;;;;;;7953:201;;;;:::o;4309:52::-;;;:::o;8162:275::-;-1:-1:-1;;;;;8374:18:0;;;;;;;:10;:18;;;;;;;;:26;;;;;;;;;;;8402:18;;;;;;:26;;;;;;;;;;8366:63;;;;;;;;;;;;;;;;;8276:35;;;;8366:63;;8374:26;;8366:63;;8374:26;8366:63;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8366:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8366:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8162:275;;;;;:::o;4368:35::-;;;-1:-1:-1;;;;;4368:35:0;;:::o;361:26::-;;;-1:-1:-1;;;;;361:26:0;;:::o;6392:132::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;6479:20:::1;:37:::0;;-1:-1:-1;;;;;;6479:37:0::1;-1:-1:-1::0;;;;;6479:37:0;;;::::1;::::0;;;::::1;::::0;;6392:132::o;4645:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4645:52:0;;-1:-1:-1;4645:52:0;;-1:-1:-1;4645:52:0:o;4535:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4535:67:0;;-1:-1:-1;4535:67:0;;-1:-1:-1;;4535:67:0:o;4410:29::-;;;-1:-1:-1;;;;;4410:29:0;;:::o;6258:122::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;6340:14:::1;:32:::0;;-1:-1:-1;;;;;;6340:32:0::1;-1:-1:-1::0;;;;;6340:32:0;;;::::1;::::0;;;::::1;::::0;;6258:122::o;5337:851::-;5642:14;;5605:52;;-1:-1:-1;;;5605:52:0;;5547:25;;-1:-1:-1;;;;;5619:15:0;5605:36;;;;;:52;;5642:14;;5605:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5730:20;;5683:282;;-1:-1:-1;;;5683:282:0;;5585:72;;-1:-1:-1;;;;;;5683:28:0;;;;;;:282;;5730:20;;5769:9;;5797:10;;5826:9;;5854:27;;5900:1;;5920;;5940:10;;5683:282;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;5987:21:0;;;;;;;:10;:21;;;;;;;;:33;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5987:57:0;;;;;;;;6071:9;6055:26;;;:15;:26;;;;;:50;;;;;;;;;;;;;;;;;;;;;;;;;6121:59;;;-1:-1:-1;6121:59:0;;5998:9;;6009:10;;6071:9;6026:17;;6121:59;;;;;;;;;;5337:851;;;;;;;;:::o;8445:170::-;-1:-1:-1;;;;;8586:21:0;;;;;;:15;:21;;;;;;;;;8579:28;;;;;;;;;;;;;;;;;8536:25;;8579:28;;;8586:21;8579:28;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8579:28:0;;;;;;;;;;;;;;;;;;;;;;;8445:170;;;:::o;4262: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://4d9f4b4c874ad88e27a6e42879a914e77f226818a888dc7df2ad781c765c809f
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.