Blockwell

F1® Delta Time Inventory

About

Stats

Public Functions 54
Event Types 18
Code Size 105,685 bytes

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

CollectionsPaused Event

Parameters help
collectionIds
uint256[] help
pauser
address help

CollectionsUnpaused Event

Parameters help
collectionIds
uint256[] help
pauser
address help

FungibleCollection Event

Parameters help
id
address help

MinterAdded Event

Parameters help
account
address help

MinterRemoved Event

Parameters help
account
address help

NonFungibleCollection Event

Parameters help
id
address help

OwnershipTransferred Event

Parameters help
previousOwner
address help
newOwner
address help

Paused Event

Parameters help
account
address help

PauserAdded Event

Parameters help
account
address help

PauserRemoved Event

Parameters help
account
address help

RelayHubChanged Event

Parameters help
oldRelayHub
address help
newRelayHub
address help

Transfer Event

Parameters help
_from
address help
_to
address help
_tokenId
uint256 help

TransferBatch Event

Parameters help
_operator
address help
_from
address help
_to
address help
_ids
uint256[] help
_values
uint256[] help

TransferSingle Event

Parameters help
_operator
address help
_from
address help
_to
address help
_id
uint256 help
_value
uint256 help

URI Event

Parameters help
_value
string help
_id
uint256 help

Unpaused Event

Parameters help
account
address help

Functions Expand All Collapse All

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 {
        _addMinter(account);
    }

renounceMinter keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
    function renounceMinter() public {
        _removeMinter(_msgSender());
    }

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 _msgSender() == _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);
    }

getHubAddr keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

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

relayHubVersion keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
    function relayHubVersion() public view returns (string memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return "1.0.0";
    }

preRelayedCall keyboard_arrow_up

Parameters help

Name Type
context
bytes help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
    function preRelayedCall(bytes calldata context) external returns (bytes32) {
        require(msg.sender == getHubAddr(), "GSNRecipient: caller is not RelayHub");
        return _preRelayedCall(context);
    }

postRelayedCall keyboard_arrow_up

Parameters help

Name Type
context
bytes help
success
bool help
actualCharge
uint256 help
preRetVal
bytes32 help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
    function postRelayedCall(bytes calldata context, bool success, uint256 actualCharge, bytes32 preRetVal) external {
        require(msg.sender == getHubAddr(), "GSNRecipient: caller is not RelayHub");
        _postRelayedCall(context, success, actualCharge, preRetVal);
    }

setGasToken keyboard_arrow_up

Parameters help

Name Type
gasTokenAddress
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyOwner checks for the following:
null
Source Code
    function setGasToken(address gasTokenAddress) public onlyOwner {
        _gasToken = IERC20(gasTokenAddress);
    }

setPayoutWallet keyboard_arrow_up

Parameters help

Name Type
payoutWallet
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyOwner checks for the following:
null

Requirements help

Source Code
    function setPayoutWallet(address payoutWallet) public onlyOwner {
        require(payoutWallet != address(this));
        _payoutWallet = payoutWallet;
    }

setGasPrice keyboard_arrow_up

Parameters help

Name Type
gasPriceScaling
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyOwner checks for the following:
null
Source Code
    function setGasPrice(uint gasPriceScaling) public onlyOwner {
        _gasPriceScaling = gasPriceScaling;
    }

withdrawDeposits keyboard_arrow_up

Parameters help

Name Type
amount
uint256 help
payee
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyOwner checks for the following:
null
Source Code
    function withdrawDeposits(uint256 amount, address payable payee) external onlyOwner {
        _withdrawDeposits(amount, payee);
    }

acceptRelayedCall keyboard_arrow_up

Parameters help

Name Type
address help
from
address help
bytes help
transactionFee
uint256 help
gasPrice
uint256 help
uint256 help
uint256 help
bytes help
maxPossibleCharge
uint256 help

Properties

Visibility help public
Mutability help view
Source Code
    function acceptRelayedCall(
        address,
        address from,
        bytes memory,
        uint256 transactionFee,
        uint256 gasPrice,
        uint256,
        uint256,
        bytes memory,
        uint256 maxPossibleCharge
    )
        public
        view
        returns (uint256, bytes memory)
    {
        if (_gasToken.balanceOf(from) < (maxPossibleCharge * _gasPriceScaling / GAS_PRICE_SCALING_SCALE)) {
            return _rejectRelayedCall(uint256(ErrorCodes.INSUFFICIENT_BALANCE));
        }

        return _approveRelayedCall(abi.encode(from, maxPossibleCharge, transactionFee, gasPrice));
    }

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 {
        _addPauser(account);
    }

renouncePauser keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
    function renouncePauser() public {
        _removePauser(_msgSender());
    }

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(_msgSender());
    }

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(_msgSender());
    }

pauseCollections keyboard_arrow_up

