More Info
Private Name Tags
ContractCreator
Latest 8 from a total of 8 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Harvest Dmg By U... | 11781246 | 1244 days ago | IN | 0 ETH | 0.10341907 | ||||
Harvest Dmg By U... | 11694910 | 1258 days ago | IN | 0 ETH | 0.0486253 | ||||
Harvest Dmg By U... | 11681518 | 1260 days ago | IN | 0 ETH | 0.01229459 | ||||
Initialize Dmg B... | 10934379 | 1375 days ago | IN | 0 ETH | 0.00687096 | ||||
Begin Farming | 10836457 | 1390 days ago | IN | 0 ETH | 0.01140758 | ||||
Approve | 10836351 | 1390 days ago | IN | 0 ETH | 0.00614024 | ||||
Approve | 10836337 | 1390 days ago | IN | 0 ETH | 0.00604721 | ||||
0x60806040 | 10796586 | 1396 days ago | IN | Create: DMGYieldFarmingProxy | 0 ETH | 0.17229264 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
DMGYieldFarmingProxy
Compiler Version
v0.5.13+commit.5b0b510c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-09-04 */ // File: @openzeppelin/upgrades/contracts/upgradeability/Proxy.sol pragma solidity ^0.5.0; /** * @title Proxy * @dev Implements delegation of calls to other contracts, with proper * forwarding of return values and bubbling of failures. * It defines a fallback function that delegates all calls to the address * returned by the abstract _implementation() internal function. */ contract Proxy { /** * @dev Fallback function. * Implemented entirely in `_fallback`. */ function () payable external { _fallback(); } /** * @return The Address of the implementation. */ function _implementation() internal view returns (address); /** * @dev Delegates execution to an implementation contract. * This is a low level function that doesn't return to its internal call site. * It will return to the external caller whatever the implementation returns. * @param implementation Address to delegate. */ function _delegate(address implementation) internal { assembly { // Copy msg.data. We take full control of memory in this inline assembly // block because it will not return to Solidity code. We overwrite the // Solidity scratch pad at memory position 0. calldatacopy(0, 0, calldatasize) // Call the implementation. // out and outsize are 0 because we don't know the size yet. let result := delegatecall(gas, implementation, 0, calldatasize, 0, 0) // Copy the returned data. returndatacopy(0, 0, returndatasize) switch result // delegatecall returns 0 on error. case 0 { revert(0, returndatasize) } default { return(0, returndatasize) } } } /** * @dev Function that is run as the first thing in the fallback function. * Can be redefined in derived contracts to add functionality. * Redefinitions must call super._willFallback(). */ function _willFallback() internal { } /** * @dev fallback implementation. * Extracted to enable manual triggering. */ function _fallback() internal { _willFallback(); _delegate(_implementation()); } } // File: @openzeppelin/upgrades/contracts/utils/Address.sol pragma solidity ^0.5.0; /** * Utility library of inline functions on addresses * * Source https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/v2.1.3/contracts/utils/Address.sol * This contract is copied here and renamed from the original to avoid clashes in the compiled artifacts * when the user imports a zos-lib contract (that transitively causes this contract to be compiled and added to the * build/artifacts folder) as well as the vanilla Address implementation from an openzeppelin version. */ library OpenZeppelinUpgradesAddress { /** * Returns whether the target address is a contract * @dev This function will return false if invoked during the constructor of a contract, * as the code is not actually created until after the constructor finishes. * @param account address of the account to check * @return whether the target address is a contract */ function isContract(address account) internal view returns (bool) { uint256 size; // XXX Currently there is no better way to check if there is a contract in an address // than to check the size of the code at that address. // See https://ethereum.stackexchange.com/a/14016/36603 // for more details about how this works. // TODO Check this again before the Serenity release, because all addresses will be // contracts then. // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } } // File: @openzeppelin/upgrades/contracts/upgradeability/BaseUpgradeabilityProxy.sol pragma solidity ^0.5.0; /** * @title BaseUpgradeabilityProxy * @dev This contract implements a proxy that allows to change the * implementation address to which it will delegate. * Such a change is called an implementation upgrade. */ contract BaseUpgradeabilityProxy is Proxy { /** * @dev Emitted when the implementation is upgraded. * @param implementation Address of the new implementation. */ event Upgraded(address indexed implementation); /** * @dev Storage slot with the address of the current implementation. * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is * validated in the constructor. */ bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; /** * @dev Returns the current implementation. * @return Address of the current implementation */ function _implementation() internal view returns (address impl) { bytes32 slot = IMPLEMENTATION_SLOT; assembly { impl := sload(slot) } } /** * @dev Upgrades the proxy to a new implementation. * @param newImplementation Address of the new implementation. */ function _upgradeTo(address newImplementation) internal { _setImplementation(newImplementation); emit Upgraded(newImplementation); } /** * @dev Sets the implementation address of the proxy. * @param newImplementation Address of the new implementation. */ function _setImplementation(address newImplementation) internal { require(OpenZeppelinUpgradesAddress.isContract(newImplementation), "Cannot set a proxy implementation to a non-contract address"); bytes32 slot = IMPLEMENTATION_SLOT; assembly { sstore(slot, newImplementation) } } } // File: @openzeppelin/upgrades/contracts/upgradeability/UpgradeabilityProxy.sol pragma solidity ^0.5.0; /** * @title UpgradeabilityProxy * @dev Extends BaseUpgradeabilityProxy with a constructor for initializing * implementation and init data. */ contract UpgradeabilityProxy is BaseUpgradeabilityProxy { /** * @dev Contract constructor. * @param _logic Address of the initial implementation. * @param _data Data to send as msg.data to the implementation to initialize the proxied contract. * It should include the signature and the parameters of the function to be called, as described in * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding. * This parameter is optional, if no data is given the initialization call to proxied contract will be skipped. */ constructor(address _logic, bytes memory _data) public payable { assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)); _setImplementation(_logic); if(_data.length > 0) { (bool success,) = _logic.delegatecall(_data); require(success); } } } // File: @openzeppelin/upgrades/contracts/upgradeability/BaseAdminUpgradeabilityProxy.sol pragma solidity ^0.5.0; /** * @title BaseAdminUpgradeabilityProxy * @dev This contract combines an upgradeability proxy with an authorization * mechanism for administrative tasks. * All external functions in this contract must be guarded by the * `ifAdmin` modifier. See ethereum/solidity#3864 for a Solidity * feature proposal that would enable this to be done automatically. */ contract BaseAdminUpgradeabilityProxy is BaseUpgradeabilityProxy { /** * @dev Emitted when the administration has been transferred. * @param previousAdmin Address of the previous admin. * @param newAdmin Address of the new admin. */ event AdminChanged(address previousAdmin, address newAdmin); /** * @dev Storage slot with the admin of the contract. * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is * validated in the constructor. */ bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; /** * @dev Modifier to check whether the `msg.sender` is the admin. * If it is, it will run the function. Otherwise, it will delegate the call * to the implementation. */ modifier ifAdmin() { if (msg.sender == _admin()) { _; } else { _fallback(); } } /** * @return The address of the proxy admin. */ function admin() external ifAdmin returns (address) { return _admin(); } /** * @return The address of the implementation. */ function implementation() external ifAdmin returns (address) { return _implementation(); } /** * @dev Changes the admin of the proxy. * Only the current admin can call this function. * @param newAdmin Address to transfer proxy administration to. */ function changeAdmin(address newAdmin) external ifAdmin { require(newAdmin != address(0), "Cannot change the admin of a proxy to the zero address"); emit AdminChanged(_admin(), newAdmin); _setAdmin(newAdmin); } /** * @dev Upgrade the backing implementation of the proxy. * Only the admin can call this function. * @param newImplementation Address of the new implementation. */ function upgradeTo(address newImplementation) external ifAdmin { _upgradeTo(newImplementation); } /** * @dev Upgrade the backing implementation of the proxy and call a function * on the new implementation. * This is useful to initialize the proxied contract. * @param newImplementation Address of the new implementation. * @param data Data to send as msg.data in the low level call. * It should include the signature and the parameters of the function to be called, as described in * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding. */ function upgradeToAndCall(address newImplementation, bytes calldata data) payable external ifAdmin { _upgradeTo(newImplementation); (bool success,) = newImplementation.delegatecall(data); require(success); } /** * @return The admin slot. */ function _admin() internal view returns (address adm) { bytes32 slot = ADMIN_SLOT; assembly { adm := sload(slot) } } /** * @dev Sets the address of the proxy admin. * @param newAdmin Address of the new proxy admin. */ function _setAdmin(address newAdmin) internal { bytes32 slot = ADMIN_SLOT; assembly { sstore(slot, newAdmin) } } /** * @dev Only fall back when the sender is not the admin. */ function _willFallback() internal { require(msg.sender != _admin(), "Cannot call fallback function from the proxy admin"); super._willFallback(); } } // File: @openzeppelin/upgrades/contracts/upgradeability/AdminUpgradeabilityProxy.sol pragma solidity ^0.5.0; /** * @title AdminUpgradeabilityProxy * @dev Extends from BaseAdminUpgradeabilityProxy with a constructor for * initializing the implementation, admin, and init data. */ contract AdminUpgradeabilityProxy is BaseAdminUpgradeabilityProxy, UpgradeabilityProxy { /** * Contract constructor. * @param _logic address of the initial implementation. * @param _admin Address of the proxy administrator. * @param _data Data to send as msg.data to the implementation to initialize the proxied contract. * It should include the signature and the parameters of the function to be called, as described in * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding. * This parameter is optional, if no data is given the initialization call to proxied contract will be skipped. */ constructor(address _logic, address _admin, bytes memory _data) UpgradeabilityProxy(_logic, _data) public payable { assert(ADMIN_SLOT == bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)); _setAdmin(_admin); } } // File: contracts/external/farming/v1/IDMGYieldFarmingV1Initializable.sol /* * Copyright 2020 DMM Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ pragma solidity ^0.5.0; interface IDMGYieldFarmingV1Initializable { function initialize( address dmgToken, address guardian, address dmmController, uint dmgGrowthCoefficient, address[] calldata allowableTokens, address[] calldata underlyingTokens, uint8[] calldata tokenDecimals, uint16[] calldata points ) external; } // File: contracts/external/farming/DMGYieldFarmingProxy.sol /* * Copyright 2020 DMM Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ pragma solidity ^0.5.0; contract DMGYieldFarmingProxy is AdminUpgradeabilityProxy { /** * @param logic The address of the initial implementation. * @param admin The address of the proxy administrator. * @param dmgToken The address of the DMG token. * @param guardian The address of the guardian of the implementation contract. * @param dmmController The address of the DMM Controller for the DMM: Ecosystem. * @param dmgGrowthCoefficient The rate at which DMG is distributed for each point farmed, per second. * @param allowableTokens The list of initially-farmable tokens. * @param underlyingTokens The list of tokens that underpin `allowableTokens`, which the DMM: Underlying Token * Valuator can decipher. * @param tokenDecimals The number of decimals each token has. * @param points The amount of points each dollar of token/underlying is worth. This acts as a * multiplier, using base `DMGYieldFarmingData::ONE_REWARD_POINTS`. */ constructor( address logic, address admin, address dmgToken, address guardian, address dmmController, uint dmgGrowthCoefficient, address[] memory allowableTokens, address[] memory underlyingTokens, uint8[] memory tokenDecimals, uint16[] memory points ) AdminUpgradeabilityProxy( logic, admin, abi.encodePacked( IDMGYieldFarmingV1Initializable(address(0)).initialize.selector, abi.encode(dmgToken, guardian, dmmController, dmgGrowthCoefficient, allowableTokens, underlyingTokens, tokenDecimals, points) ) ) public {} function getImplementation() public view returns (address) { return _implementation(); } function _willFallback() internal { // Don't call super. We want the admin to be able to call-through to the implementation contract } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"logic","type":"address"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"address","name":"dmgToken","type":"address"},{"internalType":"address","name":"guardian","type":"address"},{"internalType":"address","name":"dmmController","type":"address"},{"internalType":"uint256","name":"dmgGrowthCoefficient","type":"uint256"},{"internalType":"address[]","name":"allowableTokens","type":"address[]"},{"internalType":"address[]","name":"underlyingTokens","type":"address[]"},{"internalType":"uint8[]","name":"tokenDecimals","type":"uint8[]"},{"internalType":"uint16[]","name":"points","type":"uint16[]"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"payable":true,"stateMutability":"payable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162000d3c38038062000d3c83398181016040526101408110156200003857600080fd5b815160208301516040808501516060860151608087015160a088015160c089018051955197999698949793969295919483019291846401000000008211156200008057600080fd5b9083019060208201858111156200009657600080fd5b8251866020820283011164010000000082111715620000b457600080fd5b82525081516020918201928201910280838360005b83811015620000e3578181015183820152602001620000c9565b50505050905001604052602001805160405193929190846401000000008211156200010d57600080fd5b9083019060208201858111156200012357600080fd5b82518660208202830111640100000000821117156200014157600080fd5b82525081516020918201928201910280838360005b838110156200017057818101518382015260200162000156565b50505050905001604052602001805160405193929190846401000000008211156200019a57600080fd5b908301906020820185811115620001b057600080fd5b8251866020820283011164010000000082111715620001ce57600080fd5b82525081516020918201928201910280838360005b83811015620001fd578181015183820152602001620001e3565b50505050905001604052602001805160405193929190846401000000008211156200022757600080fd5b9083019060208201858111156200023d57600080fd5b82518660208202830111640100000000821117156200025b57600080fd5b82525081516020918201928201910280838360005b838110156200028a57818101518382015260200162000270565b50505050905001604052505050898960006001600160a01b031663fda67e75905060e01b8a8a8a8a8a8a8a8a60405160200180896001600160a01b03166001600160a01b03168152602001886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b0316815260200186815260200180602001806020018060200180602001858103855289818151815260200191508051906020019060200280838360005b83811015620003555781810151838201526020016200033b565b50505050905001858103845288818151815260200191508051906020019060200280838360005b83811015620003965781810151838201526020016200037c565b50505050905001858103835287818151815260200191508051906020019060200280838360005b83811015620003d7578181015183820152602001620003bd565b50505050905001858103825286818151815260200191508051906020019060200280838360005b8381101562000418578181015183820152602001620003fe565b505050509050019c5050505050505050505050505060405160208183030381529060405260405160200180836001600160e01b0319166001600160e01b031916815260040182805190602001908083835b602083106200048a5780518252601f19909201916020918201910162000469565b5181516000196020949094036101000a840190811690199190911617905260408051601f19959093018381039590950183528481527f656970313936372e70726f78792e696d706c656d656e746174696f6e0000000085525193849003601c0190932090955087945085935060008051602062000ce183398151915292019190911490506200051557fe5b62000529826001600160e01b036200066016565b805115620005e7576000826001600160a01b0316826040518082805190602001908083835b602083106200056f5780518252601f1990920191602091820191016200054e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114620005d1576040519150601f19603f3d011682016040523d82523d6000602084013e620005d6565b606091505b5050905080620005e557600080fd5b505b5050604080517f656970313936372e70726f78792e61646d696e000000000000000000000000008152905190819003601301902060008051602062000cc1833981519152600019909101146200063957fe5b6200064d826001600160e01b03620006e016565b50505050505050505050505050620006f9565b6200067681620006f360201b6200050c1760201c565b620006cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018062000d01603b913960400191505060405180910390fd5b60008051602062000ce183398151915255565b60008051602062000cc183398151915255565b3b151590565b6105b880620007096000396000f3fe6080604052600436106100555760003560e01c80633659cfe61461005f5780634f1ef286146100925780635c60da1b146101125780638f28397014610143578063aaf10f4214610176578063f851a4401461018b575b61005d6101a0565b005b34801561006b57600080fd5b5061005d6004803603602081101561008257600080fd5b50356001600160a01b03166101ba565b61005d600480360360408110156100a857600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d357600080fd5b8201836020820111156100e557600080fd5b8035906020019184600183028401116401000000008311171561010757600080fd5b5090925090506101f4565b34801561011e57600080fd5b506101276102a1565b604080516001600160a01b039092168252519081900360200190f35b34801561014f57600080fd5b5061005d6004803603602081101561016657600080fd5b50356001600160a01b03166102de565b34801561018257600080fd5b50610127610398565b34801561019757600080fd5b506101276103a7565b6101a86101b8565b6101b86101b36103d2565b6103f7565b565b6101c261041b565b6001600160a01b0316336001600160a01b031614156101e9576101e481610440565b6101f1565b6101f16101a0565b50565b6101fc61041b565b6001600160a01b0316336001600160a01b031614156102945761021e83610440565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461027b576040519150601f19603f3d011682016040523d82523d6000602084013e610280565b606091505b505090508061028e57600080fd5b5061029c565b61029c6101a0565b505050565b60006102ab61041b565b6001600160a01b0316336001600160a01b031614156102d3576102cc6103d2565b90506102db565b6102db6101a0565b90565b6102e661041b565b6001600160a01b0316336001600160a01b031614156101e9576001600160a01b0381166103445760405162461bcd60e51b81526004018080602001828103825260368152602001806105136036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61036d61041b565b604080516001600160a01b03928316815291841660208301528051918290030190a16101e481610480565b60006103a26103d2565b905090565b60006103b161041b565b6001600160a01b0316336001600160a01b031614156102d3576102cc61041b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e808015610416573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610449816104a4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104ad8161050c565b6104e85760405162461bcd60e51b815260040180806020018281038252603b815260200180610549603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a265627a7a723158204df986168d7cacc006cf885317c3d71a7e94106c5a9cfbb7961464e2bbf0a84c64736f6c634300050d0032b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000000000000000000059afb3b37a66868804ecf1a4a14eaa2be548880000000000000000000000000dd7680b6b2eec193ce3ece7129708ee12531bccf000000000000000000000000ed91879919b71bb6905f23af0a68d231ecf87b14000000000000000000000000dd7680b6b2eec193ce3ece7129708ee12531bccf000000000000000000000000b07eb3426d742cda9120931e7028d54f9df34a3e0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000000040000000000000000000000008da81afea7986698772a611bf37501236d44352800000000000000000000000078bda7a14d31c5c845e0b8e9e9e4b119e7691723000000000000000000000000f2482f09f54125a3659f788cf7436af0753d969f000000000000000000000000a896f041a2b18e58e7fbc513cd371de1348596de00000000000000000000000000000000000000000000000000000000000000040000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000000064
Deployed Bytecode
0x6080604052600436106100555760003560e01c80633659cfe61461005f5780634f1ef286146100925780635c60da1b146101125780638f28397014610143578063aaf10f4214610176578063f851a4401461018b575b61005d6101a0565b005b34801561006b57600080fd5b5061005d6004803603602081101561008257600080fd5b50356001600160a01b03166101ba565b61005d600480360360408110156100a857600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d357600080fd5b8201836020820111156100e557600080fd5b8035906020019184600183028401116401000000008311171561010757600080fd5b5090925090506101f4565b34801561011e57600080fd5b506101276102a1565b604080516001600160a01b039092168252519081900360200190f35b34801561014f57600080fd5b5061005d6004803603602081101561016657600080fd5b50356001600160a01b03166102de565b34801561018257600080fd5b50610127610398565b34801561019757600080fd5b506101276103a7565b6101a86101b8565b6101b86101b36103d2565b6103f7565b565b6101c261041b565b6001600160a01b0316336001600160a01b031614156101e9576101e481610440565b6101f1565b6101f16101a0565b50565b6101fc61041b565b6001600160a01b0316336001600160a01b031614156102945761021e83610440565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461027b576040519150601f19603f3d011682016040523d82523d6000602084013e610280565b606091505b505090508061028e57600080fd5b5061029c565b61029c6101a0565b505050565b60006102ab61041b565b6001600160a01b0316336001600160a01b031614156102d3576102cc6103d2565b90506102db565b6102db6101a0565b90565b6102e661041b565b6001600160a01b0316336001600160a01b031614156101e9576001600160a01b0381166103445760405162461bcd60e51b81526004018080602001828103825260368152602001806105136036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61036d61041b565b604080516001600160a01b03928316815291841660208301528051918290030190a16101e481610480565b60006103a26103d2565b905090565b60006103b161041b565b6001600160a01b0316336001600160a01b031614156102d3576102cc61041b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e808015610416573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610449816104a4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104ad8161050c565b6104e85760405162461bcd60e51b815260040180806020018281038252603b815260200180610549603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a265627a7a723158204df986168d7cacc006cf885317c3d71a7e94106c5a9cfbb7961464e2bbf0a84c64736f6c634300050d0032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000059afb3b37a66868804ecf1a4a14eaa2be548880000000000000000000000000dd7680b6b2eec193ce3ece7129708ee12531bccf000000000000000000000000ed91879919b71bb6905f23af0a68d231ecf87b14000000000000000000000000dd7680b6b2eec193ce3ece7129708ee12531bccf000000000000000000000000b07eb3426d742cda9120931e7028d54f9df34a3e0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000000040000000000000000000000008da81afea7986698772a611bf37501236d44352800000000000000000000000078bda7a14d31c5c845e0b8e9e9e4b119e7691723000000000000000000000000f2482f09f54125a3659f788cf7436af0753d969f000000000000000000000000a896f041a2b18e58e7fbc513cd371de1348596de00000000000000000000000000000000000000000000000000000000000000040000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000000064
-----Decoded View---------------
Arg [0] : logic (address): 0x059AfB3B37a66868804ECF1a4a14Eaa2Be548880
Arg [1] : admin (address): 0xdd7680B6B2EeC193ce3ECe7129708EE12531BCcF
Arg [2] : dmgToken (address): 0xEd91879919B71bB6905f23af0A68d231EcF87b14
Arg [3] : guardian (address): 0xdd7680B6B2EeC193ce3ECe7129708EE12531BCcF
Arg [4] : dmmController (address): 0xB07EB3426d742cda9120931e7028d54F9dF34A3e
Arg [5] : dmgGrowthCoefficient (uint256): 1
Arg [6] : allowableTokens (address[]): 0x8dA81AfEA7986698772a611bF37501236d443528,0x78Bda7a14d31C5C845E0b8E9E9E4B119E7691723,0xf2482F09f54125a3659F788Cf7436af0753d969f,0xA896f041a2b18e58E7fBc513Cd371De1348596De
Arg [7] : underlyingTokens (address[]): 0x6B175474E89094C44Da98b954EedeAC495271d0F,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0xdAC17F958D2ee523a2206206994597C13D831ec7,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [8] : tokenDecimals (uint8[]): 18,6,6,18
Arg [9] : points (uint16[]): 200,200,200,100
-----Encoded View---------------
30 Constructor Arguments found :
Arg [0] : 000000000000000000000000059afb3b37a66868804ecf1a4a14eaa2be548880
Arg [1] : 000000000000000000000000dd7680b6b2eec193ce3ece7129708ee12531bccf
Arg [2] : 000000000000000000000000ed91879919b71bb6905f23af0a68d231ecf87b14
Arg [3] : 000000000000000000000000dd7680b6b2eec193ce3ece7129708ee12531bccf
Arg [4] : 000000000000000000000000b07eb3426d742cda9120931e7028d54f9df34a3e
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [7] : 00000000000000000000000000000000000000000000000000000000000001e0
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000280
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000320
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [11] : 0000000000000000000000008da81afea7986698772a611bf37501236d443528
Arg [12] : 00000000000000000000000078bda7a14d31c5c845e0b8e9e9e4b119e7691723
Arg [13] : 000000000000000000000000f2482f09f54125a3659f788cf7436af0753d969f
Arg [14] : 000000000000000000000000a896f041a2b18e58e7fbc513cd371de1348596de
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [16] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [17] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [18] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [19] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [20] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [21] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [23] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [24] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [25] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [26] : 00000000000000000000000000000000000000000000000000000000000000c8
Arg [27] : 00000000000000000000000000000000000000000000000000000000000000c8
Arg [28] : 00000000000000000000000000000000000000000000000000000000000000c8
Arg [29] : 0000000000000000000000000000000000000000000000000000000000000064
Deployed Bytecode Sourcemap
13844:2118:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;538:11;:9;:11::i;:::-;13844:2118;9269:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9269:105:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9269:105:0;-1:-1:-1;;;;;9269:105:0;;:::i;9902:225::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;9902:225:0;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;9902:225:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9902:225:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;9902:225:0;;-1:-1:-1;9902:225:0;-1:-1:-1;9902:225:0;:::i;8569:98::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8569:98:0;;;:::i;:::-;;;;-1:-1:-1;;;;;8569:98:0;;;;;;;;;;;;;;8850:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8850:228:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8850:228:0;-1:-1:-1;;;;;8850:228:0;;:::i;15699:102::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15699:102:0;;;:::i;8420:80::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8420:80:0;;;:::i;2084:93::-;2121:15;:13;:15::i;:::-;2143:28;2153:17;:15;:17::i;:::-;2143:9;:28::i;:::-;2084:93::o;9269:105::-;8287:8;:6;:8::i;:::-;-1:-1:-1;;;;;8273:22:0;:10;-1:-1:-1;;;;;8273:22:0;;8269:80;;;9339:29;9350:17;9339:10;:29::i;:::-;8269:80;;;8330:11;:9;:11::i;:::-;9269:105;:::o;9902:225::-;8287:8;:6;:8::i;:::-;-1:-1:-1;;;;;8273:22:0;:10;-1:-1:-1;;;;;8273:22:0;;8269:80;;;10008:29;10019:17;10008:10;:29::i;:::-;10045:12;10062:17;-1:-1:-1;;;;;10062:30:0;10093:4;;10062:36;;;;;30:3:-1;22:6;14;1:33;10062:36:0;;45:16:-1;;;-1:-1;10062:36:0;;-1:-1:-1;10062:36:0;;-1:-1:-1;;10062:36:0;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;10044:54:0;;;10113:7;10105:16;;;;;;8306:1;8269:80;;;8330:11;:9;:11::i;:::-;9902:225;;;:::o;8569:98::-;8621:7;8287:8;:6;:8::i;:::-;-1:-1:-1;;;;;8273:22:0;:10;-1:-1:-1;;;;;8273:22:0;;8269:80;;;8644:17;:15;:17::i;:::-;8637:24;;8269:80;;;8330:11;:9;:11::i;:::-;8569:98;:::o;8850:228::-;8287:8;:6;:8::i;:::-;-1:-1:-1;;;;;8273:22:0;:10;-1:-1:-1;;;;;8273:22:0;;8269:80;;;-1:-1:-1;;;;;8921:22:0;;8913:89;;;;-1:-1:-1;;;8913:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9014:32;9027:8;:6;:8::i;:::-;9014:32;;;-1:-1:-1;;;;;9014:32:0;;;;;;;;;;;;;;;;;;;;;9053:19;9063:8;9053:9;:19::i;15699:102::-;15749:7;15776:17;:15;:17::i;:::-;15769:24;;15699:102;:::o;8420:80::-;8463:7;8287:8;:6;:8::i;:::-;-1:-1:-1;;;;;8273:22:0;:10;-1:-1:-1;;;;;8273:22:0;;8269:80;;;8486:8;:6;:8::i;4845:161::-;4659:66;4983:11;;4966:35::o;977:750::-;1284:12;1281:1;1278;1265:32;1478:1;1475;1461:12;1458:1;1442:14;1437:3;1424:56;1545:14;1542:1;1539;1524:36;1577:6;1634:36;;;;1698:14;1695:1;1688:25;1634:36;1653:14;1650:1;1643:25;10177:141;7980:66;10295:11;;10279:34::o;5147:145::-;5210:37;5229:17;5210:18;:37::i;:::-;5259:27;;-1:-1:-1;;;;;5259:27:0;;;;;;;;5147:145;:::o;10440:139::-;7980:66;10545:22;10536:38::o;5435:313::-;5514:57;5553:17;5514:38;:57::i;:::-;5506:129;;;;-1:-1:-1;;;5506:129:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4659:66;5705:31;5696:47::o;3189:627::-;3761:20;3800:8;;;3189:627::o
Swarm Source
bzzr://4df986168d7cacc006cf885317c3d71a7e94106c5a9cfbb7961464e2bbf0a84c
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.