Blockwell

DOS Network Token

ERC20

This contract is an ERC20 token.

Name DOS Network Token
Symbol DOS
Decimals 18
Total Supply 950,000,000 DOS

About

Stats

Public Functions 17
Event Types 5
Code Size 12,079 bytes

Events (5) keyboard_arrow_up

Approval Event

Parameters help
owner
address help
spender
address help
value
uint help

LogNote Event

Parameters help
sig
bytes4 help
guy
address help
foo
bytes32 help
bar
bytes32 help
wad
uint256 help
fax
bytes help

LogSetAuthority Event

Parameters help
authority
address help

LogSetOwner Event

Parameters help
owner
address help

Transfer Event

Parameters help
from
address help
to
address help
value
uint help

name Constant

string help
DOS Network Token

symbol Constant

string help
DOS

decimals Constant

uint256 help
18

MAX_SUPPLY Constant

uint256 help
1e9 * 1e18

WAD Constant

uint help
UNKNOWN VALUE

RAY Constant

uint help
UNKNOWN VALUE

stopped Variable

bool help

authority Variable

address help

owner Variable

address help

manager Variable

address help

_supply Variable

uint256 help
Internal Variable

_balances Variable

mapping(address => uint256) help
Internal Variable

_approvals Variable

mapping(address => mapping(address => uint256)) help
Internal Variable

Functions Expand All Collapse All

changeManager keyboard_arrow_up

Parameters help

Name Type
_newManager
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function changeManager(address _newManager) public onlyManager {
  manager = _newManager;
}

setOwner keyboard_arrow_up

Parameters help

Name Type
owner_
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

auth checks for the following:
null
Source Code
function setOwner(address owner_) public auth {
  owner = owner_;
  emit LogSetOwner(owner);
}

setAuthority keyboard_arrow_up

Parameters help

Name Type
authority_
DSAuthority help

Properties

Visibility help public
Mutability help transaction

Modifiers help

auth checks for the following:
null
Source Code
function setAuthority(DSAuthority authority_) public auth {
  authority = authority_;
  emit LogSetAuthority(address(authority));
}

stop keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Modifiers help

auth checks for the following:
null
note checks for the following:
Source Code
function stop() public auth note {
  stopped = true;
}

start keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Modifiers help

auth checks for the following:
null
note checks for the following:
Source Code
function start() public auth note {
  stopped = false;
}

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function totalSupply() public view returns (uint256) {
  return _supply;
}

Parameters help

Name Type
src
address help

Properties

Visibility help public
Mutability help view
Source Code
function balanceOf(address src) public view returns (uint256) {
  return _balances[src];
}

Parameters help

Name Type
src
address help
guy
address help

Properties

Visibility help public
Mutability help view
Source Code
function allowance(address src, address guy) public view returns (uint256) {
  return _approvals[src][guy];
}

Parameters help

Name Type
dst
address help
wad
uint help

Properties

Visibility help public
Mutability help transaction
Source Code
function transfer(address dst, uint256 wad) public returns (bool) {
  return transferFrom(msg.sender, dst, wad);
}

Parameters help

Name Type
src
address help
dst
address help
wad
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
function transferFrom(
  address src,
  address dst,
  uint256 wad
) public stoppable returns (bool) {
  require(_balances[src] >= wad, "token-insufficient-balance");

  // Adjust token transfer amount if necessary.
  if (isContract(manager)) {
    wad = ControllerManager(manager).onTransfer(src, _balances[src], wad);
    require(wad > 0, "transfer-disabled-by-ControllerManager");
  }

  if (src != msg.sender && _approvals[src][msg.sender] != uint256(-1)) {
    require(_approvals[src][msg.sender] >= wad, "token-insufficient-approval");
    _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad);
  }

  _balances[src] = sub(_balances[src], wad);
  _balances[dst] = add(_balances[dst], wad);

  emit Transfer(src, dst, wad);

  return true;
}

Parameters help

Name Type
guy
address help
wad
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

One or more of the following:
Source Code
function approve(address guy, uint256 wad) public stoppable returns (bool) {
  // To change the approve amount you first have to reduce the addresses`
  //  allowance to zero by calling `approve(_guy, 0)` if it is not
  //  already 0 to mitigate the race condition described here:
  //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
  require((wad == 0) || (_approvals[msg.sender][guy] == 0));

  _approvals[msg.sender][guy] = wad;

  emit Approval(msg.sender, guy, wad);

  return true;
}

Parameters help

Name Type
guy
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

One or more of the following:
Source Code
function approve(address guy) public stoppable returns (bool) {
  return approve(guy, uint256(-1));
}

burn keyboard_arrow_up

Parameters help

Name Type
wad
uint help

Properties

Visibility help public
Mutability help transaction
Source Code
function burn(uint256 wad) public {
  burn(msg.sender, wad);
}

mint keyboard_arrow_up

Parameters help

Name Type
guy
address help
wad
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
function mint(address guy, uint256 wad) public auth stoppable {
  _balances[guy] = add(_balances[guy], wad);
  _supply = add(_supply, wad);
  require(_supply <= MAX_SUPPLY, "Total supply overflow");
  emit Transfer(address(0), guy, wad);
}

burn keyboard_arrow_up

Parameters help

