ERC20
This contract is an ERC20 token.
Name
SWARM
Symbol
SWM
Decimals
18
Total Supply
100,000,000 SWM
About
link
description
Swarm (SWM) is a cryptocurrency and operates on the Ethereum platform. Swarm has a current supply of 99,535,052.4739791 with 78,189,670.12433334 in circulation. The last known price of Swarm is 0.06169954 USD and is up 4.85 over the last 24 hours. It is currently trading on 9 active market(s) with $20,215.36 traded over the last 24 hours. More information can be found at https://www.swarmnetwork.org.
Stats
Public Functions
21
Event Types
6
Code Size
9,215 bytes
Events (6) keyboard_arrow_up
State Variables (8) keyboard_arrow_up
Functions
controller keyboard_arrow_up
transferController keyboard_arrow_up
Modifiers help
onlyController checks for the following:
Source Code
function transferController(address recipient) public onlyController {
require(
recipient != address(0),
"Controlled: new controller is the zero address"
);
_controller = recipient;
emit ControllerTransferred(_controller);
}
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 returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
allowance keyboard_arrow_up
approve keyboard_arrow_up
Requirements help
Source Code
function approve(address spender, uint256 value) public returns (bool) {
_approve(msg.sender, spender, value);
return true;
}
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(
address sender,
address recipient,
uint256 amount
) public returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
return true;
}
increaseAllowance keyboard_arrow_up
Requirements help
Source Code
function increaseAllowance(address spender, uint256 addedValue)
public
returns (bool)
{
_approve(
msg.sender,
spender,
_allowances[msg.sender][spender].add(addedValue)
);
return true;
}
decreaseAllowance keyboard_arrow_up
Requirements help
Source Code
function decreaseAllowance(address spender, uint256 subtractedValue)
public
returns (bool)
{
_approve(
msg.sender,
spender,
_allowances[msg.sender][spender].sub(subtractedValue)
);
return true;
}
burn keyboard_arrow_up
burnFrom keyboard_arrow_up
Requirements help
Source Code
function burnFrom(address account, uint256 amount) public {
_burnFrom(account, amount);
}
approveAndCall keyboard_arrow_up
Requirements help
One or more of the following:
-
the result of calling allowance with the sender's address, spender
must be equal to
0
- OR
value
must be equal to
0
Source Code
function approveAndCall(
address spender,
uint256 value,
bytes memory extraData
) public returns (bool) {
require(
value == 0 || allowance(msg.sender, spender) == 0,
"SwarmToken: not clean allowance state"
);
_approve(msg.sender, spender, value);
ISwarmTokenRecipient(spender).receiveApproval(
msg.sender,
value,
address(this),
extraData
);
return true;
}
getDocument keyboard_arrow_up
updateDocument keyboard_arrow_up
Modifiers help
onlyController checks for the following:
Source Code
function updateDocument(bytes32 hash, string calldata url)
external
onlyController
returns (bool)
{
return _updateDocument(hash, url);
}
claimTokens keyboard_arrow_up
Modifiers help
onlyController checks for the following:
Source Code
function claimTokens(IERC20 token) external onlyController returns (bool) {
uint256 balance = token.balanceOf(address(this));
token.transfer(msg.sender, balance);
emit ClaimedTokens(address(token), msg.sender, balance);
return true;
}
claimEther keyboard_arrow_up
Parameters help
This function has no parameters.
Modifiers help
onlyController checks for the following:
Source Code
function claimEther() external onlyController returns (bool) {
uint256 balance = address(this).balance;
msg.sender.transfer(balance);
emit ClaimedEther(msg.sender, balance);
return true;
}
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 SwarmToken._updateDocument keyboard_arrow_up
Source Code
function _updateDocument(bytes32 hash, string memory url)
internal
returns (bool)
{
_document.hash = hash;
_document.url = url;
emit DocumentUpdated(hash, url);
return true;
}
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);
_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
Requirements help
Source Code
function _burn(address account, uint256 value) internal {
require(account != address(0), "ERC20: burn from the zero address");
_totalSupply = _totalSupply.sub(value);
_balances[account] = _balances[account].sub(value);
emit Transfer(account, address(0), value);
}
internal ERC20._approve keyboard_arrow_up
Requirements help
Source Code
function _approve(
address owner,
address spender,
uint256 value
) internal {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = value;
emit Approval(owner, spender, value);
}
internal ERC20._burnFrom keyboard_arrow_up
Requirements help
Source Code
function _burnFrom(address account, uint256 amount) internal {
_burn(account, amount);
_approve(account, msg.sender, _allowances[account][msg.sender].sub(amount));
}