Blockwell

Blackmoon Crypto Token

ERC20

This contract is an ERC20 token.

Name Blackmoon Crypto Token
Symbol BMC
Decimals 8
Total Supply 60,000,000 BMC

About link description

Blackmoon (BMC) is a cryptocurrency and operates on the Ethereum platform. Blackmoon has a current supply of 60,000,000 with 54,000,000 in circulation. The last known price of Blackmoon is 0.02000695 USD and is down -8.34 over the last 24 hours. It is currently trading on 3 active market(s) with $0.60 traded over the last 24 hours. More information can be found at https://www.blackmoon.net.

Stats

Public Functions 28
Event Types 3
Code Size 16,677 bytes

Events (3) keyboard_arrow_up

Approval Event

Parameters help
from
address help
spender
address help
value
uint256 help

Transfer Event

Parameters help
from
address help
to
address help
value
uint256 help

UpgradeProposal Event

Parameters help
newVersion
address help

OK Constant

uint help
1

UPGRADE_FREEZE_TIME Constant

uint help
3 days

bmcPlatform Variable

address help

smbl Variable

bytes32 help

name Variable

string help

symbol Variable

string help

symbol Variable

string help

latestVersion Variable

address help
Internal Variable

pendingVersion Variable

address help
Internal Variable

pendingVersionTimestamp Variable

uint help
Internal Variable

userOptOutVersion Variable

mapping(address => address) help
Internal Variable

Functions Expand All Collapse All

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help constant
Source Code
function totalSupply() constant returns (uint256) {
  return bmcPlatform.totalSupply(smbl);
}

Parameters help

Name Type
_owner
address help

Properties

Visibility help public
Mutability help constant
Source Code
function balanceOf(address _owner) constant returns (uint256) {
  return bmcPlatform.balanceOf(_owner, smbl);
}

Parameters help

Name Type
_to
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
function transfer(address _to, uint256 _value) returns (bool success);

Parameters help

Name Type
_from
address help
_to
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
function transferFrom(
  address _from,
  address _to,
  uint256 _value
) returns (bool success);

Parameters help

Name Type
_spender
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
function approve(address _spender, uint256 _value) returns (bool success);

Parameters help

Name Type
_from
address help
_spender
address help

Properties

Visibility help public
Mutability help constant
Source Code
function allowance(address _from, address _spender) constant returns (uint256) {
  return bmcPlatform.allowance(_from, _spender, smbl);
}

init keyboard_arrow_up

Parameters help

Name Type
_bmcPlatform
BMCPlatform help
_symbol
string help
_name
string help

Properties

Visibility help public
Mutability help transaction
Source Code
function init(
  BMCPlatform _bmcPlatform,
  string _symbol,
  string _name
) returns (bool) {
  if (address(bmcPlatform) != 0x0) {
    return false;
  }
  bmcPlatform = _bmcPlatform;
  symbol = _symbol;
  smbl = stringToBytes32(_symbol);
  name = _name;
  return true;
}

stringToBytes32 keyboard_arrow_up

Parameters help

Name Type
source
string help

Properties

Visibility help public
Mutability help transaction
Source Code
function stringToBytes32(string memory source) returns (bytes32 result) {
  assembly {
    result := mload(add(source, 32))
  }
}

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help constant
Source Code
function decimals() constant returns (uint8) {
  return bmcPlatform.baseUnit(smbl);
}

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) returns (bool) {
  if (_to != 0x0) {
    return _transferWithReference(_to, _value, "");
  } else {
    return false;
  }
}

transferWithReference keyboard_arrow_up

Parameters help

Name Type
_to
address help
_value
uint help
_reference
string help

Properties

Visibility help public
Mutability help transaction
Source Code
function transferWithReference(
  address _to,
  uint256 _value,
  string _reference
) returns (bool) {
  if (_to != 0x0) {
    return _transferWithReference(_to, _value, _reference);
  } else {
    return false;
  }
}

__transferWithReference keyboard_arrow_up

Parameters help

Name Type
_to
address help
_value
uint help
_reference
string help
_sender
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyAccess checks for the following:
Source Code
function __transferWithReference(
  address _to,
  uint256 _value,
  string _reference,
  address _sender
) onlyAccess(_sender) returns (bool) {
  return
    bmcPlatform.proxyTransferWithReference(
      _to,
      _value,
      smbl,
      _reference,
      _sender
    ) == OK;
}

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
) returns (bool) {
  if (_to != 0x0) {
    return
      _getAsset().__transferFromWithReference(
        _from,
        _to,
        _value,
        "",
        msg.sender
      );
  } else {
    return false;
  }
}

__transferFromWithReference keyboard_arrow_up

Parameters help

