Monolith TKN
ERC20
This contract is an ERC20 token.
Name
Monolith TKN
Symbol
TKN
Decimals
8
Total Supply
39,406,760 TKN
About link description
Monolith (TKN) is a cryptocurrency and operates on the Ethereum platform. Monolith has a current supply of 39,406,759.9283204 with 33,209,550.71604419 in circulation. The last known price of Monolith is 0.15386154 USD and is down -1.07 over the last 24 hours. It is currently trading on 4 active market(s) with $3,503.68 traded over the last 24 hours. More information can be found at https://monolith.xyz/.
Stats
Public Functions
26
Event Types
3
Code Size
10,000 bytes
Constants (1) keyboard_arrow_up
State Variables (20) keyboard_arrow_up
Functions
changeOwner keyboard_arrow_up
acceptOwnership keyboard_arrow_up
Launch keyboard_arrow_up
setOwnerFreeDay keyboard_arrow_up
totalSupply keyboard_arrow_up
setRemainders keyboard_arrow_up
finalizeRemainders keyboard_arrow_up
setController keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function setController(address _controller) onlyOwner {
controller = _controller;
}
claimOwnerSupply keyboard_arrow_up
Parameters help
This function has no parameters.
Modifiers help
onlyOwner checks for the following:
Requirements help
Source Code
function claimOwnerSupply() onlyOwner {
if (now < ownerTokensFreeDay) throw;
if (remainingOwner == 0) throw;
if (!remaindersSet) throw; // must finalize remainders
balanceOf[owner] = safeAdd(balanceOf[owner], remainingOwner);
remainingOwner = 0;
}
claimAuctionableTokens keyboard_arrow_up
Modifiers help
onlyController checks for the following:
Requirements help
Source Code
function claimAuctionableTokens(uint256 amount) onlyController {
if (amount > remainingAuctionable) throw;
balanceOf[controller] = safeAdd(balanceOf[controller], amount);
currentSupply = safeAdd(currentSupply, amount);
remainingAuctionable = safeSub(remainingAuctionable, amount);
Transfer(0, controller, amount);
}
mint keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
onlyPayloadSize checks for the following:
Requirements help
Source Code
function mint(address addr, uint256 amount) onlyOwner onlyPayloadSize(2) {
if (mintingDone) throw;
balanceOf[addr] = safeAdd(balanceOf[addr], amount);
currentSupply = safeAdd(currentSupply, amount);
Transfer(0, addr, amount);
}
multiMint keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Requirements help
Source Code
function multiMint(uint256[] data) onlyOwner {
if (mintingDone) throw;
uint256 supplyAdd;
for (uint256 i = 0; i < data.length; i++) {
address addr = address(data[i] & (D160 - 1));
uint256 amount = data[i] / D160;
balanceOf[addr] += amount;
supplyAdd += amount;
Transfer(0, addr, amount);
}
currentSupply += supplyAdd;
}
completeMinting keyboard_arrow_up
transfer keyboard_arrow_up
Modifiers help
isLaunched checks for the following:
notPaused checks for the following:
onlyPayloadSize checks for the following:
Source Code
function transfer(address _to, uint256 _value)
isLaunched
notPaused
onlyPayloadSize(2)
returns (bool success)
{
if (balanceOf[msg.sender] < _value) return false;
if (_to == 0x0) return false;
balanceOf[msg.sender] = safeSub(balanceOf[msg.sender], _value);
balanceOf[_to] = safeAdd(balanceOf[_to], _value);
Transfer(msg.sender, _to, _value);
return true;
}
transferFrom keyboard_arrow_up
Modifiers help
isLaunched checks for the following:
notPaused checks for the following:
onlyPayloadSize checks for the following:
Source Code
function transferFrom(
address _from,
address _to,
uint256 _value
) isLaunched notPaused onlyPayloadSize(3) returns (bool success) {
if (_to == 0x0) return false;
if (balanceOf[_from] < _value) return false;
var allowed = allowance[_from][msg.sender];
if (allowed < _value) return false;
balanceOf[_to] = safeAdd(balanceOf[_to], _value);
balanceOf[_from] = safeSub(balanceOf[_from], _value);
allowance[_from][msg.sender] = safeSub(allowed, _value);
Transfer(_from, _to, _value);
return true;
}
approve keyboard_arrow_up
Modifiers help
onlyPayloadSize checks for the following:
Source Code
function approve(address _spender, uint256 _value)
onlyPayloadSize(2)
returns (bool success)
{
//require user to set to zero before resetting to nonzero
if ((_value != 0) && (allowance[msg.sender][_spender] != 0)) {
return false;
}
allowance[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
increaseApproval keyboard_arrow_up
Modifiers help
onlyPayloadSize checks for the following:
Source Code
function increaseApproval(address _spender, uint256 _addedValue)
onlyPayloadSize(2)
returns (bool success)
{
uint256 oldValue = allowance[msg.sender][_spender];
allowance[msg.sender][_spender] = safeAdd(oldValue, _addedValue);
Approval(msg.sender, _spender, allowance[msg.sender][_spender]);
return true;
}
decreaseApproval keyboard_arrow_up
Modifiers help
onlyPayloadSize checks for the following:
Source Code
function decreaseApproval(address _spender, uint256 _subtractedValue)
onlyPayloadSize(2)
returns (bool success)
{
uint256 oldValue = allowance[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowance[msg.sender][_spender] = 0;
} else {
allowance[msg.sender][_spender] = safeSub(oldValue, _subtractedValue);
}
Approval(msg.sender, _spender, allowance[msg.sender][_spender]);
return true;
}
approveAndCall keyboard_arrow_up
Source Code
function approveAndCall(
address _spender,
uint256 _amount,
bytes _extraData
) returns (bool success) {
if (!approve(_spender, _amount)) throw;
ApproveAndCallFallBack(_spender).receiveApproval(
msg.sender,
_amount,
this,
_extraData
);
return true;
}
lockTokenHolder keyboard_arrow_up
setTokenHolder keyboard_arrow_up
burn keyboard_arrow_up
Source Code
function burn(uint256 _amount) notPaused returns (bool result) {
if (_amount > balanceOf[msg.sender]) return false;
balanceOf[msg.sender] = safeSub(balanceOf[msg.sender], _amount);
currentSupply = safeSub(currentSupply, _amount);
result = tokenholder.burn(msg.sender, _amount);
if (!result) throw;
Transfer(msg.sender, 0, _amount);
}
claimTokens keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function claimTokens(address _token) onlyOwner {
if (_token == 0x0) {
owner.transfer(this.balance);
return;
}
Token token = Token(_token);
uint256 balance = token.balanceOf(this);
token.transfer(owner, balance);
logTokenTransfer(_token, owner, balance);
}
pause keyboard_arrow_up
unpause keyboard_arrow_up
neverPauseAgain keyboard_arrow_up
Internal Functions
Internal functions are parts of the contract that can't be used directly, but instead are used by the public functions listed above.
internal SafeMath.safeMul keyboard_arrow_up
Requirements help
Source Code
function safeMul(uint256 a, uint256 b) internal returns (uint256) {
uint256 c = a * b;
assert(a == 0 || c / a == b);
return c;
}
internal SafeMath.safeSub keyboard_arrow_up
internal SafeMath.safeAdd keyboard_arrow_up
Source Code
function safeAdd(uint256 a, uint256 b) internal returns (uint256) {
uint256 c = a + b;
assert(c >= a && c >= b);
return c;
}