Skip to main content

PackVRFDirect

NOTE: This contract is a work in progress.

Methods​

DEFAULT_ADMIN_ROLE​

function DEFAULT_ADMIN_ROLE() external view returns (bytes32)

Returns​

NameTypeDescription
_0bytes32undefined

balanceOf​

function balanceOf(address account, uint256 id) external view returns (uint256)

See {IERC1155-balanceOf}. Requirements: - account cannot be the zero address.

Parameters​

NameTypeDescription
accountaddressundefined
iduint256undefined

Returns​

NameTypeDescription
_0uint256undefined

balanceOfBatch​

function balanceOfBatch(address[] accounts, uint256[] ids) external view returns (uint256[])

See {IERC1155-balanceOfBatch}. Requirements: - accounts and ids must have the same length.

Parameters​

NameTypeDescription
accountsaddress[]undefined
idsuint256[]undefined

Returns​

NameTypeDescription
_0uint256[]undefined

canClaimRewards​

function canClaimRewards(address _opener) external view returns (bool)

Returns whether a pack opener is ready to call claimRewards.

Parameters​

NameTypeDescription
_openeraddressundefined

Returns​

NameTypeDescription
_0boolundefined

claimRewards​

function claimRewards() external nonpayable returns (struct ITokenBundle.Token[])

Lets a pack owner open packs and receive the packs' reward units.

Returns​

NameTypeDescription
_0ITokenBundle.Token[]undefined

contractType​

function contractType() external pure returns (bytes32)

Returns the type of the contract.

Returns​

NameTypeDescription
_0bytes32undefined

contractURI​

function contractURI() external view returns (string)

Returns the contract metadata URI.

Returns​

NameTypeDescription
_0stringundefined

contractVersion​

function contractVersion() external pure returns (uint8)

Returns the version of the contract.

Returns​

NameTypeDescription
_0uint8undefined

createPack​

function createPack(ITokenBundle.Token[] _contents, uint256[] _numOfRewardUnits, string _packUri, uint128 _openStartTimestamp, uint128 _amountDistributedPerOpen, address _recipient) external payable returns (uint256 packId, uint256 packTotalSupply)

Parameters​

NameTypeDescription
_contentsITokenBundle.Token[]undefined
_numOfRewardUnitsuint256[]undefined
_packUristringundefined
_openStartTimestampuint128undefined
_amountDistributedPerOpenuint128undefined
_recipientaddressundefined

Returns​

NameTypeDescription
packIduint256undefined
packTotalSupplyuint256undefined

getDefaultRoyaltyInfo​

function getDefaultRoyaltyInfo() external view returns (address, uint16)

Returns the default royalty recipient and BPS for this contract's NFTs.

Returns​

NameTypeDescription
_0addressundefined
_1uint16undefined

getPackContents​

function getPackContents(uint256 _packId) external view returns (struct ITokenBundle.Token[] contents, uint256[] perUnitAmounts)

Returns the underlying contents of a pack.

Parameters​

NameTypeDescription
_packIduint256undefined

Returns​

NameTypeDescription
contentsITokenBundle.Token[]undefined
perUnitAmountsuint256[]undefined

getRoleAdmin​

function getRoleAdmin(bytes32 role) external view returns (bytes32)

Returns the admin role that controls the specified role.

See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.

Parameters​

NameTypeDescription
rolebytes32keccak256 hash of the role. e.g. keccak256("TRANSFER_ROLE")

Returns​

NameTypeDescription
_0bytes32undefined

getRoyaltyInfoForToken​

function getRoyaltyInfoForToken(uint256 _tokenId) external view returns (address, uint16)

View royalty info for a given token.

Returns royalty recipient and bps for _tokenId.

Parameters​

NameTypeDescription
_tokenIduint256The tokenID of the NFT for which to query royalty info.

Returns​

NameTypeDescription
_0addressundefined
_1uint16undefined

getTokenCountOfBundle​

function getTokenCountOfBundle(uint256 _bundleId) external view returns (uint256)

Returns the total number of assets in a particular bundle.

Parameters​

NameTypeDescription
_bundleIduint256undefined

Returns​

NameTypeDescription
_0uint256undefined

getTokenOfBundle​

function getTokenOfBundle(uint256 _bundleId, uint256 index) external view returns (struct ITokenBundle.Token)

Returns an asset contained in a particular bundle, at a particular index.

Parameters​

NameTypeDescription
_bundleIduint256undefined
indexuint256undefined

Returns​

NameTypeDescription
_0ITokenBundle.Tokenundefined

getUriOfBundle​

function getUriOfBundle(uint256 _bundleId) external view returns (string)

