Skip to main content

IPackVRFDirect

The thirdweb Pack contract is a lootbox mechanism. An account can bundle up arbitrary ERC20, ERC721 and ERC1155 tokens into a set of packs. A pack can then be opened in return for a selection of the tokens in the pack. The selection of tokens distributed on opening a pack depends on the relative supply of all tokens in the packs.

Methods

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[] rewardUnits)

Called by a pack opener to claim rewards from the opened pack.

Returns

NameTypeDescription
rewardUnitsITokenBundle.Token[]undefined

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

openPack

function openPack(uint256 packId, uint256 amountToOpen) external nonpayable returns (uint256 requestId)

Lets a pack owner request to open a pack.

Parameters

NameTypeDescription
packIduint256The identifier of the pack to open.
amountToOpenuint256The number of packs to open at once.

Returns

NameTypeDescription
requestIduint256undefined

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

Events

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