Blockwell

MyCryptoHeroes:Hero

About

Stats

Public Functions 33
Event Types 10
Code Size 36,347 bytes

Events (10) keyboard_arrow_up

Approval Event

Parameters help
owner
address help
approved
address help
tokenId
uint256 help

ApprovalForAll Event

Parameters help
owner
address help
operator
address help
approved
bool help

MinterAdded Event

Parameters help
account
address help

MinterRemoved Event

Parameters help
account
address help

MintingFinished Event

Parameters help

Paused Event

Parameters help

PauserAdded Event

Parameters help
account
address help

PauserRemoved Event

Parameters help
account
address help

Transfer Event

Parameters help
from
address help
to
address help
tokenId
uint256 help

Unpaused Event

Parameters help

HERO_TYPE_OFFSET Constant

uint16 help
10000

_ERC721_RECEIVED Constant

bytes4 help
0x150b7a02

_InterfaceId_ERC721 Constant

bytes4 help
0x80ac58cd

_InterfaceId_ERC165 Constant

bytes4 help
0x01ffc9a7

_InterfaceId_ERC721Enumerable Constant

bytes4 help
0x780e9d63

InterfaceId_ERC721Metadata Constant

bytes4 help
0x5b5e139f

tokenURIPrefix Variable

string help

heroTypeToSupplyLimit Variable

mapping(uint16 => uint16) help
Internal Variable

_mintingFinished Variable

bool help
Internal Variable

_tokenOwner Variable

mapping(uint256 => address) help
Internal Variable

_tokenApprovals Variable

mapping(uint256 => address) help
Internal Variable

_ownedTokensCount Variable

mapping(address => uint256) help
Internal Variable

_operatorApprovals Variable

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

_supportedInterfaces Variable

mapping(bytes4 => bool) help
Internal Variable

_ownedTokens Variable

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

_ownedTokensIndex Variable

mapping(uint256 => uint256) help
Internal Variable

_allTokens Variable

uint256[] help
Internal Variable

_allTokensIndex Variable

mapping(uint256 => uint256) help
Internal Variable

_name Variable

string help
Internal Variable

_symbol Variable

string help
Internal Variable

_tokenURIs Variable

mapping(uint256 => string) help
Internal Variable

minters Variable

Roles.Role help
Internal Variable

_paused Variable

bool help
Internal Variable

pausers Variable

Roles.Role help
Internal Variable

Functions Expand All Collapse All

isPauser keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help public
Mutability help view
Source Code
function isPauser(address account) public view returns (bool) {
  return pausers.has(account);
}

addPauser keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyPauser checks for the following:
null
Source Code
function addPauser(address account) public onlyPauser {
  pausers.add(account);
  emit PauserAdded(account);
}

renouncePauser keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function renouncePauser() public {
  pausers.remove(msg.sender);
}

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

pause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyPauser checks for the following:
null
Source Code
function pause() public onlyPauser whenNotPaused {
  _paused = true;
  emit Paused();
}

unpause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
function unpause() public onlyPauser whenPaused {
  _paused = false;
  emit Unpaused();
}

Parameters help

Name Type
owner
address help

Properties

Visibility help public
Mutability help view

Requirements help

Source Code
function balanceOf(address owner) public view returns (uint256) {
  require(owner != address(0));
  return _ownedTokensCount[owner];
}

ownerOf keyboard_arrow_up

Parameters help

Name Type
tokenId
uint256 help

Properties

Visibility help public
Mutability help view

Requirements help

Source Code
function ownerOf(uint256 tokenId) public view returns (address) {
  address owner = _tokenOwner[tokenId];
  require(owner != address(0));
  return owner;
}

Parameters help

Name Type
to
address help
tokenId
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
function approve(address to, uint256 tokenId) public whenNotPaused {
  super.approve(to, tokenId);
}

getApproved keyboard_arrow_up

Parameters help

Name Type
tokenId
uint256 help

Properties

Visibility help public
Mutability help view

Requirements help

null
Source Code
function getApproved(uint256 tokenId) public view returns (address) {
  require(_exists(tokenId));
  return _tokenApprovals[tokenId];
}

setApprovalForAll keyboard_arrow_up

Parameters help

Name Type
to
address help
approved
bool help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
function setApprovalForAll(address to, bool approved) public whenNotPaused {
  super.setApprovalForAll(to, approved);
}

isApprovedForAll keyboard_arrow_up

Parameters help