Returns the uri of a particular bundle.

Parameters​

NameTypeDescription
_bundleIduint256undefined

Returns​

NameTypeDescription
_0stringundefined

grantRole​

function grantRole(bytes32 role, address account) external nonpayable

Grants a role to an account, if not previously granted.

Caller must have admin role for the role. Emits {RoleGranted Event}.

Parameters​

NameTypeDescription
rolebytes32keccak256 hash of the role. e.g. keccak256("TRANSFER_ROLE")
accountaddressAddress of the account to which the role is being granted.

hasRole​

function hasRole(bytes32 role, address account) external view returns (bool)

Checks whether an account has a particular role.

Returns true if account has been granted role.

Parameters​

NameTypeDescription
rolebytes32keccak256 hash of the role. e.g. keccak256("TRANSFER_ROLE")
accountaddressAddress of the account for which the role is being checked.

Returns​

NameTypeDescription
_0boolundefined

hasRoleWithSwitch​

function hasRoleWithSwitch(bytes32 role, address account) external view returns (bool)

Checks whether an account has a particular role; role restrictions can be switched on and off.

Returns true if account has been granted role. Role restrictions can be switched on and off: - If address(0) has ROLE, then the ROLE restrictions don't apply. - If address(0) does not have ROLE, then the ROLE restrictions will apply.

Parameters​

NameTypeDescription
rolebytes32keccak256 hash of the role. e.g. keccak256("TRANSFER_ROLE")
accountaddressAddress of the account for which the role is being checked.

Returns​

NameTypeDescription
_0boolundefined

initialize​

function initialize(address _defaultAdmin, string _name, string _symbol, string _contractURI, address[] _trustedForwarders, address _royaltyRecipient, uint256 _royaltyBps) external nonpayable

Initializes the contract, like a constructor.

Parameters​

NameTypeDescription
_defaultAdminaddressundefined
_namestringundefined
_symbolstringundefined
_contractURIstringundefined
_trustedForwardersaddress[]undefined
_royaltyRecipientaddressundefined
_royaltyBpsuint256undefined

isApprovedForAll​

function isApprovedForAll(address account, address operator) external view returns (bool)

See {IERC1155-isApprovedForAll}.

Parameters​

NameTypeDescription
accountaddressundefined
operatoraddressundefined

Returns​

NameTypeDescription
_0boolundefined

isTrustedForwarder​

function isTrustedForwarder(address forwarder) external view returns (bool)

Parameters​

NameTypeDescription
forwarderaddressundefined

Returns​

NameTypeDescription
_0boolundefined

multicall​

function multicall(bytes[] data) external nonpayable returns (bytes[] results)

Receives and executes a batch of function calls on this contract.

Parameters​

NameTypeDescription
databytes[]undefined

Returns​

NameTypeDescription
resultsbytes[]undefined

name​

function name() external view returns (string)

Returns​

NameTypeDescription
_0stringundefined

nextTokenIdToMint​

function nextTokenIdToMint() external view returns (uint256)

The token Id of the next set of packs to be minted.

Returns​

NameTypeDescription
_0uint256undefined

onERC1155BatchReceived​

function onERC1155BatchReceived(address, address, uint256[], uint256[], bytes) external nonpayable returns (bytes4)

Parameters​

NameTypeDescription
_0addressundefined
_1addressundefined
_2uint256[]undefined
_3uint256[]undefined
_4bytesundefined

Returns​

NameTypeDescription
_0bytes4undefined

onERC1155Received​

function onERC1155Received(address, address, uint256, uint256, bytes) external nonpayable returns (bytes4)

Parameters​

NameTypeDescription
_0addressundefined
_1addressundefined
_2uint256undefined
_3uint256undefined
_4bytesundefined

Returns​

NameTypeDescription
_0bytes4undefined

onERC721Received​

function onERC721Received(address, address, uint256, bytes) external nonpayable returns (bytes4)

See {IERC721Receiver-onERC721Received}. Always returns IERC721Receiver.onERC721Received.selector.

Parameters​

NameTypeDescription
_0addressundefined
_1addressundefined
_2uint256undefined
_3bytesundefined

Returns​

NameTypeDescription
_0bytes4undefined

openPack​

function openPack(uint256 _packId, uint256 _amountToOpen) external nonpayable returns (uint256)

Lets a pack owner open packs and receive the packs' reward units.

Parameters​

NameTypeDescription
_packIduint256undefined
_amountToOpenuint256undefined

Returns​

NameTypeDescription
_0uint256undefined

openPackAndClaimRewards​

