-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
Description
Description
We are looking to integrate the Venus Protocol into our platform for the Ethereum network. Venus is a decentralized money market and synthetic stablecoin protocol that allows users to lend and borrow assets, similar to Compound. Extending support to Ethereum will enable users to interact with Venus directly from our platform, enhancing their DeFi experience.
Objectives
- Protocol Integration: Seamlessly integrate Venus Protocol functionalities into our existing framework.
- Multi-Chain Support: Ensure that the implementation aligns with our multi-chain architecture, facilitating future integrations.
- User Experience: Provide users with the ability to stake, borrow, and lend assets through Venus on Ethereum.
Tasks
- Update venus.go Implementation
- Extend the existing VenusOperation struct to support Ethereum-specific configurations.
- Ensure adherence to the Protocol interface.
- Implement Calldata Generation
- Develop the GenerateCalldata method to handle Venus-specific actions such as Supply, Withdraw (currently we don't support Borrow, and Repay).
- Ensure correct encoding of function calls as per Venus Ethereum smart contracts.
- Parameter Validation
- Enhance the Validate method to include checks for Ethereum-specific parameters.
- Validate asset addresses, amounts, and user permissions as required by Venus.
- Supported Assets Management
- Update the GetSupportedAssets method to include Ethereum-based assets supported by Venus.
- Ensure accurate retrieval of asset information from Venus contracts.
- Balance Retrieval
- Implement the GetBalance method to fetch user balances of supplied and borrowed assets.
- Interact with Venus's ERC-20 contracts to obtain accurate balance data.
- Protocol Configuration
- Update the GetProtocolConfig method to include Ethereum-specific settings such as RPC URLs, contract addresses, and ABI definitions.
- Ensure compatibility with Ethereum mainnet and relevant testnets.
- Registry Registration
- Modify registry.go to register the Ethereum implementation of Venus Protocol.
- Ensure that the protocol is correctly initialized and associated with the Ethereum network in the registry.
- Unit Testing
- Develop comprehensive unit tests in venus_test.go to cover all implemented functionalities.
- Test edge cases and ensure robustness of the integration.
- Documentation
- Update code comments to reflect Ethereum-specific logic and configurations.
- Revise relevant documentation or READMEs to include details about Venus integration on Ethereum.
Resources
Contribution Instructions
- Fork the Repository: Fork our GitHub repository to your account.
- Create a Branch: Create a new branch for your implementation, e.g., feature/implement-venus-ethereum.
- Implement the Protocol: Follow the tasks outlined in this issue to extend the existing venus.go file.
- Write Tests: Develop unit tests to ensure the new Ethereum functionalities work as expected.
- Update Documentation: Ensure all changes are well-documented, including code comments and README updates.
- Submit a Pull Request: Once completed, submit a pull request to the main branch for review.
- Add Hacktoberfest Label: Mention Hacktoberfest in your PR to be counted towards your contributions.
- Respond to Feedback: Address any feedback or requested changes promptly to facilitate smooth integration.
Questions?
If you have any questions or need further clarifications, feel free to:
- Open a Discussion: Start a discussion in the repository to engage with maintainers and other contributors.
- Comment on the Issue: Leave a comment on this issue for specific queries.
Reactions are currently unavailable