Parameters help

Name Type
collectionIds
uint256[] help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyPauser checks for the following:
null
Source Code
    function pauseCollections(uint256[] memory collectionIds) public onlyPauser {
        for (uint256 i=0; i<collectionIds.length; i++) {
            uint256 collectionId = collectionIds[i];
            require(!isNFT(collectionId)); // only works on collections
            _pausedCollections[collectionId] = true;
        }
        emit CollectionsPaused(collectionIds, _msgSender());
    }

unpauseCollections keyboard_arrow_up

Parameters help

Name Type
collectionIds
uint256[] help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyPauser checks for the following:
null
Source Code
    function unpauseCollections(uint256[] memory collectionIds) public onlyPauser {
        for (uint256 i=0; i<collectionIds.length; i++) {
            uint256 collectionId = collectionIds[i];
            require(!isNFT(collectionId)); // only works on collections
            _pausedCollections[collectionId] = false;
        }
        emit CollectionsUnpaused(collectionIds, _msgSender());
    }

collectionOf keyboard_arrow_up

Parameters help

Name Type
id
uint256 help

Properties

Visibility help public
Mutability help view

Requirements help

null
Source Code
    function collectionOf(uint256 id) public view returns (uint256) {
        require(isNFT(id));
        return id & NF_COLLECTION_MASK;
    }

isFungible keyboard_arrow_up

Parameters help

Name Type
id
uint256 help

Properties

Visibility help public
Mutability help view
Source Code
    function isFungible(uint256 id) public view returns (bool) {
        return id & (NF_BIT_MASK) == 0;
    }

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) {
        require(isNFT(tokenId));
        address tokenOwner = _owners[tokenId];
        require(tokenOwner != address(0x0));
        return tokenOwner;
    }

safeTransferFrom keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
id
uint256 help
value
uint256 help
data
bytes help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
    function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data
    ) public whenNotPaused whenIdNotPaused(id) {
        super.safeTransferFrom(from, to, id, value, data);
    }

safeBatchTransferFrom keyboard_arrow_up

Parameters help

Name Type
from
address help
to
address help
ids
uint256[] help
values
uint256[] help
data
bytes help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
    function safeBatchTransferFrom(address from, address to, uint256[] memory ids, uint256[] memory values, bytes memory data
    ) public whenNotPaused {
        for (uint256 i = 0; i < ids.length; ++i) {
            require(!idPaused(ids[i]));
        }
        super.safeBatchTransferFrom(from, to, ids, values, data);
    }

balanceOf keyboard_arrow_up

Parameters help

Name Type
tokenOwner
address help
id
uint256 help

Properties

Visibility help public
Mutability help view

Requirements help

Source Code
    function balanceOf(address tokenOwner, uint256 id) public view returns (uint256) {
        require(tokenOwner != address(0x0));

        if (isNFT(id)) {
            return _owners[id] == tokenOwner ? 1 : 0;
        }
    
        return _balances[id][tokenOwner];
    }

balanceOfBatch keyboard_arrow_up

Parameters help

Name Type
tokenOwners
address[] help
ids
uint256[] help

Properties

Visibility help public
Mutability help view
Source Code
    function balanceOfBatch(
        address[] memory tokenOwners,
        uint256[] memory ids
    ) public view returns (uint256[] memory)
    {
        require(tokenOwners.length == ids.length);

        uint256[] memory balances = new uint256[](tokenOwners.length);

        for (uint256 i = 0; i < tokenOwners.length; ++i) {
            require(tokenOwners[i] != address(0x0));

            uint256 id = ids[i];

            if (isNFT(id)) {
                balances[i] = _owners[id] == tokenOwners[i] ? 1 : 0;
            } else {
                balances[i] = _balances[id][tokenOwners[i]];
            }
        }

        return balances;
    }

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
tokenOwner
address help
operator
address help

Properties

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

balanceOf keyboard_arrow_up

Parameters help

Name Type
tokenOwner
address help

Properties

Visibility help public
Mutability help view

Requirements help

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

