RMRKMultiAssetPreMintSoulbound
RMRK team
RMRKMultiAssetPreMintSoulbound
Implementation of non-transferable RMRK multi asset module with pre-minting.
Methods
RMRK_INTERFACE
function RMRK_INTERFACE() external pure returns (bytes4 rmrkInterface)
Interface identifier of the @rmrk-team/evm-contracts package
Returns
Name | Type | Description |
---|---|---|
rmrkInterface | bytes4 | Interface identifier for implementations of the @rmrk-team/evm-contracts package |
VERSION
function VERSION() external pure returns (string version)
Version of the @rmrk-team/evm-contracts package
Returns
Name | Type | Description |
---|---|---|
version | string | Version identifier for implementations of the @rmrk-team/evm-contracts package |
acceptAsset
function acceptAsset(uint256 tokenId, uint256 index, uint64 assetId) external nonpayable
Accepts an asset at from the pending array of given token.
Migrates the asset from the token's pending asset array to the token's active asset array.Active assets cannot be removed by anyone, but can be replaced by a new asset.Requirements: - The caller must own the token or be approved to manage the token's assets - tokenId
must exist. - index
must be in range of the length of the pending asset array.Emits an {AssetAccepted} event.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token for which to accept the pending asset |
index | uint256 | Index of the asset in the pending array to accept |
assetId | uint64 | ID of the asset expected to be in the index |
addAssetEntry
function addAssetEntry(string metadataURI) external nonpayable returns (uint256 assetId)
Used to add a asset entry.
The ID of the asset is automatically assigned to be the next available asset ID.
Parameters
Name | Type | Description |
---|---|---|
metadataURI | string | Metadata URI of the asset |
Returns
Name | Type | Description |
---|---|---|
assetId | uint256 | The ID of the newly added asset |
addAssetToToken
function addAssetToToken(uint256 tokenId, uint64 assetId, uint64 replacesAssetWithId) external nonpayable
Used to add an asset to a token.
If the given asset is already added to the token, the execution will be reverted.If the asset ID is invalid, the execution will be reverted.If the token already has the maximum amount of pending assets (128), the execution will be reverted.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token to add the asset to |
assetId | uint64 | ID of the asset to add to the token |
replacesAssetWithId | uint64 | ID of the asset to replace from the token's list of active assets |
approve
function approve(address to, uint256 tokenId) external nonpayable
Used to grant a one-time approval to manage one's token.
Gives permission to to
to transfer tokenId
token to another account.The approval is cleared when the token is transferred.Only a single account can be approved at a time, so approving the zero address clears previous approvals.Requirements: - The caller must own the token or be an approved operator. - tokenId
must exist.Emits an {Approval} event.
Parameters
Name | Type | Description |
---|---|---|
to | address | Address receiving the approval |
tokenId | uint256 | ID of the token for which the approval is being granted |
approveForAssets
function approveForAssets(address to, uint256 tokenId) external nonpayable
Used to grant permission to the user to manage token's assets.
This differs from transfer approvals, as approvals are not cleared when the approved party accepts or rejects an asset, or sets asset priorities. This approval is cleared on token transfer.Only a single account can be approved at a time, so approving the 0x0
address clears previous approvals.Requirements: - The caller must own the token or be an approved operator. - tokenId
must exist.Emits an {ApprovalForAssets} event.
Parameters
Name | Type | Description |
---|---|---|
to | address | Address of the account to grant the approval to |
tokenId | uint256 | ID of the token for which the approval to manage the assets is granted |
balanceOf
function balanceOf(address owner) external view returns (uint256 balance)
Used to retrieve the number of tokens in owner
's account.
Parameters
Name | Type | Description |
---|---|---|
owner | address | Address of the account being checked |
Returns
Name | Type | Description |
---|---|---|
balance | uint256 | The balance of the given account |
burn
function burn(uint256 tokenId) external nonpayable
Used to destroy the specified token.
The approval is cleared when the token is burned.Requirements: - tokenId
must exist.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token to burn |
contractURI
function contractURI() external view returns (string contractURI_)
Used to retrieve the metadata URI of the collection.
Returns
Name | Type | Description |
---|---|---|
contractURI_ | string | string The metadata URI of the collection |
getActiveAssetPriorities
function getActiveAssetPriorities(uint256 tokenId) external view returns (uint64[] priorities)
Used to retrieve the priorities of the active resoources of a given token.
Asset priorities are a non-sequential array of uint64 values with an array size equal to active asset priorites.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token for which to retrieve the priorities of the active assets |
Returns
Name | Type | Description |
---|---|---|
priorities | uint64[] | An array of priorities of the active assets of the given token |
getActiveAssets
function getActiveAssets(uint256 tokenId) external view returns (uint64[] assetIds)
Used to retrieve IDs of the active assets of given token.
Asset data is stored by reference, in order to access the data corresponding to the ID, call getAssetMetadata(tokenId, assetId)
.You can safely get 10k
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token to retrieve the IDs of the active assets |
Returns
Name | Type | Description |
---|---|---|
assetIds | uint64[] | An array of active asset IDs of the given token |
getApproved
function getApproved(uint256 tokenId) external view returns (address approved)
Used to retrieve the account approved to manage given token.
Requirements: - tokenId
must exist.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token to check for approval |
Returns
Name | Type | Description |
---|---|---|
approved | address | Address of the account approved to manage the token |
getApprovedForAssets
function getApprovedForAssets(uint256 tokenId) external view returns (address approved)
Used to retrieve the address of the account approved to manage assets of a given token.
Requirements: - tokenId
must exist.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token for which to retrieve the approved address |
Returns
Name | Type | Description |
---|---|---|
approved | address | Address of the account that is approved to manage the specified token's assets |
getAssetMetadata
function getAssetMetadata(uint256 tokenId, uint64 assetId) external view returns (string metadata)
Used to fetch the asset metadata of the specified token's active asset with the given index.
Assets are stored by reference mapping _assets[assetId]
.Can be overriden to implement enumerate, fallback or other custom logic.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token from which to retrieve the asset metadata |
assetId | uint64 | Asset Id, must be in the active assets array |
Returns
Name | Type | Description |
---|---|---|
metadata | string | The metadata of the asset belonging to the specified index in the token's active assets array |
getAssetReplacements
function getAssetReplacements(uint256 tokenId, uint64 newAssetId) external view returns (uint64 replacesAssetId)
Used to retrieve the asset that will be replaced if a given asset from the token's pending array is accepted.
Asset data is stored by reference, in order to access the data corresponding to the ID, call getAssetMetadata(tokenId, assetId)
.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token to check |
newAssetId | uint64 | ID of the pending asset which will be accepted |
Returns
Name | Type | Description |
---|---|---|
replacesAssetId | uint64 | ID of the asset which will be replaced |
getPendingAssets
function getPendingAssets(uint256 tokenId) external view returns (uint64[] assetIds)
Used to retrieve IDs of the pending assets of given token.
Asset data is stored by reference, in order to access the data corresponding to the ID, call getAssetMetadata(tokenId, assetId)
.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token to retrieve the IDs of the pending assets |
Returns
Name | Type | Description |
---|---|---|
assetIds | uint64[] | An array of pending asset IDs of the given token |
getRoyaltyPercentage
function getRoyaltyPercentage() external view returns (uint256 royaltyPercentageBps)
Used to retrieve the specified royalty percentage.
Returns
Name | Type | Description |
---|---|---|
royaltyPercentageBps | uint256 | The royalty percentage expressed in the basis points |
getRoyaltyRecipient
function getRoyaltyRecipient() external view returns (address recipient)
Used to retrieve the recipient of royalties.
Returns
Name | Type | Description |
---|---|---|
recipient | address | Address of the recipient of royalties |
isApprovedForAll
function isApprovedForAll(address owner, address operator) external view returns (bool isApproved)
Used to check if the given address is allowed to manage the tokens of the specified address.
Parameters
Name | Type | Description |
---|---|---|
owner | address | Address of the owner of the tokens |
operator | address | Address being checked for approval |
Returns
Name | Type | Description |
---|---|---|
isApproved | bool | A boolean value signifying whether the operator is allowed to manage the tokens of the owner (true ) or not (false ) |
isApprovedForAllForAssets
function isApprovedForAllForAssets(address owner, address operator) external view returns (bool isApproved)
Used to check whether the address has been granted the operator role by a given address or not.
See {setApprovalForAllForAssets}.
Parameters
Name | Type | Description |
---|---|---|
owner | address | Address of the account that we are checking for whether it has granted the operator role |
operator | address | Address of the account that we are checking whether it has the operator role or not |
Returns
Name | Type | Description |
---|---|---|
isApproved | bool | A boolean value indicating whether the account we are checking has been granted the operator role |
isContributor
function isContributor(address contributor) external view returns (bool isContributor_)
Used to check if the address is one of the contributors.
Parameters
Name | Type | Description |
---|---|---|
contributor | address | Address of the contributor whose status we are checking |
Returns
Name | Type | Description |
---|---|---|
isContributor_ | bool | Boolean value indicating whether the address is a contributor or not |
isTransferable
function isTransferable(uint256, address from, address to) external view returns (bool isTransferable_)
Used to check whether the given token is transferable or not.
If this function returns false
, the transfer of the token MUST revert execution.If the tokenId does not exist, this method MUST revert execution, unless the token is being checked for minting.
Parameters
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
from | address | Address from which the token is being transferred |
to | address | Address to which the token is being transferred |
Returns
Name | Type | Description |
---|---|---|
isTransferable_ | bool | Boolean value indicating whether the given token is transferable |
manageContributor
function manageContributor(address contributor, bool grantRole) external nonpayable
Adds or removes a contributor to the smart contract.
Can only be called by the owner.Emits ContributorUpdate event.
Parameters
Name | Type | Description |
---|---|---|
contributor | address | Address of the contributor's account |
grantRole | bool | A boolean value signifying whether the contributor role is being granted (true ) or revoked (false ) |
maxSupply
function maxSupply() external view returns (uint256 maxSupply_)
Used to retrieve the maximum supply of the collection.
Returns
Name | Type | Description |
---|---|---|
maxSupply_ | uint256 | The maximum supply of tokens in the collection |
mint
function mint(address to, uint256 numToMint, string tokenURI) external nonpayable returns (uint256 firstTokenId)
Used to mint the desired number of tokens to the specified address.
The data
value of the _safeMint
method is set to an empty value.Can only be called while the open sale is open.
Parameters
Name | Type | Description |
---|---|---|
to | address | Address to which to mint the token |
numToMint | uint256 | Number of tokens to mint |
tokenURI | string | URI assigned to all the minted tokens |
Returns
Name | Type | Description |
---|---|---|
firstTokenId | uint256 | The ID of the first token to be minted in the current minting cycle |
name
function name() external view returns (string name_)
Used to retrieve the collection name.
Returns
Name | Type | Description |
---|---|---|
name_ | string | Name of the collection |
owner
function owner() external view returns (address owner_)
Returns the address of the current owner.
Returns
Name | Type | Description |
---|---|---|
owner_ | address | Address of the current owner |
ownerOf
function ownerOf(uint256 tokenId) external view returns (address owner)
Used to retrieve the owner of the given token.
Requirements: - tokenId
must exist.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token for which to retrieve the token for |
Returns
Name | Type | Description |
---|---|---|
owner | address | Address of the account owning the token |
rejectAllAssets
function rejectAllAssets(uint256 tokenId, uint256 maxRejections) external nonpayable
Rejects all assets from the pending array of a given token.
Effecitvely deletes the pending array.Requirements: - The caller must own the token or be approved to manage the token's assets - tokenId
must exist.Emits a {AssetRejected} event with assetId = 0.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token of which to clear the pending array. |
maxRejections | uint256 | Maximum number of expected assets to reject, used to prevent from rejecting assets which arrive just before this operation. |
rejectAsset
function rejectAsset(uint256 tokenId, uint256 index, uint64 assetId) external nonpayable
Rejects an asset from the pending array of given token.
Removes the asset from the token's pending asset array.Requirements: - The caller must own the token or be approved to manage the token's assets - tokenId
must exist. - index
must be in range of the length of the pending asset array.Emits a {AssetRejected} event.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token that the asset is being rejected from |
index | uint256 | Index of the asset in the pending array to be rejected |
assetId | uint64 | ID of the asset expected to be in the index |
renounceOwnership
function renounceOwnership() external nonpayable
Leaves the contract without owner. Functions using the onlyOwner
modifier will be disabled.
Can only be called by the current owner.Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.
royaltyInfo
function royaltyInfo(uint256 tokenId, uint256 salePrice) external view returns (address receiver, uint256 royaltyAmount)
Used to retrieve the information about who shall receive royalties of a sale of the specified token and how much they will be.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token for which the royalty info is being retrieved |
salePrice | uint256 | Price of the token sale |
Returns
Name | Type | Description |
---|---|---|
receiver | address | The beneficiary receiving royalties of the sale |
royaltyAmount | uint256 | The value of the royalties recieved by the receiver from the sale |
safeTransferFrom
function safeTransferFrom(address from, address to, uint256 tokenId) external nonpayable
Used to safely transfer a given token token from from
to to
.
Requirements: - from
cannot be the zero address. - to
cannot be the zero address. - tokenId
token must exist and be owned by from
. - If the caller is not from
, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If to
refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.Emits a {Transfer} event.
Parameters
Name | Type | Description |
---|---|---|
from | address | Address to transfer the tokens from |
to | address | Address to transfer the tokens to |
tokenId | uint256 | ID of the token to transfer |
safeTransferFrom
function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) external nonpayable
Used to safely transfer a given token token from from
to to
.
Requirements: - from
cannot be the zero address. - to
cannot be the zero address. - tokenId
token must exist and be owned by from
. - If the caller is not from
, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If to
refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.Emits a {Transfer} event.
Parameters
Name | Type | Description |
---|---|---|
from | address | Address to transfer the tokens from |
to | address | Address to transfer the tokens to |
tokenId | uint256 | ID of the token to transfer |
data | bytes | Additional data without a specified format to be sent along with the token transaction |
setApprovalForAll
function setApprovalForAll(address operator, bool approved) external nonpayable
Used to approve or remove operator
as an operator for the caller.
Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.Requirements: - The operator
cannot be the caller.Emits an {ApprovalForAll} event.
Parameters
Name | Type | Description |
---|---|---|
operator | address | Address of the operator being managed |
approved | bool | A boolean value signifying whether the approval is being granted (true ) or (revoked ) |
setApprovalForAllForAssets
function setApprovalForAllForAssets(address operator, bool approved) external nonpayable
Used to add or remove an operator of assets for the caller.
Operators can call {acceptAsset}, {rejectAsset}, {rejectAllAssets} or {setPriority} for any token owned by the caller.Requirements: - The operator
cannot be the caller.Emits an {ApprovalForAllForAssets} event.
Parameters
Name | Type | Description |
---|---|---|
operator | address | Address of the account to which the operator role is granted or revoked from |
approved | bool | The boolean value indicating whether the operator role is being granted (true ) or revoked (false ) |
setPriority
function setPriority(uint256 tokenId, uint64[] priorities) external nonpayable
Sets a new priority array for a given token.
The priority array is a non-sequential list of uint64
s, where the lowest value is considered highest priority.Value 0
of a priority is a special case equivalent to unitialized.Requirements: - The caller must own the token or be approved to manage the token's assets - tokenId
must exist. - The length of priorities
must be equal the length of the active assets array.Emits a {AssetPrioritySet} event.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token to set the priorities for |
priorities | uint64[] | An array of priorities of active assets. The succesion of items in the priorities array matches that of the succesion of items in the active array |
supportsInterface
function supportsInterface(bytes4 interfaceId) external view returns (bool)
Returns true if this contract implements the interface defined by interfaceId
. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP (opens in a new tab) section] to learn more about how these ids are created. This function call must use less than 30 000 gas.
Parameters
Name | Type | Description |
---|---|---|
interfaceId | bytes4 | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | bool | undefined |
symbol
function symbol() external view returns (string symbol_)
Used to retrieve the collection symbol.
Returns
Name | Type | Description |
---|---|---|
symbol_ | string | Symbol of the collection |
tokenURI
function tokenURI(uint256 tokenId) external view returns (string tokenURI_)
Used to retrieve the metadata URI of a token.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the token to retrieve the metadata URI for |
Returns
Name | Type | Description |
---|---|---|
tokenURI_ | string | Metadata URI of the specified token |
totalAssets
function totalAssets() external view returns (uint256 totalAssets_)
Used to retrieve the total number of assets.
Returns
Name | Type | Description |
---|---|---|
totalAssets_ | uint256 | The total number of assets |
totalSupply
function totalSupply() external view returns (uint256 totalSupply_)
Used to retrieve the total supply of the tokens in a collection.
Returns
Name | Type | Description |
---|---|---|
totalSupply_ | uint256 | The number of tokens in a collection |
transferFrom
function transferFrom(address from, address to, uint256 tokenId) external nonpayable
Transfers a given token from from
to to
.
Requirements: - from
cannot be the zero address. - to
cannot be the zero address. - tokenId
token must be owned by from
. - If the caller is not from
, it must be approved to move this token by either {approve} or {setApprovalForAll}.Emits a {Transfer} event.
Parameters
Name | Type | Description |
---|---|---|
from | address | Address from which to transfer the token from |
to | address | Address to which to transfer the token to |
tokenId | uint256 | ID of the token to transfer |
transferOwnership
function transferOwnership(address newOwner) external nonpayable
Transfers ownership of the contract to a new owner.
Can only be called by the current owner.
Parameters
Name | Type | Description |
---|---|---|
newOwner | address | Address of the new owner's account |
updateRoyaltyRecipient
function updateRoyaltyRecipient(address newRoyaltyRecipient) external nonpayable
Used to update recipient of royalties.
Custom access control has to be implemented to ensure that only the intended actors can update the beneficiary.
Parameters
Name | Type | Description |
---|---|---|
newRoyaltyRecipient | address | Address of the new recipient of royalties |
Events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
Emitted when owner
enables approved
to manage the tokenId
token.
Parameters
Name | Type | Description |
---|---|---|
owner indexed | address | undefined |
approved indexed | address | undefined |
tokenId indexed | uint256 | undefined |
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
Emitted when owner
enables or disables (approved
) operator
to manage all of its assets.
Parameters
Name | Type | Description |
---|---|---|
owner indexed | address | undefined |
operator indexed | address | undefined |
approved | bool | undefined |
ApprovalForAllForAssets
event ApprovalForAllForAssets(address indexed owner, address indexed operator, bool approved)
Used to notify listeners that owner has granted approval to the user to manage assets of all of their tokens.
Parameters
Name | Type | Description |
---|---|---|
owner indexed | address | Address of the account that has granted the approval for all assets on all of their tokens |
operator indexed | address | Address of the account that has been granted the approval to manage the token's assets on all of the tokens |
approved | bool | Boolean value signifying whether the permission has been granted (true ) or revoked (false ) |
ApprovalForAssets
event ApprovalForAssets(address indexed owner, address indexed approved, uint256 indexed tokenId)
Used to notify listeners that owner has granted an approval to the user to manage the assets of a given token.
Approvals must be cleared on transfer
Parameters
Name | Type | Description |
---|---|---|
owner indexed | address | Address of the account that has granted the approval for all token's assets |
approved indexed | address | Address of the account that has been granted approval to manage the token's assets |
tokenId indexed | uint256 | ID of the token on which the approval was granted |
AssetAccepted
event AssetAccepted(uint256 indexed tokenId, uint64 indexed assetId, uint64 indexed replacesId)
Used to notify listeners that an asset object at assetId
is accepted by the token and migrated from token's pending assets array to active assets array of the token.
Parameters
Name | Type | Description |
---|---|---|
tokenId indexed | uint256 | ID of the token that had a new asset accepted |
assetId indexed | uint64 | ID of the asset that was accepted |
replacesId indexed | uint64 | ID of the asset that was replaced |
AssetAddedToTokens
event AssetAddedToTokens(uint256[] tokenIds, uint64 indexed assetId, uint64 indexed replacesId)
Used to notify listeners that an asset object at assetId
is added to token's pending asset array.
Parameters
Name | Type | Description |
---|---|---|
tokenIds | uint256[] | An array of token IDs that received a new pending asset |
assetId indexed | uint64 | ID of the asset that has been added to the token's pending assets array |
replacesId indexed | uint64 | ID of the asset that would be replaced |
AssetPrioritySet
event AssetPrioritySet(uint256 indexed tokenId)
Used to notify listeners that token's prioritiy array is reordered.
Parameters
Name | Type | Description |
---|---|---|
tokenId indexed | uint256 | ID of the token that had the asset priority array updated |
AssetRejected
event AssetRejected(uint256 indexed tokenId, uint64 indexed assetId)
Used to notify listeners that an asset object at assetId
is rejected from token and is dropped from the pending assets array of the token.
Parameters
Name | Type | Description |
---|---|---|
tokenId indexed | uint256 | ID of the token that had an asset rejected |
assetId indexed | uint64 | ID of the asset that was rejected |
AssetSet
event AssetSet(uint64 indexed assetId)
Used to notify listeners that an asset object is initialized at assetId
.
Parameters
Name | Type | Description |
---|---|---|
assetId indexed | uint64 | ID of the asset that was initialized |
ContributorUpdate
event ContributorUpdate(address indexed contributor, bool isContributor)
Event that signifies that an address was granted contributor role or that the permission has been revoked.
This can only be triggered by a current owner, so there is no need to include that information in the event.
Parameters
Name | Type | Description |
---|---|---|
contributor indexed | address | Address of the account that had contributor role status updated |
isContributor | bool | A boolean value signifying whether the role has been granted (true ) or revoked (false ) |
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Used to anounce the transfer of ownership.
Parameters
Name | Type | Description |
---|---|---|
previousOwner indexed | address | Address of the account that transferred their ownership role |
newOwner indexed | address | Address of the account receiving the ownership role |
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Emitted when tokenId
token is transferred from from
to to
.
Parameters
Name | Type | Description |
---|---|---|
from indexed | address | undefined |
to indexed | address | undefined |
tokenId indexed | uint256 | undefined |
Errors
ERC721AddressZeroIsNotaValidOwner
error ERC721AddressZeroIsNotaValidOwner()
Attempting to grant the token to 0x0 address
ERC721ApprovalToCurrentOwner
error ERC721ApprovalToCurrentOwner()
Attempting to grant approval to the current owner of the token
ERC721ApproveCallerIsNotOwnerNorApprovedForAll
error ERC721ApproveCallerIsNotOwnerNorApprovedForAll()
Attempting to grant approval when not being owner or approved for all should not be permitted
ERC721ApproveToCaller
error ERC721ApproveToCaller()
Attempting to grant approval to self
ERC721InvalidTokenId
error ERC721InvalidTokenId()
Attempting to use an invalid token ID
ERC721MintToTheZeroAddress
error ERC721MintToTheZeroAddress()
Attempting to mint to 0x0 address
ERC721NotApprovedOrOwner
error ERC721NotApprovedOrOwner()
Attempting to manage a token without being its owner or approved by the owner
ERC721TokenAlreadyMinted
error ERC721TokenAlreadyMinted()
Attempting to mint an already minted token
ERC721TransferFromIncorrectOwner
error ERC721TransferFromIncorrectOwner()
Attempting to transfer the token from an address that is not the owner
ERC721TransferToNonReceiverImplementer
error ERC721TransferToNonReceiverImplementer()
Attempting to safe transfer to an address that is unable to receive the token
ERC721TransferToTheZeroAddress
error ERC721TransferToTheZeroAddress()
Attempting to transfer the token to a 0x0 address
IndexOutOfBounds
error IndexOutOfBounds()
RMRKApprovalForAssetsToCurrentOwner
error RMRKApprovalForAssetsToCurrentOwner()
Attempting to grant approval of assets to their current owner
RMRKApproveForAssetsCallerIsNotOwnerNorApprovedForAll
error RMRKApproveForAssetsCallerIsNotOwnerNorApprovedForAll()
Attempting to grant approval of assets without being the caller or approved for all
RMRKAssetAlreadyExists
error RMRKAssetAlreadyExists()
Attempting to add an asset using an ID that has already been used
RMRKBadPriorityListLength
error RMRKBadPriorityListLength()
Attempting to set the priorities with an array of length that doesn't match the length of active assets array
RMRKCannotTransferSoulbound
error RMRKCannotTransferSoulbound()
Attempting to transfer a soulbound (non-transferrable) token
RMRKIdZeroForbidden
error RMRKIdZeroForbidden()
Attempting to use ID 0, which is not supported
The ID 0 in RMRK suite is reserved for empty values. Guarding against its use ensures the expected operation
RMRKIndexOutOfRange
error RMRKIndexOutOfRange()
Attempting to interact with an asset, using index greater than number of assets
RMRKMaxPendingAssetsReached
error RMRKMaxPendingAssetsReached()
Attempting to add a pending asset after the number of pending assets has reached the limit (default limit is 128)
RMRKMintOverMax
error RMRKMintOverMax()
Attempting to mint a number of tokens that would cause the total supply to be greater than maximum supply
RMRKMintZero
error RMRKMintZero()
Attempting to mint zero tokens
RMRKNewContributorIsZeroAddress
error RMRKNewContributorIsZeroAddress()
Attempting to assign a 0x0 address as a contributor
RMRKNewOwnerIsZeroAddress
error RMRKNewOwnerIsZeroAddress()
Attempting to transfer the ownership to the 0x0 address
RMRKNoAssetMatchingId
error RMRKNoAssetMatchingId()
Attempting to interact with an asset that can not be found
RMRKNotApprovedForAssetsOrOwner
error RMRKNotApprovedForAssetsOrOwner()
Attempting to manage an asset without owning it or having been granted permission by the owner to do so
RMRKNotOwner
error RMRKNotOwner()
Attempting to interact with a management function without being the smart contract's owner
RMRKNotOwnerOrContributor
error RMRKNotOwnerOrContributor()
Attempting to interact with a function without being the owner or contributor of the collection
RMRKRoyaltiesTooHigh
error RMRKRoyaltiesTooHigh()
Attempting to set the royalties to a value higher than 100% (10000 in basis points)
RMRKTokenDoesNotHaveAsset
error RMRKTokenDoesNotHaveAsset()
Attempting to compose a NFT of a token without active assets
RMRKUnexpectedAssetId
error RMRKUnexpectedAssetId()
Attempting to accept or reject an asset which does not match the one at the specified index
RMRKUnexpectedNumberOfAssets
error RMRKUnexpectedNumberOfAssets()
Attempting to reject all pending assets but more assets than expected are pending