Quantstamp Token
ERC20
This contract is an ERC20 token.
Name
Quantstamp Token
Symbol
QSP
Decimals
18
Total Supply
976,442,388 QSP
About
link
description
Quantstamp is a leader in blockchain security providing expert security audits and blockchain solutions. Top crypto and enterprise companies including Ethereum 2.0 (Prysmatic Labs Client), Binance, MakerDAO, Chainlink, eToro, and World Economic Forum choose Quantstamp to secure their blockchain applications.
QSP is an ERC-20 token used for verifying smart contracts on the decentralized QSP Security Protocol. Users can buy automated scans of smart contracts with QSP, and validators can earn QSP for helping provide decentralized security scans on the network at protocol.quantstamp.com
The decentralized protocol is open source at https://github.com/quantstamp.
Stats
Public Functions
11
Event Types
4
Code Size
14,998 bytes
Events (4) keyboard_arrow_up
Functions
transferOwnership keyboard_arrow_up
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
allowance keyboard_arrow_up
transferFrom keyboard_arrow_up
Modifiers help
onlyWhenTransferEnabled checks for the following:
validDestination checks for the following:
Source Code
function transferFrom(address _from, address _to, uint256 _value) public onlyWhenTransferEnabled validDestination(_to) returns (bool) {
bool result = super.transferFrom(_from, _to, _value);
if (result) {
if (msg.sender == crowdSaleAddr)
crowdSaleAllowance = crowdSaleAllowance.sub(_value);
if (msg.sender == adminAddr)
adminAllowance = adminAllowance.sub(_value);
}
return result;
}
approve keyboard_arrow_up
Source Code
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
increaseApproval keyboard_arrow_up
Source Code
function increaseApproval (address _spender, uint _addedValue)
returns (bool success) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
decreaseApproval keyboard_arrow_up
Source Code
function decreaseApproval (address _spender, uint _subtractedValue)
returns (bool success) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
burn keyboard_arrow_up
Requirements help
One or more of the following:
-
owner
must be equal to
the sender's address
- ORtransferEnabled must be true
Source Code
function burn(uint256 _value) public {
require(transferEnabled || msg.sender == owner);
require(balances[msg.sender] >= _value);
super.burn(_value);
Transfer(msg.sender, address(0x0), _value);
}
setCrowdsale keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Requirements help
Source Code
function setCrowdsale(address _crowdSaleAddr, uint256 _amountForSale) external onlyOwner {
require(!transferEnabled);
require(_amountForSale <= crowdSaleAllowance);
// if 0, then full available crowdsale supply is assumed
uint amount = (_amountForSale == 0) ? crowdSaleAllowance : _amountForSale;
// Clear allowance of old, and set allowance of new
approve(crowdSaleAddr, 0);
approve(_crowdSaleAddr, amount);
crowdSaleAddr = _crowdSaleAddr;
}