ERC20
This contract is an ERC20 token.
Name
UpBots
Symbol
UBXT
Decimals
18
Total Supply
500,000,000 UBXT
About
link
description
UpBots (UBXT) is a cryptocurrency and operates on the Ethereum platform. UpBots has a current supply of 500,000,000 with 355,583,262.88597596 in circulation. The last known price of UpBots is 0.02770686 USD and is down -1.73 over the last 24 hours. It is currently trading on 6 active market(s) with $84,849.92 traded over the last 24 hours. More information can be found at https://upbots.com/.
Stats
Public Functions
28
Event Types
7
Code Size
58,454 bytes
Events (7) keyboard_arrow_up
State Variables (9) keyboard_arrow_up
Functions
owner keyboard_arrow_up
isOwner keyboard_arrow_up
renounceOwnership keyboard_arrow_up
transferOwnership keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
null
Source Code
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
reclaimToken keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
null
Source Code
function reclaimToken(IERC20 token) external onlyOwner {
uint256 balance = token.balanceOf(address(this));
token.safeTransfer(owner(), balance);
}
reclaimEther keyboard_arrow_up
initialize keyboard_arrow_up
Modifiers help
initializer checks for the following:
Source Code
function initialize(address sender) public override initializer {
PauserRole.initialize(sender);
_paused = false;
}
isPauser keyboard_arrow_up
addPauser keyboard_arrow_up
renouncePauser keyboard_arrow_up
paused keyboard_arrow_up
pause keyboard_arrow_up
unpause keyboard_arrow_up
initialize keyboard_arrow_up
Modifiers help
initializer checks for the following:
Source Code
function initialize(
string memory name,
string memory symbol,
uint8 decimals
) public initializer {
_onInitialize(name, symbol, decimals);
}
name keyboard_arrow_up
symbol keyboard_arrow_up
decimals keyboard_arrow_up
totalSupply keyboard_arrow_up
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Requirements help
Source Code
function transfer(address recipient, uint256 amount)
public
virtual
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
allowance keyboard_arrow_up
Source Code
function allowance(address owner, address spender)
public
view
virtual
override
returns (uint256)
{
TokenStorage storage ercs = erc20Storage();
return ercs.allowances[owner][spender];
}
approve keyboard_arrow_up
Requirements help
Source Code
function approve(address spender, uint256 amount)
public
virtual
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
TokenStorage storage ercs = erc20Storage();
_approve(
sender,
_msgSender(),
ercs.allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
increaseAllowance keyboard_arrow_up
Requirements help
Source Code
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
TokenStorage storage ercs = erc20Storage();
_approve(
_msgSender(),
spender,
ercs.allowances[_msgSender()][spender].add(addedValue)
);
return true;
}
decreaseAllowance keyboard_arrow_up
Requirements help
Source Code
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
TokenStorage storage ercs = erc20Storage();
_approve(
_msgSender(),
spender,
ercs.allowances[_msgSender()][spender].sub(
subtractedValue,
"ERC20: decreased allowance below zero"
)
);
return true;
}
burn keyboard_arrow_up
burnFrom keyboard_arrow_up
Requirements help
Source Code
function burnFrom(address account, uint256 amount) public virtual {
uint256 decreasedAllowance = allowance(account, _msgSender()).sub(
amount,
"ERC20: burn amount exceeds allowance"
);
_approve(account, _msgSender(), decreasedAllowance);
_burn(account, amount);
}
initialize keyboard_arrow_up
Parameters help
Modifiers help
initializer checks for the following:
Requirements help
Source Code
function initialize(
string memory name,
string memory symbol,
uint8 decimals,
uint256 initialSupply,
address initialHolder,
address owner,
address[] memory pausers
) public initializer {
require(pausers.length > 0, "At least one pauser should be defined");
ERC20.initialize(name, symbol, decimals);
Ownable._onInitialize(owner);
Pausable.initialize(pausers[0]);
for (uint256 i = 1; i < pausers.length; ++i) {
_addPauser(pausers[i]);
}
// create the tokens
_mint(initialHolder, initialSupply);
}
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 UbxToken._beforeTokenTransfer keyboard_arrow_up
Source Code
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual override(ERC20, ERC20Pausable) {
super._beforeTokenTransfer(from, to, amount);
}
internal Initializable.isConstructor keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function isConstructor() private view returns (bool) {
// extcodesize checks the size of the code stored in an address, and
// address returns the current address. Since the code is still not
// deployed when running a constructor, any checks on its code size will
// yield zero, making it an effective way to detect if a contract is
// under construction or not.
address self = address(this);
uint256 cs;
assembly {
cs := extcodesize(self)
}
return cs == 0;
}
internal Ownable._onInitialize keyboard_arrow_up
Modifiers help
initializer checks for the following:
Source Code
function _onInitialize(address sender) internal initializer {
_owner = sender;
emit OwnershipTransferred(address(0), _owner);
}
internal Ownable._transferOwnership keyboard_arrow_up
Source Code
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
internal Initializable.isConstructor keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function isConstructor() private view returns (bool) {
// extcodesize checks the size of the code stored in an address, and
// address returns the current address. Since the code is still not
// deployed when running a constructor, any checks on its code size will
// yield zero, making it an effective way to detect if a contract is
// under construction or not.
address self = address(this);
uint256 cs;
assembly {
cs := extcodesize(self)
}
return cs == 0;
}
internal ERC20._onInitialize keyboard_arrow_up
Modifiers help
initializer checks for the following:
Source Code
function _onInitialize(
string memory name,
string memory symbol,
uint8 decimals
) internal initializer {
TokenStorage storage ercs = erc20Storage();
ercs.name = name;
ercs.symbol = symbol;
ercs.decimals = decimals;
}
internal ERC20._transfer keyboard_arrow_up
Requirements help
Source Code
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
TokenStorage storage ercs = erc20Storage();
_beforeTokenTransfer(sender, recipient, amount);
ercs.balances[sender] = ercs.balances[sender].sub(
amount,
"ERC20: transfer amount exceeds balance"
);
ercs.balances[recipient] = ercs.balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
internal ERC20._mint keyboard_arrow_up
Requirements help
Source Code
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
TokenStorage storage ercs = erc20Storage();
ercs.totalSupply = ercs.totalSupply.add(amount);
ercs.balances[account] = ercs.balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
internal ERC20._burn keyboard_arrow_up
Requirements help
Source Code
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
TokenStorage storage ercs = erc20Storage();
ercs.balances[account] = ercs.balances[account].sub(
amount,
"ERC20: burn amount exceeds balance"
);
ercs.totalSupply = ercs.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 virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
TokenStorage storage ercs = erc20Storage();
ercs.allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
internal ERC20._setupDecimals keyboard_arrow_up
internal ERC20._beforeTokenTransfer 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 virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
internal Initializable.isConstructor keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function isConstructor() private view returns (bool) {
// extcodesize checks the size of the code stored in an address, and
// address returns the current address. Since the code is still not
// deployed when running a constructor, any checks on its code size will
// yield zero, making it an effective way to detect if a contract is
// under construction or not.
address self = address(this);
uint256 cs;
assembly {
cs := extcodesize(self)
}
return cs == 0;
}
internal ERC20Storage.erc20Storage 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 virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
internal ERC20._onInitialize keyboard_arrow_up
Modifiers help
initializer checks for the following:
Source Code
function _onInitialize(
string memory name,
string memory symbol,
uint8 decimals
) internal initializer {
TokenStorage storage ercs = erc20Storage();
ercs.name = name;
ercs.symbol = symbol;
ercs.decimals = decimals;
}
internal ERC20._transfer keyboard_arrow_up
Requirements help
Source Code
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
TokenStorage storage ercs = erc20Storage();
_beforeTokenTransfer(sender, recipient, amount);
ercs.balances[sender] = ercs.balances[sender].sub(
amount,
"ERC20: transfer amount exceeds balance"
);
ercs.balances[recipient] = ercs.balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
internal ERC20._mint keyboard_arrow_up
Requirements help
Source Code
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
TokenStorage storage ercs = erc20Storage();
ercs.totalSupply = ercs.totalSupply.add(amount);
ercs.balances[account] = ercs.balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
internal ERC20._burn keyboard_arrow_up
Requirements help
Source Code
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
TokenStorage storage ercs = erc20Storage();
ercs.balances[account] = ercs.balances[account].sub(
amount,
"ERC20: burn amount exceeds balance"
);
ercs.totalSupply = ercs.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 virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
TokenStorage storage ercs = erc20Storage();
ercs.allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
internal ERC20._setupDecimals keyboard_arrow_up
internal ERC20._beforeTokenTransfer 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 virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
internal Initializable.isConstructor keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function isConstructor() private view returns (bool) {
// extcodesize checks the size of the code stored in an address, and
// address returns the current address. Since the code is still not
// deployed when running a constructor, any checks on its code size will
// yield zero, making it an effective way to detect if a contract is
// under construction or not.
address self = address(this);
uint256 cs;
assembly {
cs := extcodesize(self)
}
return cs == 0;
}
internal ERC20Storage.erc20Storage keyboard_arrow_up
internal ERC20Pausable._beforeTokenTransfer keyboard_arrow_up
Source Code
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual override {
super._beforeTokenTransfer(from, to, amount);
require(!paused(), "ERC20Pausable: token transfer while paused");
}
internal ERC20._onInitialize keyboard_arrow_up
Modifiers help
initializer checks for the following:
Source Code
function _onInitialize(
string memory name,
string memory symbol,
uint8 decimals
) internal initializer {
TokenStorage storage ercs = erc20Storage();
ercs.name = name;
ercs.symbol = symbol;
ercs.decimals = decimals;
}
internal ERC20._transfer keyboard_arrow_up
Requirements help
Source Code
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
TokenStorage storage ercs = erc20Storage();
_beforeTokenTransfer(sender, recipient, amount);
ercs.balances[sender] = ercs.balances[sender].sub(
amount,
"ERC20: transfer amount exceeds balance"
);
ercs.balances[recipient] = ercs.balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
internal ERC20._mint keyboard_arrow_up
Requirements help
Source Code
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
TokenStorage storage ercs = erc20Storage();
ercs.totalSupply = ercs.totalSupply.add(amount);
ercs.balances[account] = ercs.balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
internal ERC20._burn keyboard_arrow_up
Requirements help
Source Code
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
TokenStorage storage ercs = erc20Storage();
ercs.balances[account] = ercs.balances[account].sub(
amount,
"ERC20: burn amount exceeds balance"
);
ercs.totalSupply = ercs.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 virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
TokenStorage storage ercs = erc20Storage();
ercs.allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
internal ERC20._setupDecimals keyboard_arrow_up
internal ERC20._beforeTokenTransfer 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 virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
internal Initializable.isConstructor keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function isConstructor() private view returns (bool) {
// extcodesize checks the size of the code stored in an address, and
// address returns the current address. Since the code is still not
// deployed when running a constructor, any checks on its code size will
// yield zero, making it an effective way to detect if a contract is
// under construction or not.
address self = address(this);
uint256 cs;
assembly {
cs := extcodesize(self)
}
return cs == 0;
}
internal ERC20Storage.erc20Storage keyboard_arrow_up
internal Initializable.isConstructor keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function isConstructor() private view returns (bool) {
// extcodesize checks the size of the code stored in an address, and
// address returns the current address. Since the code is still not
// deployed when running a constructor, any checks on its code size will
// yield zero, making it an effective way to detect if a contract is
// under construction or not.
address self = address(this);
uint256 cs;
assembly {
cs := extcodesize(self)
}
return cs == 0;
}
internal PauserRole._addPauser keyboard_arrow_up
internal PauserRole._removePauser keyboard_arrow_up
internal Initializable.isConstructor keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function isConstructor() private view returns (bool) {
// extcodesize checks the size of the code stored in an address, and
// address returns the current address. Since the code is still not
// deployed when running a constructor, any checks on its code size will
// yield zero, making it an effective way to detect if a contract is
// under construction or not.
address self = address(this);
uint256 cs;
assembly {
cs := extcodesize(self)
}
return cs == 0;
}
internal Ownable._onInitialize keyboard_arrow_up
Modifiers help
initializer checks for the following:
Source Code
function _onInitialize(address sender) internal initializer {
_owner = sender;
emit OwnershipTransferred(address(0), _owner);
}
internal Ownable._transferOwnership keyboard_arrow_up
Source Code
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
internal Initializable.isConstructor keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function isConstructor() private view returns (bool) {
// extcodesize checks the size of the code stored in an address, and
// address returns the current address. Since the code is still not
// deployed when running a constructor, any checks on its code size will
// yield zero, making it an effective way to detect if a contract is
// under construction or not.
address self = address(this);
uint256 cs;
assembly {
cs := extcodesize(self)
}
return cs == 0;
}
internal Ownable._onInitialize keyboard_arrow_up
Modifiers help
initializer checks for the following:
Source Code
function _onInitialize(address sender) internal initializer {
_owner = sender;
emit OwnershipTransferred(address(0), _owner);
}
internal Ownable._transferOwnership keyboard_arrow_up
Source Code
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
internal Initializable.isConstructor keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function isConstructor() private view returns (bool) {
// extcodesize checks the size of the code stored in an address, and
// address returns the current address. Since the code is still not
// deployed when running a constructor, any checks on its code size will
// yield zero, making it an effective way to detect if a contract is
// under construction or not.
address self = address(this);
uint256 cs;
assembly {
cs := extcodesize(self)
}
return cs == 0;
}