allo-protocol / allo-v2

Core Allo V2 Contracts
GNU Affero General Public License v3.0
78 stars 60 forks source link

minimal core contracts #588

Open thelostone-mc opened 1 month ago

thelostone-mc commented 1 month ago

minimal core contracts similar to the simplicity of erc20 and erc721. Just the minimal interface. Work on an EIP to rally the community towards a shared standard. This could unlock new applications similar to what Uniswap and Aave did with erc20. Imagine what OpenZeppelin would implement from these standards if they were to, what kinds of presets?

thelostone-mc commented 3 weeks ago

@carlbarrdahl Just understand the goal here. Are we talking about simplifying the core contract beyond what we'd slotted in for Allo V2.1 ?

carlbarrdahl commented 3 weeks ago

@carlbarrdahl Just understand the goal here. Are we talking about simplifying the core contract beyond what we'd slotted in for Allo V2.1 ?

No this would be a bigger change. I see it as a reduction of code and simplification of the interface with the addition of extensions. See the ERC20 for example: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v5.0.1/contracts/token/ERC20/ERC20.sol

No external dependencies and can be deployed by themselves.

0xKurt commented 3 weeks ago

This is about the strategies and not the core contracts like Allo.sol right?

carlbarrdahl commented 3 weeks ago

This is about the strategies and not the core contracts like Allo.sol right?

Yes, I think it's important to make the distinction between these two. Compare Uniswap and ERC20. In my mind, the Strategies are the ERC20 and Allo is the Uniswap.

They should be able to exist by themselves. An ERC20 doesn't require Uniswap to be deployed. The simplicity and open interface of ERC20 has made them popular and powerful.

Allo.createPool(strategy): Pool 
// If a Pool has start and end dates it's technically a Round