function openPackAndClaimRewards(uint256 _packId, uint256 _amountToOpen, uint32 _callBackGasLimit) external nonpayable returns (uint256)

Called by a pack opener to open a pack in a single transaction, instead of calling openPack and claimRewards separately.

Parameters​

NameTypeDescription
_packIduint256undefined
_amountToOpenuint256undefined
_callBackGasLimituint32undefined

Returns​

NameTypeDescription
_0uint256undefined

owner​

function owner() external view returns (address)

Returns the owner of the contract.

Returns​

NameTypeDescription
_0addressundefined

rawFulfillRandomWords​

function rawFulfillRandomWords(uint256 _requestId, uint256[] _randomWords) external nonpayable

Parameters​

NameTypeDescription
_requestIduint256undefined
_randomWordsuint256[]undefined

renounceRole​

function renounceRole(bytes32 role, address account) external nonpayable

Revokes role from the account.

Caller must have the role, with caller being the same as account. Emits {RoleRevoked Event}.

Parameters​

NameTypeDescription
rolebytes32keccak256 hash of the role. e.g. keccak256("TRANSFER_ROLE")
accountaddressAddress of the account from which the role is being revoked.

revokeRole​

function revokeRole(bytes32 role, address account) external nonpayable

Revokes role from an account.

Caller must have admin role for the role. Emits {RoleRevoked Event}.

Parameters​

NameTypeDescription
rolebytes32keccak256 hash of the role. e.g. keccak256("TRANSFER_ROLE")
accountaddressAddress of the account from which the role is being revoked.

royaltyInfo​

function royaltyInfo(uint256 tokenId, uint256 salePrice) external view returns (address receiver, uint256 royaltyAmount)

View royalty info for a given token and sale price.

Returns royalty amount and recipient for tokenId and salePrice.

Parameters​

NameTypeDescription
tokenIduint256The tokenID of the NFT for which to query royalty info.
salePriceuint256Sale price of the token.

Returns​

NameTypeDescription
receiveraddressAddress of royalty recipient account.
royaltyAmountuint256Royalty amount calculated at current royaltyBps value.

safeBatchTransferFrom​

function safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts, bytes data) external nonpayable

See {IERC1155-safeBatchTransferFrom}.

Parameters​

NameTypeDescription
fromaddressundefined
toaddressundefined
idsuint256[]undefined
amountsuint256[]undefined
databytesundefined

safeTransferFrom​

function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes data) external nonpayable

See {IERC1155-safeTransferFrom}.

Parameters​

NameTypeDescription
fromaddressundefined
toaddressundefined
iduint256undefined
amountuint256undefined
databytesundefined

sendRewardsIndirect​

function sendRewardsIndirect(address _opener) external nonpayable

Lets a pack owner open packs and receive the packs' reward units.

Parameters​

NameTypeDescription
_openeraddressundefined

setApprovalForAll​

function setApprovalForAll(address operator, bool approved) external nonpayable

See {IERC1155-setApprovalForAll}.

Parameters​

NameTypeDescription
operatoraddressundefined
approvedboolundefined

setContractURI​

function setContractURI(string _uri) external nonpayable

Lets a contract admin set the URI for contract-level metadata.

Caller should be authorized to setup contractURI, e.g. contract admin. See {_canSetContractURI}. Emits {ContractURIUpdated Event}.

Parameters​

NameTypeDescription
_uristringkeccak256 hash of the role. e.g. keccak256("TRANSFER_ROLE")

setDefaultRoyaltyInfo​

function setDefaultRoyaltyInfo(address _royaltyRecipient, uint256 _royaltyBps) external nonpayable

Updates default royalty recipient and bps.

Caller should be authorized to set royalty info. See {_canSetRoyaltyInfo}. Emits {DefaultRoyalty Event}; See {_setupDefaultRoyaltyInfo}.

Parameters​

NameTypeDescription
_royaltyRecipientaddressAddress to be set as default royalty recipient.
_royaltyBpsuint256Updated royalty bps.

setOwner​

function setOwner(address _newOwner) external nonpayable

Lets an authorized wallet set a new owner for the contract.

Parameters​

NameTypeDescription
_newOwneraddressThe address to set as the new owner of the contract.

setRoyaltyInfoForToken​

function setRoyaltyInfoForToken(uint256 _tokenId, address _recipient, uint256 _bps) external nonpayable

Updates default royalty recipient and bps for a particular token.

Sets royalty info for _tokenId. Caller should be authorized to set royalty info. See {_canSetRoyaltyInfo}. Emits {RoyaltyForToken Event}; See {_setupRoyaltyInfoForToken}.

Parameters​

