BqtX Token
ERC20
This contract is an ERC20 token.
Name
BqtX Token
Symbol
BQTX
Decimals
18
Total Supply
800,000,000 BQTX
About
link
description
BQT describes itself as an order-book crypto exchange with social trading features. Its BQT Hedge Trade system is intended to serve as a way for traders to acquire cryptoassets for a short-term period by means of escrow of their existing crypto holdings. Its BQTuniversity aims to offer certified crypto education courses built by industry experts.
Stats
Public Functions
15
Event Types
9
Code Size
13,613 bytes
Library Use
Uses SafeMath for uint256.
Uses StringLib for string.
Events (9) keyboard_arrow_up
Functions
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Modifiers help
duringIcoOnlyTheOwner checks for the following:
One or more of the following:
-
owner
must be equal to
the sender's address
- OR
now
must be greater than
icoDeadLine
Requirements help
Source Code
function transfer(address toAddr, uint256 amountInWei) public duringIcoOnlyTheOwner returns (bool) // don't icoNotPaused here. It's a logic issue.
{
require(toAddr!=0x0 && toAddr!=msg.sender && amountInWei>0); // Prevent transfer to 0x0 address and to self, amount must be >0
uint256 availableTokens = balances[msg.sender];
//----- Checking Token reserve first : if during ICO
if (msg.sender==owner && now <= icoDeadLine) // ICO Reserve Supply checking: Don't touch the RESERVE of tokens when owner is selling
{
assert(amountInWei<=availableTokens);
uint256 balanceAfterTransfer = availableTokens.sub(amountInWei);
assert(balanceAfterTransfer >= icoReserveSupply); // We try to sell more than allowed during an ICO
}
//-----
balances[msg.sender] = balances[msg.sender].sub(amountInWei);
balances[toAddr] = balances[toAddr].add(amountInWei);
emit Transfer(msg.sender, toAddr, amountInWei);
return true;
}
allowance keyboard_arrow_up
transferFrom keyboard_arrow_up
Source Code
function transferFrom(address fromAddr, address toAddr, uint256 amountInWei) public returns (bool)
{
if (amountInWei <= 0) return false;
if (allowances[fromAddr][msg.sender] < amountInWei) return false;
if (balances[fromAddr] < amountInWei) return false;
balances[fromAddr] = balances[fromAddr].sub(amountInWei);
balances[toAddr] = balances[toAddr].add(amountInWei);
allowances[fromAddr][msg.sender] = allowances[fromAddr][msg.sender].sub(amountInWei);
emit Transfer(fromAddr, toAddr, amountInWei);
return true;
}
approve keyboard_arrow_up
Requirements help
One or more of the following:
Source Code
function approve(address spender, uint256 amountInWei) public returns (bool)
{
require((amountInWei == 0) || (allowances[msg.sender][spender] == 0));
allowances[msg.sender][spender] = amountInWei;
emit Approval(msg.sender, spender, amountInWei);
return true;
}
constructor keyboard_arrow_up
transferOwnership keyboard_arrow_up
changeAdminUser keyboard_arrow_up
changeIcoDeadLine keyboard_arrow_up
changeHardCap keyboard_arrow_up
isHardcapReached keyboard_arrow_up
pauseICO keyboard_arrow_up
unpauseICO keyboard_arrow_up
isPausedICO keyboard_arrow_up
destroyRemainingTokens keyboard_arrow_up
Parameters help
This function has no parameters.
Modifiers help
onlyAdmin checks for the following:
icoFinished checks for the following:
icoNotPaused checks for the following:
Requirements help
Source Code
function destroyRemainingTokens() public onlyAdmin icoFinished icoNotPaused returns(uint)
{
require(msg.sender==owner && now>icoDeadLine);
address toAddr = 0x0000000000000000000000000000000000000000;
uint256 amountToBurn = balances[owner];
if (amountToBurn > icoReserveSupply)
{
amountToBurn = amountToBurn.sub(icoReserveSupply);
}
balances[owner] = balances[owner].sub(amountToBurn);
balances[toAddr] = balances[toAddr].add(amountToBurn);
emit Transfer(msg.sender, toAddr, amountToBurn);
//Transfer(msg.sender, toAddr, amountToBurn);
return 1;
}