IPClaim
Inherits: AccessControl, Pausable, Whitelist, VaultWhitelistAdmin, UUPSUpgradeable
State Variables
claimedIP
mapping(address => uint256) public claimedIP;ipToken
Address(0) to claim native IP, otherwise ERC20
address public ipToken;startTime
uint256 public startTime;endTime
uint256 public endTime;Functions
constructor
Note: oz-upgrades-unsafe-allow: constructor
constructor();initialize
function initialize(bytes32 _merkleRoot, address _admin) external initializer;depositIP
function depositIP() external payable onlyRole(AccessControlStorage.DEFAULT_ADMIN_ROLE);claim
Can only claim once, even if merkle tree updates a user's amount
function claim(bytes32[] calldata _proof, uint256 _amount) external whenNotPaused;Parameters
Name
Type
Description
_proof
bytes32[]
Merkle proof for the user
_amount
uint256
The whole amount of $IP the user is entitled to claim
pause
function pause() external onlyRole(AccessControlStorage.DEFAULT_ADMIN_ROLE) whenNotPaused;unpause
function unpause() external onlyRole(AccessControlStorage.DEFAULT_ADMIN_ROLE) whenPaused;setEndTime
function setEndTime(uint256 _endTime) external onlyRole(AccessControlStorage.DEFAULT_ADMIN_ROLE);setIPToken
Admin can change token to be claimed at any time without any checks - made on purpose
If address(0) is set, it means ETH/IP is being claimed
function setIPToken(address _ipToken) external onlyRole(AccessControlStorage.DEFAULT_ADMIN_ROLE);setStartTime
function setStartTime(uint256 _startTime) external onlyRole(AccessControlStorage.DEFAULT_ADMIN_ROLE);withdrawAnyToken
*Admin can withdraw any token, at any time, including the IP token, without any checks
made on purpose*
function withdrawAnyToken(address _token, address _to, uint256 _amount)
external
onlyRole(AccessControlStorage.DEFAULT_ADMIN_ROLE);merkleRoot
function merkleRoot() external view returns (bytes32);_authorizeUpgrade
function _authorizeUpgrade(address newImplementation)
internal
override
onlyRole(AccessControlStorage.DEFAULT_ADMIN_ROLE);_transfer
function _transfer(address _token, address payable _to, uint256 _amount) internal;Events
Claimed
event Claimed(address indexed account, uint256 indexed amount);EndTimeSet
event EndTimeSet(uint256 indexed oldEndTime, uint256 indexed newEndTime);IPDeposited
event IPDeposited(address indexed ipToken, uint256 amount);IPTokenSet
event IPTokenSet(address indexed oldIPToken, address indexed newIPToken);StartTimeSet
event StartTimeSet(uint256 indexed oldStartTime, uint256 indexed newStartTime);Errors
IPClaim__Ended
error IPClaim__Ended();IPClaim__EndTimeBeforeStartTime
error IPClaim__EndTimeBeforeStartTime();IPClaim__NotStarted
error IPClaim__NotStarted();IPClaim__NotWhitelisted
error IPClaim__NotWhitelisted();IPClaim__StartTimeAfterEndTime
error IPClaim__StartTimeAfterEndTime();IPClaim__TransferFailed
error IPClaim__TransferFailed();IPClaim__WholeAmountClaimed
error IPClaim__WholeAmountClaimed();IPClaim__ZeroAddress
error IPClaim__ZeroAddress();IPClaim__ZeroAmount
error IPClaim__ZeroAmount();