NameTypeDescription
_tokenIduint256undefined
_recipientaddressAddress to be set as royalty recipient for given token Id.
_bpsuint256Updated royalty bps for the token Id.

supportsInterface​

function supportsInterface(bytes4 interfaceId) external view returns (bool)

See ERC 165

Parameters​

NameTypeDescription
interfaceIdbytes4undefined

Returns​

NameTypeDescription
_0boolundefined

symbol​

function symbol() external view returns (string)

Returns​

NameTypeDescription
_0stringundefined

totalSupply​

function totalSupply(uint256) external view returns (uint256)

Mapping from token ID => total circulating supply of token with that ID.

Parameters​

NameTypeDescription
_0uint256undefined

Returns​

NameTypeDescription
_0uint256undefined

uri​

function uri(uint256 _tokenId) external view returns (string)

Returns the URI for a given tokenId.

Parameters​

NameTypeDescription
_tokenIduint256undefined

Returns​

NameTypeDescription
_0stringundefined

Events​

ApprovalForAll​

event ApprovalForAll(address indexed account, address indexed operator, bool approved)

Parameters​

NameTypeDescription
account indexedaddressundefined
operator indexedaddressundefined
approvedboolundefined

ContractURIUpdated​

event ContractURIUpdated(string prevURI, string newURI)

Parameters​

NameTypeDescription
prevURIstringundefined
newURIstringundefined

DefaultRoyalty​

event DefaultRoyalty(address indexed newRoyaltyRecipient, uint256 newRoyaltyBps)

Parameters​

NameTypeDescription
newRoyaltyRecipient indexedaddressundefined
newRoyaltyBpsuint256undefined

Initialized​

event Initialized(uint8 version)

Parameters​

NameTypeDescription
versionuint8undefined

OwnerUpdated​

event OwnerUpdated(address indexed prevOwner, address indexed newOwner)

Parameters​

NameTypeDescription
prevOwner indexedaddressundefined
newOwner indexedaddressundefined

PackCreated​

event PackCreated(uint256 indexed packId, address recipient, uint256 totalPacksCreated)

Emitted when a set of packs is created.

Parameters​

NameTypeDescription
packId indexeduint256undefined
recipientaddressundefined
totalPacksCreateduint256undefined

PackOpenRequested​

event PackOpenRequested(address indexed opener, uint256 indexed packId, uint256 amountToOpen, uint256 requestId)

Emitted when the opening of a pack is requested.

Parameters​

NameTypeDescription
opener indexedaddressundefined
packId indexeduint256undefined
amountToOpenuint256undefined
requestIduint256undefined

PackOpened​

event PackOpened(uint256 indexed packId, address indexed opener, uint256 numOfPacksOpened, ITokenBundle.Token[] rewardUnitsDistributed)

Emitted when a pack is opened.

Parameters​

NameTypeDescription
packId indexeduint256undefined
opener indexedaddressundefined
numOfPacksOpeneduint256undefined
rewardUnitsDistributedITokenBundle.Token[]undefined

PackRandomnessFulfilled​

event PackRandomnessFulfilled(uint256 indexed packId, uint256 indexed requestId)

Emitted when Chainlink VRF fulfills a random number request.

Parameters​

NameTypeDescription
packId indexeduint256undefined
requestId indexeduint256undefined

RoleAdminChanged​

event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)

Parameters​

NameTypeDescription
role indexedbytes32undefined
previousAdminRole indexedbytes32undefined
newAdminRole indexedbytes32undefined

RoleGranted​

event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)

Parameters​

NameTypeDescription
role indexedbytes32undefined
account indexedaddressundefined
sender indexedaddressundefined

RoleRevoked​

event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)

Parameters​

NameTypeDescription
role indexedbytes32undefined
account indexedaddressundefined
sender indexedaddressundefined

RoyaltyForToken​

event RoyaltyForToken(uint256 indexed tokenId, address indexed royaltyRecipient, uint256 royaltyBps)

Parameters​

NameTypeDescription
tokenId indexeduint256undefined
royaltyRecipient indexedaddressundefined
royaltyBpsuint256undefined

TransferBatch​

event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values)

Parameters​

NameTypeDescription
operator indexedaddressundefined
from indexedaddressundefined
to indexedaddressundefined
idsuint256[]undefined
valuesuint256[]undefined

TransferSingle​

event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value)

Parameters​

NameTypeDescription
operator indexedaddressundefined
from indexedaddressundefined
to indexedaddressundefined
iduint256undefined
valueuint256undefined

URI​

event URI(string value, uint256 indexed id)

Parameters​

NameTypeDescription
valuestringundefined
id indexeduint256undefined