Name Type
owner
address help
operator
address help

Properties

Visibility help public
Mutability help view
Source Code
function isApprovedForAll(address owner, address operator)
  public
  view
  returns (bool)
{
  return _operatorApprovals[owner][operator];
}

Parameters help

Name Type
from
address help
to
address help
tokenId
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

null
Source Code
function transferFrom(
  address from,
  address to,
  uint256 tokenId
) public whenNotPaused {
  super.transferFrom(from, to, tokenId);
}

safeTransferFrom keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
tokenId
uint256 help

Properties

Visibility help public
Mutability help transaction

Requirements help

null
null
Source Code
function safeTransferFrom(
  address from,
  address to,
  uint256 tokenId
) public {
  // solium-disable-next-line arg-overflow
  safeTransferFrom(from, to, tokenId, "");
}

safeTransferFrom keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
tokenId
uint256 help
_data
bytes help

Properties

Visibility help public
Mutability help transaction

Requirements help

null
null
Source Code
function safeTransferFrom(
  address from,
  address to,
  uint256 tokenId,
  bytes _data
) public {
  transferFrom(from, to, tokenId);
  // solium-disable-next-line arg-overflow
  require(_checkAndCallSafeTransfer(from, to, tokenId, _data));
}

supportsInterface keyboard_arrow_up

Parameters help

Name Type
interfaceId
bytes4 help

Properties

Visibility help public
Mutability help view
Source Code
function supportsInterface(bytes4 interfaceId) external view returns (bool) {
  return _supportedInterfaces[interfaceId];
}

isMinter keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help public
Mutability help view
Source Code
function isMinter(address account) public view returns (bool) {
  return minters.has(account);
}

addMinter keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyMinter checks for the following:
null
Source Code
function addMinter(address account) public onlyMinter {
  minters.add(account);
  emit MinterAdded(account);
}

renounceMinter keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
function renounceMinter() public {
  minters.remove(msg.sender);
}

Parameters help

This function has no parameters.

Properties

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

Parameters help

This function has no parameters.

Properties

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

tokenURI keyboard_arrow_up

Parameters help

Name Type
tokenId
uint256 help

Properties

Visibility help public
Mutability help view
Source Code
function tokenURI(uint256 tokenId) public view returns (string) {
  bytes32 tokenIdBytes;
  if (tokenId == 0) {
    tokenIdBytes = "0";
  } else {
    uint256 value = tokenId;
    while (value > 0) {
      tokenIdBytes = bytes32(uint256(tokenIdBytes) / (2**8));
      tokenIdBytes |= bytes32(((value % 10) + 48) * 2**(8 * 31));
      value /= 10;
    }
  }

  bytes memory prefixBytes = bytes(tokenURIPrefix);
  bytes memory tokenURIBytes = new bytes(
    prefixBytes.length + tokenIdBytes.length
  );

  uint8 i;
  uint8 index = 0;

  for (i = 0; i < prefixBytes.length; i++) {
    tokenURIBytes[index] = prefixBytes[i];
    index++;
  }

  for (i = 0; i < tokenIdBytes.length; i++) {
    tokenURIBytes[index] = tokenIdBytes[i];
    index++;
  }

  return string(tokenURIBytes);
}

Parameters help

This function has no parameters.

Properties

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

tokenOfOwnerByIndex keyboard_arrow_up

Parameters help

Name Type
owner
address help
index
uint256 help

Properties

Visibility help public
Mutability help view
Source Code
function tokenOfOwnerByIndex(address owner, uint256 index)
  public
  view
  returns (uint256)
{
  require(index < balanceOf(owner));
  return _ownedTokens[owner][index];
}

tokenByIndex keyboard_arrow_up

Parameters help

Name Type
index
uint256 help

Properties

Visibility help public
Mutability help view

Requirements help

Source Code
function tokenByIndex(uint256 index) public view returns (uint256) {
  require(index < totalSupply());
  return _allTokens[index];
}

mintingFinished keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

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

mint keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyMinter checks for the following:
null
Source Code
function mint(address to, uint256 tokenId)
  public
  onlyMinter
  onlyBeforeMintingFinished
  returns (bool)
{
  _mint(to, tokenId);
  return true;
}

mintWithTokenURI keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help
tokenURI
string help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyMinter checks for the following:
null
Source Code
function mintWithTokenURI(
  address to,
  uint256 tokenId,
  string tokenURI
) public onlyMinter onlyBeforeMintingFinished returns (bool) {
  mint(to, tokenId);
  _setTokenURI(tokenId, tokenURI);
  return true;
}

