Source Code
Overview
ETH Balance
ETH Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Init Owner | 83085 | 839 days ago | IN | 0 ETH | 0.00010117 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DVMFactory
Compiler Version
v0.6.9+commit.3e3065ac
Optimization Enabled:
Yes with 200 runs
Other Settings:
istanbul EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
/*
Copyright 2020 DODO ZOO.
SPDX-License-Identifier: Apache-2.0
*/
pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;
import {InitializableOwnable} from "../lib/InitializableOwnable.sol";
import {ICloneFactory} from "../lib/CloneFactory.sol";
import {IDVM} from "../DODOVendingMachine/intf/IDVM.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];
}
}/*
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);
}
}/*
Copyright 2020 DODO ZOO.
SPDX-License-Identifier: Apache-2.0
*/
pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;
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;
}
}/*
Copyright 2020 DODO ZOO.
SPDX-License-Identifier: Apache-2.0
*/
pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;
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);
}{
"remappings": [],
"optimizer": {
"enabled": true,
"runs": 200
},
"evmVersion": "istanbul",
"libraries": {},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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"}]Contract Creation Code
60c06040523480156200001157600080fd5b50604051620012da380380620012da8339810160408190526200003491620000a1565b6001600160601b0319606094851b8116608052600380546001600160a01b039586166001600160a01b0319918216179091556002805494909516931692909217909255911b1660a05262000101565b80516001600160a01b03811681146200009b57600080fd5b92915050565b60008060008060808587031215620000b7578384fd5b620000c3868662000083565b9350620000d4866020870162000083565b9250620000e5866040870162000083565b9150620000f6866060870162000083565b905092959194509250565b60805160601c60a05160601c6111a562000135600039806108405280610b6e525080610ab35280610cfb52506111a56000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80638456db15116100ad578063d99b8ad411610071578063d99b8ad414610221578063e18c40c714610234578063e65f702914610247578063eb774d051461025a578063f2fde38b1461026257610121565b80638456db15146101d85780639e988ee3146101e0578063a58888db146101f3578063bdeb0a9114610206578063ccf0c0591461021957610121565b80634e71e0c8116100f45780634e71e0c81461017f57806357a281dc146101875780636c5ccb9b146101a7578063794e5538146101af57806381ab4d0a146101d057610121565b80630d0092971461012657806316048bc41461013b57806339d00ef91461015957806343274b821461016c575b600080fd5b610139610134366004610e2e565b610275565b005b6101436102de565b6040516101509190611018565b60405180910390f35b610139610167366004610ea5565b6102ed565b61013961017a366004610ea5565b6103ca565b61013961072d565b61019a610195366004610e6d565b6107bb565b60405161015091906110a2565b61014361083e565b6101c26101bd366004610e6d565b610862565b6040516101509291906110b5565b61014361095a565b610143610969565b6101396101ee366004610e2e565b610978565b610143610201366004610faa565b6109c4565b610143610214366004610f00565b6109f9565b610143610a3b565b61013961022f366004610e2e565b610a4a565b610143610242366004610f40565b610a96565b61019a610255366004610e2e565b610c83565b610143610cf9565b610139610270366004610e2e565b610d1d565b600154600160a01b900460ff16156102a85760405162461bcd60e51b815260040161029f9061110a565b60405180910390fd5b6001805460ff60a01b1916600160a01b179055600080546001600160a01b039092166001600160a01b0319909216919091179055565b6000546001600160a01b031681565b6000546001600160a01b031633146103175760405162461bcd60e51b815260040161029f90611134565b6001600160a01b038084166000908152600460209081526040808320868516845282528083208054600181810183559185528385200180548787166001600160a01b03199182168117909255958a1685526005845282852080549283018155855292909320909201805490931617909155517faf5c5f12a80fc937520df6fcaed66262a4cc775e0f3fceaf7a7cfe476d9a751d906103bc90859085908890869061102c565b60405180910390a150505050565b6000546001600160a01b031633146103f45760405162461bcd60e51b815260040161029f90611134565b6001600160a01b03808416600090815260046020908152604080832093861683529281529082902080548351818402810184019094528084526060939283018282801561046a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161044c575b50939450600093505050505b81518110156104fd57826001600160a01b031682828151811061049557fe5b60200260200101516001600160a01b031614156104f557816001835103815181106104bc57fe5b60200260200101518282815181106104d057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506104fd565b600101610476565b506001600160a01b0380851660009081526004602090815260408083209387168352928152919020825161053392840190610da2565b506001600160a01b03808516600090815260046020908152604080832093871683529290522080548061056257fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0387168252600581526040918290208054835181840281018401909452808452606093928301828280156105ec57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105ce575b50939450600093505050505b815181101561067f57836001600160a01b031682828151811061061757fe5b60200260200101516001600160a01b03161415610677578160018351038151811061063e57fe5b602002602001015182828151811061065257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061067f565b6001016105f8565b506001600160a01b038616600090815260056020908152604090912082516106a992840190610da2565b506001600160a01b03861660009081526005602052604090208054806106cb57fe5b600082815260209020810160001990810180546001600160a01b03191690550190556040517f63971a172c674ce2e9da5e027e9e81a54fd3aa74a2c246a2eb473dc0aa7f5cdd9061071d908590611018565b60405180910390a1505050505050565b6001546001600160a01b031633146107575760405162461bcd60e51b815260040161029f906110e3565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b03808316600090815260046020908152604080832093851683529281529082902080548351818402810184019094528084526060939283018282801561083157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610813575b5050505050905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03808316600081815260046020818152604080842095871684529481528483209181528483209383529283529083902081548451818502810185019095528085526060948594909184918301828280156108ec57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108ce575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561094857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161092a575b50505050509050915091509250929050565b6002546001600160a01b031681565b6001546001600160a01b031681565b6000546001600160a01b031633146109a25760405162461bcd60e51b815260040161029f90611134565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600560205281600052604060002081815481106109dd57fe5b6000918252602090912001546001600160a01b03169150829050565b60046020528260005260406000206020528160005260406000208181548110610a1e57fe5b6000918252602090912001546001600160a01b0316925083915050565b6003546001600160a01b031681565b6000546001600160a01b03163314610a745760405162461bcd60e51b815260040161029f90611134565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546040516340925bc760e11b81526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811692638124b78e92610ae9921690600401611018565b602060405180830381600087803b158015610b0357600080fd5b505af1158015610b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3b9190610e51565b60025460405163281ccb9560e11b81529192506001600160a01b0380841692635039972a92610b9c9216908b908b908b907f0000000000000000000000000000000000000000000000000000000000000000908c908c908c90600401611057565b600060405180830381600087803b158015610bb657600080fd5b505af1158015610bca573d6000803e3d6000fd5b5050506001600160a01b0380891660009081526004602090815260408083208b8516845282528083208054600181810183559185528385200180549588166001600160a01b03199687168117909155328086526005855283862080549384018155865293909420018054909416909217909255517faf5c5f12a80fc937520df6fcaed66262a4cc775e0f3fceaf7a7cfe476d9a751d9250610c71918a918a9190869061102c565b60405180910390a19695505050505050565b6001600160a01b038116600090815260056020908152604091829020805483518184028101840190945280845260609392830182828015610ced57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ccf575b50505050509050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03163314610d475760405162461bcd60e51b815260040161029f90611134565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b828054828255906000526020600020908101928215610df7579160200282015b82811115610df757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610dc2565b50610e03929150610e07565b5090565b610e2b91905b80821115610e035780546001600160a01b0319168155600101610e0d565b90565b600060208284031215610e3f578081fd5b8135610e4a81611157565b9392505050565b600060208284031215610e62578081fd5b8151610e4a81611157565b60008060408385031215610e7f578081fd5b8235610e8a81611157565b91506020830135610e9a81611157565b809150509250929050565b60008060008060808587031215610eba578182fd5b8435610ec581611157565b93506020850135610ed581611157565b92506040850135610ee581611157565b91506060850135610ef581611157565b939692955090935050565b600080600060608486031215610f14578283fd5b8335610f1f81611157565b92506020840135610f2f81611157565b929592945050506040919091013590565b60008060008060008060c08789031215610f58578182fd5b8635610f6381611157565b95506020870135610f7381611157565b945060408701359350606087013592506080870135915060a08701358015158114610f9c578182fd5b809150509295509295509295565b60008060408385031215610fbc578182fd5b8235610fc781611157565b946020939093013593505050565b6000815180845260208085019450808401835b8381101561100d5781516001600160a01b031687529582019590820190600101610fe8565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6001600160a01b0398891681529688166020880152948716604087015260608601939093529416608084015260a083019390935260c082019290925290151560e08201526101000190565b600060208252610e4a6020830184610fd5565b6000604082526110c86040830185610fd5565b82810360208401526110da8185610fd5565b95945050505050565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526010908201526f1113d113d7d25392551250531256915160821b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6001600160a01b038116811461116c57600080fd5b5056fea2646970667358221220549dde3885fccab9b36e4775843b95efb9962965f47394dfa6c8d4bc0e2ef77364736f6c63430006090033000000000000000000000000628e5081ba93b1c4f58e54e7175088b1ace588520000000000000000000000001fc8ec204549c865a17b4059a57deca66a4bd4cc000000000000000000000000a7b9c3a116b20bedddbe4d90ff97157f67f0bd970000000000000000000000007b07164ecfaf0f0d85dfc062bc205a4674c75aa0
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c80638456db15116100ad578063d99b8ad411610071578063d99b8ad414610221578063e18c40c714610234578063e65f702914610247578063eb774d051461025a578063f2fde38b1461026257610121565b80638456db15146101d85780639e988ee3146101e0578063a58888db146101f3578063bdeb0a9114610206578063ccf0c0591461021957610121565b80634e71e0c8116100f45780634e71e0c81461017f57806357a281dc146101875780636c5ccb9b146101a7578063794e5538146101af57806381ab4d0a146101d057610121565b80630d0092971461012657806316048bc41461013b57806339d00ef91461015957806343274b821461016c575b600080fd5b610139610134366004610e2e565b610275565b005b6101436102de565b6040516101509190611018565b60405180910390f35b610139610167366004610ea5565b6102ed565b61013961017a366004610ea5565b6103ca565b61013961072d565b61019a610195366004610e6d565b6107bb565b60405161015091906110a2565b61014361083e565b6101c26101bd366004610e6d565b610862565b6040516101509291906110b5565b61014361095a565b610143610969565b6101396101ee366004610e2e565b610978565b610143610201366004610faa565b6109c4565b610143610214366004610f00565b6109f9565b610143610a3b565b61013961022f366004610e2e565b610a4a565b610143610242366004610f40565b610a96565b61019a610255366004610e2e565b610c83565b610143610cf9565b610139610270366004610e2e565b610d1d565b600154600160a01b900460ff16156102a85760405162461bcd60e51b815260040161029f9061110a565b60405180910390fd5b6001805460ff60a01b1916600160a01b179055600080546001600160a01b039092166001600160a01b0319909216919091179055565b6000546001600160a01b031681565b6000546001600160a01b031633146103175760405162461bcd60e51b815260040161029f90611134565b6001600160a01b038084166000908152600460209081526040808320868516845282528083208054600181810183559185528385200180548787166001600160a01b03199182168117909255958a1685526005845282852080549283018155855292909320909201805490931617909155517faf5c5f12a80fc937520df6fcaed66262a4cc775e0f3fceaf7a7cfe476d9a751d906103bc90859085908890869061102c565b60405180910390a150505050565b6000546001600160a01b031633146103f45760405162461bcd60e51b815260040161029f90611134565b6001600160a01b03808416600090815260046020908152604080832093861683529281529082902080548351818402810184019094528084526060939283018282801561046a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161044c575b50939450600093505050505b81518110156104fd57826001600160a01b031682828151811061049557fe5b60200260200101516001600160a01b031614156104f557816001835103815181106104bc57fe5b60200260200101518282815181106104d057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506104fd565b600101610476565b506001600160a01b0380851660009081526004602090815260408083209387168352928152919020825161053392840190610da2565b506001600160a01b03808516600090815260046020908152604080832093871683529290522080548061056257fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0387168252600581526040918290208054835181840281018401909452808452606093928301828280156105ec57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105ce575b50939450600093505050505b815181101561067f57836001600160a01b031682828151811061061757fe5b60200260200101516001600160a01b03161415610677578160018351038151811061063e57fe5b602002602001015182828151811061065257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061067f565b6001016105f8565b506001600160a01b038616600090815260056020908152604090912082516106a992840190610da2565b506001600160a01b03861660009081526005602052604090208054806106cb57fe5b600082815260209020810160001990810180546001600160a01b03191690550190556040517f63971a172c674ce2e9da5e027e9e81a54fd3aa74a2c246a2eb473dc0aa7f5cdd9061071d908590611018565b60405180910390a1505050505050565b6001546001600160a01b031633146107575760405162461bcd60e51b815260040161029f906110e3565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b03808316600090815260046020908152604080832093851683529281529082902080548351818402810184019094528084526060939283018282801561083157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610813575b5050505050905092915050565b7f0000000000000000000000007b07164ecfaf0f0d85dfc062bc205a4674c75aa081565b6001600160a01b03808316600081815260046020818152604080842095871684529481528483209181528483209383529283529083902081548451818502810185019095528085526060948594909184918301828280156108ec57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108ce575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561094857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161092a575b50505050509050915091509250929050565b6002546001600160a01b031681565b6001546001600160a01b031681565b6000546001600160a01b031633146109a25760405162461bcd60e51b815260040161029f90611134565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600560205281600052604060002081815481106109dd57fe5b6000918252602090912001546001600160a01b03169150829050565b60046020528260005260406000206020528160005260406000208181548110610a1e57fe5b6000918252602090912001546001600160a01b0316925083915050565b6003546001600160a01b031681565b6000546001600160a01b03163314610a745760405162461bcd60e51b815260040161029f90611134565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546040516340925bc760e11b81526000916001600160a01b037f000000000000000000000000628e5081ba93b1c4f58e54e7175088b1ace58852811692638124b78e92610ae9921690600401611018565b602060405180830381600087803b158015610b0357600080fd5b505af1158015610b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3b9190610e51565b60025460405163281ccb9560e11b81529192506001600160a01b0380841692635039972a92610b9c9216908b908b908b907f0000000000000000000000007b07164ecfaf0f0d85dfc062bc205a4674c75aa0908c908c908c90600401611057565b600060405180830381600087803b158015610bb657600080fd5b505af1158015610bca573d6000803e3d6000fd5b5050506001600160a01b0380891660009081526004602090815260408083208b8516845282528083208054600181810183559185528385200180549588166001600160a01b03199687168117909155328086526005855283862080549384018155865293909420018054909416909217909255517faf5c5f12a80fc937520df6fcaed66262a4cc775e0f3fceaf7a7cfe476d9a751d9250610c71918a918a9190869061102c565b60405180910390a19695505050505050565b6001600160a01b038116600090815260056020908152604091829020805483518184028101840190945280845260609392830182828015610ced57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ccf575b50505050509050919050565b7f000000000000000000000000628e5081ba93b1c4f58e54e7175088b1ace5885281565b6000546001600160a01b03163314610d475760405162461bcd60e51b815260040161029f90611134565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b828054828255906000526020600020908101928215610df7579160200282015b82811115610df757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610dc2565b50610e03929150610e07565b5090565b610e2b91905b80821115610e035780546001600160a01b0319168155600101610e0d565b90565b600060208284031215610e3f578081fd5b8135610e4a81611157565b9392505050565b600060208284031215610e62578081fd5b8151610e4a81611157565b60008060408385031215610e7f578081fd5b8235610e8a81611157565b91506020830135610e9a81611157565b809150509250929050565b60008060008060808587031215610eba578182fd5b8435610ec581611157565b93506020850135610ed581611157565b92506040850135610ee581611157565b91506060850135610ef581611157565b939692955090935050565b600080600060608486031215610f14578283fd5b8335610f1f81611157565b92506020840135610f2f81611157565b929592945050506040919091013590565b60008060008060008060c08789031215610f58578182fd5b8635610f6381611157565b95506020870135610f7381611157565b945060408701359350606087013592506080870135915060a08701358015158114610f9c578182fd5b809150509295509295509295565b60008060408385031215610fbc578182fd5b8235610fc781611157565b946020939093013593505050565b6000815180845260208085019450808401835b8381101561100d5781516001600160a01b031687529582019590820190600101610fe8565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6001600160a01b0398891681529688166020880152948716604087015260608601939093529416608084015260a083019390935260c082019290925290151560e08201526101000190565b600060208252610e4a6020830184610fd5565b6000604082526110c86040830185610fd5565b82810360208401526110da8185610fd5565b95945050505050565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526010908201526f1113d113d7d25392551250531256915160821b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6001600160a01b038116811461116c57600080fd5b5056fea2646970667358221220549dde3885fccab9b36e4775843b95efb9962965f47394dfa6c8d4bc0e2ef77364736f6c63430006090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000628e5081ba93b1c4f58e54e7175088b1ace588520000000000000000000000001fc8ec204549c865a17b4059a57deca66a4bd4cc000000000000000000000000a7b9c3a116b20bedddbe4d90ff97157f67f0bd970000000000000000000000007b07164ecfaf0f0d85dfc062bc205a4674c75aa0
-----Decoded View---------------
Arg [0] : cloneFactory (address): 0x628E5081bA93b1c4F58E54e7175088B1ACe58852
Arg [1] : dvmTemplate (address): 0x1fC8EC204549C865a17b4059A57decA66A4Bd4cC
Arg [2] : defaultMaintainer (address): 0xa7b9C3a116b20bEDDdBE4d90ff97157f67F0bD97
Arg [3] : defaultMtFeeRateModel (address): 0x7B07164ecFaF0F0D85DFC062Bc205a4674c75Aa0
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000628e5081ba93b1c4f58e54e7175088b1ace58852
Arg [1] : 0000000000000000000000001fc8ec204549c865a17b4059a57deca66a4bd4cc
Arg [2] : 000000000000000000000000a7b9c3a116b20bedddbe4d90ff97157f67f0bd97
Arg [3] : 0000000000000000000000007b07164ecfaf0f0d85dfc062bc205a4674c75aa0
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.