LoopringCoin V2
ERC20
This contract is an ERC20 token.
Name
LoopringCoin V2
Symbol
LRC
Decimals
18
Total Supply
1,374,513,897 LRC
About
link
description
Loopring (LRC) is a cryptocurrency and operates on the Ethereum platform. Loopring has a current supply of 1,373,873,440.4424574 with 1,225,574,299.5158994 in circulation. The last known price of Loopring is 0.21676507 USD and is down -3.54 over the last 24 hours. It is currently trading on 107 active market(s) with $22,840,676.80 traded over the last 24 hours. More information can be found at https://loopring.org.
Stats
Public Functions
13
Event Types
3
Code Size
10,276 bytes
Library Use
Uses SafeMath for uint256.
Constants (1) keyboard_arrow_up
State Variables (7) keyboard_arrow_up
Functions
totalSupply keyboard_arrow_up
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Requirements help
Source Code
function transfer(address _to, uint256 _value) public returns (bool) {
// if _to is address(0), invoke burn function.
if (_to == address(0)) {
return burn(_value);
}
require(_value <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
}
totalBurned keyboard_arrow_up
burn keyboard_arrow_up
Requirements help
Source Code
function burn(uint256 _value) public returns (bool) {
require(_value <= balances[msg.sender]);
address burner = msg.sender;
balances[burner] = balances[burner].sub(_value);
totalSupply_ = totalSupply_.sub(_value);
burnedTotalNum_ = burnedTotalNum_.add(_value);
emit Burn(burner, _value);
return true;
}
allowance keyboard_arrow_up
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(
address _from,
address _to,
uint256 _value
) public returns (bool) {
if (_to == address(0)) {
return burnFrom(_from, _value);
}
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
/// an allowance of MAX_UINT represents an unlimited allowance.
/// @dev see https://github.com/ethereum/EIPs/issues/717
if (allowed[_from][msg.sender] < MAX_UINT) {
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
}
emit Transfer(_from, _to, _value);
return true;
}
approve keyboard_arrow_up
Source Code
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
burnFrom keyboard_arrow_up
Requirements help
Source Code
function burnFrom(address _owner, uint256 _value) public returns (bool) {
require(_owner != address(0));
require(_value <= balances[_owner]);
require(_value <= allowed[_owner][msg.sender]);
balances[_owner] = balances[_owner].sub(_value);
if (allowed[_owner][msg.sender] < MAX_UINT) {
allowed[_owner][msg.sender] = allowed[_owner][msg.sender].sub(_value);
}
totalSupply_ = totalSupply_.sub(_value);
burnedTotalNum_ = burnedTotalNum_.add(_value);
emit Burn(_owner, _value);
return true;
}
increaseApproval keyboard_arrow_up
Source Code
function increaseApproval(address _spender, uint256 _addedValue)
public
returns (bool)
{
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(
_addedValue
);
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
decreaseApproval keyboard_arrow_up
Source Code
function decreaseApproval(address _spender, uint256 _subtractedValue)
public
returns (bool)
{
uint256 oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
batchTransfer keyboard_arrow_up
Requirements help
Source Code
function batchTransfer(address[] calldata accounts, uint256[] calldata amounts)
external
returns (bool)
{
require(accounts.length == amounts.length);
for (uint256 i = 0; i < accounts.length; i++) {
require(transfer(accounts[i], amounts[i]), "transfer failed");
}
return true;
}
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.