finishMinting keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyMinter checks for the following:
null
Source Code
function finishMinting()
  public
  onlyMinter
  onlyBeforeMintingFinished
  returns (bool)
{
  _mintingFinished = true;
  emit MintingFinished();
  return true;
}

setSupplyLimit keyboard_arrow_up

Parameters help

Name Type
_heroType
uint16 help
_supplyLimit
uint16 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyMinter checks for the following:
null
Source Code
function setSupplyLimit(uint16 _heroType, uint16 _supplyLimit)
  external
  onlyMinter
{
  require(
    heroTypeToSupplyLimit[_heroType] == 0 ||
      _supplyLimit < heroTypeToSupplyLimit[_heroType],
    "_supplyLimit is bigger"
  );
  heroTypeToSupplyLimit[_heroType] = _supplyLimit;
}

setTokenURIPrefix keyboard_arrow_up

Parameters help

Name Type
_tokenURIPrefix
string help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyMinter checks for the following:
null
Source Code
function setTokenURIPrefix(string _tokenURIPrefix) external onlyMinter {
  tokenURIPrefix = _tokenURIPrefix;
}

getSupplyLimit keyboard_arrow_up

Parameters help

Name Type
_heroType
uint16 help

Properties

Visibility help public
Mutability help view
Source Code
function getSupplyLimit(uint16 _heroType) public view returns (uint16) {
  return heroTypeToSupplyLimit[_heroType];
}

mintHeroAsset keyboard_arrow_up

Parameters help

Name Type
_owner
address help
_tokenId
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyMinter checks for the following:
null
Source Code
function mintHeroAsset(address _owner, uint256 _tokenId) public onlyMinter {
  uint16 _heroType = uint16(_tokenId / HERO_TYPE_OFFSET);
  uint16 _heroTypeIndex = uint16(_tokenId % HERO_TYPE_OFFSET) - 1;
  require(_heroTypeIndex < heroTypeToSupplyLimit[_heroType], "supply over");
  _mint(_owner, _tokenId);
}

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 ERC721._exists keyboard_arrow_up

Parameters help

Name Type
tokenId
uint256 help

Properties

Visibility help internal
Mutability help view
Source Code
function _exists(uint256 tokenId) internal view returns (bool) {
  address owner = _tokenOwner[tokenId];
  return owner != address(0);
}

internal ERC721._isApprovedOrOwner keyboard_arrow_up

Parameters help

Name Type
spender
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help view
Source Code
function _isApprovedOrOwner(address spender, uint256 tokenId)
  internal
  view
  returns (bool)
{
  address owner = ownerOf(tokenId);
  // Disable solium check because of
  // https://github.com/duaraghav8/Solium/issues/175
  // solium-disable-next-line operator-whitespace
  return (spender == owner ||
    getApproved(tokenId) == spender ||
    isApprovedForAll(owner, spender));
}

internal ERC721._mint keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _mint(address to, uint256 tokenId) internal {
  require(to != address(0));
  _addTokenTo(to, tokenId);
  emit Transfer(address(0), to, tokenId);
}

internal ERC721._burn keyboard_arrow_up

Parameters help

Name Type
owner
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _burn(address owner, uint256 tokenId) internal {
  _clearApproval(owner, tokenId);
  _removeTokenFrom(owner, tokenId);
  emit Transfer(owner, address(0), tokenId);
}

internal ERC721._clearApproval keyboard_arrow_up

Parameters help

Name Type
owner
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _clearApproval(address owner, uint256 tokenId) internal {
  require(ownerOf(tokenId) == owner);
  if (_tokenApprovals[tokenId] != address(0)) {
    _tokenApprovals[tokenId] = address(0);
  }
}

internal ERC721._addTokenTo keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _addTokenTo(address to, uint256 tokenId) internal {
  require(_tokenOwner[tokenId] == address(0));
  _tokenOwner[tokenId] = to;
  _ownedTokensCount[to] = _ownedTokensCount[to].add(1);
}

internal ERC721._removeTokenFrom keyboard_arrow_up

Parameters help

Name Type
from
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _removeTokenFrom(address from, uint256 tokenId) internal {
  require(ownerOf(tokenId) == from);
  _ownedTokensCount[from] = _ownedTokensCount[from].sub(1);
  _tokenOwner[tokenId] = address(0);
}

