Blockwell

Pundi X Token

ERC20

This contract is an ERC20 token.

Name Pundi X Token
Symbol PUNDIX
Decimals 18
Total Supply 258,484,530 PUNDIX

About link description

Pundi X[new] (PUNDIX) is a cryptocurrency and operates on the Ethereum platform. Pundi X[new] has a current supply of 258,491,637.23. The last known price of Pundi X[new] is 1.00956595 USD and is down -4.91 over the last 24 hours. It is currently trading on 21 active market(s) with $29,899,693.39 traded over the last 24 hours. More information can be found at https://pundix.com/.

Stats

Public Functions 29
Event Types 7
Code Size 72,232 bytes

Events (7) keyboard_arrow_up

Approval Event

Parameters help
owner
address help
spender
address help
value
uint256 help

Paused Event

Parameters help
account
address help

RoleAdminChanged Event

Parameters help
role
bytes32 help
previousAdminRole
bytes32 help
newAdminRole
bytes32 help

RoleGranted Event

Parameters help
role
bytes32 help
account
address help
sender
address help

RoleRevoked Event

Parameters help
role
bytes32 help
account
address help
sender
address help

Transfer Event

Parameters help
from
address help
to
address help
value
uint256 help

Unpaused Event

Parameters help
account
address help

ADMIN_ROLE Constant

bytes32 help

DEFAULT_ADMIN_ROLE Constant

bytes32 help
0x00

_TYPE_HASH Constant

bytes32 help
the result of calling keccak256 with "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"

_initialized Variable

bool help
Internal Variable

_initializing Variable

bool help
Internal Variable

__gap Variable

uint256[] help
Internal Variable

_roles Variable

mapping(bytes32 => RoleData) help
Internal Variable

__gap Variable

uint256[] 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

_name Variable

string help
Internal Variable

_symbol Variable

string help
Internal Variable

_decimals Variable

uint8 help
Internal Variable

__gap Variable

uint256[] help
Internal Variable

__gap Variable

uint256[] help
Internal Variable

_paused Variable

bool help
Internal Variable

__gap Variable

uint256[] help
Internal Variable

_nonces Variable

mapping(address => CountersUpgradeable.Counter) help
Internal Variable

_PERMIT_TYPEHASH Variable

bytes32 help
Internal Variable

__gap Variable

uint256[] help
Internal Variable

_HASHED_NAME Variable

bytes32 help
Internal Variable

_HASHED_VERSION Variable

bytes32 help
Internal Variable

__gap Variable

uint256[] help
Internal Variable

