Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 10699390 | 1428 days ago | IN | Create: ANTController | 0 ETH | 0.04813401 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
10749833 | 1420 days ago | 0 ETH |
Loading...
Loading
Contract Name:
ANTController
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-08-20 */ // Sources flattened with buidler v1.4.3 https://buidler.dev // File contracts/interfaces/IMiniMeLike.sol pragma solidity ^0.5.0; /** * @dev A sparse MiniMe-like interface containing just `generateTokens()`. */ interface IMiniMeLike { /** * @notice Generates `_amount` tokens that are assigned to `_owner` * @param _owner The address that will be assigned the new tokens * @param _amount The quantity of tokens generated * @return True if the tokens are generated correctly */ function generateTokens(address _owner, uint _amount) external returns (bool); } // File contracts/interfaces/ITokenController.sol pragma solidity ^0.5.0; /** * @dev The MiniMe token controller contract must implement these functions * ANT was compiled with solc 0.4.8, so there is no point in marking any of the functions as `view`. */ interface ITokenController { /** * @notice Called when `_owner` sends ether to the MiniMe Token contract * @param _owner The address that sent the ether to create tokens * @return True if the ether is accepted, false if it throws */ function proxyPayment(address _owner) external payable returns (bool); /** * @notice Notifies the controller about a token transfer allowing the controller to react if desired * @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) external returns (bool); /** * @notice Notifies the controller about an approval allowing the controller to react if desired * @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) external returns (bool); } // File contracts/ANTController.sol pragma solidity 0.5.17; contract ANTController is ITokenController { string private constant ERROR_NOT_MINTER = "ANTC_SENDER_NOT_MINTER"; string private constant ERROR_NOT_ANT = "ANTC_SENDER_NOT_ANT"; IMiniMeLike public ant; address public minter; event ChangedMinter(address indexed minter); /** * @dev Ensure the msg.sender is the minter */ modifier onlyMinter { require(msg.sender == minter, ERROR_NOT_MINTER); _; } constructor(IMiniMeLike _ant, address _minter) public { ant = _ant; _changeMinter(_minter); } /** * @notice Generate ANT for a specified address * @dev Note that failure to generate the requested tokens will result in a revert * @param _owner Address to receive ANT * @param _amount Amount to generate * @return True if the tokens are generated correctly */ function generateTokens(address _owner, uint256 _amount) external onlyMinter returns (bool) { return ant.generateTokens(_owner, _amount); } /** * @notice Change the permitted minter to another address * @param _newMinter Address that will be permitted to mint ANT */ function changeMinter(address _newMinter) external onlyMinter { _changeMinter(_newMinter); } // Default ITokenController settings for allowing token transfers. // ANT was compiled with solc 0.4.8, so there is no point in marking any of these functions as `view`: // - The original interface does not specify these as `constant` // - ANT does not use a `staticcall` when calling into these functions /** * @dev Callback function called from MiniMe-like instances when ETH is sent into the token contract * It allows specifying a custom logic to control if the ETH should be accepted or not * @return Always false, this controller does not permit the ANT contract to receive ETH transfers */ function proxyPayment(address /* _owner */) external payable returns (bool) { // We only apply this extra check here to ensure `proxyPayment()` cannot be sent ETH from arbitrary addresses require(msg.sender == address(ant), ERROR_NOT_ANT); return false; } /** * @dev Callback function called from MiniMe-like instances when an ERC20 transfer is requested * It allows specifying a custom logic to control if a transfer should be allowed or not * @return Always true, this controller allows all transfers */ function onTransfer(address /* _from */, address /* _to */, uint /* _amount */) external returns (bool) { return true; } /** * @dev Callback function called from MiniMe-like instances when an ERC20 approval is requested * It allows specifying a custom logic to control if an approval should be allowed or not * @return Always true, this controller allows all approvals */ function onApprove(address /* _owner */, address /* _spender */, uint /* _amount */) external returns (bool) { return true; } // Internal fns function _changeMinter(address _newMinter) internal { minter = _newMinter; emit ChangedMinter(_newMinter); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IMiniMeLike","name":"_ant","type":"address"},{"internalType":"address","name":"_minter","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"}],"name":"ChangedMinter","type":"event"},{"constant":true,"inputs":[],"name":"ant","outputs":[{"internalType":"contract IMiniMeLike","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newMinter","type":"address"}],"name":"changeMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"generateTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"onApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"onTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"proxyPayment","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516106b43803806106b48339818101604052604081101561003357600080fd5b508051602090910151600080546001600160a01b0319166001600160a01b03841617905561006081610067565b50506100b1565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f1c2b90e18b29b5d98d86b1c047d9812425c013a77295f1565720161bacb0332a90600090a250565b6105f4806100c06000396000f3fe6080604052600436106100705760003560e01c8063827f32c01161004e578063827f32c01461015957806398a835161461019f578063da682aeb146100f5578063f48c3054146101b457610070565b806307546172146100755780632c4d4d18146100b35780634a393149146100f5575b600080fd5b34801561008157600080fd5b5061008a6101e7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100bf57600080fd5b506100f3600480360360208110156100d657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610203565b005b34801561010157600080fd5b506101456004803603606081101561011857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610302565b604080519115158252519081900360200190f35b34801561016557600080fd5b506101456004803603604081101561017c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561030b565b3480156101ab57600080fd5b5061008a610475565b610145600480360360208110156101ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610491565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015460408051808201909152601681527f414e54435f53454e4445525f4e4f545f4d494e5445520000000000000000000060208201529073ffffffffffffffffffffffffffffffffffffffff1633146102f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102ba5781810151838201526020016102a2565b50505050905090810190601f1680156102e75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506102ff81610550565b50565b60019392505050565b60015460408051808201909152601681527f414e54435f53454e4445525f4e4f545f4d494e54455200000000000000000000602082015260009173ffffffffffffffffffffffffffffffffffffffff1633146103c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156102ba5781810151838201526020016102a2565b5060008054604080517f827f32c000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152602482018790529151919092169263827f32c092604480820193602093909283900390910190829087803b15801561044257600080fd5b505af1158015610456573d6000803e3d6000fd5b505050506040513d602081101561046c57600080fd5b50519392505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6000805460408051808201909152601381527f414e54435f53454e4445525f4e4f545f414e540000000000000000000000000060208201529073ffffffffffffffffffffffffffffffffffffffff163314610547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156102ba5781810151838201526020016102a2565b50600092915050565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f1c2b90e18b29b5d98d86b1c047d9812425c013a77295f1565720161bacb0332a90600090a25056fea265627a7a723158206d64f7ca8dc75e204cb471ac35210abb6b890af8b172b120f6468a7657e6ecac64736f6c63430005110032000000000000000000000000960b236a07cf122663c4303350609a66a7b288c0000000000000000000000000beefbeef03c7e5a1c29e0aa675f8e16aee0a5fad
Deployed Bytecode
0x6080604052600436106100705760003560e01c8063827f32c01161004e578063827f32c01461015957806398a835161461019f578063da682aeb146100f5578063f48c3054146101b457610070565b806307546172146100755780632c4d4d18146100b35780634a393149146100f5575b600080fd5b34801561008157600080fd5b5061008a6101e7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100bf57600080fd5b506100f3600480360360208110156100d657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610203565b005b34801561010157600080fd5b506101456004803603606081101561011857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610302565b604080519115158252519081900360200190f35b34801561016557600080fd5b506101456004803603604081101561017c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561030b565b3480156101ab57600080fd5b5061008a610475565b610145600480360360208110156101ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610491565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015460408051808201909152601681527f414e54435f53454e4445525f4e4f545f4d494e5445520000000000000000000060208201529073ffffffffffffffffffffffffffffffffffffffff1633146102f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102ba5781810151838201526020016102a2565b50505050905090810190601f1680156102e75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506102ff81610550565b50565b60019392505050565b60015460408051808201909152601681527f414e54435f53454e4445525f4e4f545f4d494e54455200000000000000000000602082015260009173ffffffffffffffffffffffffffffffffffffffff1633146103c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156102ba5781810151838201526020016102a2565b5060008054604080517f827f32c000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152602482018790529151919092169263827f32c092604480820193602093909283900390910190829087803b15801561044257600080fd5b505af1158015610456573d6000803e3d6000fd5b505050506040513d602081101561046c57600080fd5b50519392505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6000805460408051808201909152601381527f414e54435f53454e4445525f4e4f545f414e540000000000000000000000000060208201529073ffffffffffffffffffffffffffffffffffffffff163314610547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156102ba5781810151838201526020016102a2565b50600092915050565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f1c2b90e18b29b5d98d86b1c047d9812425c013a77295f1565720161bacb0332a90600090a25056fea265627a7a723158206d64f7ca8dc75e204cb471ac35210abb6b890af8b172b120f6468a7657e6ecac64736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000960b236a07cf122663c4303350609a66a7b288c0000000000000000000000000beefbeef03c7e5a1c29e0aa675f8e16aee0a5fad
-----Decoded View---------------
Arg [0] : _ant (address): 0x960b236A07cf122663c4303350609A66A7B288C0
Arg [1] : _minter (address): 0xbEEFbEeF03c7E5a1C29E0Aa675f8E16AEe0A5FAd
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000960b236a07cf122663c4303350609a66a7b288c0
Arg [1] : 000000000000000000000000beefbeef03c7e5a1c29e0aa675f8e16aee0a5fad
Deployed Bytecode Sourcemap
2203:3276:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2426:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2426:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3410:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3410:106:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3410:106:0;;;;:::i;:::-;;4752:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4752:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4752:134:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3102:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3102:153:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3102:153:0;;;;;;;;;:::i;2397:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2397:22:0;;;:::i;4177:287::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4177:287:0;;;;:::i;2426:21::-;;;;;;:::o;3410:106::-;2626:6;;2634:16;;;;;;;;;;;;;;;;;;2626:6;;2612:10;:20;2604:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2604:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3483:25;3497:10;3483:13;:25::i;:::-;3410:106;:::o;4752:134::-;4874:4;4752:134;;;;;:::o;3102:153::-;2626:6;;2634:16;;;;;;;;;;;;;;;;;-1:-1:-1;;2626:6:0;;2612:10;:20;2604:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;2604:47:0;-1:-1:-1;3212:3:0;;;:35;;;;;;:3;:35;;;;;;;;;;;;;;;:3;;;;;:18;;:35;;;;;;;;;;;;;;;;;;:3;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;3212:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3212:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3212:35:0;;3102:153;-1:-1:-1;;;3102:153:0:o;2397:22::-;;;;;;:::o;4177:287::-;4247:4;4413:3;;4419:13;;;;;;;;;;;;;;;;;;4413:3;;4391:10;:26;4383:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;4383:50:0;-1:-1:-1;4451:5:0;;4177:287;-1:-1:-1;;4177:287:0:o;5345:131::-;5408:6;:19;;;;;;;;;;;;;5443:25;;;;-1:-1:-1;;5443:25:0;5345:131;:::o
Swarm Source
bzzr://6d64f7ca8dc75e204cb471ac35210abb6b890af8b172b120f6468a7657e6ecac
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.