internal ERC721._checkAndCallSafeTransfer keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
tokenId
uint256 help
_data
bytes help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _checkAndCallSafeTransfer(
  address from,
  address to,
  uint256 tokenId,
  bytes _data
) internal returns (bool) {
  if (!to.isContract()) {
    return true;
  }
  bytes4 retval = IERC721Receiver(to).onERC721Received(
    msg.sender,
    from,
    tokenId,
    _data
  );
  return (retval == _ERC721_RECEIVED);
}

internal ERC165._registerInterface keyboard_arrow_up

Parameters help

Name Type
interfaceId
bytes4 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _registerInterface(bytes4 interfaceId) internal {
  require(interfaceId != 0xffffffff);
  _supportedInterfaces[interfaceId] = true;
}

internal ERC721Enumerable._addTokenTo keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _addTokenTo(address to, uint256 tokenId) internal {
  super._addTokenTo(to, tokenId);
  uint256 length = _ownedTokens[to].length;
  _ownedTokens[to].push(tokenId);
  _ownedTokensIndex[tokenId] = length;
}

internal ERC721Enumerable._removeTokenFrom keyboard_arrow_up

Parameters help

Name Type
from
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _removeTokenFrom(address from, uint256 tokenId) internal {
  super._removeTokenFrom(from, tokenId);

  // To prevent a gap in the array, we store the last token in the index of the token to delete, and
  // then delete the last slot.
  uint256 tokenIndex = _ownedTokensIndex[tokenId];
  uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);
  uint256 lastToken = _ownedTokens[from][lastTokenIndex];

  _ownedTokens[from][tokenIndex] = lastToken;
  // This also deletes the contents at the last position of the array
  _ownedTokens[from].length--;

  // Note that this will handle single-element arrays. In that case, both tokenIndex and lastTokenIndex are going to
  // be zero. Then we can make sure that we will remove tokenId from the ownedTokens list since we are first swapping
  // the lastToken to the first position, and then dropping the element placed in the last position of the list

  _ownedTokensIndex[tokenId] = 0;
  _ownedTokensIndex[lastToken] = tokenIndex;
}

internal ERC721Enumerable._mint keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _mint(address to, uint256 tokenId) internal {
  super._mint(to, tokenId);

  _allTokensIndex[tokenId] = _allTokens.length;
  _allTokens.push(tokenId);
}

internal ERC721Enumerable._burn keyboard_arrow_up

Parameters help

Name Type
owner
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _burn(address owner, uint256 tokenId) internal {
  super._burn(owner, tokenId);

  // Reorg all tokens array
  uint256 tokenIndex = _allTokensIndex[tokenId];
  uint256 lastTokenIndex = _allTokens.length.sub(1);
  uint256 lastToken = _allTokens[lastTokenIndex];

  _allTokens[tokenIndex] = lastToken;
  _allTokens[lastTokenIndex] = 0;

  _allTokens.length--;
  _allTokensIndex[tokenId] = 0;
  _allTokensIndex[lastToken] = tokenIndex;
}

internal ERC165._registerInterface keyboard_arrow_up

Parameters help

Name Type
interfaceId
bytes4 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _registerInterface(bytes4 interfaceId) internal {
  require(interfaceId != 0xffffffff);
  _supportedInterfaces[interfaceId] = true;
}

internal ERC721._exists keyboard_arrow_up

Parameters help

Name Type
tokenId
uint256 help

Properties

Visibility help internal
Mutability help view
Source Code
function _exists(uint256 tokenId) internal view returns (bool) {
  address owner = _tokenOwner[tokenId];
  return owner != address(0);
}

internal ERC721._isApprovedOrOwner keyboard_arrow_up

Parameters help

Name Type
spender
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help view
Source Code
function _isApprovedOrOwner(address spender, uint256 tokenId)
  internal
  view
  returns (bool)
{
  address owner = ownerOf(tokenId);
  // Disable solium check because of
  // https://github.com/duaraghav8/Solium/issues/175
  // solium-disable-next-line operator-whitespace
  return (spender == owner ||
    getApproved(tokenId) == spender ||
    isApprovedForAll(owner, spender));
}

internal ERC721._mint keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _mint(address to, uint256 tokenId) internal {
  require(to != address(0));
  _addTokenTo(to, tokenId);
  emit Transfer(address(0), to, tokenId);
}

internal ERC721._burn keyboard_arrow_up

Parameters help

