Solution
I have read the Airdrop contract, which was well-designed by @rmeissner. I believe we can use the same contract to redistribute the unredeemed SAFE tokens.
Here’s a draft process for setting up the Airdrop contract to redistribute unredeemed tokens:
- Deploy a new Airdrop contract. When deploying the contract, we need to set the
redeemDeadline
. According to the Allocation A in SEP #5, the tokens should be redeemed before July 1st, 2023. Therefore, we should probably set the value as 1688255999 (July 1st, 2023 11:59:59 PM (GMT)). - Initialize the new Airdrop Contract. This requires the
poolManager
to callinitializeRoot()
to set the new Merkle Root. - Claim unredeemed tokens from the old Airdrop contract. This can be done by calling the
claimUnusedTokens()
function bypoolManager
. - Send unredeemed tokens to the new Airdrop contract.
The reason we are not able to reuse the old Airdrop contract instance is that redeemDeadline
cannot be reset after the contract is deployed.
Issues
- In addition to the smart contract, we will need support from both the backend and frontend. The backend needs to provide the token amount and Merkle Proof as inputs of
redeem()
to the frontend. The frontend needs to provide the UI for Safe users to check their eligibility and callredeem()
of the Airdrop contract. - There are only about 27 days left before the redemption deadline on July 1st, 2023, so it sounds unrealistic. The original vesting start date is September 1st, 2022. I think we need to agree on a new start date and end date. I suggest we shift the start date to July 1st, 2023, and the end date to April 1st, 2024.
Please let me know if you have any feedback. Thanks!