A secure on-chain project funding platform utilizing the unique ERC4626A Vault standard, developed by the SeedSphere team.
- Celo Alfajores: https://celo-alfajores.blockscout.com/address/0x8EDFFa01e86B1f039b6C168b7f8813169a662364
- Optimism Sepolia: https://optimism-sepolia.blockscout.com/address/0xe00cAB2915c3eEEa10e3d6956239428D14cc8587
- Base Sepolia: https://base-sepolia.blockscout.com/address/0xe00cAB2915c3eEEa10e3d6956239428D14cc8587
- Mode Sepolia: https://sepolia.explorer.mode.network/address/0xe00cAB2915c3eEEa10e3d6956239428D14cc8587
Superchain Maxis uses Unique contract address: 0xe00cAB2915c3eEEa10e3d6956239428D14cc8587
Celo: https://celo-alfajores.blockscout.com/address/0xD66D6E1e09Bb6A54f45B906B56a2b93f2F42fe8a
Dango Deployment: Dango Deployment: Developed and deployed DangoVault with our new ERC4626A standard, contract verified using Blockscout - https://celo-dango.blockscout.com/address/0x5E36A22751f56aECE9A970beac728De684E7Bd1E
- overview: https://github.com/chandrabosep/SuperHacks-24/blob/mujahid/Overview.drawio.png
- Basic Flow: https://github.com/chandrabosep/SuperHacks-24/blob/mujahid/Basic-Flow.png
- Advanced Flow: https://github.com/chandrabosep/SuperHacks-24/blob/mujahid/SeedSphere-Flowchart.png
- OP Track: Leveraging multi-blockchain support for user and funder convenience. Features include a Grants Monitor Tool for voting, an Enhanced Dashboard, and a Single Proposal Submission for projects. Focused on the Superchain Maxis (Optimism, Base, Mode) ecosystems.
- WorldID Track: Integration of user verification via WorldID to eliminate bots and scams, ensuring secure project submissions. Verified funders can participate in funding on Optimism and Base.
- Base Track: Facilitating secure on-chain payments and funding on the Base network using ERC4626A Vault, ensuring trust and transparency in the funding process.
- Celo Track: Premier on-chain funding DApp for projects on Celo, utilizing the ERC4626A Vault. Deployed on the Dango network for testing found an issue & shared via Feedback form.
- Superform Track: Introduction of a new conformant vault system using ERC4626A, combining security with creative flexibility for on-chain funding.
- Pyth Track: Innovative utilization of Pyth contracts and priceFeedIds to enable interoperability across multiple blockchains for secure and reliable funding processes.
- Mode Track: Leading DeFi funding DApp tailored for projects on the Mode network, providing secure and efficient funding solutions.
- Blockscout Track: All contracts are deployed and verified using Blockscout, ensuring transparency and reliability in the smart contract deployment process.
- fund(address[] calldata userAddresses, bytes[] calldata priceUpdate) - Distributes Native among multiple users and mints an ERC4626A token for the funder.
- poolFunds(bytes[] calldata priceUpdate) - Contributes Native to a funding pool, doubling the contribution, and mints an ERC4626A token.
- withdrawFunds() - Allows users to withdraw their allocated funds from the contract.
- addOrUpdateProject(address proposalUserAddress, bytes32 proposalHash) - Adds or updates a project proposal for a specific user address.
- endPool(address[] calldata userAddresses) - Ends the funding pool and distributes the pool funds among specified users.
- setPoolActive(bool _poolActive) - Activates or deactivates the funding pool.
- activatePool() - Specifically activates the funding pool.
- updatePythContract(address _newPythContract) - Updates the Pyth contract address used for price feeds.
- updatePriceFeed(bytes32 _newPriceFeedId) - Updates the price feed ID for Native e.g. CELO/USD data.
- updateUserProposalAddress(address oldUserProposalAddress, address newUserProposalAddress) - Transfers user funds and proposal data to a new address.
- updateUserProposalHash(address userProposalAddress, bytes32 newUserProposalHash) - Updates the proposal hash for a specific user address.
- _baseURI() internal view virtual override returns (string memory) - Returns the base URI for ERC4626A token metadata.
- getUserProposalHash(address proposalUserAddress) public view returns (bytes32) - Retrieves the proposal hash associated with a user address.
- getUserFunds(address proposalUserAddress) public view returns (uint256) - Returns the balance of funds for a specific user address.
- getTotalFundsInUSD(uint256 id) public view returns (uint256) - Gets the total USD value associated with a token ID.
- getIsPoolActive() public view returns (bool) - Checks if the funding pool is currently active.
- getPythContractAddress() public view returns (address) - Returns the current Pyth contract address.
- getPriceFeedId() public view returns (bytes32) - Returns the price feed ID used for Native to USD conversions.
- getScaledAmount(PythStructs.Price memory price) public pure returns (uint256 oneDollarInWei) - Calculates the equivalent of 1 USD in Wei.
- _updatePythPriceFeeds(bytes[] calldata priceUpdate) private returns (uint256 oneDollarInWei) - Updates Pyth price feeds and calculates 1 USD in Wei.
- withdraw(uint256 assets, address receiver, address owner) public virtual override returns (uint256 id) - Disables funder withdrawals by always reverting.
- ERC7535: https://etherscan.io/address/0x6967D416A0Bd5d3F25F124e4B1763e20C4fA92E6#code
- ERC4626A: https://www.rareskills.io/post/erc4626
- ERC721A: https://github.com/chiru-labs/ERC721A
- ERC1155A: https://github.com/superform-xyz/ERC1155A/blob/main/src/ERC1155A.sol
-
Celo Alfajores: 0x74f09cb3c7e2A01865f424FD14F6dc9A14E3e94E
-
Optimism Sepolia: 0x0708325268dF9F66270F1401206434524814508b
-
Base Sepolia: 0xA2aa501b19aff244D90cc15a4Cf739D2725B5729
-
Mode Sepolia: 0xA2aa501b19aff244D90cc15a4Cf739D2725B5729
-
Celo Alfajores: 0x7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411
-
Optimism Sepolia: 0x385f64d993f7b77d8182ed5003d97c60aa3361f3cecfe711544d2d59165e9bdf
-
Base Sepolia: 0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace
-
Mode Sepolia: 0x0386e113cc716a7c6a55decd97b19c90ce080d9f2f5255ac78a0e26889446d1e