aave / aave-v3-periphery Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Low decimal tokens can cause an overflow at the index due the IncentivesController is fixed to work with 18 decimals at the index level.
The fix should allow low decimal tokens to be supported by the Incentives Controller contract.
If vTokenIncentiveController
is zero, the following call will revert.
aave-v3-periphery/contracts/misc/UiIncentiveDataProviderV3.sol
Lines 105 to 111 in 0e7b7d9
Add BORROWABLE_IN_ISOLATION_MASK and userConfig.getIsolationModeState to UiPoolDataProvider getters
Remove the immutable COLLECTOR
variable and pass it to each function.
Same approach as AaveEcosystemReserveController
for Ethereum controller. (link)
Add ability to deploy an Aave market pulling core contracts from their repo
Add the incentives controller to the aave v3 periphery deployment and set the incentives controller in the aTokens and debt tokens with the setIncentivesController() function
Tokens that do not return a value from the approve
function do not work with the paraswap adapters, such as USDT. Currently, GPv2SafeERC20 is being used to wrap ERC20s, but there is no approve
in the library.
Look at using OZ's SafeERC20 which handles no return value, and assumes it is successful if there is no revert.
This will revert when dealing with simpler interest rate strategies (eg. GHO)
aave-v3-periphery/contracts/misc/UiPoolDataProviderV3.sol
Lines 150 to 155 in 0e7b7d9
When a user has collateral and borrow position of the same asset, they aren't able to repay with this adapter since it attempts to swap the asset for itself.
This isn't an issue in V3 because of the repayWithATokens
feature, but in V2, users can be locked into leveraged positions because of this
To keep consistency with the implementation of the configuration events in core V3, the old values should be emitted in the AssetConfigUpdated
event.
In V3 there is no more LendingPool
, but Pool
instead.
Parameters of the IRewardsController,handleAction():
function handleAction(
address user,
uint256 userBalance,
uint256 totalSupply
) external;
Parameters of the RewardsController,handleAction():
function handleAction(
address user,
uint256 totalSupply,
uint256 userBalance
) external override {
_updateData(msg.sender, user, userBalance, totalSupply);
}
The value of the emissionManager
variable is initialized in the constructor. This is not needed due to the fact that this contract is behind a proxy and there is a setter for it.
Add new params to the UiPoolDataProvider so we have all the information necessary for the new v3 logic and calculations on the libs / clients / apis
Rename LendingPool
to Pool
With the execution of the proposal #107, the Aave Ecosystem Reserve contract has been upgraded.
Add the deployment of the paraswap adapters to v3 periphery. In aave-v3-deployments, let the deployer choose whether or not these should be deployed.
Remove any reference to the previous name of hardhat
: buidler
The rewards controller is missing a function to change only the emission per second. This function should take an array of assets as input and also update the asset data of each asset being adjusted.
Add the following periphery contracts:
The RewardsController allows to have multiple rewards distributions at the same time, but there is only 1 emission manager.
We need to add more granular permissioning to the manager role of the emissions.
With the execution of the proposal #71, the Aave collector contract has been upgraded. These contracts needs to be added or updated in the repo.
I noticed this one:
- df["category"] = Series(
- np.array(list("abcdefghij")).take(np.random.randint(0, 10, size=n))
- ).astype("category")
+ df["category"] = (
+ Series(
+ np.array(list("abcdefghij")).take(np.random.randint(0, 10, size=n))
+ ).astype("category")
+ )
which I realize is another example of what you meant by 2.
Originally posted by @JelleZijlstra in psf/black#3368 (comment)
Add the UiIncentivesProvider helper contract to the v3 periphery repo
The incentives controller logic needs to be refactored to reduce gas impact. The following can be applied
userIndex
and accrued rewards together to reduce the storage footprinthandleAction
function and group all the data emitted in one eventA declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.