Name Type
guy
address help
wad
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
function burn(address guy, uint256 wad) public auth stoppable {
  if (guy != msg.sender && _approvals[guy][msg.sender] != uint256(-1)) {
    require(_approvals[guy][msg.sender] >= wad, "token-insufficient-approval");
    _approvals[guy][msg.sender] = sub(_approvals[guy][msg.sender], wad);
  }

  require(_balances[guy] >= wad, "token-insufficient-balance");
  _balances[guy] = sub(_balances[guy], wad);
  _supply = sub(_supply, wad);
  emit Transfer(guy, address(0), wad);
}

constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help payable
Source Code
function() external payable {}

claimTokens keyboard_arrow_up

Parameters help

Name Type
_token
address help
_dst
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

auth checks for the following:
null
Source Code
function claimTokens(address _token, address payable _dst) public auth {
  if (_token == address(0)) {
    _dst.transfer(address(this).balance);
    return;
  }

  ERC20 token = ERC20(_token);
  uint256 balance = token.balanceOf(address(this));
  token.transfer(_dst, balance);
}

Internal Functions Expand All Collapse All

Internal functions are parts of the contract that can't be used directly, but instead are used by the public functions listed above.

internal DSMath.add keyboard_arrow_up

Parameters help

Name Type
x
uint help
y
uint help

Properties

Visibility help internal
Mutability help pure

Requirements help

Source Code
function add(uint256 x, uint256 y) internal pure returns (uint256 z) {
  require((z = x + y) >= x, "ds-math-add-overflow");
}

internal DSMath.sub keyboard_arrow_up

Parameters help

Name Type
x
uint help
y
uint help

Properties

Visibility help internal
Mutability help pure

Requirements help

Source Code
function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {
  require((z = x - y) <= x, "ds-math-sub-underflow");
}

internal DSMath.mul keyboard_arrow_up

Parameters help

Name Type
x
uint help
y
uint help

Properties

Visibility help internal
Mutability help pure
Source Code
function mul(uint256 x, uint256 y) internal pure returns (uint256 z) {
  require(y == 0 || (z = x * y) / y == x, "ds-math-mul-overflow");
}

internal DSMath.min keyboard_arrow_up

Parameters help

Name Type
x
uint help
y
uint help

Properties

Visibility help internal
Mutability help pure
Source Code
function min(uint256 x, uint256 y) internal pure returns (uint256 z) {
  return x <= y ? x : y;
}

internal DSMath.max keyboard_arrow_up

Parameters help

Name Type
x
uint help
y
uint help

Properties

Visibility help internal
Mutability help pure
Source Code
function max(uint256 x, uint256 y) internal pure returns (uint256 z) {
  return x >= y ? x : y;
}

internal DSMath.imin keyboard_arrow_up

Parameters help

Name Type
x
int help
y
int help

Properties

Visibility help internal
Mutability help pure
Source Code
function imin(int256 x, int256 y) internal pure returns (int256 z) {
  return x <= y ? x : y;
}

internal DSMath.imax keyboard_arrow_up

Parameters help

Name Type
x
int help
y
int help

Properties

Visibility help internal
Mutability help pure
Source Code
function imax(int256 x, int256 y) internal pure returns (int256 z) {
  return x >= y ? x : y;
}

internal DSMath.wmul keyboard_arrow_up

Parameters help

Name Type
x
uint help
y
uint help

Properties

Visibility help internal
Mutability help pure
Source Code
function wmul(uint256 x, uint256 y) internal pure returns (uint256 z) {
  z = add(mul(x, y), WAD / 2) / WAD;
}

internal DSMath.rmul keyboard_arrow_up

Parameters help

Name Type
x
uint help
y
uint help

Properties

Visibility help internal
Mutability help pure
Source Code
function rmul(uint256 x, uint256 y) internal pure returns (uint256 z) {
  z = add(mul(x, y), RAY / 2) / RAY;
}

internal DSMath.wdiv keyboard_arrow_up

Parameters help

Name Type
x
uint help
y
uint help

Properties

Visibility help internal
Mutability help pure
Source Code
function wdiv(uint256 x, uint256 y) internal pure returns (uint256 z) {
  z = add(mul(x, WAD), y / 2) / y;
}

internal DSMath.rdiv keyboard_arrow_up

Parameters help

Name Type
x
uint help
y
uint help

Properties

Visibility help internal
Mutability help pure
Source Code
function rdiv(uint256 x, uint256 y) internal pure returns (uint256 z) {
  z = add(mul(x, RAY), y / 2) / y;
}

internal DSMath.rpow keyboard_arrow_up

Parameters help

Name Type
x
uint help
n
uint help

Properties

Visibility help internal
Mutability help pure
Source Code
function rpow(uint256 x, uint256 n) internal pure returns (uint256 z) {
  z = n % 2 != 0 ? x : RAY;

  for (n /= 2; n != 0; n /= 2) {
    x = rmul(x, x);

    if (n % 2 != 0) {
      z = rmul(z, x);
    }
  }
}

internal DSAuth.isAuthorized keyboard_arrow_up

Parameters help

Name Type
src
address help
sig
bytes4 help

Properties

Visibility help internal
Mutability help view
Source Code
function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
  if (src == address(this)) {
    return true;
  } else if (src == owner) {
    return true;
  } else if (authority == DSAuthority(0)) {
    return false;
  } else {
    return authority.canCall(src, address(this), sig);
  }
}

internal Managed.isContract keyboard_arrow_up

Parameters help

Name Type
_addr
address help

Properties

Visibility help internal
Mutability help view
Source Code
function isContract(address _addr) internal view returns (bool) {
  uint256 size = 0;
  assembly {
    size := extcodesize(_addr)
  }
  return size > 0;
}