approve keyboard_arrow_up

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 whenNotPaused whenIdNotPaused(tokenId) {
        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
null
Source Code
    function getApproved(uint256 tokenId) public view returns (address) {
        require(isNFT(tokenId) && exists(tokenId));
        return _tokenApprovals[tokenId];
    }

transferFrom 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 transferFrom(address from, address to, uint256 tokenId
    ) public whenNotPaused whenIdNotPaused(tokenId) {
        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 whenNotPaused whenIdNotPaused(tokenId) {
        super.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 memory data
    ) public whenNotPaused whenIdNotPaused(tokenId) {
        super.safeTransferFrom(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) public view returns (bool) {
        return (
            // ERC165 interface id
            interfaceId == 0x01ffc9a7 ||
            // ERC721 interface id
            interfaceId == 0x80ac58cd ||
            // ERC721Metadata interface id
            interfaceId == 0x5b5e139f ||
            // ERC721Exists interface id
            interfaceId == 0x4f558e79 ||
            // ERC1155 interface id
            interfaceId == 0xd9b67a26 ||
            // ERC1155AssetCollections interface id
            interfaceId == 0x09ce5c46 ||
            // ERC1155MetadataURI interface id
            interfaceId == 0x0e89341c
        );
    }

exists keyboard_arrow_up

Parameters help

Name Type
id
uint256 help

Properties

Visibility help public
Mutability help view
Source Code
    function exists(uint256 id) public view returns (bool) {
        address tokenOwner = _owners[id];
        return tokenOwner != address(0x0);
    }

idPaused keyboard_arrow_up

Parameters help

Name Type
id
uint256 help

Properties

Visibility help public
Mutability help view
Source Code
    function idPaused(uint256 id) public view returns (bool) {
        if (isNFT(id)) {
            return _pausedCollections[collectionOf(id)];
        } else {
            return _pausedCollections[id];
        }
    }

createCollection keyboard_arrow_up

Parameters help

Name Type
collectionId
uint256 help
byteUri
bytes32 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyMinter checks for the following:
null

Requirements help

Source Code
    function createCollection(uint256 collectionId, bytes32 byteUri) onlyMinter external {
        require(_ipfsMigrated? uint256(byteUri) > 0: uint256(byteUri) == 0);
        require(!isNFT(collectionId));
        _setURI(collectionId, byteUri);
    }

batchMint keyboard_arrow_up

Parameters help

Name Type
to
address[] help
ids
uint256[] help
uris
bytes32[] help
values
uint256[] help
safe
bool help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyMinter checks for the following:
null
Source Code
    function batchMint(address[] memory to, uint256[] memory ids, bytes32[] memory uris, uint256[] memory values, bool safe) public onlyMinter {
        require(ids.length == to.length &&
            ids.length == uris.length &&
            ids.length == values.length);

        for (uint i = 0; i < ids.length; i++) {
            if (isNFT(ids[i]) && values[i] == 1) {
                _mintNonFungible(to[i], ids[i], uris[i], safe);
            } else if (isFungible(ids[i]) && uint256(uris[i]) == 0) {
                _mintFungible(to[i], ids[i], values[i]);
            } else {
                revert();
            }
        }
    }

mintNonFungible keyboard_arrow_up

Parameters help

Name Type
to
address help
tokenId
uint256 help
byteUri
bytes32 help
safe
bool help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyMinter checks for the following:
null
Source Code
    function mintNonFungible(address to, uint256 tokenId, bytes32 byteUri, bool safe) external onlyMinter {
        require(isNFT(tokenId)); // solium-disable-line error-reason
        _mintNonFungible(to, tokenId, byteUri, safe);
    }

mintFungible keyboard_arrow_up

Parameters help

Name Type
to
address help
collection
uint256 help
value
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyMinter checks for the following:
null

Requirements help

Source Code
    function mintFungible(address to, uint256 collection, uint256 value) external onlyMinter {
        require(isFungible(collection));
        _mintFungible(to, collection, value);
    }

setUriPrefix keyboard_arrow_up

Parameters help

Name Type
uriPrefix
string help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyOwner checks for the following:
null
Source Code
    function setUriPrefix(string calldata uriPrefix) external onlyOwner {
        _uriPrefix = uriPrefix;
    }

setIPFSUriPrefix keyboard_arrow_up

Parameters help

Name Type
ipfsUriPrefix
string help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyOwner checks for the following:
null
Source Code
    function setIPFSUriPrefix(string calldata ipfsUriPrefix) external onlyOwner {
        _ipfsUriPrefix = ipfsUriPrefix;
    }

setURI keyboard_arrow_up

Parameters help

Name Type
id
uint256 help
byteUri
bytes32 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyMinter checks for the following:
null

Requirements help

Source Code
    function setURI(uint256 id, bytes32 byteUri) external onlyMinter {
        require(!_ipfsMigrated && uint256(byteUri) > 0);
        require(exists(id));

        _setURI(id, byteUri);
    }

migrateToIPFS 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 migrateToIPFS() public onlyMinter {
        _ipfsMigrated = true;
    }

uri keyboard_arrow_up

Parameters help

Name Type
id
uint256 help

Properties

Visibility help public
Mutability help view
Source Code
    function uri(uint256 id) public view returns(string memory) {
        if (uint256(_uris[id]) == 0) {
            return _fullUriFromId(id);
        }

        return _fullUriFromHash(_uris[id]);
    }

name keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
    function name() external view returns(string memory) {
        return "F1® Delta Time Inventory";
    }

symbol keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

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

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 memory) {
        require(exists(tokenId));
        return uri(tokenId);
    }