Functions Expand All Collapse All

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function name() public view returns (string memory) {
  return _name;
}

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function symbol() public view returns (string memory) {
  return _symbol;
}

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function decimals() public view returns (uint8) {
  return _decimals;
}

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function totalSupply() public view override 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 override 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
  virtual
  override
  returns (bool)
{
  _transfer(_msgSender(), 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
  virtual
  override
  returns (uint256)
{
  return _allowances[owner][spender];
}

Parameters help

Name Type
spender
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function approve(address spender, uint256 amount)
  public
  virtual
  override
  returns (bool)
{
  _approve(_msgSender(), spender, amount);
  return true;
}

Parameters help

Name Type
sender
address help
recipient
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function transferFrom(
  address sender,
  address recipient,
  uint256 amount
) public virtual override returns (bool) {
  _transfer(sender, recipient, amount);
  _approve(
    sender,
    _msgSender(),
    _allowances[sender][_msgSender()].sub(
      amount,
      "ERC20: transfer amount exceeds allowance"
    )
  );
  return true;
}

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
  virtual
  returns (bool)
{
  _approve(
    _msgSender(),
    spender,
    _allowances[_msgSender()][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
  virtual
  returns (bool)
{
  _approve(
    _msgSender(),
    spender,
    _allowances[_msgSender()][spender].sub(
      subtractedValue,
      "ERC20: decreased allowance below zero"
    )
  );
  return true;
}

permit keyboard_arrow_up

Parameters help

Name Type
owner
address help
spender
address help
value
uint256 help
deadline
uint256 help
v
uint8 help
r
bytes32 help
s
bytes32 help

Properties

Visibility help public
Mutability help transaction
Source Code
function permit(
  address owner,
  address spender,
  uint256 value,
  uint256 deadline,
  uint8 v,
  bytes32 r,
  bytes32 s
) public virtual override {
  // solhint-disable-next-line not-rely-on-time
  require(block.timestamp <= deadline, "ERC20Permit: expired deadline");

  bytes32 structHash = keccak256(
    abi.encode(
      _PERMIT_TYPEHASH,
      owner,
      spender,
      value,
      _nonces[owner].current(),
      deadline
    )
  );

  bytes32 hash = _hashTypedDataV4(structHash);

  address signer = ECDSAUpgradeable.recover(hash, v, r, s);
  require(signer == owner, "ERC20Permit: invalid signature");

  _nonces[owner].increment();
  _approve(owner, spender, value);
}

nonces keyboard_arrow_up

Parameters help

Name Type
owner
address help

Properties

Visibility help public
Mutability help view
Source Code
function nonces(address owner) public view override returns (uint256) {
  return _nonces[owner].current();
}

DOMAIN_SEPARATOR keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function DOMAIN_SEPARATOR() external view override returns (bytes32) {
  return _domainSeparatorV4();
}

paused keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function paused() public view returns (bool) {
  return _paused;
}

burn keyboard_arrow_up

Parameters help

Name Type
amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function burn(uint256 amount) public virtual {
  _burn(_msgSender(), amount);
}

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

hasRole keyboard_arrow_up

Parameters help

Name Type
role
bytes32 help
account
address help

Properties

Visibility help public
Mutability help view
Source Code
function hasRole(bytes32 role, address account) public view returns (bool) {
  return _roles[role].members.contains(account);
}

getRoleMemberCount keyboard_arrow_up

Parameters help

Name Type
role
bytes32 help

Properties

Visibility help public
Mutability help view
Source Code
function getRoleMemberCount(bytes32 role) public view returns (uint256) {
  return _roles[role].members.length();
}

getRoleMember keyboard_arrow_up

Parameters help

Name Type
role
bytes32 help
index
uint256 help

Properties

Visibility help public
Mutability help view
Source Code
function getRoleMember(bytes32 role, uint256 index)
  public
  view
  returns (address)
{
  return _roles[role].members.at(index);
}

getRoleAdmin keyboard_arrow_up

Parameters help

Name Type
role
bytes32 help

Properties

Visibility help public
Mutability help view
Source Code
function getRoleAdmin(bytes32 role) public view returns (bytes32) {
  return _roles[role].adminRole;
}

grantRole keyboard_arrow_up

Parameters help

Name Type
role
bytes32 help
account
address help

Properties

Visibility help public
Mutability help transaction

Requirements help

null
Source Code
function grantRole(bytes32 role, address account) public virtual {
  require(
    hasRole(_roles[role].adminRole, _msgSender()),
    "AccessControl: sender must be an admin to grant"
  );

  _grantRole(role, account);
}

revokeRole keyboard_arrow_up

Parameters help

Name Type
role
bytes32 help
account
address help

Properties

Visibility help public
Mutability help transaction

Requirements help

null
Source Code
function revokeRole(bytes32 role, address account) public virtual {
  require(
    hasRole(_roles[role].adminRole, _msgSender()),
    "AccessControl: sender must be an admin to revoke"
  );

  _revokeRole(role, account);
}

renounceRole keyboard_arrow_up

Parameters help

Name Type
role
bytes32 help
account
address help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
function renounceRole(bytes32 role, address account) public virtual {
  require(
    account == _msgSender(),
    "AccessControl: can only renounce roles for self"
  );

  _revokeRole(role, account);
}

initialize keyboard_arrow_up

Parameters help

Name Type
to
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

Source Code
function initialize(address to) public virtual initializer {
  __Context_init_unchained();
  __AccessControl_init_unchained();
  __ERC20_init_unchained("Pundi X Token", "PUNDIX");
  __ERC20Burnable_init_unchained();
  __Pausable_init_unchained();
  __ERC20Pausable_init_unchained();
  __ERC20Permit_init("PUNDIX");

  _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());
  _setupRole(ADMIN_ROLE, _msgSender());

  _mint(to, 258498693019069996455928086);
}

pause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Requirements help

null
Source Code
function pause() public virtual {
  require(hasRole(ADMIN_ROLE, _msgSender()), "must have admin role to pause");
  _pause();
}

unpause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Requirements help

null
Source Code
function unpause() public virtual {
  require(hasRole(ADMIN_ROLE, _msgSender()), "must have admin role to unpause");
  _unpause();
}

transferERCToken keyboard_arrow_up

Parameters help

Name Type
tokenContractAddress
address help
to
address help
amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

null
Source Code
function transferERCToken(
  address tokenContractAddress,
  address to,
  uint256 amount
) public {
  require(
    hasRole(ADMIN_ROLE, _msgSender()),
    "must have admin role to transfer other ERC20"
  );
  require(IERC20Upgradeable(tokenContractAddress).transfer(to, amount));
}

transferAndCall keyboard_arrow_up

Parameters help

Name Type
recipient
address help
amount
uint256 help
data
bytes help

Properties

Visibility help public
Mutability help transaction
Source Code
function transferAndCall(
  address recipient,
  uint256 amount,
  bytes memory data
) public {
  require(recipient != address(0), "transfer to the zero address");
  require(amount <= balanceOf(recipient), "insufficient balance");
  transfer(recipient, amount);
  require(TokenRecipient(recipient).tokenFallback(msg.sender, amount, data));
}

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 PUNDIXToken._beforeTokenTransfer keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _beforeTokenTransfer(
  address from,
  address to,
  uint256 amount
) internal virtual override(ERC20Upgradeable, ERC20PausableUpgradeable) {
  super._beforeTokenTransfer(from, to, amount);
}

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ContextUpgradeable.__Context_init keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init() internal initializer {
  __Context_init_unchained();
}

internal ContextUpgradeable.__Context_init_unchained keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init_unchained() internal initializer {}

internal ContextUpgradeable._msgSender keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
Source Code
function _msgSender() internal view virtual returns (address payable) {
  return msg.sender;
}

internal ContextUpgradeable._msgData keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
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.

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal AccessControlUpgradeable.__AccessControl_init keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __AccessControl_init() internal initializer {
  __Context_init_unchained();
  __AccessControl_init_unchained();
}

internal AccessControlUpgradeable.__AccessControl_init_unchained keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __AccessControl_init_unchained() internal initializer {}

internal AccessControlUpgradeable._setupRole keyboard_arrow_up

Parameters help

Name Type
role
bytes32 help
account
address help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _setupRole(bytes32 role, address account) internal virtual {
  _grantRole(role, account);
}

internal AccessControlUpgradeable._setRoleAdmin keyboard_arrow_up

Parameters help

Name Type
role
bytes32 help
adminRole
bytes32 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
  emit RoleAdminChanged(role, _roles[role].adminRole, adminRole);
  _roles[role].adminRole = adminRole;
}

internal AccessControlUpgradeable._grantRole keyboard_arrow_up

Parameters help

Name Type
role
bytes32 help
account
address help

Properties

Visibility help private
Mutability help transaction
Source Code
function _grantRole(bytes32 role, address account) private {
  if (_roles[role].members.add(account)) {
    emit RoleGranted(role, account, _msgSender());
  }
}

internal AccessControlUpgradeable._revokeRole keyboard_arrow_up

Parameters help

Name Type
role
bytes32 help
account
address help

Properties

Visibility help private
Mutability help transaction
Source Code
function _revokeRole(bytes32 role, address account) private {
  if (_roles[role].members.remove(account)) {
    emit RoleRevoked(role, account, _msgSender());
  }
}

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ContextUpgradeable.__Context_init keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init() internal initializer {
  __Context_init_unchained();
}

internal ContextUpgradeable.__Context_init_unchained keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init_unchained() internal initializer {}

internal ContextUpgradeable._msgSender keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
Source Code
function _msgSender() internal view virtual returns (address payable) {
  return msg.sender;
}

internal ContextUpgradeable._msgData keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
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.

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ERC20BurnableUpgradeable.__ERC20Burnable_init keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __ERC20Burnable_init() internal initializer {
  __Context_init_unchained();
  __ERC20Burnable_init_unchained();
}

internal ERC20BurnableUpgradeable.__ERC20Burnable_init_unchained keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __ERC20Burnable_init_unchained() internal initializer {}

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ContextUpgradeable.__Context_init keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init() internal initializer {
  __Context_init_unchained();
}

internal ContextUpgradeable.__Context_init_unchained keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init_unchained() internal initializer {}

internal ContextUpgradeable._msgSender keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
Source Code
function _msgSender() internal view virtual returns (address payable) {
  return msg.sender;
}

internal ContextUpgradeable._msgData keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
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.

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ERC20Upgradeable.__ERC20_init keyboard_arrow_up

Parameters help

Name Type
name_
string help
symbol_
string help

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __ERC20_init(string memory name_, string memory symbol_)
  internal
  initializer
{
  __Context_init_unchained();
  __ERC20_init_unchained(name_, symbol_);
}

internal ERC20Upgradeable.__ERC20_init_unchained keyboard_arrow_up

Parameters help

Name Type
name_
string help
symbol_
string help

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __ERC20_init_unchained(string memory name_, string memory symbol_)
  internal
  initializer
{
  _name = name_;
  _symbol = symbol_;
  _decimals = 18;
}

internal ERC20Upgradeable._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 virtual {
  require(sender != address(0), "ERC20: transfer from the zero address");
  require(recipient != address(0), "ERC20: transfer to the zero address");

  _beforeTokenTransfer(sender, recipient, amount);

  _balances[sender] = _balances[sender].sub(
    amount,
    "ERC20: transfer amount exceeds balance"
  );
  _balances[recipient] = _balances[recipient].add(amount);
  emit Transfer(sender, recipient, amount);
}

internal ERC20Upgradeable._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 virtual {
  require(account != address(0), "ERC20: mint to the zero address");

  _beforeTokenTransfer(address(0), account, amount);

  _totalSupply = _totalSupply.add(amount);
  _balances[account] = _balances[account].add(amount);
  emit Transfer(address(0), account, amount);
}

internal ERC20Upgradeable._burn 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 _burn(address account, uint256 amount) internal virtual {
  require(account != address(0), "ERC20: burn from the zero address");

  _beforeTokenTransfer(account, address(0), amount);

  _balances[account] = _balances[account].sub(
    amount,
    "ERC20: burn amount exceeds balance"
  );
  _totalSupply = _totalSupply.sub(amount);
  emit Transfer(account, address(0), amount);
}

internal ERC20Upgradeable._approve keyboard_arrow_up

Parameters help

Name Type
owner
address help
spender
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction

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");

  _allowances[owner][spender] = amount;
  emit Approval(owner, spender, amount);
}

internal ERC20Upgradeable._setupDecimals keyboard_arrow_up

Parameters help

Name Type
decimals_
uint8 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _setupDecimals(uint8 decimals_) internal {
  _decimals = decimals_;
}

internal ERC20Upgradeable._beforeTokenTransfer keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _beforeTokenTransfer(
  address from,
  address to,
  uint256 amount
) internal virtual {}

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ContextUpgradeable.__Context_init keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init() internal initializer {
  __Context_init_unchained();
}

internal ContextUpgradeable.__Context_init_unchained keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init_unchained() internal initializer {}

internal ContextUpgradeable._msgSender keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
Source Code
function _msgSender() internal view virtual returns (address payable) {
  return msg.sender;
}

internal ContextUpgradeable._msgData keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
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.

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ERC20PausableUpgradeable.__ERC20Pausable_init keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __ERC20Pausable_init() internal initializer {
  __Context_init_unchained();
  __Pausable_init_unchained();
  __ERC20Pausable_init_unchained();
}

internal ERC20PausableUpgradeable.__ERC20Pausable_init_unchained keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __ERC20Pausable_init_unchained() internal initializer {}

internal ERC20PausableUpgradeable._beforeTokenTransfer keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

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 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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ERC20Upgradeable.__ERC20_init keyboard_arrow_up

Parameters help

Name Type
name_
string help
symbol_
string help

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __ERC20_init(string memory name_, string memory symbol_)
  internal
  initializer
{
  __Context_init_unchained();
  __ERC20_init_unchained(name_, symbol_);
}

internal ERC20Upgradeable.__ERC20_init_unchained keyboard_arrow_up

Parameters help

Name Type
name_
string help
symbol_
string help

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __ERC20_init_unchained(string memory name_, string memory symbol_)
  internal
  initializer
{
  _name = name_;
  _symbol = symbol_;
  _decimals = 18;
}

internal ERC20Upgradeable._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 virtual {
  require(sender != address(0), "ERC20: transfer from the zero address");
  require(recipient != address(0), "ERC20: transfer to the zero address");

  _beforeTokenTransfer(sender, recipient, amount);

  _balances[sender] = _balances[sender].sub(
    amount,
    "ERC20: transfer amount exceeds balance"
  );
  _balances[recipient] = _balances[recipient].add(amount);
  emit Transfer(sender, recipient, amount);
}

internal ERC20Upgradeable._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 virtual {
  require(account != address(0), "ERC20: mint to the zero address");

  _beforeTokenTransfer(address(0), account, amount);

  _totalSupply = _totalSupply.add(amount);
  _balances[account] = _balances[account].add(amount);
  emit Transfer(address(0), account, amount);
}

internal ERC20Upgradeable._burn 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 _burn(address account, uint256 amount) internal virtual {
  require(account != address(0), "ERC20: burn from the zero address");

  _beforeTokenTransfer(account, address(0), amount);

  _balances[account] = _balances[account].sub(
    amount,
    "ERC20: burn amount exceeds balance"
  );
  _totalSupply = _totalSupply.sub(amount);
  emit Transfer(account, address(0), amount);
}

internal ERC20Upgradeable._approve keyboard_arrow_up

Parameters help

Name Type
owner
address help
spender
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction

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");

  _allowances[owner][spender] = amount;
  emit Approval(owner, spender, amount);
}

internal ERC20Upgradeable._setupDecimals keyboard_arrow_up

Parameters help

Name Type
decimals_
uint8 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _setupDecimals(uint8 decimals_) internal {
  _decimals = decimals_;
}

internal ERC20Upgradeable._beforeTokenTransfer keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _beforeTokenTransfer(
  address from,
  address to,
  uint256 amount
) internal virtual {}

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ContextUpgradeable.__Context_init keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init() internal initializer {
  __Context_init_unchained();
}

internal ContextUpgradeable.__Context_init_unchained keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init_unchained() internal initializer {}

internal ContextUpgradeable._msgSender keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
Source Code
function _msgSender() internal view virtual returns (address payable) {
  return msg.sender;
}

internal ContextUpgradeable._msgData keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
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.

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal PausableUpgradeable.__Pausable_init keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Pausable_init() internal initializer {
  __Context_init_unchained();
  __Pausable_init_unchained();
}

internal PausableUpgradeable.__Pausable_init_unchained keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Pausable_init_unchained() internal initializer {
  _paused = false;
}

internal PausableUpgradeable._pause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function _pause() internal virtual whenNotPaused {
  _paused = true;
  emit Paused(_msgSender());
}

internal PausableUpgradeable._unpause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function _unpause() internal virtual whenPaused {
  _paused = false;
  emit Unpaused(_msgSender());
}

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ContextUpgradeable.__Context_init keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init() internal initializer {
  __Context_init_unchained();
}

internal ContextUpgradeable.__Context_init_unchained keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init_unchained() internal initializer {}

internal ContextUpgradeable._msgSender keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
Source Code
function _msgSender() internal view virtual returns (address payable) {
  return msg.sender;
}

internal ContextUpgradeable._msgData keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
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.

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ERC20PermitUpgradeable.__ERC20Permit_init keyboard_arrow_up

Parameters help

Name Type
name
string help

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __ERC20Permit_init(string memory name) internal initializer {
  __Context_init_unchained();
  __EIP712_init_unchained(name, "1");
  __ERC20Permit_init_unchained(name);
}

internal ERC20PermitUpgradeable.__ERC20Permit_init_unchained keyboard_arrow_up

Parameters help

Name Type
name
string help

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __ERC20Permit_init_unchained(string memory name) internal initializer {
  _PERMIT_TYPEHASH = keccak256(
    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
  );
}

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ERC20Upgradeable.__ERC20_init keyboard_arrow_up

Parameters help

Name Type
name_
string help
symbol_
string help

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __ERC20_init(string memory name_, string memory symbol_)
  internal
  initializer
{
  __Context_init_unchained();
  __ERC20_init_unchained(name_, symbol_);
}

internal ERC20Upgradeable.__ERC20_init_unchained keyboard_arrow_up

Parameters help

Name Type
name_
string help
symbol_
string help

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __ERC20_init_unchained(string memory name_, string memory symbol_)
  internal
  initializer
{
  _name = name_;
  _symbol = symbol_;
  _decimals = 18;
}

internal ERC20Upgradeable._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 virtual {
  require(sender != address(0), "ERC20: transfer from the zero address");
  require(recipient != address(0), "ERC20: transfer to the zero address");

  _beforeTokenTransfer(sender, recipient, amount);

  _balances[sender] = _balances[sender].sub(
    amount,
    "ERC20: transfer amount exceeds balance"
  );
  _balances[recipient] = _balances[recipient].add(amount);
  emit Transfer(sender, recipient, amount);
}

internal ERC20Upgradeable._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 virtual {
  require(account != address(0), "ERC20: mint to the zero address");

  _beforeTokenTransfer(address(0), account, amount);

  _totalSupply = _totalSupply.add(amount);
  _balances[account] = _balances[account].add(amount);
  emit Transfer(address(0), account, amount);
}

internal ERC20Upgradeable._burn 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 _burn(address account, uint256 amount) internal virtual {
  require(account != address(0), "ERC20: burn from the zero address");

  _beforeTokenTransfer(account, address(0), amount);

  _balances[account] = _balances[account].sub(
    amount,
    "ERC20: burn amount exceeds balance"
  );
  _totalSupply = _totalSupply.sub(amount);
  emit Transfer(account, address(0), amount);
}

internal ERC20Upgradeable._approve keyboard_arrow_up

Parameters help

Name Type
owner
address help
spender
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction

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");

  _allowances[owner][spender] = amount;
  emit Approval(owner, spender, amount);
}

