Replies: 1 comment 1 reply
-
I think that maintaining the UiPoolDataProvider and UiIncentiveDataProvider contracts (or equivalent alternatives) in the address book is important to provide integrators with ability to integrate Aave data into applications requiring aggregated market and user data with the least amount of code. These view contracts are the best option that currently exists for developers to query Aave data in the most code-efficient manner. Breaking ChangesThe impact of breaking changes is not unique to UiPoolDataProvider or UiIncentiveDataProvider. Whether a contract is upgraded in place (like ProtocolDataProvider) or updated through separate deployments, a breaking ABI change will disrupt integrations either way. I don't have a strong opinion on the best way to maintain Ui helpers for breaking changes moving forward. On one hand, I think that upgrading contracts in place is generally better, but I also think that managing view contracts with the complexities and edge cases of Ui helpers could cause unnecessary burden for Aave Governance. One change that could remove some of this burden from the address book is removing Ui helpers from the Address Book ABI list. Since the ABIs are version-specific, it makes more sense to document them in that manner rather than having a universal ABI that only works on specific markets. DocumentationThe challenges with documentation are mostly a carryover from breaking changes. In terms of developer experience, Aave Labs maintains One area that the documentation can definitely be improved is providing references for the ABIS / Aave Utilities SDK methods that are currently supported for each market. OverfetchingI don't think is a significant issue. The primary complaint that I see from integrators in the Aave Discord is often the opposite—that |
Beta Was this translation helpful? Give feedback.
-
The two contracts
UiPoolDataProviders
andUiIncentiveDataProviders
are inherently problematic for integrators.Most importantly:
After the 3.2 upgrade we looked at a lot of integrator code and the reality is that they don't like the providers because of the issues mentioned before, but also because:
Lack of documentation
Upgrades happen randomly without announcing (e.g. 3.1 broke at some point because virtualBalance was added)
The code itself is the least documented thing on the aave-origin repo with not a single test touching it.
Over-fetching
So refetching these things on every call is wasteful and part of the reason why when benchmarking these calls are extremely slow.
unbacked
,isolation/silo
orir
parameters. The only thing they might want is the rates of the two assets -> the current utils and providers force them to fetch & calculate everything though.I think as long as there is no alternative to e.g. only fetch & calculate the current rate, providers need to stay part of the repository. Longer term though i think it makes sense to provide some finer grained utilities built on top of the native procoldataprovider. In case of 3.2 upgrade, there was no reason for any app to break due to stable debt removal - noone used stable rate already.
Bottom line is that the current state is not very good for users/consumers due to the reasons mentioned above.
More fine granular integration docs should be provided somewhere and rely on non breaking core components like the pdp - no custom contract that breaks on every upgrade.
Beta Was this translation helpful? Give feedback.
All reactions