Are there best practices for integrating multiple protocols? For example, if I wanted to create a higher-level interface for a user to be able to lend to any number of money market protocols (e.g., Aave, Compound, Rari, etc.) without them having to directly interact with these dapps, I would write connectors to each lending protocol and present the user with a high-level "lend" function. Given the composability of DeFi, are there solidity contract architectures / patterns for this type of orchestration?
I don't think there are widespread Solidity patterns for this, but you can look for inspiration in the GitHub repositories of other DeFi aggregator protocols. Instadapp comes to mind.
Thanks! Reviewed the repos of DeFi Saver, InstaDapp, Zerion, and Zapper. Any other aggregator or aggregator-like protocols with exemplary code-bases you'd recommend looking at?
Ok, thanks anyway! More generally, are there protocols that stand out as particularly clean and well-constructed (beyond the Compound, Uniswap, and other "blue chips")?