-
Notifications
You must be signed in to change notification settings - Fork 98
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #311 from Instadapp/base
Base
- Loading branch information
Showing
16 changed files
with
2,261 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
//SPDX-License-Identifier: MIT | ||
pragma solidity ^0.7.0; | ||
|
||
contract Events { | ||
event LogClaimed( | ||
address[] assets, | ||
uint256 amt, | ||
uint256 getId, | ||
uint256 setId | ||
); | ||
|
||
event LogAllClaimed(address[] assets, address[] rewards, uint256[] amts); | ||
} |
14 changes: 14 additions & 0 deletions
14
contracts/base/connectors/aave/aave-v3-rewards/helpers.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
//SPDX-License-Identifier: MIT | ||
pragma solidity ^0.7.0; | ||
|
||
import { DSMath } from "../../../common/math.sol"; | ||
import { Basic } from "../../../common/basic.sol"; | ||
import { AaveIncentivesInterface } from "./interface.sol"; | ||
|
||
abstract contract Helpers is DSMath, Basic { | ||
/** | ||
* @dev Aave v3 Incentives | ||
*/ | ||
AaveIncentivesInterface internal constant incentives = | ||
AaveIncentivesInterface(0xf9cc4F0D883F1a1eb2c253bdb46c254Ca51E1F44); | ||
} |
15 changes: 15 additions & 0 deletions
15
contracts/base/connectors/aave/aave-v3-rewards/interface.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
//SPDX-License-Identifier: MIT | ||
pragma solidity ^0.7.0; | ||
|
||
interface AaveIncentivesInterface { | ||
function claimRewards( | ||
address[] calldata assets, | ||
uint256 amount, | ||
address to, | ||
address reward | ||
) external returns (uint256); | ||
|
||
function claimAllRewards(address[] calldata assets, address to) | ||
external | ||
returns (address[] memory rewardsList, uint256[] memory claimedAmounts); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
//SPDX-License-Identifier: MIT | ||
pragma solidity ^0.7.0; | ||
|
||
/** | ||
* @title Aave v3 Rewards. | ||
* @dev Claim Aave v3 rewards. | ||
*/ | ||
|
||
import { TokenInterface } from "../../../common/interfaces.sol"; | ||
import { Stores } from "../../../common/stores.sol"; | ||
import { Helpers } from "./helpers.sol"; | ||
import { Events } from "./events.sol"; | ||
|
||
abstract contract IncentivesResolver is Helpers, Events { | ||
/** | ||
* @dev Claim Pending Rewards. | ||
* @notice Claim Pending Rewards from Aave v3 incentives contract. | ||
* @param assets The list of assets supplied and borrowed. | ||
* @param amt The amount of reward to claim. (uint(-1) for max) | ||
* @param reward The address of reward token to claim. | ||
* @param getId ID to retrieve amt. | ||
* @param setId ID stores the amount of rewards claimed. | ||
*/ | ||
function claim( | ||
address[] calldata assets, | ||
uint256 amt, | ||
address reward, | ||
uint256 getId, | ||
uint256 setId | ||
) | ||
external | ||
payable | ||
returns (string memory _eventName, bytes memory _eventParam) | ||
{ | ||
uint256 _amt = getUint(getId, amt); | ||
|
||
require(assets.length > 0, "invalid-assets"); | ||
|
||
_amt = incentives.claimRewards(assets, _amt, address(this), reward); | ||
|
||
TokenInterface weth = TokenInterface(wethAddr); | ||
uint256 wethAmount = weth.balanceOf(address(this)); | ||
convertWethToEth(wethAmount > 0, weth, wethAmount); | ||
|
||
setUint(setId, _amt); | ||
|
||
_eventName = "LogClaimed(address[],uint256,uint256,uint256)"; | ||
_eventParam = abi.encode(assets, _amt, getId, setId); | ||
} | ||
|
||
/** | ||
* @dev Claim All Pending Rewards. | ||
* @notice Claim All Pending Rewards from Aave v3 incentives contract. | ||
* @param assets The list of assets supplied and borrowed. | ||
*/ | ||
function claimAll(address[] calldata assets) | ||
external | ||
payable | ||
returns (string memory _eventName, bytes memory _eventParam) | ||
{ | ||
require(assets.length > 0, "invalid-assets"); | ||
uint256[] memory _amts = new uint256[](assets.length); | ||
address[] memory _rewards = new address[](assets.length); | ||
|
||
(_rewards, _amts) = incentives.claimAllRewards(assets, address(this)); | ||
|
||
TokenInterface weth = TokenInterface(wethAddr); | ||
uint256 wethAmount = weth.balanceOf(address(this)); | ||
convertWethToEth(wethAmount > 0, weth, wethAmount); | ||
|
||
_eventName = "LogAllClaimed(address[],address[],uint256[])"; | ||
_eventParam = abi.encode(assets, _rewards, _amts); | ||
} | ||
} | ||
|
||
contract ConnectV3AaveIncentivesBase is IncentivesResolver { | ||
string public constant name = "Aave-V3-Incentives-v1"; | ||
} |
25 changes: 25 additions & 0 deletions
25
contracts/base/connectors/aave/v3-import-permit/events.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
//SPDX-License-Identifier: MIT | ||
pragma solidity ^0.7.0; | ||
pragma experimental ABIEncoderV2; | ||
|
||
contract Events { | ||
event LogAaveV3ImportWithPermit( | ||
address indexed user, | ||
address[] atokens, | ||
string[] supplyIds, | ||
string[] borrowIds, | ||
uint256[] flashLoanFees, | ||
uint256[] supplyAmts, | ||
uint256[] borrowAmts | ||
); | ||
event LogAaveV3ImportWithPermitAndCollateral( | ||
address indexed user, | ||
address[] atokens, | ||
string[] supplyIds, | ||
string[] borrowIds, | ||
uint256[] flashLoanFees, | ||
uint256[] supplyAmts, | ||
uint256[] borrowAmts, | ||
bool[] enableCollateral | ||
); | ||
} |
Oops, something went wrong.