BioPassport Coin
ERC20
This contract is an ERC20 token.
Name
BioPassport Coin
Symbol
BIOT
Decimals
9
Total Supply
8,800,000,000 BIOT
About link description
BioPassport Token (BIOT) is a cryptocurrency and operates on the Ethereum platform. BioPassport Token has a current supply of 8,800,000,000 with 516,482,722 in circulation. The last known price of BioPassport Token is 0.01430333 USD and is down -6.35 over the last 24 hours. It is currently trading on 3 active market(s) with $83,162.18 traded over the last 24 hours. More information can be found at https://biopassport.io.
Stats
Public Functions
26
Event Types
8
Code Size
29,440 bytes
Events (8) keyboard_arrow_up
State Variables (13) keyboard_arrow_up
Functions
name keyboard_arrow_up
symbol keyboard_arrow_up
decimals keyboard_arrow_up
isMinter keyboard_arrow_up
addMinter keyboard_arrow_up
renounceMinter keyboard_arrow_up
totalSupply keyboard_arrow_up
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Requirements help
UNKNOWN VALUE
must be greater than or equal to
the result of calling reserveOf with the sender's address
Source Code
function transfer(address _to, uint256 _value) public returns (bool) {
// check the reserve
require(balanceOf(msg.sender).sub(_value) >= reserveOf(msg.sender));
return super.transfer(_to, _value);
}
allowance keyboard_arrow_up
approve keyboard_arrow_up
Requirements help
Source Code
function approve(address spender, uint256 amount) public returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(
address _from,
address _to,
uint256 _value
) public returns (bool) {
require(_from != vault);
require(_value <= balanceOf(_from).sub(reserves[_from]));
return super.transferFrom(_from, _to, _value);
}
increaseAllowance keyboard_arrow_up
Requirements help
Source Code
function increaseAllowance(address spender, uint256 addedValue)
public
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].add(addedValue)
);
return true;
}
decreaseAllowance keyboard_arrow_up
Requirements help
Source Code
function decreaseAllowance(address spender, uint256 subtractedValue)
public
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].sub(
subtractedValue,
"ERC20: decreased allowance below zero"
)
);
return true;
}
mint keyboard_arrow_up
Modifiers help
onlyMinter checks for the following:
null
Source Code
function mint(address account, uint256 amount)
public
onlyMinter
returns (bool)
{
_mint(account, amount);
return true;
}
cap keyboard_arrow_up
setReserve keyboard_arrow_up
setVault keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function setVault(address _newVault) public onlyOwner {
require(_newVault != address(0));
require(_newVault != vault);
address _oldVault = vault;
// change vault address
vault = _newVault;
emit VaultChanged(_oldVault, _newVault);
}
setOwner keyboard_arrow_up
Modifiers help
onlyVault checks for the following:
Source Code
function setOwner(address _newOwner) public onlyVault {
require(_newOwner != address(0));
require(_newOwner != owner);
emit OwnerChanged(owner, _newOwner);
owner = _newOwner;
}
setAdmin keyboard_arrow_up
Modifiers help
onlyOwnerOrVault checks for the following:
One or more of the following:
-
vault
must be equal to
the sender's address
- OR
owner
must be equal to
the sender's address
Source Code
function setAdmin(address _newAdmin) public onlyOwnerOrVault {
require(_newAdmin != address(0));
require(_newAdmin != admin);
emit AdminChanged(admin, _newAdmin);
admin = _newAdmin;
}
getOwner keyboard_arrow_up
getVault keyboard_arrow_up
getAdmin keyboard_arrow_up
getOneBiotCoin keyboard_arrow_up
reserveOf keyboard_arrow_up
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 ERC20Capped._mint keyboard_arrow_up
Requirements help
Source Code
function _mint(address account, uint256 value) internal {
require(totalSupply().add(value) <= _cap, "ERC20Capped: cap exceeded");
super._mint(account, value);
}
internal ERC20._transfer keyboard_arrow_up
Requirements help
Source Code
function _transfer(
address sender,
address recipient,
uint256 amount
) internal {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_balances[sender] = _balances[sender].sub(
amount,
"ERC20: transfer amount exceeds balance"
);
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
internal ERC20._mint keyboard_arrow_up
Source Code
function _mint(address account, uint256 amount) internal {
require(account != address(0), "ERC20: mint to the zero address");
_totalSupply = _totalSupply.add(amount);
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
internal ERC20._burn keyboard_arrow_up
Source Code
function _burn(address account, uint256 amount) internal {
require(account != address(0), "ERC20: burn from the zero address");
_balances[account] = _balances[account].sub(
amount,
"ERC20: burn amount exceeds balance"
);
_totalSupply = _totalSupply.sub(amount);
emit Transfer(account, address(0), amount);
}
internal ERC20._approve keyboard_arrow_up
Requirements help
Source Code
function _approve(
address owner,
address spender,
uint256 amount
) internal {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
internal ERC20._burnFrom keyboard_arrow_up
Requirements help
Source Code
function _burnFrom(address account, uint256 amount) internal {
_burn(account, amount);
_approve(
account,
_msgSender(),
_allowances[account][_msgSender()].sub(
amount,
"ERC20: burn amount exceeds allowance"
)
);
}
internal Context.constructor keyboard_arrow_up
internal Context._msgSender keyboard_arrow_up
internal Context._msgData keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
internal MinterRole.constructor keyboard_arrow_up
internal MinterRole._addMinter keyboard_arrow_up
internal MinterRole._removeMinter keyboard_arrow_up
internal Context.constructor keyboard_arrow_up
internal Context._msgSender keyboard_arrow_up
internal Context._msgData keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}