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 atttempts to mint tokens.
Methods
DOMAIN_SEPARATOR
function DOMAIN_SEPARATOR() external view returns (bytes32)
See {IERC20Permit-DOMAIN_SEPARATOR}.
Returns
Name | Type | Description |
---|
_0 | bytes32 | undefined |
allowance
function allowance(address owner, address spender) external view returns (uint256)
See {IERC20-allowance}.
Parameters
Name | Type | Description |
---|
owner | address | undefined |
spender | address | undefined |
Returns
Name | Type | Description |
---|
_0 | uint256 | undefined |
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
Name | Type | Description |
---|
spender | address | undefined |
amount | uint256 | undefined |
Returns
Name | Type | Description |
---|
_0 | bool | undefined |
balanceOf
function balanceOf(address account) external view returns (uint256)
See {IERC20-balanceOf}.
Parameters
Name | Type | Description |
---|
account | address | undefined |
Returns
Name | Type | Description |
---|
_0 | uint256 | undefined |
burn
function burn(uint256 _amount) external nonpayable
Lets an owner a given amount of their tokens.
Caller should own the _amount
of tokens.
Parameters
Name | Type | Description |
---|
_amount | uint256 | The number of tokens to burn. |
claim
function claim(address _receiver, uint256 _quantity, address _currency, uint256 _pricePerToken, IDropSinglePhase.AllowlistProof _allowlistProof, bytes _data) external payable
Parameters
Name | Type | Description |
---|
_receiver | address | undefined |
_quantity | uint256 | undefined |
_currency | address | undefined |
_pricePerToken | uint256 | undefined |
_allowlistProof | IDropSinglePhase.AllowlistProof | undefined |
_data | bytes | undefined |
claimCondition
function claimCondition() external view returns (uint256 startTimestamp, uint256 maxClaimableSupply, uint256 supplyClaimed, uint256 quantityLimitPerWallet, bytes32 merkleRoot, uint256 pricePerToken, address currency, string metadata)
Returns
Name | Type | Description |
---|
startTimestamp | uint256 | undefined |
maxClaimableSupply | uint256 | undefined |
supplyClaimed | uint256 | undefined |
quantityLimitPerWallet | uint256 | undefined |
merkleRoot | bytes32 | undefined |
pricePerToken | uint256 | undefined |
currency | address | undefined |
metadata | string | undefined |
contractURI
function contractURI() external view returns (string)
Returns the contract metadata URI.
Returns
Name | Type | Description |
---|
_0 | string | undefined |
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
Name | Type | Description |
---|
_0 | uint8 | undefined |
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
Name | Type | Description |
---|
spender | address | undefined |
subtractedValue | uint256 | undefined |
Returns
Name | Type | Description |
---|
_0 | bool | undefined |
getSupplyClaimedByWallet
function getSupplyClaimedByWallet(address _claimer) external view returns (uint256)
Returns the supply claimed by claimer for active conditionId.
Parameters
Name | Type | Description |
---|
_claimer | address | undefined |
Returns
Name | Type | Description |
---|
_0 | uint256 | undefined |
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
Name | Type | Description |
---|
spender | address | undefined |
addedValue | uint256 | undefined |
Returns
Name | Type | Description |
---|
_0 | bool | undefined |
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
Name | Type | Description |
---|
data | bytes[] | The bytes data that makes up the batch of function calls to execute. |
Returns
Name | Type | Description |
---|
results | bytes[] | 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
Name | Type | Description |
---|
_0 | string | undefined |
nonces
function nonces(address owner) external view returns (uint256)
See {IERC20Permit-nonces}.
Parameters
Name | Type | Description |
---|
owner | address | undefined |
Returns
Name | Type | Description |
---|
_0 | uint256 | undefined |
owner
function owner() external view returns (address)
Returns the owner of the contract.
Returns
Name | Type | Description |
---|
_0 | address | undefined |
permit
function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external nonpayable
See {IERC20Permit-permit}.
Parameters
Name | Type | Description |
---|
owner | address | undefined |
spender | address | undefined |
value | uint256 | undefined |
deadline | uint256 | undefined |
v | uint8 | undefined |
r | bytes32 | undefined |
s | bytes32 | undefined |
primarySaleRecipient
function primarySaleRecipient() external view returns (address)
Returns primary sale recipient address.
Returns
Name | Type | Description |
---|
_0 | address | undefined |
setClaimConditions
function setClaimConditions(IClaimCondition.ClaimCondition _condition, bool _resetClaimEligibility) external nonpayable
Parameters
Name | Type | Description |
---|
_condition | IClaimCondition.ClaimCondition | undefined |
_resetClaimEligibility | bool | undefined |
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
Name | Type | Description |
---|
_uri | string | keccak256 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
Name | Type | Description |
---|
_newOwner | address | The 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
Name | Type | Description |
---|
_saleRecipient | address | Address 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
Name | Type | Description |
---|
_0 | string | undefined |
totalSupply
function totalSupply() external view returns (uint256)
See {IERC20-totalSupply}.
Returns
Name | Type | Description |
---|
_0 | uint256 | undefined |
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
Name | Type | Description |
---|
to | address | undefined |
amount | uint256 | undefined |
Returns
Name | Type | Description |
---|
_0 | bool | undefined |
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
Name | Type | Description |
---|
from | address | undefined |
to | address | undefined |
amount | uint256 | undefined |
Returns
Name | Type | Description |
---|
_0 | bool | undefined |
verifyClaim
function verifyClaim(address _claimer, uint256 _quantity, address _currency, uint256 _pricePerToken, IDropSinglePhase.AllowlistProof _allowlistProof) external view returns (bool isOverride)
Parameters
Name | Type | Description |
---|
_claimer | address | undefined |
_quantity | uint256 | undefined |
_currency | address | undefined |
_pricePerToken | uint256 | undefined |
_allowlistProof | IDropSinglePhase.AllowlistProof | undefined |
Returns
Name | Type | Description |
---|
isOverride | bool | undefined |
Events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Parameters
Name | Type | Description |
---|
owner indexed | address | undefined |
spender indexed | address | undefined |
value | uint256 | undefined |
ClaimConditionUpdated
event ClaimConditionUpdated(IClaimCondition.ClaimCondition condition, bool resetEligibility)
Emitted when the contract's claim conditions are updated.
Parameters
Name | Type | Description |
---|
condition | IClaimCondition.ClaimCondition | undefined |
resetEligibility | bool | undefined |
ContractURIUpdated
event ContractURIUpdated(string prevURI, string newURI)
Parameters
Name | Type | Description |
---|
prevURI | string | undefined |
newURI | string | undefined |
OwnerUpdated
event OwnerUpdated(address indexed prevOwner, address indexed newOwner)
Parameters
Name | Type | Description |
---|
prevOwner indexed | address | undefined |
newOwner indexed | address | undefined |
PrimarySaleRecipientUpdated
event PrimarySaleRecipientUpdated(address indexed recipient)
Parameters
Name | Type | Description |
---|
recipient indexed | address | undefined |
TokensClaimed
event TokensClaimed(address indexed claimer, address indexed receiver, uint256 indexed startTokenId, uint256 quantityClaimed)
Emitted when tokens are claimed via claim
.
Parameters
Name | Type | Description |
---|
claimer indexed | address | undefined |
receiver indexed | address | undefined |
startTokenId indexed | uint256 | undefined |
quantityClaimed | uint256 | undefined |
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Parameters
Name | Type | Description |
---|
from indexed | address | undefined |
to indexed | address | undefined |
value | uint256 | undefined |