Blockwell

SuperRare

About

Stats

Public Functions 29
Event Types 7
Code Size 37,277 bytes

Library Use

Uses SafeMath for uint256.

Events (7) keyboard_arrow_up

AddToWhitelist Event

Parameters help
_newAddress
address help

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

OwnershipTransferred Event

Parameters help
previousOwner
address help
newOwner
address help

RemoveFromWhitelist Event

Parameters help
_removedAddress
address help

TokenURIUpdated Event

Parameters help
_tokenId
uint256 help
_uri
string help

Transfer Event

Parameters help
from
address help
to
address help
tokenId
uint256 help

_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

tokenCreators Variable

mapping(uint256 => address) help
Internal Variable

idCounter Variable

uint256 help
Internal Variable

oldSuperRare Variable

ISuperRare 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

_owner Variable

address help
Internal Variable

whitelistMap Variable

mapping(address => bool) help
Internal Variable

whitelistEnabled Variable

bool help
Internal Variable

Functions Expand All Collapse All

owner keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function owner() public view returns (address) {
  return _owner;
}

isOwner keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
function isOwner() public view returns (bool) {
  return msg.sender == _owner;
}

renounceOwnership keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyOwner checks for the following:
null
Source Code
function renounceOwnership() public onlyOwner {
  emit OwnershipTransferred(_owner, address(0));
  _owner = address(0);
}

transferOwnership keyboard_arrow_up

Parameters help

Name Type
newOwner
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyOwner checks for the following:
null

Requirements help

Source Code
function transferOwnership(address newOwner) public onlyOwner {
  _transferOwnership(newOwner);
}

enableWhitelist keyboard_arrow_up

Parameters help

Name Type
_enabled
bool help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyOwner checks for the following:
null
Source Code
function enableWhitelist(bool _enabled) public onlyOwner {
  whitelistEnabled = _enabled;
}

addToWhitelist keyboard_arrow_up

Parameters help

Name Type
_newAddress
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyOwner checks for the following:
null
Source Code
function addToWhitelist(address _newAddress) public onlyOwner {
  _whitelist(_newAddress);
  emit AddToWhitelist(_newAddress);
}

removeFromWhitelist keyboard_arrow_up

Parameters help

Name Type
_removedAddress
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyOwner checks for the following:
null
Source Code
function removeFromWhitelist(address _removedAddress) public onlyOwner {
  _unWhitelist(_removedAddress);
  emit RemoveFromWhitelist(_removedAddress);
}

isWhitelisted keyboard_arrow_up

Parameters help

Name Type
_address
address help

Properties

