mento-protocol / mento-core

Core smart contracts of the Mento protocol.
https://mento.org
GNU General Public License v3.0
24 stars 11 forks source link

Pick a merkle distribution contract for the Minipay Airdrop #517

Closed bowd closed 2 months ago

bowd commented 2 months ago

Notion Project Page

Overview

We need a basic ERC20 token distributor based on a merkle-tree. This Uniswap Merkle Distributor is a good candidate but a bit more research can be done to pick the best one. It should fit the same baseline functionality as the Uniswap one.

Acceptance criteria

RyRy79261 commented 2 months ago

UMA merkle distributor: https://github.com/UMAprotocol/protocol/blob/master/packages/core/contracts/merkle-distributor/implementation/MerkleDistributor.sol

Can specify multiple merkles with unique reward outputs

RyRy79261 commented 2 months ago

https://github.com/balancer/erc20-redeemable solidity 0.6.8;

RyRy79261 commented 2 months ago

https://github.com/pie-dao/vested-token-migration-app/blob/master/contracts/VestedTokenMigration.sol

Based on Aragon

Very old

RyRy79261 commented 2 months ago

Claude comparison of UMA vs Uniswap:

Still finding any relevant audits

Can you compare and list the functional differences between @MerkleDistributor.sol & @MerkleDistributor.sol

Certainly! I'll compare the two MerkleDistributor contracts and list the functional differences between them. I'll refer to the UMA version as "UMA MerkleDistributor" and the Uniswap version as "Uniswap MerkleDistributor".

1. Multiple Windows vs. Single Distribution:

2. Reward Token:

Claim Structure:

Claim Verification:

Batch Claims:

6. Admin Functions:

7. IPFS Hash:

Remaining Amount Tracking:

9. Error Handling:

Inheritance:

11. Solidity Version:

These differences show that the UMA MerkleDistributor is more feature-rich and flexible, supporting multiple distribution windows and administrative functions. The Uniswap MerkleDistributor, on the other hand, is simpler and more focused on a single distribution event.