internal ERC20Upgradeable._setupDecimals keyboard_arrow_up

Parameters help

Name Type
decimals_
uint8 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _setupDecimals(uint8 decimals_) internal {
  _decimals = decimals_;
}

internal ERC20Upgradeable._beforeTokenTransfer keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
amount
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _beforeTokenTransfer(
  address from,
  address to,
  uint256 amount
) internal virtual {}

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal ContextUpgradeable.__Context_init keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init() internal initializer {
  __Context_init_unchained();
}

internal ContextUpgradeable.__Context_init_unchained keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __Context_init_unchained() internal initializer {}

internal ContextUpgradeable._msgSender keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
Source Code
function _msgSender() internal view virtual returns (address payable) {
  return msg.sender;
}

internal ContextUpgradeable._msgData keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
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.

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}

internal EIP712Upgradeable.__EIP712_init keyboard_arrow_up

Parameters help

Name Type
name
string help
version
string help

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __EIP712_init(string memory name, string memory version)
  internal
  initializer
{
  __EIP712_init_unchained(name, version);
}

internal EIP712Upgradeable.__EIP712_init_unchained keyboard_arrow_up

Parameters help

Name Type
name
string help
version
string help

Properties

Visibility help internal
Mutability help transaction

Modifiers help