Name Type
_from
address help
_to
address help
_value
uint help
_reference
string help
_sender
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyAccess checks for the following:
Source Code
function __transferFromWithReference(
  address _from,
  address _to,
  uint256 _value,
  string _reference,
  address _sender
) onlyAccess(_sender) returns (bool) {
  return
    bmcPlatform.proxyTransferFromWithReference(
      _from,
      _to,
      _value,
      smbl,
      _reference,
      _sender
    ) == OK;
}

Parameters help

Name Type
_spender
address help
_value
uint help

Properties

Visibility help public
Mutability help transaction
Source Code
function approve(address _spender, uint256 _value) returns (bool) {
  if (_spender != 0x0) {
    return _getAsset().__approve(_spender, _value, msg.sender);
  } else {
    return false;
  }
}

__approve keyboard_arrow_up

Parameters help

Name Type
_spender
address help
_value
uint help
_sender
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyAccess checks for the following:
Source Code
function __approve(
  address _spender,
  uint256 _value,
  address _sender
) onlyAccess(_sender) returns (bool) {
  return bmcPlatform.proxyApprove(_spender, _value, smbl, _sender) == OK;
}

emitTransfer keyboard_arrow_up

Parameters help

Name Type
_from
address help
_to
address help
_value
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyBMCPlatform checks for the following:
Source Code
function emitTransfer(
  address _from,
  address _to,
  uint256 _value
) onlyBMCPlatform() {
  Transfer(_from, _to, _value);
}

emitApprove keyboard_arrow_up

Parameters help

Name Type
_from
address help
_spender
address help
_value
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyBMCPlatform checks for the following:
Source Code
function emitApprove(
  address _from,
  address _spender,
  uint256 _value
) onlyBMCPlatform() {
  Approval(_from, _spender, _value);
}

constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help payable
Source Code
function() payable {
  _getAsset().__process.value(msg.value)(msg.data, msg.sender);
}

getVersionFor keyboard_arrow_up

Parameters help

Name Type
_sender
address help

Properties

Visibility help public
Mutability help constant
Source Code
function getVersionFor(address _sender) constant returns (address) {
  return
    userOptOutVersion[_sender] == 0
      ? latestVersion
      : userOptOutVersion[_sender];
}

getLatestVersion keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help constant
Source Code
function getLatestVersion() constant returns (address) {
  return latestVersion;
}

getPendingVersion keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help constant
Source Code
function getPendingVersion() constant returns (address) {
  return pendingVersion;
}

getPendingVersionTimestamp keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help constant
Source Code
function getPendingVersionTimestamp() constant returns (uint256) {
  return pendingVersionTimestamp;
}

proposeUpgrade keyboard_arrow_up

Parameters help

Name Type
_newVersion
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyAssetOwner checks for the following:
Source Code
function proposeUpgrade(address _newVersion) onlyAssetOwner() returns (bool) {
  // Should not already be in the upgrading process.
  if (pendingVersion != 0x0) {
    return false;
  }
  // New version address should be other than 0x0.
  if (_newVersion == 0x0) {
    return false;
  }
  // Don't apply freeze-time for the initial setup.
  if (latestVersion == 0x0) {
    latestVersion = _newVersion;
    return true;
  }
  pendingVersion = _newVersion;
  pendingVersionTimestamp = now;
  UpgradeProposal(_newVersion);
  return true;
}

purgeUpgrade keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyAssetOwner checks for the following:
Source Code
function purgeUpgrade() onlyAssetOwner() returns (bool) {
  if (pendingVersion == 0x0) {
    return false;
  }
  delete pendingVersion;
  delete pendingVersionTimestamp;
  return true;
}

commitUpgrade keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function commitUpgrade() returns (bool) {
  if (pendingVersion == 0x0) {
    return false;
  }
  if (pendingVersionTimestamp + UPGRADE_FREEZE_TIME > now) {
    return false;
  }
  latestVersion = pendingVersion;
  delete pendingVersion;
  delete pendingVersionTimestamp;
  return true;
}

optOut keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function optOut() returns (bool) {
  if (userOptOutVersion[msg.sender] != 0x0) {
    return false;
  }
  userOptOutVersion[msg.sender] = latestVersion;
  return true;
}

optIn keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function optIn() returns (bool) {
  delete userOptOutVersion[msg.sender];
  return 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 BMCAssetProxy._getAsset keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction
Source Code
function _getAsset() internal returns (BMCAsset) {
  return BMCAsset(getVersionFor(msg.sender));
}

internal BMCAssetProxy._transferWithReference keyboard_arrow_up

Parameters help

Name Type
_to
address help
_value
uint help
_reference
string help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _transferWithReference(
  address _to,
  uint256 _value,
  string _reference
) internal returns (bool) {
  return
    _getAsset().__transferWithReference(_to, _value, _reference, msg.sender);
}