Levolution.io Token
ERC20
This contract is an ERC20 token.
Name
Levolution.io Token
Symbol
LEVL
Decimals
18
Total Supply
311,000,000 LEVL
About link description
Levolution (LEVL) is a cryptocurrency and operates on the Ethereum platform. Levolution has a current supply of 311,000,000 with 97,672,740.8369212 in circulation. The last known price of Levolution is 0.09907973 USD and is down -0.89 over the last 24 hours. It is currently trading on 4 active market(s) with $164,378.46 traded over the last 24 hours. More information can be found at https://levolution.io/.
Stats
Public Functions
29
Event Types
8
Code Size
24,633 bytes
Library Use
Uses ECDSA for bytes32.
Uses SafeMath for uint256.
Events (8) keyboard_arrow_up
State Variables (10) keyboard_arrow_up
Functions
owner keyboard_arrow_up
isOwner keyboard_arrow_up
renounceOwnership keyboard_arrow_up
transferOwnership keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
null
Source Code
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
totalSupply keyboard_arrow_up
balanceOf keyboard_arrow_up
allowance keyboard_arrow_up
transfer keyboard_arrow_up
Source Code
function transfer(address to, uint256 value)
public
whenNotPaused
returns (bool)
{
return super.transfer(to, value);
}
approve keyboard_arrow_up
Requirements help
Source Code
function approve(address spender, uint256 value)
public
whenNotPaused
returns (bool)
{
return super.approve(spender, value);
}
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(
address from,
address to,
uint256 value
) public whenNotPaused returns (bool) {
return super.transferFrom(from, to, value);
}
increaseAllowance keyboard_arrow_up
Requirements help
Source Code
function increaseAllowance(address spender, uint256 addedValue)
public
returns (bool)
{
_approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));
return true;
}
decreaseAllowance keyboard_arrow_up
Requirements help
Source Code
function decreaseAllowance(address spender, uint256 subtractedValue)
public
returns (bool)
{
_approve(
msg.sender,
spender,
_allowed[msg.sender][spender].sub(subtractedValue)
);
return true;
}
burn keyboard_arrow_up
burnFrom keyboard_arrow_up
Requirements help
Source Code
function burnFrom(address from, uint256 value) public {
_burnFrom(from, value);
}
isPauser keyboard_arrow_up
addPauser keyboard_arrow_up
renouncePauser keyboard_arrow_up
paused keyboard_arrow_up
pause keyboard_arrow_up
unpause keyboard_arrow_up
increaseAllowance keyboard_arrow_up
Requirements help
Source Code
function increaseAllowance(address spender, uint256 addedValue)
public
whenNotPaused
returns (bool success)
{
return super.increaseAllowance(spender, addedValue);
}
decreaseAllowance keyboard_arrow_up
Requirements help
Source Code
function decreaseAllowance(address spender, uint256 subtractedValue)
public
whenNotPaused
returns (bool success)
{
return super.decreaseAllowance(spender, subtractedValue);
}
name keyboard_arrow_up
symbol keyboard_arrow_up
decimals keyboard_arrow_up
circulatingSupply keyboard_arrow_up
transferAnyERC20Token keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
null
Source Code
function transferAnyERC20Token(address tokenAddress, uint256 tokens)
public
onlyOwner
returns (bool success)
{
return ERC20(tokenAddress).transfer(owner(), tokens);
}
transferPreSigned keyboard_arrow_up
Parameters help
Requirements help
Source Code
function transferPreSigned(
address to,
uint256 value,
uint256 gasPrice,
uint256 nonce,
bytes memory signature
) public whenNotPaused returns (bool) {
uint256 gas = gasleft();
require(to != address(0));
bytes32 payloadHash = transferPreSignedPayloadHash(
address(this),
to,
value,
gasPrice,
nonce
);
// Recover signer address from signature
address from = payloadHash.toEthSignedMessageHash().recover(signature);
require(from != address(0), "Invalid signature provided.");
// Generate transaction hash
bytes32 txHash = keccak256(abi.encodePacked(from, payloadHash));
// Make sure this transfer didn't happen yet
require(!invalidHashes[txHash], "Transaction has already been executed.");
// Mark hash as used
invalidHashes[txHash] = true;
// Initiate token transfer
_transfer(from, to, value);
// If a gas price is set, pay the sender of this transaction in tokens
uint256 fee = 0;
if (gasPrice > 0) {
// 21000 base + ~14000 transfer + ~10000 event
gas = 21000 + 14000 + 10000 + gas.sub(gasleft());
fee = gasPrice.mul(gas);
_transfer(from, tx.origin, fee);
}
emit HashRedeemed(txHash, from);
return true;
}
transferPreSignedPayloadHash keyboard_arrow_up
Parameters help
Source Code
function transferPreSignedPayloadHash(
address token,
address to,
uint256 value,
uint256 gasPrice,
uint256 nonce
) public pure returns (bytes32) {
/* "452d3c59": transferPreSignedPayloadHash(address,address,uint256,uint256,uint256) */
return
keccak256(
abi.encodePacked(bytes4(0x452d3c59), token, to, value, gasPrice, nonce)
);
}
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 ERC20._transfer keyboard_arrow_up
Source Code
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);
}
internal ERC20._mint keyboard_arrow_up
Source Code
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);
}
internal ERC20._burn keyboard_arrow_up
Requirements help
Source Code
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);
}
internal ERC20._approve keyboard_arrow_up
Requirements help
Source Code
function _approve(
address owner,
address spender,
uint256 value
) internal {
require(spender != address(0));
require(owner != address(0));
_allowed[owner][spender] = value;
emit Approval(owner, spender, value);
}
internal ERC20._burnFrom keyboard_arrow_up
Requirements help
Source Code
function _burnFrom(address account, uint256 value) internal {
_burn(account, value);
_approve(account, msg.sender, _allowed[account][msg.sender].sub(value));
}
internal ERC20._transfer keyboard_arrow_up
Source Code
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);
}
internal ERC20._mint keyboard_arrow_up
Source Code
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);
}
internal ERC20._burn keyboard_arrow_up
Requirements help
Source Code
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);
}
internal ERC20._approve keyboard_arrow_up
Requirements help
Source Code
function _approve(
address owner,
address spender,
uint256 value
) internal {
require(spender != address(0));
require(owner != address(0));
_allowed[owner][spender] = value;
emit Approval(owner, spender, value);
}
internal ERC20._burnFrom keyboard_arrow_up
Requirements help
Source Code
function _burnFrom(address account, uint256 value) internal {
_burn(account, value);
_approve(account, msg.sender, _allowed[account][msg.sender].sub(value));
}
internal Pausable.constructor keyboard_arrow_up
internal PauserRole.constructor keyboard_arrow_up
internal PauserRole._addPauser keyboard_arrow_up
internal PauserRole._removePauser keyboard_arrow_up
internal ERC20._transfer keyboard_arrow_up
Source Code
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);
}
internal ERC20._mint keyboard_arrow_up
Source Code
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);
}
internal ERC20._burn keyboard_arrow_up
Requirements help
Source Code
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);
}
internal ERC20._approve keyboard_arrow_up
Requirements help
Source Code
function _approve(
address owner,
address spender,
uint256 value
) internal {
require(spender != address(0));
require(owner != address(0));
_allowed[owner][spender] = value;
emit Approval(owner, spender, value);
}
internal ERC20._burnFrom keyboard_arrow_up
Requirements help
Source Code
function _burnFrom(address account, uint256 value) internal {
_burn(account, value);
_approve(account, msg.sender, _allowed[account][msg.sender].sub(value));
}
internal Ownable.constructor keyboard_arrow_up
internal Ownable._transferOwnership keyboard_arrow_up
Source Code
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0));
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}