bigsml / sherlock-allo-v2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gitcoin Allo contest details

Q&A

Q: On what chains are the smart contracts going to be deployed?

All EVM compatible chains + Zkync Era


Q: Which ERC20 tokens do you expect will interact with the smart contracts?

All


Q: Which ERC721 tokens do you expect will interact with the smart contracts?

None


Q: Which ERC777 tokens do you expect will interact with the smart contracts?

None


Q: Are there any FEE-ON-TRANSFER tokens interacting with the smart contracts?

Yes. When funding a pool on Allo.sol


Q: Are there any REBASING tokens interacting with the smart contracts?

None


Q: Are the admins of the protocols your contracts integrate with (if any) TRUSTED or RESTRICTED?

RESTRICTED


Q: Is the admin/owner of the protocol/contracts TRUSTED or RESTRICTED?

TRUSTED

The contracts are upgradable and the admin is trusted.

The owner of Allo.sol can

  • recover funds from Allo.sol
  • flag contracts as cloneable
  • set the base fee, percent fee , registry address and treasury address

The owner of Registry.sol can recover funds from Registry.sol


Q: Are there any additional protocol roles? If yes, please explain in detail:

  • Profile Owners: Users who create profiles using the Registry contract. These profiles are central to protocol interactions, offering a unique identity for users and enabling secure external calls through the Anchor contract.

  • Profile Member: Members of a Registry profile have specific access rights as defined by the profile's owner.

  • Allo Owner: Individuals who control the Allo contract, possessing the authority to manage fund recovery, fee parameters, and treasury addresses. Their role is pivotal in ensuring the protocol's financial stability.

  • Pool Creator A user who can create new pools using custom or cloneable strategies. They can specify metadata, strategy addresses, managers, and other parameters during pool creation.

  • Pool Administrator Users with administrative control over specific pools. They can manage pool managers, enabling effective pool governance.

  • Pool Manager Users who manage funds within specific pools. They can allocate and distribute funds according to the pool's strategy


Q: Is the code/contract expected to comply with any EIPs? Are there specific assumptions around adhering to those EIPs that Watsons should be aware of?

ERC20, EIP-712


Q: Please list any known issues/acceptable risks that should not result in a valid finding.

Fee skirting where pool manager directly fund the pool without paying the fees


Q: Please provide links to previous audits (if any).

New


Q: Are there any off-chain mechanisms or off-chain procedures for the protocol (keeper bots, input validation expectations, etc)?

  • Metadata struct references IPFS
  • DonationVotingMerkleDistributionBaseMerkle has calculations which happens off-chain based on which a merkle root is generated and uploaded. The pool manager is a trusted role and is expected to use https://github.com/gitcoinco/pluralistic.js

Q: In case of external protocol integrations, are the risks of external contracts pausing or executing an emergency withdrawal acceptable? If not, Watsons will submit issues related to these situations that can harm your protocol's functionality.

No


Q: Do you expect to use any of the following tokens with non-standard behaviour with the smart contracts?

Yes as we support all ERC20 tokens.


Q: Add links to relevant protocol resources


Audit scope

allo-v2 @ 0b881ef4a0013d2809374c9ea69f4cf1288dfe62

About


Languages

Language:Solidity 96.4%Language:TypeScript 3.5%Language:JavaScript 0.1%