Skip to content
Closed
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
6fb2e30
feat:GHO Launch Avalanche
CanonicalJP May 30, 2025
0d31edb
fix: correct risk parameters
CanonicalJP Jun 4, 2025
2a531c0
feat: added base and arbitrum support
CanonicalJP Jun 4, 2025
9a942ef
chore: comments and others
CanonicalJP Jun 4, 2025
8518cc6
feat: added lanes for base and arbitrum
CanonicalJP Jun 4, 2025
45468d7
chore: removed commented lines
CanonicalJP Jun 4, 2025
8687024
feat: updated all test to use actual TokenAdminRegistry delegation pa…
CanonicalJP Jun 9, 2025
ac72fab
chore: renamed GhoLaunchConstants to GHOAvalancheLaunch and standardi…
CanonicalJP Jun 10, 2025
e2beec3
chore: modified some more constants to match standard
CanonicalJP Jun 10, 2025
7f8fd8f
feat: added Gnosis support
CanonicalJP Jun 11, 2025
d630388
chore: made refactor, optimizations, and final review
CanonicalJP Jun 11, 2025
492c76e
fixed: solved dependencies issues
CanonicalJP Jun 12, 2025
3401dec
fix: solved evm version issue
CanonicalJP Jun 12, 2025
3ce535f
feat: updated risk parameters
CanonicalJP Jun 13, 2025
428b02d
fix: reverted .toml changes
CanonicalJP Jun 13, 2025
ef8ac1c
fix: updated test profile in test files
CanonicalJP Jun 13, 2025
e01e44b
fix: updated ccip rates
CanonicalJP Jun 13, 2025
355d4de
chore: removed outdated comments
CanonicalJP Jun 13, 2025
b99f54d
chore: style updated to .md
CanonicalJP Jun 13, 2025
8918d88
fix: update borrow cap and addressed other pr comments
CanonicalJP Jun 17, 2025
800d584
feat: removed Avax->Gnosis activation
CanonicalJP Jun 18, 2025
db42ab2
fix: addressed pr comments
CanonicalJP Jun 18, 2025
c3fce7f
fix: added urls to addresses
CanonicalJP Jun 18, 2025
7f8c11d
fix: added implementation/test links in .md
CanonicalJP Jun 19, 2025
44f9622
fix: updated .md to reflect actual rate value
CanonicalJP Jun 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol';
import {IUpgradeableBurnMintTokenPool_1_5_1} from 'src/interfaces/ccip/tokenPool/IUpgradeableBurnMintTokenPool.sol';
import {IRateLimiter} from 'src/interfaces/ccip/IRateLimiter.sol';
import {GhoArbitrum} from 'aave-address-book/GhoArbitrum.sol';
import {CCIPUtils} from './utils/CCIPUtils.sol';
import {GHOLaunchConstants} from './utils/GHOLaunchConstants.sol';

/**
* @title GHO Avalanche Listing
* @author Aave Labs
* - Discussion: https://governance.aave.com/t/arfc-launch-gho-on-avalanche-set-aci-as-emissions-manager-for-rewards
* - Snapshot: https://snapshot.box/#/s:aavedao.eth/proposal/0x2aed7eb8b03cb3f961cbf790bf2e2e1e449f841a4ad8bdbcdd223bb6ac69e719
*/
contract AaveV3Arbitrum_GHOAvalancheLaunch_20250519 is IProposalGenericExecutor {
uint64 public constant AVALANCHE_CHAIN_SELECTOR = CCIPUtils.AVALANCHE_CHAIN_SELECTOR;

IUpgradeableBurnMintTokenPool_1_5_1 public constant TOKEN_POOL =
IUpgradeableBurnMintTokenPool_1_5_1(GhoArbitrum.GHO_CCIP_TOKEN_POOL);

address public constant REMOTE_TOKEN_POOL_AVALANCHE = GHOLaunchConstants.AVALANCHE_TOKEN_POOL;
address public constant REMOTE_GHO_TOKEN_AVALANCHE = GHOLaunchConstants.AVALANCHE_TOKEN;

uint128 public constant CCIP_RATE_LIMIT_CAPACITY = GHOLaunchConstants.CCIP_RATE_LIMIT_CAPACITY;
uint128 public constant CCIP_RATE_LIMIT_REFILL_RATE =
GHOLaunchConstants.CCIP_RATE_LIMIT_REFILL_RATE;

function execute() external {
IRateLimiter.Config memory rateLimiterConfig = IRateLimiter.Config({
isEnabled: true,
capacity: CCIP_RATE_LIMIT_CAPACITY,
rate: CCIP_RATE_LIMIT_REFILL_RATE
});

IUpgradeableBurnMintTokenPool_1_5_1.ChainUpdate[]
memory chainsToAdd = new IUpgradeableBurnMintTokenPool_1_5_1.ChainUpdate[](1);
uint64[] memory chainsToRemove = new uint64[](0);

bytes[] memory remotePoolAddresses = new bytes[](1);
remotePoolAddresses[0] = abi.encode(REMOTE_TOKEN_POOL_AVALANCHE);

chainsToAdd[0] = IUpgradeableBurnMintTokenPool_1_5_1.ChainUpdate({
remoteChainSelector: AVALANCHE_CHAIN_SELECTOR,
remotePoolAddresses: remotePoolAddresses,
remoteTokenAddress: abi.encode(REMOTE_GHO_TOKEN_AVALANCHE),
outboundRateLimiterConfig: rateLimiterConfig,
inboundRateLimiterConfig: rateLimiterConfig
});

TOKEN_POOL.applyChainUpdates({
remoteChainSelectorsToRemove: chainsToRemove,
chainsToAdd: chainsToAdd
});
}
}
Loading
Loading