Blockwell

GMO JPY

ERC20

This contract is an ERC20 token.

Name GMO JPY
Symbol GYEN
Decimals 6
Total Supply 2,231,321,096 GYEN

About link description

GYEN (GYEN) is a cryptocurrency and operates on the Ethereum platform. GYEN has a current supply of 2,231,321,096. The last known price of GYEN is 0.00918962 USD and is up 0.84 over the last 24 hours. It is currently trading on 8 active market(s) with $544,573.00 traded over the last 24 hours. More information can be found at https://stablecoin.z.com/.

Identical Contracts

The following contracts have identical source code.

Stats

Public Functions 26
Event Types 16
Code Size 25,584 bytes

Events (16) keyboard_arrow_up

AdminChanged Event

Parameters help
oldAdmin
address help
newAdmin
address help
sender
address help

Approval Event

Parameters help
owner
address help
spender
address help
value
uint256 help

Burn Event

Parameters help
burnee
address help
amount
uint256 help
sender
address help

Cap Event

Parameters help
newCapacity
uint256 help
sender
address help

CapperChanged Event

Parameters help
oldCapper
address help
newCapper
address help
sender
address help

Mint Event

Parameters help
mintee
address help
amount
uint256 help
sender
address help

MinterAdminChanged Event

Parameters help
oldMinterAdmin
address help
newMinterAdmin
address help
sender
address help

MinterChanged Event

Parameters help
oldMinter
address help
newMinter
address help
sender
address help

OwnerChanged Event

Parameters help
oldOwner
address help
newOwner
address help
sender
address help

Pause Event

Parameters help
status
bool help
sender
address help

PauserChanged Event

Parameters help
oldPauser
address help
newPauser
address help
sender
address help

ProhibiterChanged Event

Parameters help
oldProhibiter
address help
newProhibiter
address help
sender
address help

Prohibition Event

Parameters help
prohibited
address help
status
bool help
sender
address help

Transfer Event

Parameters help
from
address help
to
address help
value
uint256 help

Wipe Event

Parameters help
addr
address help
amount
uint256 help

WiperChanged Event

Parameters help
oldWiper
address help
newWiper
address help
sender
address help

name Variable

string help

symbol Variable

string help

decimals Variable

uint8 help

owner Variable

address help

admin Variable

address help

capacity Variable

uint256 help

capper Variable

address help

prohibiter Variable

address help

pauser Variable

address help

paused Variable

bool help

minterAdmin Variable

address help

minter Variable

address help

wiper Variable

address help

prohibiteds Variable

mapping(address => bool) help

initialized Variable

bool help
Internal Variable

initializing Variable

bool help
Internal Variable

______gap Variable

uint256[] help
Internal Variable

_balances Variable

mapping(address => uint256) help
Internal Variable

_allowances Variable

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

_totalSupply Variable

uint256 help
Internal Variable

Functions Expand All Collapse All

initializeWiper keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

Source Code
function initializeWiper(address _account) public isNotZeroAddress(_account) {
  require(wiper == address(0), "the wiper can only be initiated once");
  wiper = _account;
}

pause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function pause() public onlyPauser whenNotPaused {
  paused = true;
  emit Pause(paused, msg.sender);
}

unpause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function unpause() public onlyPauser whenPaused {
  paused = false;
  emit Pause(paused, msg.sender);
}

changeMinter keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function changeMinter(address _account)
  public
  onlyMinterAdmin
  whenNotPaused
  isNotZeroAddress(_account)
{
  address old = minter;
  minter = _account;
  emit MinterChanged(old, minter, msg.sender);
}

prohibit keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function prohibit(address _account)
  public
  onlyProhibiter
  whenNotPaused
  isNotZeroAddress(_account)
  onlyNotProhibited(_account)
{
  prohibiteds[_account] = true;
  emit Prohibition(_account, prohibiteds[_account], msg.sender);
}

unprohibit keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function unprohibit(address _account)
  public
  onlyProhibiter
  whenNotPaused
  isNotZeroAddress(_account)
  onlyProhibited(_account)
{
  prohibiteds[_account] = false;
  emit Prohibition(_account, prohibiteds[_account], msg.sender);
}

changeCapper keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function changeCapper(address _account)
  public
  onlyAdmin
  whenNotPaused
  isNotZeroAddress(_account)
{
  address old = capper;
  capper = _account;
  emit CapperChanged(old, capper, msg.sender);
}

changePauser keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function changePauser(address _account)
  public
  onlyAdmin
  isNotZeroAddress(_account)
{
  address old = pauser;
  pauser = _account;
  emit PauserChanged(old, pauser, msg.sender);
}

changeProhibiter keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function changeProhibiter(address _account)
  public
  onlyAdmin
  whenNotPaused
  isNotZeroAddress(_account)
{
  address old = prohibiter;
  prohibiter = _account;
  emit ProhibiterChanged(old, prohibiter, msg.sender);
}

changeOwner keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function changeOwner(address _account)
  public
  onlyOwner
  whenNotPaused
  isNotZeroAddress(_account)
{
  address old = owner;
  owner = _account;
  emit OwnerChanged(old, owner, msg.sender);
}

changeAdmin keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function changeAdmin(address _account)
  public
  onlyOwner
  isNotZeroAddress(_account)
{
  address old = admin;
  admin = _account;
  emit AdminChanged(old, admin, msg.sender);
}

