ERC20ClaimConditions
import "@thirdweb-dev/contracts/eip/interface/IERC20.sol";
import "@thirdweb-dev/contracts/extension/DropSinglePhase.sol";
Allow other wallets to claim/mint tokens from the contract under the criteria of claim conditions by
implementing ERC20
and DropSinglePhase
extensions.
This is an extension which is detectable in the dashboard if the smart contract implements the
ERC20
and DropSinglePhase
extensions.
Usage
This is an example smart contract demonstrating how to inherit from the extensions which make up the ERC20ClaimConditions
detectable extension.
The functions which are available to be (optionally) overridden are detailed.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@thirdweb-dev/contracts/openzeppelin-presets/token/ERC20/ERC20.sol";
import "@thirdweb-dev/contracts/extension/DropSinglePhase.sol";
contract Contract is ERC20, DropSinglePhase {
constructor(
string memory _name,
string memory _symbol
)
ERC20(
_name,
_symbol
)
{}
function _canSetClaimConditions() internal view override returns (bool) {
// Your custom implementation here
}
function _collectPriceOnClaim(
address _primarySaleRecipient,
uint256 _quantityToClaim,
address _currency,
uint256 _pricePerToken
) internal virtual override {
// Your custom implementation here
}
function _transferTokensOnClaim(address _to, uint256 _quantityBeingClaimed)
internal
virtual
override
returns (uint256 startTokenId)
{
// Your custom implementation here
}
}
SDK Usage
By adding this extension to a smart contract, the following features, hooks and functions are unlocked in the SDK:
Dashboard Usage
By adding this extension to a smart contract, the following features are unlocked on the contract Dashboard