Blockwell

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

Events (3) keyboard_arrow_up

Approval Event

Parameters help
owner
address help
spender
address help
value
uint help

Transfer Event

Parameters help
from
address help
to
address help
value
uint help

logTokenTransfer Event

Parameters help
token
address help
to
address help
amount
uint help

D160 Constant

uint help
0x0010000000000000000000000000000000000000000

currentSupply Variable

uint help

remainingOwner Variable

uint help

remainingAuctionable Variable

uint help

ownerTokensFreeDay Variable

uint help

launched Variable

bool help

remaindersSet Variable

bool help

mintingDone Variable

bool help

controller Variable

address help

name Variable

string help

decimals Variable

uint8 help

symbol Variable

string help

tokenholder Variable

address help

lockedTokenHolder Variable

bool help

pausingMechanismLocked Variable

bool help

paused Variable

bool help

owner Variable

address help

balanceOf Variable

mapping(address => uint) help

allowance Variable

mapping(address => mapping(address => uint)) help
Internal Variable

newOwner Variable

address help
Internal Variable

DECIMALS Variable

uint help
Internal Variable

Functions Expand All Collapse All

changeOwner keyboard_arrow_up

Parameters help

Name Type
_newOwner
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function changeOwner(address _newOwner) onlyOwner {
  newOwner = _newOwner;
}

acceptOwnership keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function acceptOwnership() {
  if (msg.sender == newOwner) {
    owner = newOwner;
  }
}

Launch keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function Launch() onlyOwner {
  launched = true;
}

setOwnerFreeDay keyboard_arrow_up

Parameters help

Name Type
day
uint help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function setOwnerFreeDay(uint256 day) onlyOwner {
  if (ownerTokensFreeDay != 0) throw;

  ownerTokensFreeDay = day;
}

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help constant
Source Code
function totalSupply() constant returns (uint256) {
  return currentSupply + remainingOwner;
}

setRemainders keyboard_arrow_up

Parameters help

Name Type
_remainingOwner
uint help
_remainingAuctionable
uint help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function setRemainders(uint256 _remainingOwner, uint256 _remainingAuctionable)
  onlyOwner
{
  if (remaindersSet) {
    throw;
  }

  remainingOwner = _remainingOwner;
  remainingAuctionable = _remainingAuctionable;
}

finalizeRemainders keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function finalizeRemainders() onlyOwner {
  remaindersSet = true;
}

setController keyboard_arrow_up

Parameters help

Name Type
_controller
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function setController(address _controller) onlyOwner {
  controller = _controller;
}

claimOwnerSupply keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
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

Parameters help

Name Type
amount
uint help

Properties

Visibility help public
Mutability help transaction
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

Parameters help

Name Type
addr
address help
amount
uint help

Properties

Visibility help public
Mutability help transaction

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

Parameters help

Name Type
data
uint[] help

Properties

Visibility help public
Mutability help transaction

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

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function completeMinting() onlyOwner {
  mintingDone = true;
}

Parameters help

Name Type
_to
address help
_value
uint help

Properties

Visibility help public
Mutability help transaction
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;
}

Parameters help

Name Type
_from
address help
_to
address help
_value
uint help

Properties

Visibility help public
Mutability help transaction
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;
}

Parameters help

Name Type
_spender
address help
_value
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

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

Parameters help

Name Type
_spender
address help
_addedValue
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

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

Parameters help

Name Type
_spender
address help
_subtractedValue
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

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

Parameters help

Name Type
_spender
address help
_amount
uint256 help
_extraData
bytes help

Properties

Visibility help public
Mutability help transaction
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

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function lockTokenHolder() onlyOwner {
  lockedTokenHolder = true;
}

setTokenHolder keyboard_arrow_up

Parameters help

Name Type
_th
address help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function setTokenHolder(address _th) onlyOwner {
  if (lockedTokenHolder) throw;
  tokenholder = TokenHolder(_th);
}

burn keyboard_arrow_up

Parameters help

Name Type
_amount
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

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

Parameters help

Name Type
_token
address help

Properties

Visibility help public
Mutability help transaction
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

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function pause() onlyOwner {
  if (pausingMechanismLocked) throw;
  paused = true;
}

unpause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function unpause() onlyOwner {
  if (pausingMechanismLocked) throw;
  paused = false;
}

neverPauseAgain keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function neverPauseAgain() onlyOwner {
  pausingMechanismLocked = true;
}

Internal Functions Expand All Collapse All

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

Parameters help

Name Type
a
uint help
b
uint help

Properties

Visibility help internal
Mutability help transaction
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

Parameters help

Name Type
a
uint help
b
uint help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function safeSub(uint256 a, uint256 b) internal returns (uint256) {
  assert(b <= a);
  return a - b;
}

internal SafeMath.safeAdd keyboard_arrow_up

Parameters help

Name Type
a
uint help
b
uint help

Properties

Visibility help internal
Mutability help transaction
Source Code
function safeAdd(uint256 a, uint256 b) internal returns (uint256) {
  uint256 c = a + b;
  assert(c >= a && c >= b);
  return c;
}

internal SafeMath.assert keyboard_arrow_up

Parameters help

Name Type
assertion
bool help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function assert(bool assertion) internal {
  if (!assertion) throw;
}