Skip to content

Commit 37bb873

Browse files
authored
test: snapshot improvements (#96)
1 parent 1dab6e5 commit 37bb873

File tree

3 files changed

+29
-75
lines changed

3 files changed

+29
-75
lines changed

package-lock.json

Lines changed: 8 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"prettier-plugin-solidity": "^1.1.1"
2323
},
2424
"dependencies": {
25-
"@bgd-labs/aave-cli": "^1.1.12",
26-
"catapulta-verify": "^1.2.1"
25+
"@bgd-labs/aave-cli": "^1.1.14",
26+
"catapulta-verify": "^1.3.0"
2727
}
2828
}

tests/utils/ProtocolV3TestBase.sol

Lines changed: 19 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ struct ReserveConfig {
105105
}
106106

107107
struct LocalVars {
108-
IPoolDataProvider.TokenData[] reserves;
108+
address[] reserves;
109109
ReserveConfig[] configs;
110110
}
111111

@@ -137,10 +137,10 @@ contract ProtocolV3TestBase is DiffUtils {
137137
bool poolConfigs
138138
) public virtual returns (ReserveConfig[] memory) {
139139
string memory path = string(abi.encodePacked('./reports/', reportName, '.json'));
140-
// overwrite with empty json to later be extended
140+
// overwrite with empty json to later be extended as foundry does not currently support adding new keys
141141
vm.writeFile(
142142
path,
143-
'{ "eModes": {}, "reserves": {}, "strategies": {}, "poolConfiguration": {} }'
143+
'{ "eModes": {}, "reserves": {}, "strategies": {}, "poolConfiguration": {}, "raw": {} }'
144144
);
145145
vm.serializeUint('root', 'chainId', block.chainid);
146146
ReserveConfig[] memory configs = _getReservesConfigs(pool);
@@ -280,21 +280,8 @@ contract ProtocolV3TestBase is DiffUtils {
280280
vm.serializeAddress(key, 'underlying', config.underlying);
281281
vm.serializeAddress(key, 'aToken', config.aToken);
282282
vm.serializeAddress(key, 'variableDebtToken', config.variableDebtToken);
283-
vm.serializeAddress(
284-
key,
285-
'aTokenImpl',
286-
ProxyHelpers.getInitializableAdminUpgradeabilityProxyImplementation(vm, config.aToken)
287-
);
288283
vm.serializeString(key, 'aTokenSymbol', IERC20Detailed(config.aToken).symbol());
289284
vm.serializeString(key, 'aTokenName', IERC20Detailed(config.aToken).name());
290-
vm.serializeAddress(
291-
key,
292-
'variableDebtTokenImpl',
293-
ProxyHelpers.getInitializableAdminUpgradeabilityProxyImplementation(
294-
vm,
295-
config.variableDebtToken
296-
)
297-
);
298285
vm.serializeString(
299286
key,
300287
'variableDebtTokenSymbol',
@@ -361,76 +348,44 @@ contract ProtocolV3TestBase is DiffUtils {
361348
// pool configurator
362349
IPoolConfigurator configurator = IPoolConfigurator(addressesProvider.getPoolConfigurator());
363350
vm.serializeAddress(poolConfigKey, 'poolConfigurator', address(configurator));
364-
vm.serializeAddress(
365-
poolConfigKey,
366-
'poolConfiguratorImpl',
367-
ProxyHelpers.getInitializableAdminUpgradeabilityProxyImplementation(vm, address(configurator))
368-
);
369351

370352
// PoolDataProvider
371353
IPoolDataProvider pdp = IPoolDataProvider(addressesProvider.getPoolDataProvider());
372354
vm.serializeAddress(poolConfigKey, 'protocolDataProvider', address(pdp));
373355

374356
// pool
375-
vm.serializeAddress(
376-
poolConfigKey,
377-
'poolImpl',
378-
ProxyHelpers.getInitializableAdminUpgradeabilityProxyImplementation(vm, address(pool))
379-
);
380357
string memory content = vm.serializeAddress(poolConfigKey, 'pool', address(pool));
381358

382359
string memory output = vm.serializeString('root', 'poolConfig', content);
383360
vm.writeJson(output, path);
384361
}
385362

386363
function _getReservesConfigs(IPool pool) internal view virtual returns (ReserveConfig[] memory) {
387-
IPoolAddressesProvider addressesProvider = IPoolAddressesProvider(pool.ADDRESSES_PROVIDER());
388-
IPoolDataProvider poolDataProvider = IPoolDataProvider(addressesProvider.getPoolDataProvider());
389364
LocalVars memory vars;
390365

391-
vars.reserves = poolDataProvider.getAllReservesTokens();
366+
vars.reserves = pool.getReservesList();
392367

393368
vars.configs = new ReserveConfig[](vars.reserves.length);
394369

395370
for (uint256 i = 0; i < vars.reserves.length; i++) {
396-
vars.configs[i] = _getStructReserveConfig(pool, poolDataProvider, vars.reserves[i]);
371+
vars.configs[i] = _getStructReserveConfig(pool, vars.reserves[i]);
397372
}
398373

399374
return vars.configs;
400375
}
401376

402-
function _getStructReserveTokens(
403-
IPoolDataProvider pdp,
404-
address underlyingAddress
405-
) internal view virtual returns (ReserveTokens memory) {
406-
ReserveTokens memory reserveTokens;
407-
(reserveTokens.aToken, , reserveTokens.variableDebtToken) = pdp.getReserveTokensAddresses(
408-
underlyingAddress
409-
);
410-
411-
return reserveTokens;
412-
}
413-
414377
function _getStructReserveConfig(
415378
IPool pool,
416-
IPoolDataProvider poolDataProvider,
417-
IPoolDataProvider.TokenData memory reserve
379+
address reserve
418380
) internal view virtual returns (ReserveConfig memory) {
419381
ReserveConfig memory localConfig;
420-
DataTypes.ReserveConfigurationMap memory configuration = pool.getConfiguration(
421-
reserve.tokenAddress
422-
);
382+
DataTypes.ReserveConfigurationMap memory configuration = pool.getConfiguration(reserve);
383+
DataTypes.ReserveDataLegacy memory reserveData = pool.getReserveData(reserve);
423384

424-
localConfig.underlying = reserve.tokenAddress;
425-
ReserveTokens memory reserveTokens = _getStructReserveTokens(
426-
poolDataProvider,
427-
reserve.tokenAddress
428-
);
429-
localConfig.aToken = reserveTokens.aToken;
430-
localConfig.variableDebtToken = reserveTokens.variableDebtToken;
431-
localConfig.interestRateStrategy = pool
432-
.getReserveData(reserve.tokenAddress)
433-
.interestRateStrategyAddress;
385+
localConfig.underlying = reserve;
386+
localConfig.aToken = reserveData.aTokenAddress;
387+
localConfig.variableDebtToken = reserveData.variableDebtTokenAddress;
388+
localConfig.interestRateStrategy = reserveData.interestRateStrategyAddress;
434389
(
435390
localConfig.ltv,
436391
localConfig.liquidationThreshold,
@@ -444,7 +399,11 @@ contract ProtocolV3TestBase is DiffUtils {
444399
localConfig.borrowingEnabled,
445400
localConfig.isPaused
446401
) = configuration.getFlags();
447-
localConfig.symbol = reserve.symbol;
402+
if (reserve == 0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2) {
403+
localConfig.symbol = 'MKR';
404+
} else {
405+
localConfig.symbol = IERC20Detailed(reserve).symbol();
406+
}
448407
localConfig.usageAsCollateralEnabled = localConfig.liquidationThreshold != 0;
449408
localConfig.isSiloed = configuration.getSiloedBorrowing();
450409
(localConfig.borrowCap, localConfig.supplyCap) = configuration.getCaps();
@@ -458,11 +417,9 @@ contract ProtocolV3TestBase is DiffUtils {
458417
localConfig.virtualAccActive = configuration.getIsVirtualAccActive();
459418

460419
if (localConfig.virtualAccActive) {
461-
localConfig.virtualBalance = pool.getVirtualUnderlyingBalance(reserve.tokenAddress);
420+
localConfig.virtualBalance = pool.getVirtualUnderlyingBalance(reserve);
462421
}
463-
localConfig.aTokenUnderlyingBalance = IERC20Detailed(reserve.tokenAddress).balanceOf(
464-
localConfig.aToken
465-
);
422+
localConfig.aTokenUnderlyingBalance = IERC20Detailed(reserve).balanceOf(localConfig.aToken);
466423

467424
return localConfig;
468425
}

0 commit comments

Comments
 (0)