Visibility help public
Mutability help view
Source Code
function isWhitelisted(address _address) public view returns (bool) {
  if (whitelistEnabled) {
    return whitelistMap[_address];
  } else {
    return true;
  }
}

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
Source Code
function approve(address to, uint256 tokenId) public {
  address owner = ownerOf(tokenId);
  require(to != owner);
  require(msg.sender == owner || isApprovedForAll(owner, msg.sender));

  _tokenApprovals[tokenId] = to;
  emit Approval(owner, 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
Source Code
function setApprovalForAll(address to, bool approved) public {
  require(to != msg.sender);
  _operatorApprovals[msg.sender][to] = approved;
  emit ApprovalForAll(msg.sender, 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

Requirements help

null
Source Code
function transferFrom(
  address from,
  address to,
  uint256 tokenId
) public {
  require(_isApprovedOrOwner(msg.sender, tokenId));
  require(to != address(0));

  _clearApproval(from, tokenId);
  _removeTokenFrom(from, tokenId);
  _addTokenTo(to, tokenId);

  emit Transfer(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(_checkOnERC721Received(from, to, tokenId, _data));
}

tokenCreator keyboard_arrow_up

Parameters help

Name Type
_tokenId
uint256 help

Properties

Visibility help public
Mutability help view
Source Code
function tokenCreator(uint256 _tokenId) public view returns (address) {
  return tokenCreators[_tokenId];
}

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

Requirements help

null
Source Code
function tokenURI(uint256 tokenId) external view returns (string) {
  require(_exists(tokenId));
  return _tokenURIs[tokenId];
}

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

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

initWhitelist keyboard_arrow_up

Parameters help

Name Type
_whitelistees
address[] help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyOwner checks for the following:
null
Source Code
function initWhitelist(address[] _whitelistees) public onlyOwner {
  // Add all whitelistees.
  for (uint256 i = 0; i < _whitelistees.length; i++) {
    address creator = _whitelistees[i];
    if (!isWhitelisted(creator)) {
      _whitelist(creator);
    }
  }
}

addNewToken keyboard_arrow_up

Parameters help

Name Type
_uri
string help

Properties

Visibility help public
Mutability help transaction
Source Code
function addNewToken(string _uri) public {
  require(isWhitelisted(msg.sender), "must be whitelisted to create tokens");
  _createToken(_uri, msg.sender);
}

deleteToken keyboard_arrow_up

Parameters help

Name Type
_tokenId
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
function deleteToken(uint256 _tokenId) public onlyTokenOwner(_tokenId) {
  _burn(msg.sender, _tokenId);
}

updateTokenMetadata keyboard_arrow_up

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 SuperRareV2._setTokenCreator keyboard_arrow_up

Parameters help

Name Type
_tokenId
uint256 help
_creator
address help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _setTokenCreator(uint256 _tokenId, address _creator) internal {
  tokenCreators[_tokenId] = _creator;
}

internal SuperRareV2._createToken keyboard_arrow_up

Parameters help

Name Type
_uri
string help
_creator
address help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _createToken(string _uri, address _creator)
  internal
  returns (uint256)
{
  uint256 newId = idCounter;
  idCounter++;
  _mint(_creator, newId);
  _setTokenURI(newId, _uri);
  _setTokenCreator(newId, _creator);
  return newId;
}

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._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._checkOnERC721Received 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 _checkOnERC721Received(
  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 ERC721._clearApproval keyboard_arrow_up

Parameters help

Name Type
owner
address help
tokenId
uint256 help

Properties

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

internal ERC165.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
constructor() internal {
  _registerInterface(_InterfaceId_ERC165);
}

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.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
constructor() internal {
  _registerInterface(_InterfaceId_ERC165);
}

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._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._checkOnERC721Received 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 _checkOnERC721Received(
  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 ERC721._clearApproval keyboard_arrow_up

Parameters help

Name Type
owner
address help
tokenId
uint256 help

Properties

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

internal ERC165.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
constructor() internal {
  _registerInterface(_InterfaceId_ERC165);
}

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.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
constructor() internal {
  _registerInterface(_InterfaceId_ERC165);
}

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._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._checkOnERC721Received 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 _checkOnERC721Received(
  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 ERC721._clearApproval keyboard_arrow_up

Parameters help

Name Type
owner
address help
tokenId
uint256 help

Properties

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

internal ERC165.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
constructor() internal {
  _registerInterface(_InterfaceId_ERC165);
}

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 Ownable.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction
Source Code
constructor() internal {
  _owner = msg.sender;
  emit OwnershipTransferred(address(0), _owner);
}

internal Ownable._transferOwnership keyboard_arrow_up

Parameters help

Name Type
newOwner
address help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _transferOwnership(address newOwner) internal {
  require(newOwner != address(0));
  emit OwnershipTransferred(_owner, newOwner);
  _owner = newOwner;
}

internal Whitelist._unWhitelist keyboard_arrow_up

Parameters help

Name Type
_removedAddress
address help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _unWhitelist(address _removedAddress) internal {
  whitelistMap[_removedAddress] = false;
}

internal Whitelist._whitelist keyboard_arrow_up

Parameters help

Name Type
_newAddress
address help

Properties

Visibility help internal
Mutability help transaction
Source Code
function _whitelist(address _newAddress) internal {
  whitelistMap[_newAddress] = true;
}

internal Ownable.constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help internal
Mutability help transaction
Source Code
constructor() internal {
  _owner = msg.sender;
  emit OwnershipTransferred(address(0), _owner);
}

internal Ownable._transferOwnership keyboard_arrow_up

Parameters help

Name Type
newOwner
address help

Properties

Visibility help internal
Mutability help transaction

Requirements help

Source Code
function _transferOwnership(address newOwner) internal {
  require(newOwner != address(0));
  emit OwnershipTransferred(_owner, newOwner);
  _owner = newOwner;
}