Skip to content

Commit

Permalink
feat: upgrade listing script (#635)
Browse files Browse the repository at this point in the history
  • Loading branch information
sakulstra authored Feb 28, 2025
1 parent ef27b0e commit 2603c71
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 49 deletions.
28 changes: 12 additions & 16 deletions generator/features/__snapshots__/assetListing.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ contract AaveV3Ethereum_Test_20231023 is AaveV3PayloadEthereum {
function _postExecute() internal override {
IERC20(PSP).forceApprove(address(AaveV3Ethereum.POOL), PSP_SEED_AMOUNT);
AaveV3Ethereum.POOL.supply(PSP, PSP_SEED_AMOUNT, address(AaveV3Ethereum.COLLECTOR), 0);
AaveV3Ethereum.POOL.supply(PSP, PSP_SEED_AMOUNT, AaveV3Ethereum.DUST_BIN, 0);
}
function newListings() public pure override returns (IAaveV3ConfigEngine.Listing[] memory) {
Expand Down Expand Up @@ -194,12 +194,10 @@ contract AaveV3Ethereum_Test_20231023_Test is ProtocolV3TestBase {
defaultTest('AaveV3Ethereum_Test_20231023', AaveV3Ethereum.POOL, address(proposal));
}
function test_collectorHasPSPFunds() public {
function test_dustBinHasPSPFunds() public {
GovV3Helpers.executePayload(vm, address(proposal));
(address aTokenAddress, , ) = AaveV3Ethereum
.AAVE_PROTOCOL_DATA_PROVIDER
.getReserveTokensAddresses(proposal.PSP());
assertGe(IERC20(aTokenAddress).balanceOf(address(AaveV3Ethereum.COLLECTOR)), 10 ** 18);
address aTokenAddress = AaveV3Ethereum.POOL.getReserveAToken(proposal.PSP());
assertGe(IERC20(aTokenAddress).balanceOf(address(AaveV3Ethereum.DUST_BIN)), 10 ** 18);
}
}
",
Expand Down Expand Up @@ -395,7 +393,7 @@ contract AaveV3Ethereum_Test_20231023 is AaveV3PayloadEthereum {
function _postExecute() internal override {
IERC20(PSP).forceApprove(address(AaveV3Ethereum.POOL), PSP_SEED_AMOUNT);
AaveV3Ethereum.POOL.supply(PSP, PSP_SEED_AMOUNT, address(AaveV3Ethereum.COLLECTOR), 0);
AaveV3Ethereum.POOL.supply(PSP, PSP_SEED_AMOUNT, AaveV3Ethereum.DUST_BIN, 0);
}
function newListings() public pure override returns (IAaveV3ConfigEngine.Listing[] memory) {
Expand Down Expand Up @@ -460,12 +458,10 @@ contract AaveV3Ethereum_Test_20231023_Test is ProtocolV3TestBase {
defaultTest('AaveV3Ethereum_Test_20231023', AaveV3Ethereum.POOL, address(proposal));
}
function test_collectorHasPSPFunds() public {
function test_dustBinHasPSPFunds() public {
GovV3Helpers.executePayload(vm, address(proposal));
(address aTokenAddress, , ) = AaveV3Ethereum
.AAVE_PROTOCOL_DATA_PROVIDER
.getReserveTokensAddresses(proposal.PSP());
assertGe(IERC20(aTokenAddress).balanceOf(address(AaveV3Ethereum.COLLECTOR)), 10 ** 18);
address aTokenAddress = AaveV3Ethereum.POOL.getReserveAToken(proposal.PSP());
assertGe(IERC20(aTokenAddress).balanceOf(address(AaveV3Ethereum.DUST_BIN)), 10 ** 18);
}
}
",
Expand Down Expand Up @@ -570,7 +566,7 @@ uint256 public constant PSP_SEED_AMOUNT = 1e18;
],
"execute": [
"IERC20(PSP).forceApprove(address(AaveV3Ethereum.POOL), PSP_SEED_AMOUNT);
AaveV3Ethereum.POOL.supply(PSP, PSP_SEED_AMOUNT, address(AaveV3Ethereum.COLLECTOR), 0);
AaveV3Ethereum.POOL.supply(PSP, PSP_SEED_AMOUNT, AaveV3Ethereum.DUST_BIN, 0);
",
],
"fn": [
Expand Down Expand Up @@ -607,10 +603,10 @@ AaveV3Ethereum.POOL.supply(PSP, PSP_SEED_AMOUNT, address(AaveV3Ethereum.COLLECTO
},
"test": {
"fn": [
"function test_collectorHasPSPFunds() public {
"function test_dustBinHasPSPFunds() public {
GovV3Helpers.executePayload(vm,address(proposal));
(address aTokenAddress, , ) = AaveV3Ethereum.AAVE_PROTOCOL_DATA_PROVIDER.getReserveTokensAddresses(proposal.PSP());
assertGe(IERC20(aTokenAddress).balanceOf(address(AaveV3Ethereum.COLLECTOR)), 10 ** 18);
address aTokenAddress = AaveV3Ethereum.POOL.getReserveAToken(proposal.PSP());
assertGe(IERC20(aTokenAddress).balanceOf(address(AaveV3Ethereum.DUST_BIN)), 10 ** 18);
}
",
],
Expand Down
28 changes: 14 additions & 14 deletions generator/features/assetListing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,11 @@ export const assetListing: FeatureModule<Listing[]> = {
}),
execute: cfg.map((cfg) => {
let listingExe = `IERC20(${cfg.assetSymbol}).forceApprove(address(${pool}.POOL), ${cfg.assetSymbol}_SEED_AMOUNT);\n`;
listingExe += `${pool}.POOL.supply(${cfg.assetSymbol}, ${cfg.assetSymbol}_SEED_AMOUNT, address(${pool}.COLLECTOR), 0);\n`;
listingExe += `${pool}.POOL.supply(${cfg.assetSymbol}, ${cfg.assetSymbol}_SEED_AMOUNT, ${pool}.DUST_BIN, 0);\n`;
if (isAddress(cfg.admin)) {
listingExe += `\n(address a${cfg.assetSymbol}, , ) = ${pool}.AAVE_PROTOCOL_DATA_PROVIDER.getReserveTokensAddresses(${cfg.assetSymbol});\n`;
listingExe += `IEmissionManager(${pool}.EMISSION_MANAGER).setEmissionAdmin(${cfg.assetSymbol}, ${cfg.assetSymbol}_ADMIN);\n`;
listingExe += `IEmissionManager(${pool}.EMISSION_MANAGER).setEmissionAdmin(a${cfg.assetSymbol}, ${cfg.assetSymbol}_ADMIN);\n`;
listingExe += `\naddress a${cfg.assetSymbol} = ${pool}.POOL.getReserveAToken(${cfg.assetSymbol});\n`;
listingExe += `IEmissionManager(${pool}.EMISSION_MANAGER).setEmissionAdmin(${cfg.assetSymbol}, ${cfg.assetSymbol}_LM_ADMIN);\n`;
listingExe += `IEmissionManager(${pool}.EMISSION_MANAGER).setEmissionAdmin(a${cfg.assetSymbol}, ${cfg.assetSymbol}_LM_ADMIN);\n`;
}
return listingExe;
}),
Expand All @@ -142,17 +142,17 @@ export const assetListing: FeatureModule<Listing[]> = {
},
test: {
fn: cfg.map((cfg) => {
let listingTest = `function test_collectorHas${cfg.assetSymbol}Funds() public {
let listingTest = `function test_dustBinHas${cfg.assetSymbol}Funds() public {
${TEST_EXECUTE_PROPOSAL}
(address aTokenAddress, , ) = ${pool}.AAVE_PROTOCOL_DATA_PROVIDER.getReserveTokensAddresses(proposal.${cfg.assetSymbol}());
assertGe(IERC20(aTokenAddress).balanceOf(address(${pool}.COLLECTOR)), 10 ** ${cfg.decimals});
address aTokenAddress = ${pool}.POOL.getReserveAToken(proposal.${cfg.assetSymbol}());
assertGe(IERC20(aTokenAddress).balanceOf(address(${pool}.DUST_BIN)), 10 ** ${cfg.decimals});
}\n`;
if (isAddress(cfg.admin)) {
listingTest += `\nfunction test_${cfg.assetSymbol}Admin() public {
${TEST_EXECUTE_PROPOSAL}
(address a${cfg.assetSymbol}, , ) = ${pool}.AAVE_PROTOCOL_DATA_PROVIDER.getReserveTokensAddresses(proposal.${cfg.assetSymbol}());
assertEq(IEmissionManager(${pool}.EMISSION_MANAGER).getEmissionAdmin(proposal.${cfg.assetSymbol}()), proposal.${cfg.assetSymbol}_ADMIN());
assertEq(IEmissionManager(${pool}.EMISSION_MANAGER).getEmissionAdmin(a${cfg.assetSymbol}), proposal.${cfg.assetSymbol}_ADMIN());
address a${cfg.assetSymbol} = ${pool}.POOL.getReserveAToken(proposal.${cfg.assetSymbol}());
assertEq(IEmissionManager(${pool}.EMISSION_MANAGER).getEmissionAdmin(proposal.${cfg.assetSymbol}()), proposal.${cfg.assetSymbol}_LM_ADMIN());
assertEq(IEmissionManager(${pool}.EMISSION_MANAGER).getEmissionAdmin(a${cfg.assetSymbol}), proposal.${cfg.assetSymbol}_LM_ADMIN());
}\n`;
}
return listingTest;
Expand Down Expand Up @@ -235,7 +235,7 @@ export const assetListingCustom: FeatureModule<ListingWithCustomImpl[]> = {
execute: cfg.map(
(cfg) =>
`IERC20(${cfg.base.assetSymbol}).forceApprove(address(${pool}.POOL), 10 ** ${cfg.base.decimals});
${pool}.POOL.supply(${cfg.base.assetSymbol}, 10 ** ${cfg.base.decimals}, ${pool}.COLLECTOR, 0);`,
${pool}.POOL.supply(${cfg.base.assetSymbol}, 10 ** ${cfg.base.decimals}, ${pool}.DUST_BIN, 0);`,
),
fn: [
`function newListingsCustom() public pure override returns (IAaveV3ConfigEngine.ListingWithCustomImpl[] memory) {
Expand Down Expand Up @@ -264,10 +264,10 @@ export const assetListingCustom: FeatureModule<ListingWithCustomImpl[]> = {
},
test: {
fn: cfg.map(
(cfg) => `function test_collectorHas${cfg.base.assetSymbol}Funds() public {
(cfg) => `function test_dustBinHas${cfg.base.assetSymbol}Funds() public {
${TEST_EXECUTE_PROPOSAL}
(address aTokenAddress, , ) = ${pool}.AAVE_PROTOCOL_DATA_PROVIDER.getReserveTokensAddresses(proposal.${cfg.base.assetSymbol}());
assertGte(IERC20(aTokenAddress).balanceOf(${pool}.COLLECTOR), 10 ** ${cfg.base.decimals});
address aTokenAddress = ${pool}.POOL.getReserveAToken(proposal.${cfg.base.assetSymbol}());
assertGte(IERC20(aTokenAddress).balanceOf(${pool}.DUST_BIN), 10 ** ${cfg.base.decimals});
}`,
),
},
Expand Down
2 changes: 1 addition & 1 deletion lib/aave-helpers
33 changes: 18 additions & 15 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@
"vitest": "^2.1.5"
},
"dependencies": {
"@bgd-labs/aave-address-book": "^4.11.0",
"@bgd-labs/aave-cli": "^1.1.19",
"@bgd-labs/aave-address-book": "^4.14.0",
"@bgd-labs/aave-cli": "^1.2.3",
"@bgd-labs/js-utils": "^1.4.7",
"@inquirer/prompts": "^7.1.0",
"@inquirer/testing": "^2.1.37",
"catapulta-verify": "^1.2.1",
"catapulta-verify": "^1.3.0",
"commander": "^12.1.0",
"husky": "^8.0.3",
"lint-staged": "^15.2.10",
Expand Down

0 comments on commit 2603c71

Please sign in to comment.