ERC20
This contract is an ERC20 token.
Name
LAToken
Symbol
LAToken
Decimals
18
Total Supply
400,000,000 LAToken
About
link
description
According to the research firm InWara, LATOKEN is the largest IEO (Initial Exchange Offering) market. Since 2017, LATOKEN has reportedly connected 130+ startups with 400,000 platform users and 1.5 million visitors per month. LA serves as the native asset for the LATOKEN exchange and is used for trading cryptoassets while enhancing liquidity on the LATOKEN exchange.
LATOKEN aims to be the top digital asset exchange. It has launched an ERC20 decentralized exchange, LADEX, and is building LACHAIN for the security tokens market and HFT DEX. LATOKEN mission is to connect investors and entrepreneurs globally. It is running the Blockchain Economic Forum with government officials, entrepreneurs, and investors.
- Entrepreneurs looking for funding can consider the LATOKEN IEO Launchpad.
- Traders on LATOKEN can access 350+ digital assets, with the option of connecting using RESTful or WebSocket APIs.
Stats
Public Functions
12
Event Types
4
Code Size
15,789 bytes
Library Use
Uses SafeMath for uint256.
Events (4) keyboard_arrow_up
Functions
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Source Code
function transfer(address _to, uint256 _value) returns (bool success) {
if (exchanger != 0x0 && _to == exchanger) {
assert(ExchangeContract(exchanger).exchange(msg.sender, _value));
return true;
}
if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
} else {
return false;
}
}
transferFrom keyboard_arrow_up
Source Code
function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
//same as above. Replace this line with the following if you want to protect against wrapping uints.
//if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
balances[_from] -= _value;
balances[_to] += _value;
allowed[_from][msg.sender] -= _value;
Transfer(_from, _to, _value);
return true;
} else { return false; }
}
approve keyboard_arrow_up
Source Code
function approve(address _spender, uint256 _value) returns (bool success) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
approveAndCall keyboard_arrow_up
Source Code
function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool success) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
string memory signature = "receiveApproval(address,uint256,address,bytes)";
if (!_spender.call(bytes4(bytes32(sha3(signature))), msg.sender, _value, this, _extraData)) {
revert();
}
return true;
}
allowance keyboard_arrow_up
issueTokens keyboard_arrow_up
Modifiers help
onlyMinterAndExchanger checks for the following:
Source Code
function issueTokens(address _for, uint tokenCount)
external
onlyMinterAndExchanger
returns (bool)
{
if (tokenCount == 0) {
return false;
}
totalSupply = totalSupply.add(tokenCount);
balances[_for] = balances[_for].add(tokenCount);
Issuance(_for, tokenCount);
return true;
}
burnTokens keyboard_arrow_up
Modifiers help
onlyMinterAndExchanger checks for the following:
Source Code
function burnTokens(address _for, uint tokenCount)
external
onlyMinterAndExchanger
returns (bool)
{
if (tokenCount == 0) {
return false;
}
if (totalSupply.sub(tokenCount) > totalSupply) {
revert();
}
if (balances[_for].sub(tokenCount) > balances[_for]) {
revert();
}
totalSupply = totalSupply.sub(tokenCount);
balances[_for] = balances[_for].sub(tokenCount);
Burn(_for, tokenCount);
return true;
}