Skip to main content

ERC20Drop

BASE: ERC20 EXTENSION: DropSinglePhase The ERC20Drop smart contract implements the ERC20 standard. It includes the following additions to standard ERC20 logic: - Ownership of the contract, with the ability to restrict certain functions to only be called by the contract's owner. - Multicall capability to perform multiple actions atomically - EIP 2612 compliance: See {ERC20-permit} method, which can be used to change an account's ERC20 allowance by presenting a message signed by the account. The drop mechanism in the DropSinglePhase extension is a distribution mechanism for tokens. It lets you set restrictions such as a price to charge, an allowlist etc. when an address attempts to mint tokens.

Methods​

DOMAIN_SEPARATOR​

function DOMAIN_SEPARATOR() external view returns (bytes32)

See {IERC20Permit-DOMAIN_SEPARATOR}.

Returns​

NameTypeDescription
_0bytes32undefined

allowance​

function allowance(address owner, address spender) external view returns (uint256)

See {IERC20-allowance}.

Parameters​

NameTypeDescription
owneraddressundefined
spenderaddressundefined

Returns​

NameTypeDescription
_0uint256undefined

approve​

function approve(address spender, uint256 amount) external nonpayable returns (bool)

See {IERC20-approve}. NOTE: If amount is the maximum uint256, the allowance is not updated on transferFrom. This is semantically equivalent to an infinite approval. Requirements: - spender cannot be the zero address.

Parameters​

NameTypeDescription
spenderaddressundefined
amountuint256undefined

Returns​

NameTypeDescription
_0boolundefined

balanceOf​

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

See {IERC20-balanceOf}.

Parameters​

NameTypeDescription
accountaddressundefined

Returns​

NameTypeDescription
_0uint256undefined

burn​

function burn(uint256 _amount) external nonpayable

Lets an owner a given amount of their tokens.

Caller should own the _amount of tokens.

Parameters​

NameTypeDescription
_amountuint256The number of tokens to burn.

claim​

function claim(address _receiver, uint256 _quantity, address _currency, uint256 _pricePerToken, IDropSinglePhase.AllowlistProof _allowlistProof, bytes _data) external payable

Parameters​

NameTypeDescription
_receiveraddressundefined
_quantityuint256undefined
_currencyaddressundefined
_pricePerTokenuint256undefined
_allowlistProofIDropSinglePhase.AllowlistProofundefined
_databytesundefined

claimCondition​

function claimCondition() external view returns (uint256 startTimestamp, uint256 maxClaimableSupply, uint256 supplyClaimed, uint256 quantityLimitPerWallet, bytes32 merkleRoot, uint256 pricePerToken, address currency, string metadata)

Returns​

NameTypeDescription
startTimestampuint256undefined
maxClaimableSupplyuint256undefined
supplyClaimeduint256undefined
quantityLimitPerWalletuint256undefined
merkleRootbytes32undefined
pricePerTokenuint256undefined
currencyaddressundefined
metadatastringundefined

contractURI​

function contractURI() external view returns (string)

Returns the contract metadata URI.

Returns​

NameTypeDescription
_0stringundefined

decimals​

function decimals() external view returns (uint8)

Returns the number of decimals used to get its user representation. For example, if decimals equals 2, a balance of 505 tokens should be displayed to a user as 5.05 (505 / 10 ** 2). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for display purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.

Returns​

NameTypeDescription
_0uint8undefined

decreaseAllowance​

function decreaseAllowance(address spender, uint256 subtractedValue) external nonpayable returns (bool)

Atomically decreases the allowance granted to spender by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - spender cannot be the zero address. - spender must have allowance for the caller of at least subtractedValue.

Parameters​

NameTypeDescription
spenderaddressundefined
subtractedValueuint256undefined

Returns​

NameTypeDescription
_0boolundefined

getSupplyClaimedByWallet​

function getSupplyClaimedByWallet(address _claimer) external view returns (uint256)

Returns the supply claimed by claimer for active conditionId.

Parameters​

NameTypeDescription
_claimeraddressundefined

Returns​

NameTypeDescription
_0uint256undefined

increaseAllowance​

function increaseAllowance(address spender, uint256 addedValue) external nonpayable returns (bool)

Atomically increases the allowance granted to spender by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - spender cannot be the zero address.

Parameters​

NameTypeDescription
spenderaddressundefined
addedValueuint256undefined

Returns​

NameTypeDescription
_0boolundefined

multicall​

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

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

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

Parameters​

NameTypeDescription
databytes[]The bytes data that makes up the batch of function calls to execute.

Returns​

NameTypeDescription
resultsbytes[]The bytes data that makes up the result of the batch of function calls executed.

name​

function name() external view returns (string)

Returns the name of the token.

Returns​