Source Code
function __EIP712_init_unchained(string memory name, string memory version)
  internal
  initializer
{
  bytes32 hashedName = keccak256(bytes(name));
  bytes32 hashedVersion = keccak256(bytes(version));
  _HASHED_NAME = hashedName;
  _HASHED_VERSION = hashedVersion;
}

internal EIP712Upgradeable._domainSeparatorV4 keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
Source Code
function _domainSeparatorV4() internal view returns (bytes32) {
  return
    _buildDomainSeparator(_TYPE_HASH, _EIP712NameHash(), _EIP712VersionHash());
}

internal EIP712Upgradeable._buildDomainSeparator keyboard_arrow_up

Parameters help

Name Type
typeHash
bytes32 help
name
bytes32 help
version
bytes32 help

Properties

Visibility help private
Mutability help view
Source Code
function _buildDomainSeparator(
  bytes32 typeHash,
  bytes32 name,
  bytes32 version
) private view returns (bytes32) {
  return
    keccak256(
      abi.encode(typeHash, name, version, _getChainId(), address(this))
    );
}

internal EIP712Upgradeable._hashTypedDataV4 keyboard_arrow_up

Parameters help

Name Type
structHash
bytes32 help

Properties

Visibility help internal
Mutability help view
Source Code
function _hashTypedDataV4(bytes32 structHash)
  internal
  view
  virtual
  returns (bytes32)
{
  return
    keccak256(abi.encodePacked("\x19\x01", _domainSeparatorV4(), structHash));
}

internal EIP712Upgradeable._getChainId keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help private
Mutability help view
Source Code
function _getChainId() private view returns (uint256 chainId) {
  this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
  // solhint-disable-next-line no-inline-assembly
  assembly {
    chainId := chainid()
  }
}

internal EIP712Upgradeable._EIP712NameHash keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
Source Code
function _EIP712NameHash() internal view virtual returns (bytes32) {
  return _HASHED_NAME;
}

internal EIP712Upgradeable._EIP712VersionHash keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help view
Source Code
function _EIP712VersionHash() internal view virtual returns (bytes32) {
  return _HASHED_VERSION;
}

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.
  address self = address(this);
  uint256 cs;
  // solhint-disable-next-line no-inline-assembly
  assembly {
    cs := extcodesize(self)
  }
  return cs == 0;
}