Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Name:
NectarController
Compiler Version
v0.5.12+commit.7709ece9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-01-22 */ pragma solidity ^0.5.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @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) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * _Available since v2.4.0._ */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @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) { // 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 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts 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) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message 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. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts 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) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message 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. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return _msgSender() == _owner; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface INEC { function burningEnabled() external returns(bool); function controller() external returns(address); function enableBurning(bool _burningEnabled) external; function burnAndRetrieve(uint256 _tokensToBurn) external returns (bool success); function totalPledgedFees() external view returns (uint); function totalSupply() external view returns (uint); function destroyTokens(address _owner, uint _amount ) external returns (bool); function generateTokens(address _owner, uint _amount ) external returns (bool); function changeController(address _newController) external; function balanceOf(address owner) external returns(uint256); function transfer(address owner, uint amount) external returns(bool); } contract TokenController { function proxyPayment(address _owner) public payable returns(bool); function onTransfer(address _from, address _to, uint _amount) public returns(bool); function onApprove(address _owner, address _spender, uint _amount) public returns(bool); function onBurn(address payable _owner, uint _amount) public returns(bool); } contract NectarController is TokenController, Ownable { using SafeMath for uint256; INEC public tokenContract; // The new token for this Campaign /// @dev There are several checks to make sure the parameters are acceptable /// @param _tokenAddress Address of the token contract this contract controls constructor ( address _tokenAddress ) public { tokenContract = INEC(_tokenAddress); // The Deployed Token Contract } ///////////////// // TokenController interface ///////////////// /// @notice `proxyPayment()` allows the caller to send ether to the Campaign /// but does not create tokens. This functions the same as the fallback function. /// @param _owner Does not do anything, but preserved because of MiniMe standard function. function proxyPayment(address _owner) public payable returns(bool) { return true; } /// @notice Notifies the controller about a transfer. /// Transfers can only happen to whitelisted addresses /// @param _from The origin of the transfer /// @param _to The destination of the transfer /// @param _amount The amount of the transfer /// @return False if the controller does not authorize the transfer function onTransfer(address _from, address _to, uint _amount) public returns(bool) { return true; } /// @notice Notifies the controller about an approval, for this Campaign all /// approvals are allowed by default and no extra notifications are needed /// @param _owner The address that calls `approve()` /// @param _spender The spender in the `approve()` call /// @param _amount The amount in the `approve()` call /// @return False if the controller does not authorize the approval function onApprove(address _owner, address _spender, uint _amount) public returns(bool) { return true; } /// @notice Notifies the controller about a burn attempt. Initially all burns are disabled. /// Upgraded Controllers in the future will allow token holders to claim the pledged ETH /// @param _owner The address that calls `burn()` /// @param _tokensToBurn The amount in the `burn()` call /// @return False if the controller does not authorize the approval function onBurn(address payable _owner, uint _tokensToBurn) public returns(bool) { // This plugin can only be called by the token contract require(msg.sender == address(tokenContract)); require (tokenContract.destroyTokens(_owner, _tokensToBurn)); return true; } /// @notice `onlyOwner` can upgrade the controller contract /// @param _newControllerAddress The address that will have the token control logic function upgradeController(address _newControllerAddress) public onlyOwner { tokenContract.changeController(_newControllerAddress); emit UpgradedController(_newControllerAddress); } /// @dev enableBurning - Allows the owner to activate burning on the underlying token contract function enableBurning(bool _burningEnabled) public onlyOwner{ tokenContract.enableBurning(_burningEnabled); } ////////// // Safety Methods ////////// /// @notice This method can be used by the owner to extract mistakenly /// sent tokens to this contract. /// @param _token The address of the token contract that you want to recover function claimTokens(address _token) public onlyOwner { INEC token = INEC(_token); uint balance = token.balanceOf(address(this)); token.transfer(owner(), balance); emit ClaimedTokens(_token, owner(), balance); } /// @dev evacuateToVault - This is only used to evacuate remaining to ether from this contract to the vault address function claimEther() public onlyOwner{ address payable to = address(uint160(owner())); to.transfer(address(this).balance); emit ClaimedTokens(address(0), owner(), address(this).balance); } //////////////// // Events //////////////// event ClaimedTokens(address indexed _token, address indexed _controller, uint _amount); event UpgradedController (address newAddress); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_token","type":"address"},{"indexed":true,"internalType":"address","name":"_controller","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ClaimedTokens","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":"newAddress","type":"address"}],"name":"UpgradedController","type":"event"},{"constant":false,"inputs":[],"name":"claimEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"_burningEnabled","type":"bool"}],"name":"enableBurning","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"onApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_owner","type":"address"},{"internalType":"uint256","name":"_tokensToBurn","type":"uint256"}],"name":"onBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"onTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"proxyPayment","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"internalType":"contract INEC","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newControllerAddress","type":"address"}],"name":"upgradeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610ab5380380610ab58339818101604052602081101561003357600080fd5b50516100466001600160e01b036100b316565b600080546001600160a01b0319166001600160a01b03928316178082556040519216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b0319166001600160a01b03929092169190911790556100b7565b3390565b6109ef806100c66000396000f3fe6080604052600436106100c25760003560e01c80638f32d59b1161007f578063da682aeb11610059578063da682aeb14610114578063df8de3e71461023d578063f2fde38b14610270578063f48c3054146102a3576100c2565b80638f32d59b146101c9578063b45dd873146101de578063b9c2ee821461020a576100c2565b806345a1b92c146100c75780634a3931491461011457806355291dbd1461015757806355a373d61461016e578063715018a61461019f5780638da5cb5b146101b4575b600080fd5b3480156100d357600080fd5b50610100600480360360408110156100ea57600080fd5b506001600160a01b0381351690602001356102c9565b604080519115158252519081900360200190f35b34801561012057600080fd5b506101006004803603606081101561013757600080fd5b506001600160a01b03813581169160208101359091169060400135610377565b34801561016357600080fd5b5061016c610380565b005b34801561017a57600080fd5b5061018361045b565b604080516001600160a01b039092168252519081900360200190f35b3480156101ab57600080fd5b5061016c61046a565b3480156101c057600080fd5b506101836104fb565b3480156101d557600080fd5b5061010061050a565b3480156101ea57600080fd5b5061016c6004803603602081101561020157600080fd5b5035151561052e565b34801561021657600080fd5b5061016c6004803603602081101561022d57600080fd5b50356001600160a01b03166105de565b34801561024957600080fd5b5061016c6004803603602081101561026057600080fd5b50356001600160a01b03166106cb565b34801561027c57600080fd5b5061016c6004803603602081101561029357600080fd5b50356001600160a01b0316610877565b610100600480360360208110156102b957600080fd5b50356001600160a01b03166108ca565b6001546000906001600160a01b031633146102e357600080fd5b600154604080516369e73bff60e11b81526001600160a01b038681166004830152602482018690529151919092169163d3ce77fe9160448083019260209291908290030181600087803b15801561033957600080fd5b505af115801561034d573d6000803e3d6000fd5b505050506040513d602081101561036357600080fd5b505161036e57600080fd5b50600192915050565b60019392505050565b61038861050a565b6103c7576040805162461bcd60e51b8152602060048201819052602482015260008051602061099b833981519152604482015290519081900360640190fd5b60006103d16104fb565b6040519091506001600160a01b03821690303180156108fc02916000818181858888f1935050505015801561040a573d6000803e3d6000fd5b506104136104fb565b604080513031815290516001600160a01b0392909216916000917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350565b6001546001600160a01b031681565b61047261050a565b6104b1576040805162461bcd60e51b8152602060048201819052602482015260008051602061099b833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600080546001600160a01b031661051f6108d0565b6001600160a01b031614905090565b61053661050a565b610575576040805162461bcd60e51b8152602060048201819052602482015260008051602061099b833981519152604482015290519081900360640190fd5b6001546040805163b45dd87360e01b8152831515600482015290516001600160a01b039092169163b45dd8739160248082019260009290919082900301818387803b1580156105c357600080fd5b505af11580156105d7573d6000803e3d6000fd5b5050505050565b6105e661050a565b610625576040805162461bcd60e51b8152602060048201819052602482015260008051602061099b833981519152604482015290519081900360640190fd5b60015460408051633cebb82360e01b81526001600160a01b03848116600483015291519190921691633cebb82391602480830192600092919082900301818387803b15801561067357600080fd5b505af1158015610687573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517fbef2873659f3bf8b3c7c64380b7543be225c22ebb0f56a811c1a7209b00f82229350908190036020019150a150565b6106d361050a565b610712576040805162461bcd60e51b8152602060048201819052602482015260008051602061099b833981519152604482015290519081900360640190fd5b604080516370a0823160e01b8152306004820152905182916000916001600160a01b038416916370a0823191602480830192602092919082900301818787803b15801561075e57600080fd5b505af1158015610772573d6000803e3d6000fd5b505050506040513d602081101561078857600080fd5b505190506001600160a01b03821663a9059cbb6107a36104fb565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156107f357600080fd5b505af1158015610807573d6000803e3d6000fd5b505050506040513d602081101561081d57600080fd5b5061082890506104fb565b6001600160a01b0316836001600160a01b03167ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c836040518082815260200191505060405180910390a3505050565b61087f61050a565b6108be576040805162461bcd60e51b8152602060048201819052602482015260008051602061099b833981519152604482015290519081900360640190fd5b6108c7816108d4565b50565b50600190565b3390565b6001600160a01b0381166109195760405162461bcd60e51b81526004018080602001828103825260268152602001806109756026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a72315820f1bada600fdd6ebc4cadc7c525ae9ee041ed2a6e728a560d507536443b39ffaf64736f6c634300050c0032000000000000000000000000cc80c051057b774cd75067dc48f8987c4eb97a5e
Deployed Bytecode
0x6080604052600436106100c25760003560e01c80638f32d59b1161007f578063da682aeb11610059578063da682aeb14610114578063df8de3e71461023d578063f2fde38b14610270578063f48c3054146102a3576100c2565b80638f32d59b146101c9578063b45dd873146101de578063b9c2ee821461020a576100c2565b806345a1b92c146100c75780634a3931491461011457806355291dbd1461015757806355a373d61461016e578063715018a61461019f5780638da5cb5b146101b4575b600080fd5b3480156100d357600080fd5b50610100600480360360408110156100ea57600080fd5b506001600160a01b0381351690602001356102c9565b604080519115158252519081900360200190f35b34801561012057600080fd5b506101006004803603606081101561013757600080fd5b506001600160a01b03813581169160208101359091169060400135610377565b34801561016357600080fd5b5061016c610380565b005b34801561017a57600080fd5b5061018361045b565b604080516001600160a01b039092168252519081900360200190f35b3480156101ab57600080fd5b5061016c61046a565b3480156101c057600080fd5b506101836104fb565b3480156101d557600080fd5b5061010061050a565b3480156101ea57600080fd5b5061016c6004803603602081101561020157600080fd5b5035151561052e565b34801561021657600080fd5b5061016c6004803603602081101561022d57600080fd5b50356001600160a01b03166105de565b34801561024957600080fd5b5061016c6004803603602081101561026057600080fd5b50356001600160a01b03166106cb565b34801561027c57600080fd5b5061016c6004803603602081101561029357600080fd5b50356001600160a01b0316610877565b610100600480360360208110156102b957600080fd5b50356001600160a01b03166108ca565b6001546000906001600160a01b031633146102e357600080fd5b600154604080516369e73bff60e11b81526001600160a01b038681166004830152602482018690529151919092169163d3ce77fe9160448083019260209291908290030181600087803b15801561033957600080fd5b505af115801561034d573d6000803e3d6000fd5b505050506040513d602081101561036357600080fd5b505161036e57600080fd5b50600192915050565b60019392505050565b61038861050a565b6103c7576040805162461bcd60e51b8152602060048201819052602482015260008051602061099b833981519152604482015290519081900360640190fd5b60006103d16104fb565b6040519091506001600160a01b03821690303180156108fc02916000818181858888f1935050505015801561040a573d6000803e3d6000fd5b506104136104fb565b604080513031815290516001600160a01b0392909216916000917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a350565b6001546001600160a01b031681565b61047261050a565b6104b1576040805162461bcd60e51b8152602060048201819052602482015260008051602061099b833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600080546001600160a01b031661051f6108d0565b6001600160a01b031614905090565b61053661050a565b610575576040805162461bcd60e51b8152602060048201819052602482015260008051602061099b833981519152604482015290519081900360640190fd5b6001546040805163b45dd87360e01b8152831515600482015290516001600160a01b039092169163b45dd8739160248082019260009290919082900301818387803b1580156105c357600080fd5b505af11580156105d7573d6000803e3d6000fd5b5050505050565b6105e661050a565b610625576040805162461bcd60e51b8152602060048201819052602482015260008051602061099b833981519152604482015290519081900360640190fd5b60015460408051633cebb82360e01b81526001600160a01b03848116600483015291519190921691633cebb82391602480830192600092919082900301818387803b15801561067357600080fd5b505af1158015610687573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517fbef2873659f3bf8b3c7c64380b7543be225c22ebb0f56a811c1a7209b00f82229350908190036020019150a150565b6106d361050a565b610712576040805162461bcd60e51b8152602060048201819052602482015260008051602061099b833981519152604482015290519081900360640190fd5b604080516370a0823160e01b8152306004820152905182916000916001600160a01b038416916370a0823191602480830192602092919082900301818787803b15801561075e57600080fd5b505af1158015610772573d6000803e3d6000fd5b505050506040513d602081101561078857600080fd5b505190506001600160a01b03821663a9059cbb6107a36104fb565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156107f357600080fd5b505af1158015610807573d6000803e3d6000fd5b505050506040513d602081101561081d57600080fd5b5061082890506104fb565b6001600160a01b0316836001600160a01b03167ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c836040518082815260200191505060405180910390a3505050565b61087f61050a565b6108be576040805162461bcd60e51b8152602060048201819052602482015260008051602061099b833981519152604482015290519081900360640190fd5b6108c7816108d4565b50565b50600190565b3390565b6001600160a01b0381166109195760405162461bcd60e51b81526004018080602001828103825260268152602001806109756026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a72315820f1bada600fdd6ebc4cadc7c525ae9ee041ed2a6e728a560d507536443b39ffaf64736f6c634300050c0032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cc80c051057b774cd75067dc48f8987c4eb97a5e
-----Decoded View---------------
Arg [0] : _tokenAddress (address): 0xCc80C051057B774cD75067Dc48f8987C4Eb97A5e
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000cc80c051057b774cd75067dc48f8987c4eb97a5e
Deployed Bytecode Sourcemap
9789:4307:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12119:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12119:321:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12119:321:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;11063:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11063:113:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11063:113:0;;;;;;;;;;;;;;;;;:::i;13674:221::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13674:221:0;;;:::i;:::-;;9885:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9885:25:0;;;:::i;:::-;;;;-1:-1:-1;;;;;9885:25:0;;;;;;;;;;;;;;7842:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7842:140:0;;;:::i;7031:79::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7031:79:0;;;:::i;7397:94::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7397:94:0;;;:::i;12914:124::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12914:124:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12914:124:0;;;;:::i;12602:204::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12602:204:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12602:204:0;-1:-1:-1;;;;;12602:204:0;;:::i;13291:254::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13291:254:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13291:254:0;-1:-1:-1;;;;;13291:254:0;;:::i;8137:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8137:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8137:109:0;-1:-1:-1;;;;;8137:109:0;;:::i;10612:97::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10612:97:0;-1:-1:-1;;;;;10612:97:0;;:::i;12119:321::-;12320:13;;12203:4;;-1:-1:-1;;;;;12320:13:0;12298:10;:36;12290:45;;;;;;12357:13;;:50;;;-1:-1:-1;;;12357:50:0;;-1:-1:-1;;;;;12357:50:0;;;;;;;;;;;;;;;:13;;;;;:27;;:50;;;;;;;;;;;;;;:13;;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;12357:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12357:50:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12357:50:0;12348:60;;;;;;-1:-1:-1;12428:4:0;12119:321;;;;:::o;11063:113::-;11164:4;11063:113;;;;;:::o;13674:221::-;7243:9;:7;:9::i;:::-;7235:54;;;;;-1:-1:-1;;;7235:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7235:54:0;;;;;;;;;;;;;;;13723:18;13760:7;:5;:7::i;:::-;13780:34;;13723:46;;-1:-1:-1;;;;;;13780:11:0;;;13800:4;13792:21;13780:34;;;;;;;;;13792:21;13780:11;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13780:34:0;13856:7;:5;:7::i;:::-;13830:57;;;13873:4;13865:21;13830:57;;;;-1:-1:-1;;;;;13830:57:0;;;;;13852:1;;13830:57;;;;;;;;;;7300:1;13674:221::o;9885:25::-;;;-1:-1:-1;;;;;9885:25:0;;:::o;7842:140::-;7243:9;:7;:9::i;:::-;7235:54;;;;;-1:-1:-1;;;7235:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7235:54:0;;;;;;;;;;;;;;;7941:1;7925:6;;7904:40;;-1:-1:-1;;;;;7925:6:0;;;;7904:40;;7941:1;;7904:40;7972:1;7955:19;;-1:-1:-1;;;;;;7955:19:0;;;7842:140::o;7031:79::-;7069:7;7096:6;-1:-1:-1;;;;;7096:6:0;7031:79;:::o;7397:94::-;7437:4;7477:6;;-1:-1:-1;;;;;7477:6:0;7461:12;:10;:12::i;:::-;-1:-1:-1;;;;;7461:22:0;;7454:29;;7397:94;:::o;12914:124::-;7243:9;:7;:9::i;:::-;7235:54;;;;;-1:-1:-1;;;7235:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7235:54:0;;;;;;;;;;;;;;;12986:13;;:44;;;-1:-1:-1;;;12986:44:0;;;;;;;;;;;-1:-1:-1;;;;;12986:13:0;;;;:27;;:44;;;;;:13;;:44;;;;;;;;:13;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;12986:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12986:44:0;;;;12914:124;:::o;12602:204::-;7243:9;:7;:9::i;:::-;7235:54;;;;;-1:-1:-1;;;7235:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7235:54:0;;;;;;;;;;;;;;;12688:13;;:53;;;-1:-1:-1;;;12688:53:0;;-1:-1:-1;;;;;12688:53:0;;;;;;;;;:13;;;;;:30;;:53;;;;;:13;;:53;;;;;;;:13;;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;12688:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12757:41:0;;;-1:-1:-1;;;;;12757:41:0;;;;;;;;-1:-1:-1;12757:41:0;;;;;;;-1:-1:-1;12757:41:0;12602:204;:::o;13291:254::-;7243:9;:7;:9::i;:::-;7235:54;;;;;-1:-1:-1;;;7235:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7235:54:0;;;;;;;;;;;;;;;13409:30;;;-1:-1:-1;;;13409:30:0;;13433:4;13409:30;;;;;;13376:6;;13358:10;;-1:-1:-1;;;;;13409:15:0;;;;;:30;;;;;;;;;;;;;;13358:10;13409:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13409:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13409:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13409:30:0;;-1:-1:-1;;;;;;13450:14:0;;;13465:7;:5;:7::i;:::-;13474;13450:32;;;;;;;;;;;;;-1:-1:-1;;;;;13450:32:0;-1:-1:-1;;;;;13450:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13450:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13450:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13520:7:0;;-1:-1:-1;13520:5:0;:7::i;:::-;-1:-1:-1;;;;;13498:39:0;13512:6;-1:-1:-1;;;;;13498:39:0;;13529:7;13498:39;;;;;;;;;;;;;;;;;;7300:1;;13291:254;:::o;8137:109::-;7243:9;:7;:9::i;:::-;7235:54;;;;;-1:-1:-1;;;7235:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7235:54:0;;;;;;;;;;;;;;;8210:28;8229:8;8210:18;:28::i;:::-;8137:109;:::o;10612:97::-;-1:-1:-1;10697:4:0;;10612:97::o;806:98::-;886:10;806:98;:::o;8352:229::-;-1:-1:-1;;;;;8426:22:0;;8418:73;;;;-1:-1:-1;;;8418:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8528:6;;;8507:38;;-1:-1:-1;;;;;8507:38:0;;;;8528:6;;;8507:38;;;8556:6;:17;;-1:-1:-1;;;;;;8556:17:0;-1:-1:-1;;;;;8556:17:0;;;;;;;;;;8352:229::o
Swarm Source
bzzr://f1bada600fdd6ebc4cadc7c525ae9ee041ed2a6e728a560d507536443b39ffaf
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.