NameTypeDescription
_0stringundefined

nonces​

function nonces(address owner) external view returns (uint256)

See {IERC20Permit-nonces}.

Parameters​

NameTypeDescription
owneraddressundefined

Returns​

NameTypeDescription
_0uint256undefined

owner​

function owner() external view returns (address)

Returns the owner of the contract.

Returns​

NameTypeDescription
_0addressundefined

permit​

function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external nonpayable

See {IERC20Permit-permit}.

Parameters​

NameTypeDescription
owneraddressundefined
spenderaddressundefined
valueuint256undefined
deadlineuint256undefined
vuint8undefined
rbytes32undefined
sbytes32undefined

primarySaleRecipient​

function primarySaleRecipient() external view returns (address)

Returns primary sale recipient address.

Returns​

NameTypeDescription
_0addressundefined

setClaimConditions​

function setClaimConditions(IClaimCondition.ClaimCondition _condition, bool _resetClaimEligibility) external nonpayable

Parameters​

NameTypeDescription
_conditionIClaimCondition.ClaimConditionundefined
_resetClaimEligibilityboolundefined

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")

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.

setPrimarySaleRecipient​

function setPrimarySaleRecipient(address _saleRecipient) external nonpayable

Updates primary sale recipient.

Caller should be authorized to set primary sales info. See {_canSetPrimarySaleRecipient}. Emits {PrimarySaleRecipientUpdated Event}; See {_setupPrimarySaleRecipient}.

Parameters​

NameTypeDescription
_saleRecipientaddressAddress to be set as new recipient of primary sales.

symbol​

function symbol() external view returns (string)

Returns the symbol of the token, usually a shorter version of the name.

Returns​

NameTypeDescription
_0stringundefined

totalSupply​

function totalSupply() external view returns (uint256)

See {IERC20-totalSupply}.

Returns​

NameTypeDescription
_0uint256undefined

transfer​

function transfer(address to, uint256 amount) external nonpayable returns (bool)

See {IERC20-transfer}. Requirements: - to cannot be the zero address. - the caller must have a balance of at least amount.

Parameters​

NameTypeDescription
toaddressundefined
amountuint256undefined

Returns​

NameTypeDescription
_0boolundefined

transferFrom​

function transferFrom(address from, address to, uint256 amount) external nonpayable returns (bool)

See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum uint256. Requirements: - from and to cannot be the zero address. - from must have a balance of at least amount. - the caller must have allowance for from's tokens of at least amount.

Parameters​

NameTypeDescription
fromaddressundefined
toaddressundefined
amountuint256undefined

Returns​

NameTypeDescription
_0boolundefined

verifyClaim​

function verifyClaim(address _claimer, uint256 _quantity, address _currency, uint256 _pricePerToken, IDropSinglePhase.AllowlistProof _allowlistProof) external view returns (bool isOverride)

Parameters​

NameTypeDescription
_claimeraddressundefined
_quantityuint256undefined
_currencyaddressundefined
_pricePerTokenuint256undefined
_allowlistProofIDropSinglePhase.AllowlistProofundefined

Returns​

NameTypeDescription
isOverrideboolundefined

Events​

Approval​

event Approval(address indexed owner, address indexed spender, uint256 value)

Parameters​

NameTypeDescription
owner indexedaddressundefined
spender indexedaddressundefined
valueuint256undefined

ClaimConditionUpdated​

event ClaimConditionUpdated(IClaimCondition.ClaimCondition condition, bool resetEligibility)

Emitted when the contract's claim conditions are updated.

Parameters​

NameTypeDescription
conditionIClaimCondition.ClaimConditionundefined
resetEligibilityboolundefined

ContractURIUpdated​

event ContractURIUpdated(string prevURI, string newURI)

Parameters​

NameTypeDescription
prevURIstringundefined
newURIstringundefined

OwnerUpdated​

event OwnerUpdated(address indexed prevOwner, address indexed newOwner)

Parameters​

NameTypeDescription
prevOwner indexedaddressundefined
newOwner indexedaddressundefined

PrimarySaleRecipientUpdated​

event PrimarySaleRecipientUpdated(address indexed recipient)

Parameters​

NameTypeDescription
recipient indexedaddressundefined

TokensClaimed​

event TokensClaimed(address indexed claimer, address indexed receiver, uint256 indexed startTokenId, uint256 quantityClaimed)

Emitted when tokens are claimed via claim.

Parameters​

NameTypeDescription
claimer indexedaddressundefined
receiver indexedaddressundefined
startTokenId indexeduint256undefined
quantityClaimeduint256undefined

Transfer​

event Transfer(address indexed from, address indexed to, uint256 value)

Parameters​

NameTypeDescription
from indexedaddressundefined
to indexedaddressundefined
valueuint256undefined