Name Type
owner
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _burn(address owner, uint256 tokenId) internal {
  _clearApproval(owner, tokenId);
  _removeTokenFrom(owner, tokenId);
  emit Transfer(owner, address(0), tokenId);
}

internal ERC721._clearApproval keyboard_arrow_up

Parameters help

Name Type
owner
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _clearApproval(address owner, uint256 tokenId) internal {
  require(ownerOf(tokenId) == owner);
  if (_tokenApprovals[tokenId] != address(0)) {
    _tokenApprovals[tokenId] = address(0);
  }
}

internal ERC721._addTokenTo keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _addTokenTo(address to, uint256 tokenId) internal {
  require(_tokenOwner[tokenId] == address(0));
  _tokenOwner[tokenId] = to;
  _ownedTokensCount[to] = _ownedTokensCount[to].add(1);
}

internal ERC721._removeTokenFrom keyboard_arrow_up

Parameters help

Name Type
from
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _removeTokenFrom(address from, uint256 tokenId) internal {
  require(ownerOf(tokenId) == from);
  _ownedTokensCount[from] = _ownedTokensCount[from].sub(1);
  _tokenOwner[tokenId] = address(0);
}

internal ERC721._checkAndCallSafeTransfer keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
tokenId
uint256 help
_data
bytes help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _checkAndCallSafeTransfer(
  address from,
  address to,
  uint256 tokenId,
  bytes _data
) internal returns (bool) {
  if (!to.isContract()) {
    return true;
  }
  bytes4 retval = IERC721Receiver(to).onERC721Received(
    msg.sender,
    from,
    tokenId,
    _data
  );
  return (retval == _ERC721_RECEIVED);
}

internal ERC165._registerInterface keyboard_arrow_up

Parameters help

Name Type
interfaceId
bytes4 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _registerInterface(bytes4 interfaceId) internal {
  require(interfaceId != 0xffffffff);
  _supportedInterfaces[interfaceId] = true;
}

internal ERC721Metadata._setTokenURI keyboard_arrow_up

internal ERC721Metadata._burn keyboard_arrow_up

internal ERC165._registerInterface keyboard_arrow_up

Parameters help

Name Type
interfaceId
bytes4 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _registerInterface(bytes4 interfaceId) internal {
  require(interfaceId != 0xffffffff);
  _supportedInterfaces[interfaceId] = true;
}

internal ERC721._exists keyboard_arrow_up

Parameters help

Name Type
tokenId
uint256 help

Properties

Visibility help internal
Mutability help view
Source Code
function _exists(uint256 tokenId) internal view returns (bool) {
  address owner = _tokenOwner[tokenId];
  return owner != address(0);
}

internal ERC721._isApprovedOrOwner keyboard_arrow_up

Parameters help

Name Type
spender
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help view
Source Code
function _isApprovedOrOwner(address spender, uint256 tokenId)
  internal
  view
  returns (bool)
{
  address owner = ownerOf(tokenId);
  // Disable solium check because of
  // https://github.com/duaraghav8/Solium/issues/175
  // solium-disable-next-line operator-whitespace
  return (spender == owner ||
    getApproved(tokenId) == spender ||
    isApprovedForAll(owner, spender));
}

internal ERC721._mint keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _mint(address to, uint256 tokenId) internal {
  require(to != address(0));
  _addTokenTo(to, tokenId);
  emit Transfer(address(0), to, tokenId);
}

internal ERC721._burn keyboard_arrow_up

Parameters help

Name Type
owner
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _burn(address owner, uint256 tokenId) internal {
  _clearApproval(owner, tokenId);
  _removeTokenFrom(owner, tokenId);
  emit Transfer(owner, address(0), tokenId);
}

internal ERC721._clearApproval keyboard_arrow_up

Parameters help

Name Type
owner
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _clearApproval(address owner, uint256 tokenId) internal {
  require(ownerOf(tokenId) == owner);
  if (_tokenApprovals[tokenId] != address(0)) {
    _tokenApprovals[tokenId] = address(0);
  }
}

internal ERC721._addTokenTo keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _addTokenTo(address to, uint256 tokenId) internal {
  require(_tokenOwner[tokenId] == address(0));
  _tokenOwner[tokenId] = to;
  _ownedTokensCount[to] = _ownedTokensCount[to].add(1);
}

internal ERC721._removeTokenFrom keyboard_arrow_up

Parameters help

