Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 9 from a total of 9 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Configure Minter | 19474482 | 327 days ago | IN | 0 ETH | 0.00126675 | ||||
Configure Contro... | 19474480 | 327 days ago | IN | 0 ETH | 0.00085198 | ||||
Configure Minter | 19389161 | 339 days ago | IN | 0 ETH | 0.00495814 | ||||
Configure Contro... | 19389152 | 339 days ago | IN | 0 ETH | 0.00195781 | ||||
Configure Minter | 19367010 | 342 days ago | IN | 0 ETH | 0.00708362 | ||||
Configure Contro... | 19367009 | 342 days ago | IN | 0 ETH | 0.00246337 | ||||
Configure Minter | 19318036 | 349 days ago | IN | 0 ETH | 0.00354636 | ||||
Configure Contro... | 19318035 | 349 days ago | IN | 0 ETH | 0.00192899 | ||||
Set Minter Manag... | 19317966 | 349 days ago | IN | 0 ETH | 0.00217227 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
MasterMinter
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-02-27 */ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.6.12; contract Ownable { // Owner of the contract address private _owner; /** * @dev Event to show ownership has been transferred * @param previousOwner representing the address of the previous owner * @param newOwner representing the address of the new owner */ event OwnershipTransferred(address previousOwner, address newOwner); /** * @dev The constructor sets the original owner of the contract to the sender account. */ constructor() public { setOwner(msg.sender); } /** * @dev Tells the address of the owner * @return the address of the owner */ function owner() external view returns (address) { return _owner; } /** * @dev Sets a new owner address */ function setOwner(address newOwner) internal { _owner = newOwner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == _owner, "Ownable: caller is not the owner"); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) external onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); setOwner(newOwner); } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) return 0; uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryDiv}. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } } contract Controller is Ownable { /** * @dev A controller manages a single worker address. * controllers[controller] = worker */ mapping(address => address) internal controllers; event ControllerConfigured( address indexed _controller, address indexed _worker ); event ControllerRemoved(address indexed _controller); /** * @notice Ensures that caller is the controller of a non-zero worker * address. */ modifier onlyController() { require( controllers[msg.sender] != address(0), "The value of controllers[msg.sender] must be non-zero" ); _; } /** * @notice Gets the worker at address _controller. */ function getWorker(address _controller) external view returns (address) { return controllers[_controller]; } // onlyOwner functions /** * @notice Configure a controller with the given worker. * @param _controller The controller to be configured with a worker. * @param _worker The worker to be set for the newly configured controller. * _worker must not be a non-zero address. To disable a worker, * use removeController instead. */ function configureController(address _controller, address _worker) public onlyOwner { require( _controller != address(0), "Controller must be a non-zero address" ); require(_worker != address(0), "Worker must be a non-zero address"); controllers[_controller] = _worker; emit ControllerConfigured(_controller, _worker); } /** * @notice disables a controller by setting its worker to address(0). * @param _controller The controller to disable. */ function removeController(address _controller) public onlyOwner { require( _controller != address(0), "Controller must be a non-zero address" ); require( controllers[_controller] != address(0), "Worker must be a non-zero address" ); controllers[_controller] = address(0); emit ControllerRemoved(_controller); } } interface MinterManagementInterface { function isMinter(address _account) external view returns (bool); function minterAllowance(address _minter) external view returns (uint256); function configureMinter(address _minter, uint256 _minterAllowedAmount) external returns (bool); function removeMinter(address _minter) external returns (bool); } contract MintController is Controller { using SafeMath for uint256; /** * @dev MintController calls the minterManager to execute/record minter * management tasks, as well as to query the status of a minter address. */ MinterManagementInterface internal minterManager; event MinterManagerSet( address indexed _oldMinterManager, address indexed _newMinterManager ); event MinterConfigured( address indexed _msgSender, address indexed _minter, uint256 _allowance ); event MinterRemoved(address indexed _msgSender, address indexed _minter); event MinterAllowanceIncremented( address indexed _msgSender, address indexed _minter, uint256 _increment, uint256 _newAllowance ); event MinterAllowanceDecremented( address indexed msgSender, address indexed minter, uint256 decrement, uint256 newAllowance ); /** * @notice Initializes the minterManager. * @param _minterManager The address of the minterManager contract. */ constructor(address _minterManager) public { minterManager = MinterManagementInterface(_minterManager); } /** * @notice gets the minterManager */ function getMinterManager() external view returns (MinterManagementInterface) { return minterManager; } // onlyOwner functions /** * @notice Sets the minterManager. * @param _newMinterManager The address of the new minterManager contract. */ function setMinterManager(address _newMinterManager) public onlyOwner { emit MinterManagerSet(address(minterManager), _newMinterManager); minterManager = MinterManagementInterface(_newMinterManager); } // onlyController functions /** * @notice Removes the controller's own minter. */ function removeMinter() public onlyController returns (bool) { address minter = controllers[msg.sender]; emit MinterRemoved(msg.sender, minter); return minterManager.removeMinter(minter); } /** * @notice Enables the minter and sets its allowance. * @param _newAllowance New allowance to be set for minter. */ function configureMinter(uint256 _newAllowance) public onlyController returns (bool) { address minter = controllers[msg.sender]; emit MinterConfigured(msg.sender, minter, _newAllowance); return internal_setMinterAllowance(minter, _newAllowance); } /** * @notice Increases the minter's allowance if and only if the minter is an * active minter. * @dev An minter is considered active if minterManager.isMinter(minter) * returns true. */ function incrementMinterAllowance(uint256 _allowanceIncrement) public onlyController returns (bool) { require( _allowanceIncrement > 0, "Allowance increment must be greater than 0" ); address minter = controllers[msg.sender]; require( minterManager.isMinter(minter), "Can only increment allowance for minters in minterManager" ); uint256 currentAllowance = minterManager.minterAllowance(minter); uint256 newAllowance = currentAllowance.add(_allowanceIncrement); emit MinterAllowanceIncremented( msg.sender, minter, _allowanceIncrement, newAllowance ); return internal_setMinterAllowance(minter, newAllowance); } /** * @notice decreases the minter allowance if and only if the minter is * currently active. The controller can safely send a signed * decrementMinterAllowance() transaction to a minter and not worry * about it being used to undo a removeMinter() transaction. */ function decrementMinterAllowance(uint256 _allowanceDecrement) public onlyController returns (bool) { require( _allowanceDecrement > 0, "Allowance decrement must be greater than 0" ); address minter = controllers[msg.sender]; require( minterManager.isMinter(minter), "Can only decrement allowance for minters in minterManager" ); uint256 currentAllowance = minterManager.minterAllowance(minter); uint256 actualAllowanceDecrement = ( currentAllowance > _allowanceDecrement ? _allowanceDecrement : currentAllowance ); uint256 newAllowance = currentAllowance.sub(actualAllowanceDecrement); emit MinterAllowanceDecremented( msg.sender, minter, actualAllowanceDecrement, newAllowance ); return internal_setMinterAllowance(minter, newAllowance); } // Internal functions /** * @notice Uses the MinterManagementInterface to enable the minter and * set its allowance. * @param _minter Minter to set new allowance of. * @param _newAllowance New allowance to be set for minter. */ function internal_setMinterAllowance(address _minter, uint256 _newAllowance) internal returns (bool) { return minterManager.configureMinter(_minter, _newAllowance); } } contract MasterMinter is MintController { constructor(address _minterManager) public MintController(_minterManager) {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_minterManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_controller","type":"address"},{"indexed":true,"internalType":"address","name":"_worker","type":"address"}],"name":"ControllerConfigured","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_controller","type":"address"}],"name":"ControllerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"msgSender","type":"address"},{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"decrement","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newAllowance","type":"uint256"}],"name":"MinterAllowanceDecremented","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_msgSender","type":"address"},{"indexed":true,"internalType":"address","name":"_minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"_increment","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_newAllowance","type":"uint256"}],"name":"MinterAllowanceIncremented","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_msgSender","type":"address"},{"indexed":true,"internalType":"address","name":"_minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"_allowance","type":"uint256"}],"name":"MinterConfigured","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_oldMinterManager","type":"address"},{"indexed":true,"internalType":"address","name":"_newMinterManager","type":"address"}],"name":"MinterManagerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_msgSender","type":"address"},{"indexed":true,"internalType":"address","name":"_minter","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"},{"internalType":"address","name":"_worker","type":"address"}],"name":"configureController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newAllowance","type":"uint256"}],"name":"configureMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_allowanceDecrement","type":"uint256"}],"name":"decrementMinterAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMinterManager","outputs":[{"internalType":"contract MinterManagementInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"getWorker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_allowanceIncrement","type":"uint256"}],"name":"incrementMinterAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"removeController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMinterManager","type":"address"}],"name":"setMinterManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161105e38038061105e8339818101604052602081101561003357600080fd5b50518061003f33610065565b600280546001600160a01b0319166001600160a01b039290921691909117905550610087565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610fc8806100966000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063c011b1c311610071578063c011b1c314610150578063c4faf7df14610176578063cbf2b8bf146101a4578063ea721569146101c1578063f2fde38b146101c9578063f6a74ed7146101ef576100a9565b806333db2ad2146100ae578063542fef91146100df5780637c6b8ef5146101075780638da5cb5b146101245780639398608b14610148575b600080fd5b6100cb600480360360208110156100c457600080fd5b5035610215565b604080519115158252519081900360200190f35b610105600480360360208110156100f557600080fd5b50356001600160a01b0316610451565b005b6100cb6004803603602081101561011d57600080fd5b50356104fa565b61012c61074a565b604080516001600160a01b039092168252519081900360200190f35b61012c610759565b61012c6004803603602081101561016657600080fd5b50356001600160a01b0316610768565b6101056004803603604081101561018c57600080fd5b506001600160a01b0381358116916020013516610786565b6100cb600480360360208110156101ba57600080fd5b50356108b4565b6100cb61096d565b610105600480360360208110156101df57600080fd5b50356001600160a01b0316610a89565b6101056004803603602081101561020557600080fd5b50356001600160a01b0316610b6f565b336000908152600160205260408120546001600160a01b03166102695760405162461bcd60e51b8152600401808060200182810382526035815260200180610ea26035913960400191505060405180910390fd5b600082116102a85760405162461bcd60e51b815260040180806020018281038252602a815260200180610ef7602a913960400191505060405180910390fd5b336000908152600160209081526040918290205460025483516355138f0d60e11b81526001600160a01b03928316600482018190529451929091169263aa271e1a92602480840193829003018186803b15801561030457600080fd5b505afa158015610318573d6000803e3d6000fd5b505050506040513d602081101561032e57600080fd5b505161036b5760405162461bcd60e51b8152600401808060200182810382526039815260200180610f216039913960400191505060405180910390fd5b60025460408051638a6db9c360e01b81526001600160a01b03848116600483015291516000939290921691638a6db9c391602480820192602092909190829003018186803b1580156103bc57600080fd5b505afa1580156103d0573d6000803e3d6000fd5b505050506040513d60208110156103e657600080fd5b5051905060006103f68286610ca6565b604080518781526020810183905281519293506001600160a01b0386169233927f3703d23abba1e61f32acc0682fc062ea5c710672c7d100af5ecd08485e983ad0928290030190a36104488382610d00565b95945050505050565b6000546001600160a01b0316331461049e576040805162461bcd60e51b81526020600482018190526024820152600080516020610ed7833981519152604482015290519081900360640190fd5b6002546040516001600160a01b038084169216907f9992ea32e96992be98be5c833cd5b9fd77314819d2146b6f06ab9cfef957af1290600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152600160205260408120546001600160a01b031661054e5760405162461bcd60e51b8152600401808060200182810382526035815260200180610ea26035913960400191505060405180910390fd5b6000821161058d5760405162461bcd60e51b815260040180806020018281038252602a815260200180610e0c602a913960400191505060405180910390fd5b336000908152600160209081526040918290205460025483516355138f0d60e11b81526001600160a01b03928316600482018190529451929091169263aa271e1a92602480840193829003018186803b1580156105e957600080fd5b505afa1580156105fd573d6000803e3d6000fd5b505050506040513d602081101561061357600080fd5b50516106505760405162461bcd60e51b8152600401808060200182810382526039815260200180610f5a6039913960400191505060405180910390fd5b60025460408051638a6db9c360e01b81526001600160a01b03848116600483015291516000939290921691638a6db9c391602480820192602092909190829003018186803b1580156106a157600080fd5b505afa1580156106b5573d6000803e3d6000fd5b505050506040513d60208110156106cb57600080fd5b5051905060008482116106de57816106e0565b845b905060006106ee8383610d8c565b604080518481526020810183905281519293506001600160a01b0387169233927f3cc75d3bf58b0100659088c03539964108d5d06342e1bd8085ee43ad8ff6f69a928290030190a36107408482610d00565b9695505050505050565b6000546001600160a01b031690565b6002546001600160a01b031690565b6001600160a01b039081166000908152600160205260409020541690565b6000546001600160a01b031633146107d3576040805162461bcd60e51b81526020600482018190526024820152600080516020610ed7833981519152604482015290519081900360640190fd5b6001600160a01b0382166108185760405162461bcd60e51b8152600401808060200182810382526025815260200180610e366025913960400191505060405180910390fd5b6001600160a01b03811661085d5760405162461bcd60e51b8152600401808060200182810382526021815260200180610e816021913960400191505060405180910390fd5b6001600160a01b0382811660008181526001602052604080822080546001600160a01b0319169486169485179055517fa56687ff5096e83f6e2c673cda0b677f56bbfcdf5fe0555d5830c407ede193cb9190a35050565b336000908152600160205260408120546001600160a01b03166109085760405162461bcd60e51b8152600401808060200182810382526035815260200180610ea26035913960400191505060405180910390fd5b3360008181526001602090815260409182902054825186815292516001600160a01b0390911693849390927f5b0b60a4f757b33d9dcb8bd021b6aa371bb2e6f134086797aefcd8c0afab538c92918290030190a36109668184610d00565b9392505050565b336000908152600160205260408120546001600160a01b03166109c15760405162461bcd60e51b8152600401808060200182810382526035815260200180610ea26035913960400191505060405180910390fd5b336000818152600160205260408082205490516001600160a01b0390911692839290917f4b5ef9a786cf64a7d82ebcf2d5132667edc9faef4ac36260d9a9e52c526b62329190a360025460408051633092afd560e01b81526001600160a01b03848116600483015291519190921691633092afd59160248083019260209291908290030181600087803b158015610a5757600080fd5b505af1158015610a6b573d6000803e3d6000fd5b505050506040513d6020811015610a8157600080fd5b505191505090565b6000546001600160a01b03163314610ad6576040805162461bcd60e51b81526020600482018190526024820152600080516020610ed7833981519152604482015290519081900360640190fd5b6001600160a01b038116610b1b5760405162461bcd60e51b8152600401808060200182810382526026815260200180610e5b6026913960400191505060405180910390fd5b600054604080516001600160a01b039283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a1610b6c81610de9565b50565b6000546001600160a01b03163314610bbc576040805162461bcd60e51b81526020600482018190526024820152600080516020610ed7833981519152604482015290519081900360640190fd5b6001600160a01b038116610c015760405162461bcd60e51b8152600401808060200182810382526025815260200180610e366025913960400191505060405180910390fd5b6001600160a01b0381811660009081526001602052604090205416610c575760405162461bcd60e51b8152600401808060200182810382526021815260200180610e816021913960400191505060405180910390fd5b6001600160a01b03811660008181526001602052604080822080546001600160a01b0319169055517f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e811139190a250565b600082820183811015610966576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600254604080516327226cab60e11b81526001600160a01b0385811660048301526024820185905291516000939290921691634e44d9569160448082019260209290919082900301818787803b158015610d5957600080fd5b505af1158015610d6d573d6000803e3d6000fd5b505050506040513d6020811015610d8357600080fd5b50519392505050565b600082821115610de3576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080546001600160a01b0319166001600160a01b039290921691909117905556fe416c6c6f77616e63652064656372656d656e74206d7573742062652067726561746572207468616e2030436f6e74726f6c6c6572206d7573742062652061206e6f6e2d7a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373576f726b6572206d7573742062652061206e6f6e2d7a65726f20616464726573735468652076616c7565206f6620636f6e74726f6c6c6572735b6d73672e73656e6465725d206d757374206265206e6f6e2d7a65726f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572416c6c6f77616e636520696e6372656d656e74206d7573742062652067726561746572207468616e203043616e206f6e6c7920696e6372656d656e7420616c6c6f77616e636520666f72206d696e7465727320696e206d696e7465724d616e6167657243616e206f6e6c792064656372656d656e7420616c6c6f77616e636520666f72206d696e7465727320696e206d696e7465724d616e61676572a26469706673582212208831ccfc722455e34f4a2b5945d21727f74f8a05b029b53ce9c71d9c866eb53864736f6c634300060c00330000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063c011b1c311610071578063c011b1c314610150578063c4faf7df14610176578063cbf2b8bf146101a4578063ea721569146101c1578063f2fde38b146101c9578063f6a74ed7146101ef576100a9565b806333db2ad2146100ae578063542fef91146100df5780637c6b8ef5146101075780638da5cb5b146101245780639398608b14610148575b600080fd5b6100cb600480360360208110156100c457600080fd5b5035610215565b604080519115158252519081900360200190f35b610105600480360360208110156100f557600080fd5b50356001600160a01b0316610451565b005b6100cb6004803603602081101561011d57600080fd5b50356104fa565b61012c61074a565b604080516001600160a01b039092168252519081900360200190f35b61012c610759565b61012c6004803603602081101561016657600080fd5b50356001600160a01b0316610768565b6101056004803603604081101561018c57600080fd5b506001600160a01b0381358116916020013516610786565b6100cb600480360360208110156101ba57600080fd5b50356108b4565b6100cb61096d565b610105600480360360208110156101df57600080fd5b50356001600160a01b0316610a89565b6101056004803603602081101561020557600080fd5b50356001600160a01b0316610b6f565b336000908152600160205260408120546001600160a01b03166102695760405162461bcd60e51b8152600401808060200182810382526035815260200180610ea26035913960400191505060405180910390fd5b600082116102a85760405162461bcd60e51b815260040180806020018281038252602a815260200180610ef7602a913960400191505060405180910390fd5b336000908152600160209081526040918290205460025483516355138f0d60e11b81526001600160a01b03928316600482018190529451929091169263aa271e1a92602480840193829003018186803b15801561030457600080fd5b505afa158015610318573d6000803e3d6000fd5b505050506040513d602081101561032e57600080fd5b505161036b5760405162461bcd60e51b8152600401808060200182810382526039815260200180610f216039913960400191505060405180910390fd5b60025460408051638a6db9c360e01b81526001600160a01b03848116600483015291516000939290921691638a6db9c391602480820192602092909190829003018186803b1580156103bc57600080fd5b505afa1580156103d0573d6000803e3d6000fd5b505050506040513d60208110156103e657600080fd5b5051905060006103f68286610ca6565b604080518781526020810183905281519293506001600160a01b0386169233927f3703d23abba1e61f32acc0682fc062ea5c710672c7d100af5ecd08485e983ad0928290030190a36104488382610d00565b95945050505050565b6000546001600160a01b0316331461049e576040805162461bcd60e51b81526020600482018190526024820152600080516020610ed7833981519152604482015290519081900360640190fd5b6002546040516001600160a01b038084169216907f9992ea32e96992be98be5c833cd5b9fd77314819d2146b6f06ab9cfef957af1290600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152600160205260408120546001600160a01b031661054e5760405162461bcd60e51b8152600401808060200182810382526035815260200180610ea26035913960400191505060405180910390fd5b6000821161058d5760405162461bcd60e51b815260040180806020018281038252602a815260200180610e0c602a913960400191505060405180910390fd5b336000908152600160209081526040918290205460025483516355138f0d60e11b81526001600160a01b03928316600482018190529451929091169263aa271e1a92602480840193829003018186803b1580156105e957600080fd5b505afa1580156105fd573d6000803e3d6000fd5b505050506040513d602081101561061357600080fd5b50516106505760405162461bcd60e51b8152600401808060200182810382526039815260200180610f5a6039913960400191505060405180910390fd5b60025460408051638a6db9c360e01b81526001600160a01b03848116600483015291516000939290921691638a6db9c391602480820192602092909190829003018186803b1580156106a157600080fd5b505afa1580156106b5573d6000803e3d6000fd5b505050506040513d60208110156106cb57600080fd5b5051905060008482116106de57816106e0565b845b905060006106ee8383610d8c565b604080518481526020810183905281519293506001600160a01b0387169233927f3cc75d3bf58b0100659088c03539964108d5d06342e1bd8085ee43ad8ff6f69a928290030190a36107408482610d00565b9695505050505050565b6000546001600160a01b031690565b6002546001600160a01b031690565b6001600160a01b039081166000908152600160205260409020541690565b6000546001600160a01b031633146107d3576040805162461bcd60e51b81526020600482018190526024820152600080516020610ed7833981519152604482015290519081900360640190fd5b6001600160a01b0382166108185760405162461bcd60e51b8152600401808060200182810382526025815260200180610e366025913960400191505060405180910390fd5b6001600160a01b03811661085d5760405162461bcd60e51b8152600401808060200182810382526021815260200180610e816021913960400191505060405180910390fd5b6001600160a01b0382811660008181526001602052604080822080546001600160a01b0319169486169485179055517fa56687ff5096e83f6e2c673cda0b677f56bbfcdf5fe0555d5830c407ede193cb9190a35050565b336000908152600160205260408120546001600160a01b03166109085760405162461bcd60e51b8152600401808060200182810382526035815260200180610ea26035913960400191505060405180910390fd5b3360008181526001602090815260409182902054825186815292516001600160a01b0390911693849390927f5b0b60a4f757b33d9dcb8bd021b6aa371bb2e6f134086797aefcd8c0afab538c92918290030190a36109668184610d00565b9392505050565b336000908152600160205260408120546001600160a01b03166109c15760405162461bcd60e51b8152600401808060200182810382526035815260200180610ea26035913960400191505060405180910390fd5b336000818152600160205260408082205490516001600160a01b0390911692839290917f4b5ef9a786cf64a7d82ebcf2d5132667edc9faef4ac36260d9a9e52c526b62329190a360025460408051633092afd560e01b81526001600160a01b03848116600483015291519190921691633092afd59160248083019260209291908290030181600087803b158015610a5757600080fd5b505af1158015610a6b573d6000803e3d6000fd5b505050506040513d6020811015610a8157600080fd5b505191505090565b6000546001600160a01b03163314610ad6576040805162461bcd60e51b81526020600482018190526024820152600080516020610ed7833981519152604482015290519081900360640190fd5b6001600160a01b038116610b1b5760405162461bcd60e51b8152600401808060200182810382526026815260200180610e5b6026913960400191505060405180910390fd5b600054604080516001600160a01b039283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a1610b6c81610de9565b50565b6000546001600160a01b03163314610bbc576040805162461bcd60e51b81526020600482018190526024820152600080516020610ed7833981519152604482015290519081900360640190fd5b6001600160a01b038116610c015760405162461bcd60e51b8152600401808060200182810382526025815260200180610e366025913960400191505060405180910390fd5b6001600160a01b0381811660009081526001602052604090205416610c575760405162461bcd60e51b8152600401808060200182810382526021815260200180610e816021913960400191505060405180910390fd5b6001600160a01b03811660008181526001602052604080822080546001600160a01b0319169055517f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e811139190a250565b600082820183811015610966576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600254604080516327226cab60e11b81526001600160a01b0385811660048301526024820185905291516000939290921691634e44d9569160448082019260209290919082900301818787803b158015610d5957600080fd5b505af1158015610d6d573d6000803e3d6000fd5b505050506040513d6020811015610d8357600080fd5b50519392505050565b600082821115610de3576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080546001600160a01b0319166001600160a01b039290921691909117905556fe416c6c6f77616e63652064656372656d656e74206d7573742062652067726561746572207468616e2030436f6e74726f6c6c6572206d7573742062652061206e6f6e2d7a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373576f726b6572206d7573742062652061206e6f6e2d7a65726f20616464726573735468652076616c7565206f6620636f6e74726f6c6c6572735b6d73672e73656e6465725d206d757374206265206e6f6e2d7a65726f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572416c6c6f77616e636520696e6372656d656e74206d7573742062652067726561746572207468616e203043616e206f6e6c7920696e6372656d656e7420616c6c6f77616e636520666f72206d696e7465727320696e206d696e7465724d616e6167657243616e206f6e6c792064656372656d656e7420616c6c6f77616e636520666f72206d696e7465727320696e206d696e7465724d616e61676572a26469706673582212208831ccfc722455e34f4a2b5945d21727f74f8a05b029b53ce9c71d9c866eb53864736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _minterManager (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.