OceanToken
ERC20
This contract is an ERC20 token.
Name
OceanToken
Symbol
OCEAN
Decimals
18
Total Supply
613,099,141 OCEAN
About
link
description
Ocean Protocol is a tokenized service layer that exposes data, storage, compute and algorithms for consumption with a set of deterministic proofs on availability and integrity that serve as verifiable service agreements. There is staking on services to signal quality, reputation, and ward off Sybil Attacks.
Ocean aims to help users unlock data, particularly for AI. It is designed for scale and uses blockchain technology that allows data to be shared and sold in a safe, secure, and transparent manner.
Ocean Protocol weaves business, technical, and governance frameworks together to allow data and services to be shared and sold, in a secure manner. Ocean Protocol stores metadata, links to data, provides a licensing framework, and has toolsets for pricing. A multitude of data marketplaces can hook into Ocean Protocol to provide “last mile” services to connect data providers and consumers. Ocean Protocol is designed so that data owners cannot be locked-in to any single marketplace. The data owner controls each dataset.
Stats
Public Functions
32
Event Types
9
Code Size
25,556 bytes
Library Use
Uses SafeMath for uint256.
Events (9) keyboard_arrow_up
Functions
isMinter keyboard_arrow_up
addMinter keyboard_arrow_up
renounceMinter keyboard_arrow_up
totalSupply keyboard_arrow_up
balanceOf keyboard_arrow_up
allowance keyboard_arrow_up
transfer keyboard_arrow_up
Source Code
function transfer(
address _to,
uint256 _value
)
public
returns (bool)
{
bool success = super.transfer(_to, _value);
if (success) {
updateTokenHolders(msg.sender, _to);
}
return success;
}
approve keyboard_arrow_up
Requirements help
Source Code
function approve(address spender, uint256 value) public whenNotPaused returns (bool) {
return super.approve(spender, value);
}
transferFrom keyboard_arrow_up
Source Code
function transferFrom(
address _from,
address _to,
uint256 _value
)
public
returns (bool)
{
bool success = super.transferFrom(_from, _to, _value);
if (success) {
updateTokenHolders(_from, _to);
}
return success;
}
increaseAllowance keyboard_arrow_up
Requirements help
Source Code
function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
require(spender != address(0));
_allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue);
emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
return true;
}
decreaseAllowance keyboard_arrow_up
Requirements help
Source Code
function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
require(spender != address(0));
_allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue);
emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
return true;
}
mint keyboard_arrow_up
cap keyboard_arrow_up
name keyboard_arrow_up
symbol keyboard_arrow_up
decimals keyboard_arrow_up
isPauser keyboard_arrow_up
addPauser keyboard_arrow_up
renouncePauser keyboard_arrow_up
paused keyboard_arrow_up
pause keyboard_arrow_up
unpause keyboard_arrow_up
increaseAllowance keyboard_arrow_up
Requirements help
Source Code
function increaseAllowance(address spender, uint addedValue) public whenNotPaused returns (bool success) {
return super.increaseAllowance(spender, addedValue);
}
decreaseAllowance keyboard_arrow_up
Requirements help
Source Code
function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused returns (bool success) {
return super.decreaseAllowance(spender, subtractedValue);
}
owner keyboard_arrow_up
isOwner keyboard_arrow_up
renounceOwnership keyboard_arrow_up
transferOwnership keyboard_arrow_up
getAccounts keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
null
Requirements help
Source Code
function getAccounts(
uint256 _start,
uint256 _end
)
external
view
onlyOwner
returns (address[] memory, uint256[] memory)
{
require(
_start <= _end && _end < accounts.length,
'Array index out of bounds'
);
uint256 length = _end.sub(_start).add(1);
address[] memory _tokenHolders = new address[](length);
uint256[] memory _tokenBalances = new uint256[](length);
for (uint256 i = _start; i <= _end; i++)
{
address account = accounts[i];
uint256 accountBalance = super.balanceOf(account);
if (accountBalance > 0)
{
_tokenBalances[i] = accountBalance;
_tokenHolders[i] = account;
}
}
return (_tokenHolders, _tokenBalances);
}