Name Type
from
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _removeTokenFrom(address from, uint256 tokenId) internal {
  require(ownerOf(tokenId) == from);
  _ownedTokensCount[from] = _ownedTokensCount[from].sub(1);
  _tokenOwner[tokenId] = address(0);
}

internal ERC721._checkAndCallSafeTransfer keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
tokenId
uint256 help
_data
bytes help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _checkAndCallSafeTransfer(
  address from,
  address to,
  uint256 tokenId,
  bytes _data
) internal returns (bool) {
  if (!to.isContract()) {
    return true;
  }
  bytes4 retval = IERC721Receiver(to).onERC721Received(
    msg.sender,
    from,
    tokenId,
    _data
  );
  return (retval == _ERC721_RECEIVED);
}

internal ERC165._registerInterface keyboard_arrow_up

Parameters help

Name Type
interfaceId
bytes4 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _registerInterface(bytes4 interfaceId) internal {
  require(interfaceId != 0xffffffff);
  _supportedInterfaces[interfaceId] = true;
}

internal MinterRole._removeMinter keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _removeMinter(address account) internal {
  minters.remove(account);
  emit MinterRemoved(account);
}

internal ERC721._exists keyboard_arrow_up

Parameters help

Name Type
tokenId
uint256 help

Properties

Visibility help internal
Mutability help view
Source Code
function _exists(uint256 tokenId) internal view returns (bool) {
  address owner = _tokenOwner[tokenId];
  return owner != address(0);
}

internal ERC721._isApprovedOrOwner keyboard_arrow_up

Parameters help

Name Type
spender
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help view
Source Code
function _isApprovedOrOwner(address spender, uint256 tokenId)
  internal
  view
  returns (bool)
{
  address owner = ownerOf(tokenId);
  // Disable solium check because of
  // https://github.com/duaraghav8/Solium/issues/175
  // solium-disable-next-line operator-whitespace
  return (spender == owner ||
    getApproved(tokenId) == spender ||
    isApprovedForAll(owner, spender));
}

internal ERC721._mint keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _mint(address to, uint256 tokenId) internal {
  require(to != address(0));
  _addTokenTo(to, tokenId);
  emit Transfer(address(0), to, tokenId);
}

internal ERC721._burn keyboard_arrow_up

Parameters help

Name Type
owner
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _burn(address owner, uint256 tokenId) internal {
  _clearApproval(owner, tokenId);
  _removeTokenFrom(owner, tokenId);
  emit Transfer(owner, address(0), tokenId);
}

internal ERC721._clearApproval keyboard_arrow_up

Parameters help

Name Type
owner
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _clearApproval(address owner, uint256 tokenId) internal {
  require(ownerOf(tokenId) == owner);
  if (_tokenApprovals[tokenId] != address(0)) {
    _tokenApprovals[tokenId] = address(0);
  }
}

internal ERC721._addTokenTo keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _addTokenTo(address to, uint256 tokenId) internal {
  require(_tokenOwner[tokenId] == address(0));
  _tokenOwner[tokenId] = to;
  _ownedTokensCount[to] = _ownedTokensCount[to].add(1);
}

internal ERC721._removeTokenFrom keyboard_arrow_up

Parameters help

Name Type
from
address help
tokenId
uint256 help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _removeTokenFrom(address from, uint256 tokenId) internal {
  require(ownerOf(tokenId) == from);
  _ownedTokensCount[from] = _ownedTokensCount[from].sub(1);
  _tokenOwner[tokenId] = address(0);
}

internal ERC721._checkAndCallSafeTransfer keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
tokenId
uint256 help
_data
bytes help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _checkAndCallSafeTransfer(
  address from,
  address to,
  uint256 tokenId,
  bytes _data
) internal returns (bool) {
  if (!to.isContract()) {
    return true;
  }
  bytes4 retval = IERC721Receiver(to).onERC721Received(
    msg.sender,
    from,
    tokenId,
    _data
  );
  return (retval == _ERC721_RECEIVED);
}

internal ERC165._registerInterface keyboard_arrow_up

Parameters help

Name Type
interfaceId
bytes4 help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _registerInterface(bytes4 interfaceId) internal {
  require(interfaceId != 0xffffffff);
  _supportedInterfaces[interfaceId] = true;
}

internal PauserRole._removePauser keyboard_arrow_up

Parameters help

Name Type
account
address help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _removePauser(address account) internal {
  pausers.remove(account);
  emit PauserRemoved(account);
}