Skip to content

Commit

Permalink
Aave v2 cap adapters for stables
Browse files Browse the repository at this point in the history
  • Loading branch information
rustboyar committed Apr 11, 2024
1 parent 86ebd0a commit a79048e
Show file tree
Hide file tree
Showing 14 changed files with 1,326 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ deploy-scroll :; forge script scripts/DeployScroll.s.sol:DeployScroll --rpc-url

deploy-weeth-mainnet :; forge script scripts/DeployEthereumWeEth.s.sol:DeployWeEthEthereum --rpc-url mainnet $(common-flags)

deploy-mainnet-v2 :; forge script scripts/AaveV2/DeployEthereum.s.sol:DeployEthereum --rpc-url mainnet $(common-flags)
deploy-avalanche-v2 :; forge script scripts/AaveV2/DeployAvalanche.s.sol:DeployAvalanche --rpc-url avalanche $(common-flags)
deploy-polygon-v2 :; forge script scripts/AaveV2/DeployPolygon.s.sol:DeployPolygon --rpc-url polygon $(common-flags)


# Utilities
download :; cast etherscan-source --chain ${chain} -d src/etherscan/${chain}_${address} ${address}
Expand Down
77 changes: 77 additions & 0 deletions scripts/AaveV2/DeployAvalanche.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.0;
import {GovV3Helpers} from 'aave-helpers/GovV3Helpers.sol';
import {AvalancheScript} from 'aave-helpers/ScriptUtils.sol';
import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol';
import {AaveV2AvalancheAssets} from 'aave-address-book/AaveV2Avalanche.sol';

import {PriceCapAdapterStable} from '../../src/contracts/PriceCapAdapterStable.sol';
import {AaveV2AvalanchePayload} from '../../src/contracts/payloads/AaveV2/AaveV2AvalanchePayload.sol';

library CapAdaptersCodeAvalanche {
function USDTCappedAdapterCode() internal pure returns (bytes memory) {
return
abi.encodePacked(
type(PriceCapAdapterStable).creationCode,
abi.encode(
AaveV3Avalanche.ACL_MANAGER,
AaveV2AvalancheAssets.USDTe_ORACLE,
'Capped USDT / USD',
int256(1.04 * 1e8)
)
);
}

function USDCCappedAdapterCode() internal pure returns (bytes memory) {
return
abi.encodePacked(
type(PriceCapAdapterStable).creationCode,
abi.encode(
AaveV3Avalanche.ACL_MANAGER,
AaveV2AvalancheAssets.USDCe_ORACLE,
'Capped USDC / USD',
int256(1.04 * 1e8)
)
);
}

function DAICappedAdapterCode() internal pure returns (bytes memory) {
return
abi.encodePacked(
type(PriceCapAdapterStable).creationCode,
abi.encode(
AaveV3Avalanche.ACL_MANAGER,
AaveV2AvalancheAssets.DAIe_ORACLE,
'Capped DAI / USD',
int256(1.04 * 1e8)
)
);
}
}

contract DeployAvalancheAdaptersAndPayload {
function _deploy() internal returns (address) {
AaveV2AvalanchePayload.Adapters memory adapters;

adapters.usdtAdapter = GovV3Helpers.deployDeterministic(
CapAdaptersCodeAvalanche.USDTCappedAdapterCode()
);
adapters.usdcAdapter = GovV3Helpers.deployDeterministic(
CapAdaptersCodeAvalanche.USDCCappedAdapterCode()
);
adapters.daieAdapter = GovV3Helpers.deployDeterministic(
CapAdaptersCodeAvalanche.DAICappedAdapterCode()
);

return
GovV3Helpers.deployDeterministic(
abi.encodePacked(type(AaveV2AvalanchePayload).creationCode, abi.encode(adapters))
);
}
}

contract DeployAvalanche is AvalancheScript, DeployAvalancheAdaptersAndPayload {
function run() external broadcast {
_deploy();
}
}
Loading

0 comments on commit a79048e

Please sign in to comment.