changeMinterAdmin keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function changeMinterAdmin(address _account)
  public
  onlyOwner
  whenNotPaused
  isNotZeroAddress(_account)
{
  address old = minterAdmin;
  minterAdmin = _account;
  emit MinterAdminChanged(old, minterAdmin, msg.sender);
}

Parameters help

This function has no parameters.

Properties

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

Parameters help

Name Type
account
address help

Properties

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

Parameters help

Name Type
_recipient
address help
_amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function transfer(address _recipient, uint256 _amount)
  public
  whenNotPaused
  onlyNotProhibited(msg.sender)
  isNaturalNumber(_amount)
  returns (bool)
{
  _transfer(msg.sender, _recipient, _amount);
  return true;
}

Parameters help

Name Type
owner
address help
spender
address help

Properties

Visibility help public
Mutability help view
Source Code
function allowance(address owner, address spender)
  public
  view
  returns (uint256)
{
  return _allowances[owner][spender];
}

Parameters help

Name Type
spender
address help
value
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function approve(address spender, uint256 value) public returns (bool) {
  _approve(msg.sender, spender, value);
  return true;
}

Parameters help

Name Type
_sender
address help
_recipient
address help
_amount
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
function transferFrom(
  address _sender,
  address _recipient,
  uint256 _amount
)
  public
  whenNotPaused
  onlyNotProhibited(_sender)
  isNaturalNumber(_amount)
  returns (bool)
{
  return super.transferFrom(_sender, _recipient, _amount);
}

Parameters help

Name Type
spender
address help
addedValue
uint256 help

Properties

Visibility help public
Mutability help transaction

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;
}

Parameters help

Name Type
spender
address help
subtractedValue
uint256 help

Properties

Visibility help public
Mutability help transaction

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;
}

initialize keyboard_arrow_up

Parameters help

Name Type
_name
string help
_symbol
string help
_decimals
uint8 help
_owner
address help
_admin
address help
_capper
address help
_prohibiter
address help
_pauser
address help
_minterAdmin
address help
_minter
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
function initialize(
  string memory _name,
  string memory _symbol,
  uint8 _decimals,
  address _owner,
  address _admin,
  address _capper,
  address _prohibiter,
  address _pauser,
  address _minterAdmin,
  address _minter
) public initializer {
  require(_owner != address(0), "_owner is the zero address");
  require(_admin != address(0), "_admin is the zero address");
  require(_capper != address(0), "_capper is the zero address");
  require(_prohibiter != address(0), "_prohibiter is the zero address");
  require(_pauser != address(0), "_pauser is the zero address");
  require(_minterAdmin != address(0), "_minterAdmin is the zero address");
  require(_minter != address(0), "_minter is the zero address");
  name = _name;
  symbol = _symbol;
  decimals = _decimals;
  owner = _owner;
  admin = _admin;
  capper = _capper;
  prohibiter = _prohibiter;
  pauser = _pauser;
  minterAdmin = _minterAdmin;
  minter = _minter;
}

cap keyboard_arrow_up

Parameters help

Name Type
_amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function cap(uint256 _amount)
  public
  onlyCapper
  whenNotPaused
  isNaturalNumber(_amount)
{
  require(
    totalSupply() <= _amount,
    "this amount is less than the totalySupply"
  );
  _cap(_amount);
}

mint keyboard_arrow_up

Parameters help

Name Type
_account
address help
_amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function mint(address _account, uint256 _amount)
  public
  onlyMinter
  whenNotPaused
  notMoreThanCapacity(totalSupply().add(_amount))
  isNaturalNumber(_amount)
{
  _mint(_account, _amount);
  emit Mint(_account, _amount, msg.sender);
}

burn keyboard_arrow_up

Parameters help

Name Type
_amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

Source Code
function burn(uint256 _amount) public isNaturalNumber(_amount) {
  _burn(msg.sender, _amount);
  emit Burn(msg.sender, _amount, msg.sender);
}

changeWiper keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help public
Mutability help transaction
Source Code
function changeWiper(address _account)
  public
  onlyAdmin
  whenNotPaused
  isNotZeroAddress(_account)
{
  address old = wiper;
  wiper = _account;
  emit WiperChanged(old, wiper, msg.sender);
}

wipe keyboard_arrow_up

Parameters help

Name Type
_account
address help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function wipe(address _account)
  public
  whenNotPaused
  onlyWiper
  onlyProhibited(_account)
{
  uint256 _balance = balanceOf(_account);
  _burn(_account, _balance);
  emit Wipe(_account, _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 Initializable.isConstructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help private
Mutability help view
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.
  uint256 cs;
  assembly {
    cs := extcodesize(address)
  }
  return cs == 0;
}

internal ERC20._transfer keyboard_arrow_up

Parameters help

Name Type
sender
address help
recipient
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction

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

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

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

Parameters help

Name Type
account
address help
value
uint256 help

Properties

Visibility help internal
Mutability help transaction

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

Parameters help

Name Type
owner
address help
spender
address help
value
uint256 help

Properties

Visibility help internal
Mutability help transaction

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

Parameters help

Name Type
account
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _burnFrom(address account, uint256 amount) internal {
  _burn(account, amount);
  _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount));
}

internal Capper._cap keyboard_arrow_up

Parameters help

Name Type
_amount
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _cap(uint256 _amount) internal {
  capacity = _amount;
  emit Cap(capacity, msg.sender);
}