Address Contract Partially Verified
Address
0xec67005c4E498Ec7f55E092bd1d35cbC47C91892
Balance
0 ETH
Nonce
1
Code Size
4844 bytes
Creator
0x0d580ae5...0adC at tx 0xaffb53cd...f53ec5
Indexed Transactions
1 (24,433,664 → 24,433,664)
Gas Used (indexed)
29,813
Contract Bytecode
4844 bytes
0x6080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302c3b436811461014d57806306fdde031461017d578063095ea7b3146102075780630ffa10151461024c57806318160ddd1461027357806323b872dd14610288578063313ce567146102bf57806339509351146102ea57806342966c681461031b5780635db532021461033357806370a082311461036157806379cc67901461038f5780637c5a7c2a146103c057806395d89b41146103d5578063a457c2d7146103ea578063a9059cbb1461041b578063b4eddb811461044c578063c04fcad814610461578063c551a2f914610476578063d5f394881461048b578063dd62ed3e146104c9578063e2c6d41c146104fd578063f0e0ae3e14610512578063f2c8fb5914610527578063fc2ab6f21461053c575b600080fd5b34801561015957600080fd5b5061017b73ffffffffffffffffffffffffffffffffffffffff60043516610551565b005b34801561018957600080fd5b50610192610628565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101cc5781810151838201526020016101b4565b50505050905090810190601f1680156101f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021357600080fd5b5061023873ffffffffffffffffffffffffffffffffffffffff600435166024356106dc565b604080519115158252519081900360200190f35b34801561025857600080fd5b50610261610774565b60408051918252519081900360200190f35b34801561027f57600080fd5b50610261610792565b34801561029457600080fd5b5061023873ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610798565b3480156102cb57600080fd5b506102d4610888565b6040805160ff9092168252519081900360200190f35b3480156102f657600080fd5b5061023873ffffffffffffffffffffffffffffffffffffffff60043516602435610891565b34801561032757600080fd5b5061017b600435610968565b34801561033f57600080fd5b5061017b73ffffffffffffffffffffffffffffffffffffffff60043516610975565b34801561036d57600080fd5b5061026173ffffffffffffffffffffffffffffffffffffffff60043516610ae8565b34801561039b57600080fd5b5061017b73ffffffffffffffffffffffffffffffffffffffff60043516602435610b10565b3480156103cc57600080fd5b50610261610b1e565b3480156103e157600080fd5b50610192610b26565b3480156103f657600080fd5b5061023873ffffffffffffffffffffffffffffffffffffffff60043516602435610ba5565b34801561042757600080fd5b5061023873ffffffffffffffffffffffffffffffffffffffff60043516602435610c0a565b34801561045857600080fd5b50610261610c20565b34801561046d57600080fd5b50610261610c26565b34801561048257600080fd5b5061017b610c41565b34801561049757600080fd5b506104a0610e29565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156104d557600080fd5b5061026173ffffffffffffffffffffffffffffffffffffffff60043581169060243516610e45565b34801561050957600080fd5b506104a0610e7d565b34801561051e57600080fd5b50610261610e9e565b34801561053357600080fd5b50610261610ea6565b34801561054857600080fd5b50610238610eb2565b600554610100900473ffffffffffffffffffffffffffffffffffffffff1633146105dc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4f6e6c7920636f756e63696c2063616e2063616c6c2074686973000000000000604482015290519081900360640190fd5b6005805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106d25780601f106106a7576101008083540402835291602001916106d2565b820191906000526020600020905b8154815290600101906020018083116106b557829003601f168201915b5050505050905090565b600073ffffffffffffffffffffffffffffffffffffffff8316151561070057600080fd5b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b61078f62049638670de0b6b3a764000063ffffffff610ed316565b81565b60025490565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602090815260408083203384529091528120546107d9908363ffffffff610f0c16565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600160209081526040808320338452909152902055610815848484610f23565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60055460ff1690565b600073ffffffffffffffffffffffffffffffffffffffff831615156108b557600080fd5b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091529020546108f6908363ffffffff61102416565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6109723382611036565b50565b60065473ffffffffffffffffffffffffffffffffffffffff1633146109fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f6e6c79206465706c6f7965722063616e2063616c6c20746869730000000000604482015290519081900360640190fd5b60065474010000000000000000000000000000000000000000900460ff1615610a8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f496e697469616c206d696e74696e6720616c726561647920636f6d706c657465604482015290519081900360640190fd5b600680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905561097281610ae3620e3b05670de0b6b3a764000063ffffffff610ed316565b611106565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610b1a82826111d7565b5050565b635c78760081565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106d25780601f106106a7576101008083540402835291602001916106d2565b600073ffffffffffffffffffffffffffffffffffffffff83161515610bc957600080fd5b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091529020546108f6908363ffffffff610f0c16565b6000610c17338484610f23565b50600192915050565b60075481565b61078f620e3b05670de0b6b3a764000063ffffffff610ed316565b600754421015610cd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f506c65617365207761697420756e74696c20616e20696e74657276616c20686160448201527f7320706173736564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b635c787600421015610d4b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f496e666c6174696f6e206973206e6f7420656e61626c65642079657400000000604482015290519081900360640190fd5b60065474010000000000000000000000000000000000000000900460ff161515610dd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f496e697469616c206d696e74696e67206e6f7420636f6d706c65746500000000604482015290519081900360640190fd5b600754610ded906301e1338063ffffffff61102416565b600755600554610e2790610100900473ffffffffffffffffffffffffffffffffffffffff16610ae362049638670de0b6b3a7640000610ed3565b565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b600554610100900473ffffffffffffffffffffffffffffffffffffffff1681565b6301e1338081565b670de0b6b3a764000081565b60065474010000000000000000000000000000000000000000900460ff1681565b600080831515610ee65760009150610f05565b50828202828482811515610ef657fe5b0414610f0157600080fd5b8091505b5092915050565b60008083831115610f1c57600080fd5b5050900390565b73ffffffffffffffffffffffffffffffffffffffff82161515610f4557600080fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054610f7b908263ffffffff610f0c16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054610fbd908263ffffffff61102416565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082820183811015610f0157600080fd5b73ffffffffffffffffffffffffffffffffffffffff8216151561105857600080fd5b60025461106b908263ffffffff610f0c16565b60025573ffffffffffffffffffffffffffffffffffffffff82166000908152602081905260409020546110a4908263ffffffff610f0c16565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216151561112857600080fd5b60025461113b908263ffffffff61102416565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054611174908263ffffffff61102416565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160209081526040808320338452909152902054611218908263ffffffff610f0c16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602090815260408083203384529091529020556112538282611036565b73ffffffffffffffffffffffffffffffffffffffff82166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350505600a165627a7a72305820432d2f15c46a3b9546f6495c005aaa585452e08bb1c067506e0968824c70d3480029
Verified Source Code Partial Match
Compiler: v0.4.24+commit.e67f0147
EVM: byzantium
Optimization: Yes (20000 runs)
Melon.sol 482 lines
// Verified using https://dapp.tools
// hevm: flattened sources of contracts/Melon.sol
pragma solidity ^0.4.24;
////// contracts/openzeppelin/IERC20.sol
/* pragma solidity ^0.4.24; */
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
*/
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address who) external view returns (uint256);
function allowance(address owner, address spender) external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
////// contracts/openzeppelin/SafeMath.sol
/* pragma solidity ^0.4.24; */
/**
* @title SafeMath
* @dev Math operations with safety checks that revert on error
*/
library SafeMath {
int256 constant private INT256_MIN = -2**255;
/**
* @dev Multiplies two unsigned integers, reverts on 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-solidity/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b);
return c;
}
/**
* @dev Multiplies two signed integers, reverts on overflow.
*/
function mul(int256 a, int256 b) internal pure returns (int256) {
// 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-solidity/pull/522
if (a == 0) {
return 0;
}
require(!(a == -1 && b == INT256_MIN)); // This is the only case of overflow not detected by the check below
int256 c = a * b;
require(c / a == b);
return c;
}
/**
* @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Integer division of two signed integers truncating the quotient, reverts on division by zero.
*/
function div(int256 a, int256 b) internal pure returns (int256) {
require(b != 0); // Solidity only automatically asserts when dividing by 0
require(!(b == -1 && a == INT256_MIN)); // This is the only case of overflow
int256 c = a / b;
return c;
}
/**
* @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
/**
* @dev Subtracts two signed integers, reverts on overflow.
*/
function sub(int256 a, int256 b) internal pure returns (int256) {
int256 c = a - b;
require((b >= 0 && c <= a) || (b < 0 && c > a));
return c;
}
/**
* @dev Adds two unsigned integers, reverts on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
/**
* @dev Adds two signed integers, reverts on overflow.
*/
function add(int256 a, int256 b) internal pure returns (int256) {
int256 c = a + b;
require((b >= 0 && c >= a) || (b < 0 && c < a));
return c;
}
/**
* @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
* reverts when dividing by zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0);
return a % b;
}
}
////// contracts/openzeppelin/ERC20.sol
/* pragma solidity ^0.4.24; */
/* import "./IERC20.sol"; */
/* import "./SafeMath.sol"; */
/**
* @title Standard ERC20 token
*
* @dev Implementation of the basic standard token.
* https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
* Originally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
*
* This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for
* all accounts just by listening to said events. Note that this isn't required by the specification, and other
* compliant implementations may not do it.
*/
contract ERC20 is IERC20 {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowed;
uint256 private _totalSupply;
/**
* @dev Total number of tokens in existence
*/
function totalSupply() public view returns (uint256) {
return _totalSupply;
}
/**
* @dev Gets the balance of the specified address.
* @param owner The address to query the balance of.
* @return An uint256 representing the amount owned by the passed address.
*/
function balanceOf(address owner) public view returns (uint256) {
return _balances[owner];
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param owner address The address which owns the funds.
* @param spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
*/
function allowance(address owner, address spender) public view returns (uint256) {
return _allowed[owner][spender];
}
/**
* @dev Transfer token for a specified address
* @param to The address to transfer to.
* @param value The amount to be transferred.
*/
function transfer(address to, uint256 value) public returns (bool) {
_transfer(msg.sender, to, value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
* Beware that changing an allowance with this method brings the risk that someone may use both the old
* and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
* race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
* @param spender The address which will spend the funds.
* @param value The amount of tokens to be spent.
*/
function approve(address spender, uint256 value) public returns (bool) {
require(spender != address(0));
_allowed[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
/**
* @dev Transfer tokens from one address to another.
* Note that while this function emits an Approval event, this is not required as per the specification,
* and other compliant implementations may not emit the event.
* @param from address The address which you want to send tokens from
* @param to address The address which you want to transfer to
* @param value uint256 the amount of tokens to be transferred
*/
function transferFrom(address from, address to, uint256 value) public returns (bool) {
_allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
_transfer(from, to, value);
emit Approval(from, msg.sender, _allowed[from][msg.sender]);
return true;
}
/**
* @dev Increase the amount of tokens that an owner allowed to a spender.
* approve should be called when allowed_[_spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* Emits an Approval event.
* @param spender The address which will spend the funds.
* @param addedValue The amount of tokens to increase the allowance by.
*/
function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
require(spender != address(0));
_allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue);
emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
return true;
}
/**
* @dev Decrease the amount of tokens that an owner allowed to a spender.
* approve should be called when allowed_[_spender] == 0. To decrement
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* Emits an Approval event.
* @param spender The address which will spend the funds.
* @param subtractedValue The amount of tokens to decrease the allowance by.
*/
function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
require(spender != address(0));
_allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue);
emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
return true;
}
/**
* @dev Transfer token for a specified addresses
* @param from The address to transfer from.
* @param to The address to transfer to.
* @param value The amount to be transferred.
*/
function _transfer(address from, address to, uint256 value) internal {
require(to != address(0));
_balances[from] = _balances[from].sub(value);
_balances[to] = _balances[to].add(value);
emit Transfer(from, to, value);
}
/**
* @dev Internal function that mints an amount of the token and assigns it to
* an account. This encapsulates the modification of balances such that the
* proper events are emitted.
* @param account The account that will receive the created tokens.
* @param value The amount that will be created.
*/
function _mint(address account, uint256 value) internal {
require(account != address(0));
_totalSupply = _totalSupply.add(value);
_balances[account] = _balances[account].add(value);
emit Transfer(address(0), account, value);
}
/**
* @dev Internal function that burns an amount of the token of a given
* account.
* @param account The account whose tokens will be burnt.
* @param value The amount that will be burnt.
*/
function _burn(address account, uint256 value) internal {
require(account != address(0));
_totalSupply = _totalSupply.sub(value);
_balances[account] = _balances[account].sub(value);
emit Transfer(account, address(0), value);
}
/**
* @dev Internal function that burns an amount of the token of a given
* account, deducting from the sender's allowance for said account. Uses the
* internal burn function.
* Emits an Approval event (reflecting the reduced allowance).
* @param account The account whose tokens will be burnt.
* @param value The amount that will be burnt.
*/
function _burnFrom(address account, uint256 value) internal {
_allowed[account][msg.sender] = _allowed[account][msg.sender].sub(value);
_burn(account, value);
emit Approval(account, msg.sender, _allowed[account][msg.sender]);
}
}
////// contracts/openzeppelin/ERC20Burnable.sol
/* pragma solidity ^0.4.24; */
/* import "./ERC20.sol"; */
/**
* @title Burnable Token
* @dev Token that can be irreversibly burned (destroyed).
*/
contract ERC20Burnable is ERC20 {
/**
* @dev Burns a specific amount of tokens.
* @param value The amount of token to be burned.
*/
function burn(uint256 value) public {
_burn(msg.sender, value);
}
/**
* @dev Burns a specific amount of tokens from the target address and decrements allowance
* @param from address The address which you want to send tokens from
* @param value uint256 The amount of token to be burned
*/
function burnFrom(address from, uint256 value) public {
_burnFrom(from, value);
}
}
////// contracts/openzeppelin/ERC20Detailed.sol
/* pragma solidity ^0.4.24; */
/* import "./IERC20.sol"; */
/**
* @title ERC20Detailed token
* @dev The decimals are only for visualization purposes.
* All the operations are done using the smallest and indivisible token unit,
* just as on Ethereum all the operations are done in wei.
*/
contract ERC20Detailed is IERC20 {
string private _name;
string private _symbol;
uint8 private _decimals;
constructor (string name, string symbol, uint8 decimals) public {
_name = name;
_symbol = symbol;
_decimals = decimals;
}
/**
* @return the name of the token.
*/
function name() public view returns (string) {
return _name;
}
/**
* @return the symbol of the token.
*/
function symbol() public view returns (string) {
return _symbol;
}
/**
* @return the number of decimals of the token.
*/
function decimals() public view returns (uint8) {
return _decimals;
}
}
////// contracts/Melon.sol
/* pragma solidity ^0.4.24; */
/* import "./openzeppelin/ERC20Burnable.sol"; */
/* import "./openzeppelin/ERC20Detailed.sol"; */
/* import "./openzeppelin/SafeMath.sol"; */
contract Melon is ERC20Burnable, ERC20Detailed {
using SafeMath for uint;
uint public constant BASE_UNITS = 10 ** 18;
uint public constant INFLATION_ENABLE_DATE = 1551398400;
uint public constant INITIAL_TOTAL_SUPPLY = uint(932613).mul(BASE_UNITS);
uint public constant YEARLY_MINTABLE_AMOUNT = uint(300600).mul(BASE_UNITS);
uint public constant MINTING_INTERVAL = 365 days;
address public council;
address public deployer;
bool public initialSupplyMinted;
uint public nextMinting = INFLATION_ENABLE_DATE;
modifier onlyDeployer {
require(msg.sender == deployer, "Only deployer can call this");
_;
}
modifier onlyCouncil {
require(msg.sender == council, "Only council can call this");
_;
}
modifier anIntervalHasPassed {
require(
block.timestamp >= uint(nextMinting),
"Please wait until an interval has passed"
);
_;
}
modifier inflationEnabled {
require(
block.timestamp >= INFLATION_ENABLE_DATE,
"Inflation is not enabled yet"
);
_;
}
constructor(
string _name,
string _symbol,
uint8 _decimals,
address _council
) public ERC20Detailed(_name, _symbol, _decimals) {
deployer = msg.sender;
council = _council;
}
function changeCouncil(address _newCouncil) public onlyCouncil {
council = _newCouncil;
}
function mintInitialSupply(address _initialReceiver) public onlyDeployer {
require(!initialSupplyMinted, "Initial minting already complete");
initialSupplyMinted = true;
_mint(_initialReceiver, INITIAL_TOTAL_SUPPLY);
}
function mintInflation() public anIntervalHasPassed inflationEnabled {
require(initialSupplyMinted, "Initial minting not complete");
nextMinting = uint(nextMinting).add(MINTING_INTERVAL);
_mint(council, YEARLY_MINTABLE_AMOUNT);
}
}
Read Contract
BASE_UNITS 0xf2c8fb59 → uint256
INFLATION_ENABLE_DATE 0x7c5a7c2a → uint256
INITIAL_TOTAL_SUPPLY 0xc04fcad8 → uint256
MINTING_INTERVAL 0xf0e0ae3e → uint256
YEARLY_MINTABLE_AMOUNT 0x0ffa1015 → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
council 0xe2c6d41c → address
decimals 0x313ce567 → uint8
deployer 0xd5f39488 → address
initialSupplyMinted 0xfc2ab6f2 → bool
name 0x06fdde03 → string
nextMinting 0xb4eddb81 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 10 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 value
returns: bool
burn 0x42966c68
uint256 value
burnFrom 0x79cc6790
address from
uint256 value
changeCouncil 0x02c3b436
address _newCouncil
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
mintInflation 0xc551a2f9
No parameters
mintInitialSupply 0x5db53202
address _initialReceiver
transfer 0xa9059cbb
address to
uint256 value
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 value
returns: bool
Top Interactions
| Address | Txns | Sent | Received |
|---|---|---|---|
| 0xA8A7D147...25fe | 1 | 1 |
Token Balances (1)
View Transfers →Recent Transactions
|
| Hash | Block | Age | From/To | Value | |
|---|---|---|---|---|---|
| 0x08b1ff5a...b67362 | 24,433,664 | IN | 0xA8A7D147...25fe | 0 ETH |