From 9647805de66b9e6f35eff90c13bbb3129ad21104 Mon Sep 17 00:00:00 2001 From: Harsh Pandey Date: Sat, 23 Nov 2024 21:10:55 +0530 Subject: [PATCH 01/11] feat: avax fuji and base sepolia testnets --- scripts/configs/networks/avalanche.ts | 5 +- scripts/configs/networks/base.ts | 5 +- scripts/configs/pools/avalanche.ts | 16 +- scripts/configs/pools/base.ts | 19 ++- scripts/configs/types.ts | 1 + src/AaveV3BaseSepoliaLido.sol | 216 +++++++++++++----------- src/AaveV3Fuji.sol | 234 +++++++++++++++----------- src/MiscBaseSepolia.sol | 11 +- src/MiscFuji.sol | 11 +- src/ts/AaveV3BaseSepoliaLido.ts | 148 ++++++++-------- src/ts/AaveV3Fuji.ts | 146 +++++++++------- src/ts/MiscBaseSepolia.ts | 11 +- src/ts/MiscFuji.ts | 11 +- 13 files changed, 470 insertions(+), 364 deletions(-) diff --git a/scripts/configs/networks/avalanche.ts b/scripts/configs/networks/avalanche.ts index f3ac0779..07a492b8 100644 --- a/scripts/configs/networks/avalanche.ts +++ b/scripts/configs/networks/avalanche.ts @@ -20,7 +20,8 @@ export const avalancheFujiAddresses: NetworkAddresses = { chainId: ChainId.fuji, addresses: { GHO_TOKEN: '0x9c04928Cc678776eC1C1C0E46ecC03a5F47A7723', - TRANSPARENT_PROXY_FACTORY: '0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731', - PROXY_ADMIN: '0x440F1b750Cbc7DDd2Bd9Af279Afe422EaeE58b41', + TRANSPARENT_PROXY_FACTORY: '0x421117D7319E96d831972b3F7e970bbfe29C4F21', + PROXY_ADMIN: '0xd6a6339c6C1B5a8792afA6e0E80b1908b8579f51', + FAUCET: '0x48b5bd96e36a9c0d0ea3f07d3b3da34bbd514fb3' }, }; diff --git a/scripts/configs/networks/base.ts b/scripts/configs/networks/base.ts index 1b04bd4f..4382618c 100644 --- a/scripts/configs/networks/base.ts +++ b/scripts/configs/networks/base.ts @@ -26,8 +26,9 @@ export const baseSepoliaAddresses: NetworkAddresses = { name: 'BaseSepolia', chainId: ChainId.base_sepolia, addresses: { - TRANSPARENT_PROXY_FACTORY: '0xd1B3E25fD7C8AE7CADDC6F71b461b79CD4ddcFa3', - PROXY_ADMIN: '0xbeCE3Cb857644b44Bb44084f9AfE784473ADb17B', + TRANSPARENT_PROXY_FACTORY: '0x95F99D1695c866FEb16657cCA8E91437a50D2a5e', + PROXY_ADMIN: '0x6CBc6928Ad317F60E8880C43479850F2190F2a0B', GHO_TOKEN: '0x7CFa3f3d1cded0Da930881c609D4Dbf0012c14Bb', + FAUCET: '0xd9145b5f45ad4519c7accd6e0a4a82e83bb8a6dc' }, }; diff --git a/scripts/configs/pools/avalanche.ts b/scripts/configs/pools/avalanche.ts index 424824d0..08277821 100644 --- a/scripts/configs/pools/avalanche.ts +++ b/scripts/configs/pools/avalanche.ts @@ -18,15 +18,15 @@ export const fujiProtoV2: PoolConfig = { export const fujiProtoV3: PoolConfig = { name: 'Fuji', chainId: ChainId.fuji, - POOL_ADDRESSES_PROVIDER: '0x07D04EfAAA0Ac69D19d107795aF247C42Eb50F1C', + POOL_ADDRESSES_PROVIDER: '0x83E0E6095a318446b313f7D27e0c33Ed1e9c0213', additionalAddresses: { - CONFIG_ENGINE: '0x4058FE01Aa090E0841F4E08f79D2607C4861142E', - POOL_ADDRESSES_PROVIDER_REGISTRY: '0x9E7DF170E44093d6738057157CA048794B02555d', - STATA_FACTORY: '0xc344A904BFd1E11AD58a18847940637C35f28ce4', - UI_INCENTIVE_DATA_PROVIDER: '0x9Ba30437Ba63AA2902319DE1B3f0E25a18826842', - // UI_POOL_DATA_PROVIDER: '0x67F521ca716dD9413fd2D2AfdEbEE9285289d2cB', - WALLET_BALANCE_PROVIDER: '0x43fAE24bd7eA952B4000Ea3A2e0D8B50CA64EBbA', - WETH_GATEWAY: '0x3d2ee1AB8C3a597cDf80273C684dE0036481bE3a', + CONFIG_ENGINE: '0xdFf435BCcf782f11187D3a4454d96702eD78e092', + POOL_ADDRESSES_PROVIDER_REGISTRY: '0x0AfF487736AAF982A90Fe996Afa43Dfa05646C0c', + STATA_FACTORY: '0xC400635a7a87b0a41f1A0720687a03eE2e5Cbe1F', + UI_INCENTIVE_DATA_PROVIDER: '0x4A49351ED179b23af08523Af98a8ca95C712b9d9', + UI_POOL_DATA_PROVIDER: '0xC5dfC5E3a5099A6456a8BF20D7497Eb76358899F', + WALLET_BALANCE_PROVIDER: '0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520', + WETH_GATEWAY: '0x46Dcd5F4600319b02649Fd76B55aA6c1035CA478', }, }; diff --git a/scripts/configs/pools/base.ts b/scripts/configs/pools/base.ts index 99647947..50741740 100644 --- a/scripts/configs/pools/base.ts +++ b/scripts/configs/pools/base.ts @@ -50,14 +50,15 @@ export const baseSepoliaProtoV3: PoolConfig = { export const baseSepoliaLidoProtoV3: PoolConfig = { name: 'BaseSepoliaLido', chainId: ChainId.base_sepolia, - POOL_ADDRESSES_PROVIDER: '0x6f7E694fe5250Ce638fFE95524760422E6e41997', + POOL_ADDRESSES_PROVIDER: '0xc08746B8A3bE6ebbB1a8C0b3e7474EB4A0d6F9fb', additionalAddresses: { - CONFIG_ENGINE: '0x7e66C9c25E91200b8713d5E926b0e12496636dF5', - L2_ENCODER: '0xEC239206602f299b5d0A7dDfd7A9ed1F2ebeE020', - POOL_ADDRESSES_PROVIDER_REGISTRY: '0xDda880c5Cf474b68cc79f89fa2A2F8513015FF20', - UI_INCENTIVE_DATA_PROVIDER: '0xAc5Cc0A193C6FAc2616c7c5FACfd1C9DB909371C', - UI_POOL_DATA_PROVIDER: '0x912D4A80f8cA3959eB49Ce38f060c46323D1e3A4', - WALLET_BALANCE_PROVIDER: '0x2a5208950631917efE7EbE969eC1be68EE46AB16', - WETH_GATEWAY: '0x63bBa35193cB5E061E8F0318F8A1788EA34E5198', - }, + STATA_FACTORY: '0x949addAD066F276c216B9892ae4a19D39fA394E1', + CONFIG_ENGINE: '0x39471096B7EE44d50ba01b978a06d88D164446e3', + L2_ENCODER: '0x88BA56c5e38536378B17376945f0670F66964714', + POOL_ADDRESSES_PROVIDER_REGISTRY: '0xed20622f29362aeAa2B2e8833a65b30c2B83A0DC', + UI_INCENTIVE_DATA_PROVIDER: '0x1A706064675d226ABeFA50124e68a422d9FE777a', + UI_POOL_DATA_PROVIDER: '0xB177501db055d357587Ab973f8D7748588A8A8B5', + WALLET_BALANCE_PROVIDER: '0x29e4a5A618845250383dCd33DD0a5A4223c26Acd', + WETH_GATEWAY: '0x85c10e659FcEB9319248d88f82E5e0c8cb0Bc000', + } }; diff --git a/scripts/configs/types.ts b/scripts/configs/types.ts index 78923cae..2c273cbf 100644 --- a/scripts/configs/types.ts +++ b/scripts/configs/types.ts @@ -126,5 +126,6 @@ export interface NetworkAddresses = {}> { GSM_USDT_PRICE_STRATEGY?: Hex; GSM_USDC_ORACLE_SWAP_FREEZER?: Hex; GSM_USDT_ORACLE_SWAP_FREEZER?: Hex; + FAUCET?: Hex; } & T; } diff --git a/src/AaveV3BaseSepoliaLido.sol b/src/AaveV3BaseSepoliaLido.sol index 2914d503..93e99f26 100644 --- a/src/AaveV3BaseSepoliaLido.sol +++ b/src/AaveV3BaseSepoliaLido.sol @@ -5,165 +5,187 @@ pragma solidity >=0.6.0; import {IPoolAddressesProvider, IPool, IPoolConfigurator, IAaveOracle, IPoolDataProvider, IACLManager} from './AaveV3.sol'; import {ICollector} from './common/ICollector.sol'; library AaveV3BaseSepoliaLido { - // https://sepolia.basescan.org/address/0x6f7E694fe5250Ce638fFE95524760422E6e41997 + // https://sepolia.basescan.org/address/0xc08746B8A3bE6ebbB1a8C0b3e7474EB4A0d6F9fb IPoolAddressesProvider internal constant POOL_ADDRESSES_PROVIDER = - IPoolAddressesProvider(0x6f7E694fe5250Ce638fFE95524760422E6e41997); + IPoolAddressesProvider(0xc08746B8A3bE6ebbB1a8C0b3e7474EB4A0d6F9fb); - // https://sepolia.basescan.org/address/0x423b16E67D9b7ea095Bc443F1Cb9621c54A3db1D - IPool internal constant POOL = IPool(0x423b16E67D9b7ea095Bc443F1Cb9621c54A3db1D); + // https://sepolia.basescan.org/address/0x7b2F44923254d438556CA0faC364920e72b700c0 + IPool internal constant POOL = IPool(0x7b2F44923254d438556CA0faC364920e72b700c0); - // https://sepolia.basescan.org/address/0xb5264423c271310dB16be084dA3e360d6c4A8b85 + // https://sepolia.basescan.org/address/0xf6CB188D70aF9bFeF1f932BE34563eb87443bb12 IPoolConfigurator internal constant POOL_CONFIGURATOR = - IPoolConfigurator(0xb5264423c271310dB16be084dA3e360d6c4A8b85); + IPoolConfigurator(0xf6CB188D70aF9bFeF1f932BE34563eb87443bb12); - // https://sepolia.basescan.org/address/0xfaec2d4b5971C9C18Ec25363C34B8a9A7658EBB6 - IAaveOracle internal constant ORACLE = IAaveOracle(0xfaec2d4b5971C9C18Ec25363C34B8a9A7658EBB6); + // https://sepolia.basescan.org/address/0x351c866eF5876b591C695E12e662bED68C1E5c74 + IAaveOracle internal constant ORACLE = IAaveOracle(0x351c866eF5876b591C695E12e662bED68C1E5c74); - // https://sepolia.basescan.org/address/0x6ec33534BE07d45cc4E02Fbd127F8ed2aE919a6b - address internal constant ACL_ADMIN = 0x6ec33534BE07d45cc4E02Fbd127F8ed2aE919a6b; + // https://sepolia.basescan.org/address/0x956DE559DFc27678FD69d4f49f485196b50BDD0F + address internal constant ACL_ADMIN = 0x956DE559DFc27678FD69d4f49f485196b50BDD0F; - // https://sepolia.basescan.org/address/0x7C5Bd69e2842363139C2CA726baAd128B0B19976 + // https://sepolia.basescan.org/address/0x4F987c03244d92793e92BA573AF377424Ad8cC1b IACLManager internal constant ACL_MANAGER = - IACLManager(0x7C5Bd69e2842363139C2CA726baAd128B0B19976); + IACLManager(0x4F987c03244d92793e92BA573AF377424Ad8cC1b); - // https://sepolia.basescan.org/address/0xa8746Cea97Da240EC45A5b5890b1071990288e34 + // https://sepolia.basescan.org/address/0xF79eD307027B94e2aD0d91101Cf4650266475924 IPoolDataProvider internal constant AAVE_PROTOCOL_DATA_PROVIDER = - IPoolDataProvider(0xa8746Cea97Da240EC45A5b5890b1071990288e34); + IPoolDataProvider(0xF79eD307027B94e2aD0d91101Cf4650266475924); - // https://sepolia.basescan.org/address/0x532fF7D5c6Df153De1329Af43a36FFF3D12e7316 - address internal constant POOL_IMPL = 0x532fF7D5c6Df153De1329Af43a36FFF3D12e7316; + // https://sepolia.basescan.org/address/0xBBAce2C0D027c15dA142E3C1B5B1c7a1d8530443 + address internal constant POOL_IMPL = 0xBBAce2C0D027c15dA142E3C1B5B1c7a1d8530443; - // https://sepolia.basescan.org/address/0xf2746E1f8538479a299083E12230550C40F899d7 - address internal constant POOL_CONFIGURATOR_IMPL = 0xf2746E1f8538479a299083E12230550C40F899d7; + // https://sepolia.basescan.org/address/0x14Cfd46aD03b9563B46c12ee7f3247EA27445669 + address internal constant POOL_CONFIGURATOR_IMPL = 0x14Cfd46aD03b9563B46c12ee7f3247EA27445669; - // https://sepolia.basescan.org/address/0x543f2b0C2085E74b9A1c3A2D0f35825D9D02237D + // https://sepolia.basescan.org/address/0xFEC49bCa4A83502E57d716B5578249C5e1872dE8 address internal constant DEFAULT_INCENTIVES_CONTROLLER = - 0x543f2b0C2085E74b9A1c3A2D0f35825D9D02237D; + 0xFEC49bCa4A83502E57d716B5578249C5e1872dE8; - // https://sepolia.basescan.org/address/0x635b4a9ec6c6B6b764347edc343CFf091FbAE0Ad - address internal constant EMISSION_MANAGER = 0x635b4a9ec6c6B6b764347edc343CFf091FbAE0Ad; + // https://sepolia.basescan.org/address/0xa6AE0751dc06EE8dE771905bEa435a35c7C05A1b + address internal constant EMISSION_MANAGER = 0xa6AE0751dc06EE8dE771905bEa435a35c7C05A1b; - // https://sepolia.basescan.org/address/0xA49b77212c4a6C689B78CfA448bb2cd254E87c07 - ICollector internal constant COLLECTOR = ICollector(0xA49b77212c4a6C689B78CfA448bb2cd254E87c07); + // https://sepolia.basescan.org/address/0x073479553F63C7f91080491dE2F48E7AbB9D5013 + ICollector internal constant COLLECTOR = ICollector(0x073479553F63C7f91080491dE2F48E7AbB9D5013); - // https://sepolia.basescan.org/address/0x0Ff3278B57a550767ccec8452f16BD31E7C72238 - address internal constant DEFAULT_A_TOKEN_IMPL_REV_1 = 0x0Ff3278B57a550767ccec8452f16BD31E7C72238; + // https://sepolia.basescan.org/address/0x6AE08bFee892fA655082CE3Ef99ebE7b83EDC422 + address internal constant DEFAULT_A_TOKEN_IMPL_REV_1 = 0x6AE08bFee892fA655082CE3Ef99ebE7b83EDC422; - // https://sepolia.basescan.org/address/0xf45B94a4B54318c1A4Fe1287B38370F6FC638B61 + // https://sepolia.basescan.org/address/0x6A173B0E7b2189b0Ba4FCb5bFF55D70Ed91443A6 address internal constant DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1 = - 0xf45B94a4B54318c1A4Fe1287B38370F6FC638B61; + 0x6A173B0E7b2189b0Ba4FCb5bFF55D70Ed91443A6; - // https://sepolia.basescan.org/address/0x7e66C9c25E91200b8713d5E926b0e12496636dF5 - address internal constant CONFIG_ENGINE = 0x7e66C9c25E91200b8713d5E926b0e12496636dF5; + // https://sepolia.basescan.org/address/0x949addAD066F276c216B9892ae4a19D39fA394E1 + address internal constant STATA_FACTORY = 0x949addAD066F276c216B9892ae4a19D39fA394E1; - // https://sepolia.basescan.org/address/0xEC239206602f299b5d0A7dDfd7A9ed1F2ebeE020 - address internal constant L2_ENCODER = 0xEC239206602f299b5d0A7dDfd7A9ed1F2ebeE020; + // https://sepolia.basescan.org/address/0x39471096B7EE44d50ba01b978a06d88D164446e3 + address internal constant CONFIG_ENGINE = 0x39471096B7EE44d50ba01b978a06d88D164446e3; - // https://sepolia.basescan.org/address/0xDda880c5Cf474b68cc79f89fa2A2F8513015FF20 + // https://sepolia.basescan.org/address/0x88BA56c5e38536378B17376945f0670F66964714 + address internal constant L2_ENCODER = 0x88BA56c5e38536378B17376945f0670F66964714; + + // https://sepolia.basescan.org/address/0xed20622f29362aeAa2B2e8833a65b30c2B83A0DC address internal constant POOL_ADDRESSES_PROVIDER_REGISTRY = - 0xDda880c5Cf474b68cc79f89fa2A2F8513015FF20; + 0xed20622f29362aeAa2B2e8833a65b30c2B83A0DC; - // https://sepolia.basescan.org/address/0xAc5Cc0A193C6FAc2616c7c5FACfd1C9DB909371C - address internal constant UI_INCENTIVE_DATA_PROVIDER = 0xAc5Cc0A193C6FAc2616c7c5FACfd1C9DB909371C; + // https://sepolia.basescan.org/address/0x1A706064675d226ABeFA50124e68a422d9FE777a + address internal constant UI_INCENTIVE_DATA_PROVIDER = 0x1A706064675d226ABeFA50124e68a422d9FE777a; - // https://sepolia.basescan.org/address/0x912D4A80f8cA3959eB49Ce38f060c46323D1e3A4 - address internal constant UI_POOL_DATA_PROVIDER = 0x912D4A80f8cA3959eB49Ce38f060c46323D1e3A4; + // https://sepolia.basescan.org/address/0xB177501db055d357587Ab973f8D7748588A8A8B5 + address internal constant UI_POOL_DATA_PROVIDER = 0xB177501db055d357587Ab973f8D7748588A8A8B5; - // https://sepolia.basescan.org/address/0x2a5208950631917efE7EbE969eC1be68EE46AB16 - address internal constant WALLET_BALANCE_PROVIDER = 0x2a5208950631917efE7EbE969eC1be68EE46AB16; + // https://sepolia.basescan.org/address/0x29e4a5A618845250383dCd33DD0a5A4223c26Acd + address internal constant WALLET_BALANCE_PROVIDER = 0x29e4a5A618845250383dCd33DD0a5A4223c26Acd; - // https://sepolia.basescan.org/address/0x63bBa35193cB5E061E8F0318F8A1788EA34E5198 - address internal constant WETH_GATEWAY = 0x63bBa35193cB5E061E8F0318F8A1788EA34E5198; + // https://sepolia.basescan.org/address/0x85c10e659FcEB9319248d88f82E5e0c8cb0Bc000 + address internal constant WETH_GATEWAY = 0x85c10e659FcEB9319248d88f82E5e0c8cb0Bc000; } library AaveV3BaseSepoliaLidoAssets { - // https://sepolia.basescan.org/address/0x31DeecB1f03D68154fB7d86EA54F3276afDC33e3 - address internal constant USDC_UNDERLYING = 0x31DeecB1f03D68154fB7d86EA54F3276afDC33e3; + // https://sepolia.basescan.org/address/0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f + address internal constant USDC_UNDERLYING = 0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f; - uint8 internal constant USDC_DECIMALS = 18; + uint8 internal constant USDC_DECIMALS = 6; - // https://sepolia.basescan.org/address/0x005E9Aea520839b897FC97cfBc39bbc58539Ee8B - address internal constant USDC_A_TOKEN = 0x005E9Aea520839b897FC97cfBc39bbc58539Ee8B; + // https://sepolia.basescan.org/address/0xaF163ca48f93776195D472954dcad349528678aF + address internal constant USDC_A_TOKEN = 0xaF163ca48f93776195D472954dcad349528678aF; - // https://sepolia.basescan.org/address/0x31cC4e1faA41C748e4aA4E2e7CA0E7C03B39092E - address internal constant USDC_V_TOKEN = 0x31cC4e1faA41C748e4aA4E2e7CA0E7C03B39092E; + // https://sepolia.basescan.org/address/0x040a0aCdBd42f7f0c605423Aacc6abB47d7cB42C + address internal constant USDC_V_TOKEN = 0x040a0aCdBd42f7f0c605423Aacc6abB47d7cB42C; // https://sepolia.basescan.org/address/0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165 address internal constant USDC_ORACLE = 0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165; - // https://sepolia.basescan.org/address/0x25286160e24a8567B24649AD230f581BC9DC1a66 + // https://sepolia.basescan.org/address/0x25203996df0d836EC9E2b4f92EAd42E8b424C865 address internal constant USDC_INTEREST_RATE_STRATEGY = - 0x25286160e24a8567B24649AD230f581BC9DC1a66; + 0x25203996df0d836EC9E2b4f92EAd42E8b424C865; - // https://sepolia.basescan.org/address/0x3cbFF758cB60163f5C59055f0e89cBc60699A143 - address internal constant USDT_UNDERLYING = 0x3cbFF758cB60163f5C59055f0e89cBc60699A143; + // https://sepolia.basescan.org/address/0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a + address internal constant USDT_UNDERLYING = 0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a; - uint8 internal constant USDT_DECIMALS = 18; + uint8 internal constant USDT_DECIMALS = 6; - // https://sepolia.basescan.org/address/0x1f1258B4584E7227F0A1d8c6f6503Bc1eEE72734 - address internal constant USDT_A_TOKEN = 0x1f1258B4584E7227F0A1d8c6f6503Bc1eEE72734; + // https://sepolia.basescan.org/address/0xA98575847a756085DDD61329EfEE7CDab4BB92A0 + address internal constant USDT_A_TOKEN = 0xA98575847a756085DDD61329EfEE7CDab4BB92A0; - // https://sepolia.basescan.org/address/0x737c471a6eE5891C554B87127dE5bF95B5806374 - address internal constant USDT_V_TOKEN = 0x737c471a6eE5891C554B87127dE5bF95B5806374; + // https://sepolia.basescan.org/address/0xd37D7004D54d1F779BC788193C72AC6C826e9046 + address internal constant USDT_V_TOKEN = 0xd37D7004D54d1F779BC788193C72AC6C826e9046; // https://sepolia.basescan.org/address/0x3ec8593F930EA45ea58c968260e6e9FF53FC934f address internal constant USDT_ORACLE = 0x3ec8593F930EA45ea58c968260e6e9FF53FC934f; - // https://sepolia.basescan.org/address/0x25286160e24a8567B24649AD230f581BC9DC1a66 + // https://sepolia.basescan.org/address/0x25203996df0d836EC9E2b4f92EAd42E8b424C865 address internal constant USDT_INTEREST_RATE_STRATEGY = - 0x25286160e24a8567B24649AD230f581BC9DC1a66; + 0x25203996df0d836EC9E2b4f92EAd42E8b424C865; - // https://sepolia.basescan.org/address/0x9320CDD004557870e6066fEf0C88B46F9fCeA9e0 - address internal constant DAI_UNDERLYING = 0x9320CDD004557870e6066fEf0C88B46F9fCeA9e0; + // https://sepolia.basescan.org/address/0x54114591963CF60EF3aA63bEfD6eC263D98145a4 + address internal constant WBTC_UNDERLYING = 0x54114591963CF60EF3aA63bEfD6eC263D98145a4; - uint8 internal constant DAI_DECIMALS = 18; + uint8 internal constant WBTC_DECIMALS = 8; - // https://sepolia.basescan.org/address/0x5c941817F022fc61bB4587E7983fD7ed95B9117e - address internal constant DAI_A_TOKEN = 0x5c941817F022fc61bB4587E7983fD7ed95B9117e; + // https://sepolia.basescan.org/address/0x3c93A2c798e4759F1Af4BFA1C052A0083ccF42Ef + address internal constant WBTC_A_TOKEN = 0x3c93A2c798e4759F1Af4BFA1C052A0083ccF42Ef; - // https://sepolia.basescan.org/address/0x5fba1aBb20B8F1C558992557Bc0d74C5Af9F04d7 - address internal constant DAI_V_TOKEN = 0x5fba1aBb20B8F1C558992557Bc0d74C5Af9F04d7; + // https://sepolia.basescan.org/address/0x8D4dFea75077400457FF68A039E9c39997398b80 + address internal constant WBTC_V_TOKEN = 0x8D4dFea75077400457FF68A039E9c39997398b80; - // https://sepolia.basescan.org/address/0xD1092a65338d049DB68D7Be6bD89d17a0929945e - address internal constant DAI_ORACLE = 0xD1092a65338d049DB68D7Be6bD89d17a0929945e; + // https://sepolia.basescan.org/address/0x0FB99723Aee6f420beAD13e6bBB79b7E6F034298 + address internal constant WBTC_ORACLE = 0x0FB99723Aee6f420beAD13e6bBB79b7E6F034298; - // https://sepolia.basescan.org/address/0x25286160e24a8567B24649AD230f581BC9DC1a66 - address internal constant DAI_INTEREST_RATE_STRATEGY = 0x25286160e24a8567B24649AD230f581BC9DC1a66; + // https://sepolia.basescan.org/address/0x25203996df0d836EC9E2b4f92EAd42E8b424C865 + address internal constant WBTC_INTEREST_RATE_STRATEGY = + 0x25203996df0d836EC9E2b4f92EAd42E8b424C865; // https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000006 address internal constant WETH_UNDERLYING = 0x4200000000000000000000000000000000000006; uint8 internal constant WETH_DECIMALS = 18; - // https://sepolia.basescan.org/address/0xFBcD8add8F85BdfeDfF99E20D6fc4b215a9C96e3 - address internal constant WETH_A_TOKEN = 0xFBcD8add8F85BdfeDfF99E20D6fc4b215a9C96e3; + // https://sepolia.basescan.org/address/0x713751EC1A92a78112ca3b62bace0dE9377a14b3 + address internal constant WETH_A_TOKEN = 0x713751EC1A92a78112ca3b62bace0dE9377a14b3; - // https://sepolia.basescan.org/address/0x1a22c2261A23516D9A14bCAbC0B6522Eb98220fF - address internal constant WETH_V_TOKEN = 0x1a22c2261A23516D9A14bCAbC0B6522Eb98220fF; + // https://sepolia.basescan.org/address/0x6b20DFD2264152431a7242771eE381E03D378D96 + address internal constant WETH_V_TOKEN = 0x6b20DFD2264152431a7242771eE381E03D378D96; // https://sepolia.basescan.org/address/0x4aDC67696bA383F43DD60A9e78F2C97Fbbfc7cb1 address internal constant WETH_ORACLE = 0x4aDC67696bA383F43DD60A9e78F2C97Fbbfc7cb1; - // https://sepolia.basescan.org/address/0x25286160e24a8567B24649AD230f581BC9DC1a66 + // https://sepolia.basescan.org/address/0x25203996df0d836EC9E2b4f92EAd42E8b424C865 address internal constant WETH_INTEREST_RATE_STRATEGY = - 0x25286160e24a8567B24649AD230f581BC9DC1a66; + 0x25203996df0d836EC9E2b4f92EAd42E8b424C865; - // https://sepolia.basescan.org/address/0xc246553D4aff65E8091ed6072bE7Db6fb5318657 - address internal constant cbETH_UNDERLYING = 0xc246553D4aff65E8091ed6072bE7Db6fb5318657; + // https://sepolia.basescan.org/address/0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B + address internal constant cbETH_UNDERLYING = 0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B; uint8 internal constant cbETH_DECIMALS = 18; - // https://sepolia.basescan.org/address/0xeba135faBD9585Fd24879d95435F198AEb9D8a0c - address internal constant cbETH_A_TOKEN = 0xeba135faBD9585Fd24879d95435F198AEb9D8a0c; + // https://sepolia.basescan.org/address/0xB542b8E3cC87B34A3F80902d9f8841D83b01d173 + address internal constant cbETH_A_TOKEN = 0xB542b8E3cC87B34A3F80902d9f8841D83b01d173; - // https://sepolia.basescan.org/address/0x4B91a4D368a92C0aF8e5dB3Fb557ee75E391695E - address internal constant cbETH_V_TOKEN = 0x4B91a4D368a92C0aF8e5dB3Fb557ee75E391695E; + // https://sepolia.basescan.org/address/0x7352Cfa37Cd01320491C9fb53D941E511932D345 + address internal constant cbETH_V_TOKEN = 0x7352Cfa37Cd01320491C9fb53D941E511932D345; // https://sepolia.basescan.org/address/0x3c65e28D357a37589e1C7C86044a9f44dDC17134 address internal constant cbETH_ORACLE = 0x3c65e28D357a37589e1C7C86044a9f44dDC17134; - // https://sepolia.basescan.org/address/0x25286160e24a8567B24649AD230f581BC9DC1a66 + // https://sepolia.basescan.org/address/0x25203996df0d836EC9E2b4f92EAd42E8b424C865 address internal constant cbETH_INTEREST_RATE_STRATEGY = - 0x25286160e24a8567B24649AD230f581BC9DC1a66; + 0x25203996df0d836EC9E2b4f92EAd42E8b424C865; + + // https://sepolia.basescan.org/address/0x810D46F9a9027E28F9B01F75E2bdde839dA61115 + address internal constant LINK_UNDERLYING = 0x810D46F9a9027E28F9B01F75E2bdde839dA61115; + + uint8 internal constant LINK_DECIMALS = 18; + + // https://sepolia.basescan.org/address/0x4c9a538604BA9283eC2B2838BCB6C755B85B76Ce + address internal constant LINK_A_TOKEN = 0x4c9a538604BA9283eC2B2838BCB6C755B85B76Ce; + + // https://sepolia.basescan.org/address/0x1076426cDFf78456AbdCE9eD654724B914B2b318 + address internal constant LINK_V_TOKEN = 0x1076426cDFf78456AbdCE9eD654724B914B2b318; + + // https://sepolia.basescan.org/address/0xb113F5A928BCfF189C998ab20d753a47F9dE5A61 + address internal constant LINK_ORACLE = 0xb113F5A928BCfF189C998ab20d753a47F9dE5A61; + + // https://sepolia.basescan.org/address/0x25203996df0d836EC9E2b4f92EAd42E8b424C865 + address internal constant LINK_INTEREST_RATE_STRATEGY = + 0x25203996df0d836EC9E2b4f92EAd42E8b424C865; } library AaveV3BaseSepoliaLidoEModes { uint8 internal constant NONE = 0; @@ -171,24 +193,24 @@ library AaveV3BaseSepoliaLidoEModes { uint8 internal constant ETH_CORRELATED = 1; } library AaveV3BaseSepoliaLidoExternalLibraries { - // https://sepolia.basescan.org/address/0xb32381feFFF45eE9F47fD2f2cF83C832637d6EF0 - address internal constant FLASHLOAN_LOGIC = 0xb32381feFFF45eE9F47fD2f2cF83C832637d6EF0; + // https://sepolia.basescan.org/address/0x99A0ce27c0571199a29b31Bc52dEEd09F76f54eF + address internal constant FLASHLOAN_LOGIC = 0x99A0ce27c0571199a29b31Bc52dEEd09F76f54eF; - // https://sepolia.basescan.org/address/0x4c52FE2162200bf26c314d7bbd8611699139d553 - address internal constant BORROW_LOGIC = 0x4c52FE2162200bf26c314d7bbd8611699139d553; + // https://sepolia.basescan.org/address/0x7079bAa685eb5c46a0f50610E9f05D7C96216cD6 + address internal constant BORROW_LOGIC = 0x7079bAa685eb5c46a0f50610E9f05D7C96216cD6; - // https://sepolia.basescan.org/address/0x97dCbFaE5372A63128F141E8C0BC2c871Ca5F604 - address internal constant BRIDGE_LOGIC = 0x97dCbFaE5372A63128F141E8C0BC2c871Ca5F604; + // https://sepolia.basescan.org/address/0x9D5f335616DaDb68FAf45B92f2a4b2cB84D3De4B + address internal constant BRIDGE_LOGIC = 0x9D5f335616DaDb68FAf45B92f2a4b2cB84D3De4B; // https://sepolia.basescan.org/address/0x88F864670De467aA73CD45325F9652C578C8AB85 address internal constant E_MODE_LOGIC = 0x88F864670De467aA73CD45325F9652C578C8AB85; - // https://sepolia.basescan.org/address/0x80d16970B31243Fe67DaB028115f3E4c3E3510Ad - address internal constant LIQUIDATION_LOGIC = 0x80d16970B31243Fe67DaB028115f3E4c3E3510Ad; + // https://sepolia.basescan.org/address/0x6242a8000349cfBC01529601BB5A50CF016A09b9 + address internal constant LIQUIDATION_LOGIC = 0x6242a8000349cfBC01529601BB5A50CF016A09b9; - // https://sepolia.basescan.org/address/0xA58FB47bE9074828215A173564C0CD10f6F249bf - address internal constant POOL_LOGIC = 0xA58FB47bE9074828215A173564C0CD10f6F249bf; + // https://sepolia.basescan.org/address/0xE8bC3727A04d5af05186e2E6475Ce64CA9B1F0aF + address internal constant POOL_LOGIC = 0xE8bC3727A04d5af05186e2E6475Ce64CA9B1F0aF; - // https://sepolia.basescan.org/address/0x2b22E425C1322fbA0DbF17bb1dA25d71811EE7ba - address internal constant SUPPLY_LOGIC = 0x2b22E425C1322fbA0DbF17bb1dA25d71811EE7ba; + // https://sepolia.basescan.org/address/0x20D9ead63fA4e8aC2ADc9eF86ac7062832b29480 + address internal constant SUPPLY_LOGIC = 0x20D9ead63fA4e8aC2ADc9eF86ac7062832b29480; } diff --git a/src/AaveV3Fuji.sol b/src/AaveV3Fuji.sol index 3b02589d..449bc2a7 100644 --- a/src/AaveV3Fuji.sol +++ b/src/AaveV3Fuji.sol @@ -5,171 +5,207 @@ pragma solidity >=0.6.0; import {IPoolAddressesProvider, IPool, IPoolConfigurator, IAaveOracle, IPoolDataProvider, IACLManager} from './AaveV3.sol'; import {ICollector} from './common/ICollector.sol'; library AaveV3Fuji { - // https://testnet.snowtrace.io/address/0x07D04EfAAA0Ac69D19d107795aF247C42Eb50F1C + // https://testnet.snowtrace.io/address/0x83E0E6095a318446b313f7D27e0c33Ed1e9c0213 IPoolAddressesProvider internal constant POOL_ADDRESSES_PROVIDER = - IPoolAddressesProvider(0x07D04EfAAA0Ac69D19d107795aF247C42Eb50F1C); + IPoolAddressesProvider(0x83E0E6095a318446b313f7D27e0c33Ed1e9c0213); - // https://testnet.snowtrace.io/address/0x8B9b2AF4afB389b4a70A474dfD4AdCD4a302bb40 - IPool internal constant POOL = IPool(0x8B9b2AF4afB389b4a70A474dfD4AdCD4a302bb40); + // https://testnet.snowtrace.io/address/0xd6a6339c6C1B5a8792afA6e0E80b1908b8579f51 + IPool internal constant POOL = IPool(0xd6a6339c6C1B5a8792afA6e0E80b1908b8579f51); - // https://testnet.snowtrace.io/address/0xF9f36C15fBddAF0B64E0D16E4D6852B433a86cbE + // https://testnet.snowtrace.io/address/0xaFb7Bc3f69A8Cc6a49823eFF9E3974CD49181A9c IPoolConfigurator internal constant POOL_CONFIGURATOR = - IPoolConfigurator(0xF9f36C15fBddAF0B64E0D16E4D6852B433a86cbE); + IPoolConfigurator(0xaFb7Bc3f69A8Cc6a49823eFF9E3974CD49181A9c); - // https://testnet.snowtrace.io/address/0xd36338d0F231446b36008310f1DE0812784ADeBC - IAaveOracle internal constant ORACLE = IAaveOracle(0xd36338d0F231446b36008310f1DE0812784ADeBC); + // https://testnet.snowtrace.io/address/0x4523495a435Aea946644EB1c9123Cd8BB2a5B389 + IAaveOracle internal constant ORACLE = IAaveOracle(0x4523495a435Aea946644EB1c9123Cd8BB2a5B389); - // https://testnet.snowtrace.io/address/0x6ec33534BE07d45cc4E02Fbd127F8ed2aE919a6b - address internal constant ACL_ADMIN = 0x6ec33534BE07d45cc4E02Fbd127F8ed2aE919a6b; + // https://testnet.snowtrace.io/address/0x956DE559DFc27678FD69d4f49f485196b50BDD0F + address internal constant ACL_ADMIN = 0x956DE559DFc27678FD69d4f49f485196b50BDD0F; - // https://testnet.snowtrace.io/address/0xa411Accec7000c52feE9bFeDaDc53E1CEF72d6d4 + // https://testnet.snowtrace.io/address/0xE99aeEaaBA947D8f96A20ceD6Ff3d157cd3529E8 IACLManager internal constant ACL_MANAGER = - IACLManager(0xa411Accec7000c52feE9bFeDaDc53E1CEF72d6d4); + IACLManager(0xE99aeEaaBA947D8f96A20ceD6Ff3d157cd3529E8); - // https://testnet.snowtrace.io/address/0xC65cbd1e309Bf0e841Ee6f6E786480598e6a4014 + // https://testnet.snowtrace.io/address/0x9153c061f54bA728F892979522A1462386694c86 IPoolDataProvider internal constant AAVE_PROTOCOL_DATA_PROVIDER = - IPoolDataProvider(0xC65cbd1e309Bf0e841Ee6f6E786480598e6a4014); + IPoolDataProvider(0x9153c061f54bA728F892979522A1462386694c86); - // https://testnet.snowtrace.io/address/0xff1DB744F1275f8e04A62A7E5D663575F3a774B6 - address internal constant POOL_IMPL = 0xff1DB744F1275f8e04A62A7E5D663575F3a774B6; + // https://testnet.snowtrace.io/address/0xd8247C7926841337E8adf9fD9E87026992C45062 + address internal constant POOL_IMPL = 0xd8247C7926841337E8adf9fD9E87026992C45062; - // https://testnet.snowtrace.io/address/0x782559e349b084bB7C07c08404aE6E3436cDAE2E - address internal constant POOL_CONFIGURATOR_IMPL = 0x782559e349b084bB7C07c08404aE6E3436cDAE2E; + // https://testnet.snowtrace.io/address/0x294daB91f3539f5a74Ed995a59235eE62A14A345 + address internal constant POOL_CONFIGURATOR_IMPL = 0x294daB91f3539f5a74Ed995a59235eE62A14A345; - // https://testnet.snowtrace.io/address/0x03aFC1Dfb53eae8eB7BE0E8CB6524aa79C3F8578 + // https://testnet.snowtrace.io/address/0x6FAa7a29d4Af1Dc2acbC58cff158d367E3436CB9 address internal constant DEFAULT_INCENTIVES_CONTROLLER = - 0x03aFC1Dfb53eae8eB7BE0E8CB6524aa79C3F8578; + 0x6FAa7a29d4Af1Dc2acbC58cff158d367E3436CB9; - // https://testnet.snowtrace.io/address/0xa46F32c76cAE9Fd34afB8029dE9c30b7F86bFA58 - address internal constant EMISSION_MANAGER = 0xa46F32c76cAE9Fd34afB8029dE9c30b7F86bFA58; + // https://testnet.snowtrace.io/address/0x22baB145Ce9585761437c2878ac62Fe4C442e591 + address internal constant EMISSION_MANAGER = 0x22baB145Ce9585761437c2878ac62Fe4C442e591; - // https://testnet.snowtrace.io/address/0xEd5b0b955C70Fd97557EF9Af2c9bA902Ad1F2AA9 - ICollector internal constant COLLECTOR = ICollector(0xEd5b0b955C70Fd97557EF9Af2c9bA902Ad1F2AA9); + // https://testnet.snowtrace.io/address/0x8c31CD3ce60584c26eA49A1E2dF900247de3b517 + ICollector internal constant COLLECTOR = ICollector(0x8c31CD3ce60584c26eA49A1E2dF900247de3b517); - // https://testnet.snowtrace.io/address/0xeF4d1F3F0dCe46C1Ad684F23Ea3aA542592A8cFe - address internal constant DEFAULT_A_TOKEN_IMPL_REV_1 = 0xeF4d1F3F0dCe46C1Ad684F23Ea3aA542592A8cFe; + // https://testnet.snowtrace.io/address/0xD63f7658C66B2934Bd234D79D06aEF5290734B30 + address internal constant DEFAULT_A_TOKEN_IMPL_REV_1 = 0xD63f7658C66B2934Bd234D79D06aEF5290734B30; - // https://testnet.snowtrace.io/address/0x21CcaD436A6c762B919dB7cb07C5082a43DB2589 + // https://testnet.snowtrace.io/address/0xD8994FE9B79f99CD0b13AE946F5cd866c6d12d00 address internal constant DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1 = - 0x21CcaD436A6c762B919dB7cb07C5082a43DB2589; + 0xD8994FE9B79f99CD0b13AE946F5cd866c6d12d00; - // https://testnet.snowtrace.io/address/0x4058FE01Aa090E0841F4E08f79D2607C4861142E - address internal constant CONFIG_ENGINE = 0x4058FE01Aa090E0841F4E08f79D2607C4861142E; + // https://testnet.snowtrace.io/address/0xdFf435BCcf782f11187D3a4454d96702eD78e092 + address internal constant CONFIG_ENGINE = 0xdFf435BCcf782f11187D3a4454d96702eD78e092; - // https://testnet.snowtrace.io/address/0x9E7DF170E44093d6738057157CA048794B02555d + // https://testnet.snowtrace.io/address/0x0AfF487736AAF982A90Fe996Afa43Dfa05646C0c address internal constant POOL_ADDRESSES_PROVIDER_REGISTRY = - 0x9E7DF170E44093d6738057157CA048794B02555d; + 0x0AfF487736AAF982A90Fe996Afa43Dfa05646C0c; - // https://testnet.snowtrace.io/address/0xc344A904BFd1E11AD58a18847940637C35f28ce4 - address internal constant STATA_FACTORY = 0xc344A904BFd1E11AD58a18847940637C35f28ce4; + // https://testnet.snowtrace.io/address/0xC400635a7a87b0a41f1A0720687a03eE2e5Cbe1F + address internal constant STATA_FACTORY = 0xC400635a7a87b0a41f1A0720687a03eE2e5Cbe1F; - // https://testnet.snowtrace.io/address/0x9Ba30437Ba63AA2902319DE1B3f0E25a18826842 - address internal constant UI_INCENTIVE_DATA_PROVIDER = 0x9Ba30437Ba63AA2902319DE1B3f0E25a18826842; + // https://testnet.snowtrace.io/address/0x4A49351ED179b23af08523Af98a8ca95C712b9d9 + address internal constant UI_INCENTIVE_DATA_PROVIDER = 0x4A49351ED179b23af08523Af98a8ca95C712b9d9; - // https://testnet.snowtrace.io/address/0x43fAE24bd7eA952B4000Ea3A2e0D8B50CA64EBbA - address internal constant WALLET_BALANCE_PROVIDER = 0x43fAE24bd7eA952B4000Ea3A2e0D8B50CA64EBbA; + // https://testnet.snowtrace.io/address/0xC5dfC5E3a5099A6456a8BF20D7497Eb76358899F + address internal constant UI_POOL_DATA_PROVIDER = 0xC5dfC5E3a5099A6456a8BF20D7497Eb76358899F; - // https://testnet.snowtrace.io/address/0x3d2ee1AB8C3a597cDf80273C684dE0036481bE3a - address internal constant WETH_GATEWAY = 0x3d2ee1AB8C3a597cDf80273C684dE0036481bE3a; + // https://testnet.snowtrace.io/address/0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520 + address internal constant WALLET_BALANCE_PROVIDER = 0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520; + + // https://testnet.snowtrace.io/address/0x46Dcd5F4600319b02649Fd76B55aA6c1035CA478 + address internal constant WETH_GATEWAY = 0x46Dcd5F4600319b02649Fd76B55aA6c1035CA478; } library AaveV3FujiAssets { - // https://testnet.snowtrace.io/address/0x5425890298aed601595a70AB815c96711a31Bc65 - address internal constant USDC_UNDERLYING = 0x5425890298aed601595a70AB815c96711a31Bc65; + // https://testnet.snowtrace.io/address/0x89502c3731F69DDC95B65753708A07F8Cd0373F4 + address internal constant USDC_UNDERLYING = 0x89502c3731F69DDC95B65753708A07F8Cd0373F4; uint8 internal constant USDC_DECIMALS = 6; - // https://testnet.snowtrace.io/address/0x9CFcc1B289E59FBe1E769f020C77315DF8473760 - address internal constant USDC_A_TOKEN = 0x9CFcc1B289E59FBe1E769f020C77315DF8473760; + // https://testnet.snowtrace.io/address/0x9FA9607021A7d4e0570f3686632121945EB1FE5F + address internal constant USDC_A_TOKEN = 0x9FA9607021A7d4e0570f3686632121945EB1FE5F; - // https://testnet.snowtrace.io/address/0x92cb483760299e69d31f59050cfD5937B8730E48 - address internal constant USDC_V_TOKEN = 0x92cb483760299e69d31f59050cfD5937B8730E48; + // https://testnet.snowtrace.io/address/0x6396fD2e4Eb71B9bbf6c0fE6Dc6Aa4977F6aaBE7 + address internal constant USDC_V_TOKEN = 0x6396fD2e4Eb71B9bbf6c0fE6Dc6Aa4977F6aaBE7; // https://testnet.snowtrace.io/address/0x97FE42a7E96640D932bbc0e1580c73E705A8EB73 address internal constant USDC_ORACLE = 0x97FE42a7E96640D932bbc0e1580c73E705A8EB73; - // https://testnet.snowtrace.io/address/0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461 + // https://testnet.snowtrace.io/address/0x5C2e738F6E27bCE0F7558051Bf90605dD6176900 address internal constant USDC_INTEREST_RATE_STRATEGY = - 0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461; + 0x5C2e738F6E27bCE0F7558051Bf90605dD6176900; - // https://testnet.snowtrace.io/address/0x5E44db7996c682E92a960b65AC713a54AD815c6B - address internal constant EURC_UNDERLYING = 0x5E44db7996c682E92a960b65AC713a54AD815c6B; + // https://testnet.snowtrace.io/address/0x96dFCCB3F9ACDaF6c8f8a35E814023C3484d1eA2 + address internal constant USDT_UNDERLYING = 0x96dFCCB3F9ACDaF6c8f8a35E814023C3484d1eA2; - uint8 internal constant EURC_DECIMALS = 6; + uint8 internal constant USDT_DECIMALS = 6; - // https://testnet.snowtrace.io/address/0xBb51336dAD7A010Ff32656b53233c2C3670cc5B9 - address internal constant EURC_A_TOKEN = 0xBb51336dAD7A010Ff32656b53233c2C3670cc5B9; + // https://testnet.snowtrace.io/address/0x7134E7dFf2fB941Fe235EC279C2e41eb18a3f66B + address internal constant USDT_A_TOKEN = 0x7134E7dFf2fB941Fe235EC279C2e41eb18a3f66B; - // https://testnet.snowtrace.io/address/0x8C776d6d7A6D250Abb1b9Ce22b4E310b95E1ef85 - address internal constant EURC_V_TOKEN = 0x8C776d6d7A6D250Abb1b9Ce22b4E310b95E1ef85; + // https://testnet.snowtrace.io/address/0x41b84B9f233e26e8D0F944e53da28ac2466007FE + address internal constant USDT_V_TOKEN = 0x41b84B9f233e26e8D0F944e53da28ac2466007FE; // https://testnet.snowtrace.io/address/0x7898AcCC83587C3C55116c5230C17a6Cd9C71bad - address internal constant EURC_ORACLE = 0x7898AcCC83587C3C55116c5230C17a6Cd9C71bad; + address internal constant USDT_ORACLE = 0x7898AcCC83587C3C55116c5230C17a6Cd9C71bad; - // https://testnet.snowtrace.io/address/0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461 - address internal constant EURC_INTEREST_RATE_STRATEGY = - 0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461; + // https://testnet.snowtrace.io/address/0x5C2e738F6E27bCE0F7558051Bf90605dD6176900 + address internal constant USDT_INTEREST_RATE_STRATEGY = + 0x5C2e738F6E27bCE0F7558051Bf90605dD6176900; - // https://testnet.snowtrace.io/address/0xd00ae08403B9bbb9124bB305C09058E32C39A48c - address internal constant WAVAX_UNDERLYING = 0xd00ae08403B9bbb9124bB305C09058E32C39A48c; + // https://testnet.snowtrace.io/address/0x4bd918F7A01b04D6dB19d5c03dB03Ec68943c02a + address internal constant WBTC_UNDERLYING = 0x4bd918F7A01b04D6dB19d5c03dB03Ec68943c02a; - uint8 internal constant WAVAX_DECIMALS = 18; + uint8 internal constant WBTC_DECIMALS = 8; - // https://testnet.snowtrace.io/address/0x50902e21C8CfB5f2e45127c1Bbcd6B985119b433 - address internal constant WAVAX_A_TOKEN = 0x50902e21C8CfB5f2e45127c1Bbcd6B985119b433; + // https://testnet.snowtrace.io/address/0xcF01643FDaE7e46a2028532De943b6a5997648aB + address internal constant WBTC_A_TOKEN = 0xcF01643FDaE7e46a2028532De943b6a5997648aB; - // https://testnet.snowtrace.io/address/0xe7CF4cE189b3a519EE2A41c18338a3bef0f28a9D - address internal constant WAVAX_V_TOKEN = 0xe7CF4cE189b3a519EE2A41c18338a3bef0f28a9D; + // https://testnet.snowtrace.io/address/0xFB9061900b5A6785b3677A06e9C7177CBD658573 + address internal constant WBTC_V_TOKEN = 0xFB9061900b5A6785b3677A06e9C7177CBD658573; - // https://testnet.snowtrace.io/address/0x5498BB86BC934c8D34FDA08E81D444153d0D06aD - address internal constant WAVAX_ORACLE = 0x5498BB86BC934c8D34FDA08E81D444153d0D06aD; + // https://testnet.snowtrace.io/address/0x31CF013A08c6Ac228C94551d535d5BAfE19c602a + address internal constant WBTC_ORACLE = 0x31CF013A08c6Ac228C94551d535d5BAfE19c602a; - // https://testnet.snowtrace.io/address/0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461 - address internal constant WAVAX_INTEREST_RATE_STRATEGY = - 0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461; + // https://testnet.snowtrace.io/address/0x5C2e738F6E27bCE0F7558051Bf90605dD6176900 + address internal constant WBTC_INTEREST_RATE_STRATEGY = + 0x5C2e738F6E27bCE0F7558051Bf90605dD6176900; - // https://testnet.snowtrace.io/address/0x22913D4E21D44EF7662B118A6540450e25fE09a9 - address internal constant USDX_UNDERLYING = 0x22913D4E21D44EF7662B118A6540450e25fE09a9; + // https://testnet.snowtrace.io/address/0xbf32c7dFC72b730967072B112927ca0de205dbb5 + address internal constant WETH_UNDERLYING = 0xbf32c7dFC72b730967072B112927ca0de205dbb5; - uint8 internal constant USDX_DECIMALS = 18; + uint8 internal constant WETH_DECIMALS = 18; - // https://testnet.snowtrace.io/address/0x687b7a6Ea699E0652552Cd8C86aA764eF33f285d - address internal constant USDX_A_TOKEN = 0x687b7a6Ea699E0652552Cd8C86aA764eF33f285d; + // https://testnet.snowtrace.io/address/0x399383e30A89db93C791C2f23Fb331F246Af3094 + address internal constant WETH_A_TOKEN = 0x399383e30A89db93C791C2f23Fb331F246Af3094; - // https://testnet.snowtrace.io/address/0x8ECa241b42f89EcA1F790A1Bd908a0F73F8e1A11 - address internal constant USDX_V_TOKEN = 0x8ECa241b42f89EcA1F790A1Bd908a0F73F8e1A11; + // https://testnet.snowtrace.io/address/0x6d98C06dCd3c2F51173186999A9F9824fF8C8851 + address internal constant WETH_V_TOKEN = 0x6d98C06dCd3c2F51173186999A9F9824fF8C8851; - // https://testnet.snowtrace.io/address/0x97FE42a7E96640D932bbc0e1580c73E705A8EB73 - address internal constant USDX_ORACLE = 0x97FE42a7E96640D932bbc0e1580c73E705A8EB73; + // https://testnet.snowtrace.io/address/0x86d67c3D38D2bCeE722E601025C25a575021c6EA + address internal constant WETH_ORACLE = 0x86d67c3D38D2bCeE722E601025C25a575021c6EA; + + // https://testnet.snowtrace.io/address/0x5C2e738F6E27bCE0F7558051Bf90605dD6176900 + address internal constant WETH_INTEREST_RATE_STRATEGY = + 0x5C2e738F6E27bCE0F7558051Bf90605dD6176900; + + // https://testnet.snowtrace.io/address/0x96Cf2f5dDEcE1b3060ddC3bE4021b2B84Aa882eA + address internal constant LINK_UNDERLYING = 0x96Cf2f5dDEcE1b3060ddC3bE4021b2B84Aa882eA; + + uint8 internal constant LINK_DECIMALS = 18; + + // https://testnet.snowtrace.io/address/0xC854512a8587Ac65AFED436aaa42ae93BF909606 + address internal constant LINK_A_TOKEN = 0xC854512a8587Ac65AFED436aaa42ae93BF909606; + + // https://testnet.snowtrace.io/address/0xAf14D1181650aFD20124d0fF9276Dcf01Eb9d4Ad + address internal constant LINK_V_TOKEN = 0xAf14D1181650aFD20124d0fF9276Dcf01Eb9d4Ad; - // https://testnet.snowtrace.io/address/0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461 - address internal constant USDX_INTEREST_RATE_STRATEGY = - 0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461; + // https://testnet.snowtrace.io/address/0x34C4c526902d88a3Aa98DB8a9b802603EB1E3470 + address internal constant LINK_ORACLE = 0x34C4c526902d88a3Aa98DB8a9b802603EB1E3470; - // https://testnet.snowtrace.io/address/0x17Bb5B12D6716FC96565dB996DAFC7F7a731731F - address internal constant USDX_STATA_TOKEN = 0x17Bb5B12D6716FC96565dB996DAFC7F7a731731F; + // https://testnet.snowtrace.io/address/0x5C2e738F6E27bCE0F7558051Bf90605dD6176900 + address internal constant LINK_INTEREST_RATE_STRATEGY = + 0x5C2e738F6E27bCE0F7558051Bf90605dD6176900; + + // https://testnet.snowtrace.io/address/0xd00ae08403B9bbb9124bB305C09058E32C39A48c + address internal constant WAVAX_UNDERLYING = 0xd00ae08403B9bbb9124bB305C09058E32C39A48c; + + uint8 internal constant WAVAX_DECIMALS = 18; + + // https://testnet.snowtrace.io/address/0x160c02B4d3609D9c12526Edf2C9977bE8E4C16BD + address internal constant WAVAX_A_TOKEN = 0x160c02B4d3609D9c12526Edf2C9977bE8E4C16BD; + + // https://testnet.snowtrace.io/address/0x4738A050aE2185b70D35E09586bC07DC7432CDB0 + address internal constant WAVAX_V_TOKEN = 0x4738A050aE2185b70D35E09586bC07DC7432CDB0; + + // https://testnet.snowtrace.io/address/0x5498BB86BC934c8D34FDA08E81D444153d0D06aD + address internal constant WAVAX_ORACLE = 0x5498BB86BC934c8D34FDA08E81D444153d0D06aD; + + // https://testnet.snowtrace.io/address/0x5C2e738F6E27bCE0F7558051Bf90605dD6176900 + address internal constant WAVAX_INTEREST_RATE_STRATEGY = + 0x5C2e738F6E27bCE0F7558051Bf90605dD6176900; } library AaveV3FujiEModes { uint8 internal constant NONE = 0; } library AaveV3FujiExternalLibraries { - // https://testnet.snowtrace.io/address/0xb32381feFFF45eE9F47fD2f2cF83C832637d6EF0 - address internal constant FLASHLOAN_LOGIC = 0xb32381feFFF45eE9F47fD2f2cF83C832637d6EF0; + // https://testnet.snowtrace.io/address/0x88ef49f4c9Fa5b7e9aD491e357bCE209136B73B2 + address internal constant FLASHLOAN_LOGIC = 0x88ef49f4c9Fa5b7e9aD491e357bCE209136B73B2; - // https://testnet.snowtrace.io/address/0x4c52FE2162200bf26c314d7bbd8611699139d553 - address internal constant BORROW_LOGIC = 0x4c52FE2162200bf26c314d7bbd8611699139d553; + // https://testnet.snowtrace.io/address/0xf3fFcAaF82781ea94a986955282a43d53E892d6d + address internal constant BORROW_LOGIC = 0xf3fFcAaF82781ea94a986955282a43d53E892d6d; - // https://testnet.snowtrace.io/address/0x97dCbFaE5372A63128F141E8C0BC2c871Ca5F604 - address internal constant BRIDGE_LOGIC = 0x97dCbFaE5372A63128F141E8C0BC2c871Ca5F604; + // https://testnet.snowtrace.io/address/0x046a86D2CC3a6B6eEE48bC273ec45a352c1A4939 + address internal constant BRIDGE_LOGIC = 0x046a86D2CC3a6B6eEE48bC273ec45a352c1A4939; - // https://testnet.snowtrace.io/address/0x88F864670De467aA73CD45325F9652C578C8AB85 - address internal constant E_MODE_LOGIC = 0x88F864670De467aA73CD45325F9652C578C8AB85; + // https://testnet.snowtrace.io/address/0x1ae5467053e80525836ec34E1F2183E540472C42 + address internal constant E_MODE_LOGIC = 0x1ae5467053e80525836ec34E1F2183E540472C42; - // https://testnet.snowtrace.io/address/0x80d16970B31243Fe67DaB028115f3E4c3E3510Ad - address internal constant LIQUIDATION_LOGIC = 0x80d16970B31243Fe67DaB028115f3E4c3E3510Ad; + // https://testnet.snowtrace.io/address/0x6242a8000349cfBC01529601BB5A50CF016A09b9 + address internal constant LIQUIDATION_LOGIC = 0x6242a8000349cfBC01529601BB5A50CF016A09b9; - // https://testnet.snowtrace.io/address/0xA58FB47bE9074828215A173564C0CD10f6F249bf - address internal constant POOL_LOGIC = 0xA58FB47bE9074828215A173564C0CD10f6F249bf; + // https://testnet.snowtrace.io/address/0xE8bC3727A04d5af05186e2E6475Ce64CA9B1F0aF + address internal constant POOL_LOGIC = 0xE8bC3727A04d5af05186e2E6475Ce64CA9B1F0aF; - // https://testnet.snowtrace.io/address/0x2b22E425C1322fbA0DbF17bb1dA25d71811EE7ba - address internal constant SUPPLY_LOGIC = 0x2b22E425C1322fbA0DbF17bb1dA25d71811EE7ba; + // https://testnet.snowtrace.io/address/0x20D9ead63fA4e8aC2ADc9eF86ac7062832b29480 + address internal constant SUPPLY_LOGIC = 0x20D9ead63fA4e8aC2ADc9eF86ac7062832b29480; } diff --git a/src/MiscBaseSepolia.sol b/src/MiscBaseSepolia.sol index 337677f2..3c2fe338 100644 --- a/src/MiscBaseSepolia.sol +++ b/src/MiscBaseSepolia.sol @@ -3,12 +3,15 @@ pragma solidity >=0.6.0; library MiscBaseSepolia { - // https://sepolia.basescan.org/address/0xd1B3E25fD7C8AE7CADDC6F71b461b79CD4ddcFa3 - address internal constant TRANSPARENT_PROXY_FACTORY = 0xd1B3E25fD7C8AE7CADDC6F71b461b79CD4ddcFa3; + // https://sepolia.basescan.org/address/0x95F99D1695c866FEb16657cCA8E91437a50D2a5e + address internal constant TRANSPARENT_PROXY_FACTORY = 0x95F99D1695c866FEb16657cCA8E91437a50D2a5e; - // https://sepolia.basescan.org/address/0xbeCE3Cb857644b44Bb44084f9AfE784473ADb17B - address internal constant PROXY_ADMIN = 0xbeCE3Cb857644b44Bb44084f9AfE784473ADb17B; + // https://sepolia.basescan.org/address/0x6CBc6928Ad317F60E8880C43479850F2190F2a0B + address internal constant PROXY_ADMIN = 0x6CBc6928Ad317F60E8880C43479850F2190F2a0B; // https://sepolia.basescan.org/address/0x7CFa3f3d1cded0Da930881c609D4Dbf0012c14Bb address internal constant GHO_TOKEN = 0x7CFa3f3d1cded0Da930881c609D4Dbf0012c14Bb; + + // https://sepolia.basescan.org/address/0xD9145b5F45Ad4519c7ACcD6E0A4A82e83bB8A6Dc + address internal constant FAUCET = 0xD9145b5F45Ad4519c7ACcD6E0A4A82e83bB8A6Dc; } diff --git a/src/MiscFuji.sol b/src/MiscFuji.sol index 8eb895fd..ff68e931 100644 --- a/src/MiscFuji.sol +++ b/src/MiscFuji.sol @@ -6,9 +6,12 @@ library MiscFuji { // https://testnet.snowtrace.io/address/0x9c04928Cc678776eC1C1C0E46ecC03a5F47A7723 address internal constant GHO_TOKEN = 0x9c04928Cc678776eC1C1C0E46ecC03a5F47A7723; - // https://testnet.snowtrace.io/address/0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731 - address internal constant TRANSPARENT_PROXY_FACTORY = 0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731; + // https://testnet.snowtrace.io/address/0x421117D7319E96d831972b3F7e970bbfe29C4F21 + address internal constant TRANSPARENT_PROXY_FACTORY = 0x421117D7319E96d831972b3F7e970bbfe29C4F21; - // https://testnet.snowtrace.io/address/0x440F1b750Cbc7DDd2Bd9Af279Afe422EaeE58b41 - address internal constant PROXY_ADMIN = 0x440F1b750Cbc7DDd2Bd9Af279Afe422EaeE58b41; + // https://testnet.snowtrace.io/address/0xd6a6339c6C1B5a8792afA6e0E80b1908b8579f51 + address internal constant PROXY_ADMIN = 0xd6a6339c6C1B5a8792afA6e0E80b1908b8579f51; + + // https://testnet.snowtrace.io/address/0x48B5bD96e36a9c0D0eA3f07d3b3dA34bBD514fB3 + address internal constant FAUCET = 0x48B5bD96e36a9c0D0eA3f07d3b3dA34bBD514fB3; } diff --git a/src/ts/AaveV3BaseSepoliaLido.ts b/src/ts/AaveV3BaseSepoliaLido.ts index 79fa4977..d55b35e3 100644 --- a/src/ts/AaveV3BaseSepoliaLido.ts +++ b/src/ts/AaveV3BaseSepoliaLido.ts @@ -1,114 +1,126 @@ // AUTOGENERATED - MANUALLY CHANGES WILL BE REVERTED BY THE GENERATOR -// IPoolAddressesProvider https://sepolia.basescan.org/address/0x6f7E694fe5250Ce638fFE95524760422E6e41997 -export const POOL_ADDRESSES_PROVIDER = '0x6f7E694fe5250Ce638fFE95524760422E6e41997'; +// IPoolAddressesProvider https://sepolia.basescan.org/address/0xc08746B8A3bE6ebbB1a8C0b3e7474EB4A0d6F9fb +export const POOL_ADDRESSES_PROVIDER = '0xc08746B8A3bE6ebbB1a8C0b3e7474EB4A0d6F9fb'; -// IPool https://sepolia.basescan.org/address/0x423b16E67D9b7ea095Bc443F1Cb9621c54A3db1D -export const POOL = '0x423b16E67D9b7ea095Bc443F1Cb9621c54A3db1D'; +// IPool https://sepolia.basescan.org/address/0x7b2F44923254d438556CA0faC364920e72b700c0 +export const POOL = '0x7b2F44923254d438556CA0faC364920e72b700c0'; -// IPoolConfigurator https://sepolia.basescan.org/address/0xb5264423c271310dB16be084dA3e360d6c4A8b85 -export const POOL_CONFIGURATOR = '0xb5264423c271310dB16be084dA3e360d6c4A8b85'; +// IPoolConfigurator https://sepolia.basescan.org/address/0xf6CB188D70aF9bFeF1f932BE34563eb87443bb12 +export const POOL_CONFIGURATOR = '0xf6CB188D70aF9bFeF1f932BE34563eb87443bb12'; -// IAaveOracle https://sepolia.basescan.org/address/0xfaec2d4b5971C9C18Ec25363C34B8a9A7658EBB6 -export const ORACLE = '0xfaec2d4b5971C9C18Ec25363C34B8a9A7658EBB6'; +// IAaveOracle https://sepolia.basescan.org/address/0x351c866eF5876b591C695E12e662bED68C1E5c74 +export const ORACLE = '0x351c866eF5876b591C695E12e662bED68C1E5c74'; -// https://sepolia.basescan.org/address/0x6ec33534BE07d45cc4E02Fbd127F8ed2aE919a6b -export const ACL_ADMIN = '0x6ec33534BE07d45cc4E02Fbd127F8ed2aE919a6b'; +// https://sepolia.basescan.org/address/0x956DE559DFc27678FD69d4f49f485196b50BDD0F +export const ACL_ADMIN = '0x956DE559DFc27678FD69d4f49f485196b50BDD0F'; -// IACLManager https://sepolia.basescan.org/address/0x7C5Bd69e2842363139C2CA726baAd128B0B19976 -export const ACL_MANAGER = '0x7C5Bd69e2842363139C2CA726baAd128B0B19976'; +// IACLManager https://sepolia.basescan.org/address/0x4F987c03244d92793e92BA573AF377424Ad8cC1b +export const ACL_MANAGER = '0x4F987c03244d92793e92BA573AF377424Ad8cC1b'; -// IPoolDataProvider https://sepolia.basescan.org/address/0xa8746Cea97Da240EC45A5b5890b1071990288e34 -export const AAVE_PROTOCOL_DATA_PROVIDER = '0xa8746Cea97Da240EC45A5b5890b1071990288e34'; +// IPoolDataProvider https://sepolia.basescan.org/address/0xF79eD307027B94e2aD0d91101Cf4650266475924 +export const AAVE_PROTOCOL_DATA_PROVIDER = '0xF79eD307027B94e2aD0d91101Cf4650266475924'; -// https://sepolia.basescan.org/address/0x532fF7D5c6Df153De1329Af43a36FFF3D12e7316 -export const POOL_IMPL = '0x532fF7D5c6Df153De1329Af43a36FFF3D12e7316'; +// https://sepolia.basescan.org/address/0xBBAce2C0D027c15dA142E3C1B5B1c7a1d8530443 +export const POOL_IMPL = '0xBBAce2C0D027c15dA142E3C1B5B1c7a1d8530443'; -// https://sepolia.basescan.org/address/0xf2746E1f8538479a299083E12230550C40F899d7 -export const POOL_CONFIGURATOR_IMPL = '0xf2746E1f8538479a299083E12230550C40F899d7'; +// https://sepolia.basescan.org/address/0x14Cfd46aD03b9563B46c12ee7f3247EA27445669 +export const POOL_CONFIGURATOR_IMPL = '0x14Cfd46aD03b9563B46c12ee7f3247EA27445669'; -// https://sepolia.basescan.org/address/0x543f2b0C2085E74b9A1c3A2D0f35825D9D02237D -export const DEFAULT_INCENTIVES_CONTROLLER = '0x543f2b0C2085E74b9A1c3A2D0f35825D9D02237D'; +// https://sepolia.basescan.org/address/0xFEC49bCa4A83502E57d716B5578249C5e1872dE8 +export const DEFAULT_INCENTIVES_CONTROLLER = '0xFEC49bCa4A83502E57d716B5578249C5e1872dE8'; -// https://sepolia.basescan.org/address/0x635b4a9ec6c6B6b764347edc343CFf091FbAE0Ad -export const EMISSION_MANAGER = '0x635b4a9ec6c6B6b764347edc343CFf091FbAE0Ad'; +// https://sepolia.basescan.org/address/0xa6AE0751dc06EE8dE771905bEa435a35c7C05A1b +export const EMISSION_MANAGER = '0xa6AE0751dc06EE8dE771905bEa435a35c7C05A1b'; -// ICollector https://sepolia.basescan.org/address/0xA49b77212c4a6C689B78CfA448bb2cd254E87c07 -export const COLLECTOR = '0xA49b77212c4a6C689B78CfA448bb2cd254E87c07'; +// ICollector https://sepolia.basescan.org/address/0x073479553F63C7f91080491dE2F48E7AbB9D5013 +export const COLLECTOR = '0x073479553F63C7f91080491dE2F48E7AbB9D5013'; -// https://sepolia.basescan.org/address/0x0Ff3278B57a550767ccec8452f16BD31E7C72238 -export const DEFAULT_A_TOKEN_IMPL_REV_1 = '0x0Ff3278B57a550767ccec8452f16BD31E7C72238'; +// https://sepolia.basescan.org/address/0x6AE08bFee892fA655082CE3Ef99ebE7b83EDC422 +export const DEFAULT_A_TOKEN_IMPL_REV_1 = '0x6AE08bFee892fA655082CE3Ef99ebE7b83EDC422'; -// https://sepolia.basescan.org/address/0xf45B94a4B54318c1A4Fe1287B38370F6FC638B61 -export const DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1 = '0xf45B94a4B54318c1A4Fe1287B38370F6FC638B61'; +// https://sepolia.basescan.org/address/0x6A173B0E7b2189b0Ba4FCb5bFF55D70Ed91443A6 +export const DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1 = '0x6A173B0E7b2189b0Ba4FCb5bFF55D70Ed91443A6'; -// https://sepolia.basescan.org/address/0x7e66C9c25E91200b8713d5E926b0e12496636dF5 -export const CONFIG_ENGINE = '0x7e66C9c25E91200b8713d5E926b0e12496636dF5'; +// https://sepolia.basescan.org/address/0x949addAD066F276c216B9892ae4a19D39fA394E1 +export const STATA_FACTORY = '0x949addAD066F276c216B9892ae4a19D39fA394E1'; -// https://sepolia.basescan.org/address/0xEC239206602f299b5d0A7dDfd7A9ed1F2ebeE020 -export const L2_ENCODER = '0xEC239206602f299b5d0A7dDfd7A9ed1F2ebeE020'; +// https://sepolia.basescan.org/address/0x39471096B7EE44d50ba01b978a06d88D164446e3 +export const CONFIG_ENGINE = '0x39471096B7EE44d50ba01b978a06d88D164446e3'; -// https://sepolia.basescan.org/address/0xDda880c5Cf474b68cc79f89fa2A2F8513015FF20 -export const POOL_ADDRESSES_PROVIDER_REGISTRY = '0xDda880c5Cf474b68cc79f89fa2A2F8513015FF20'; +// https://sepolia.basescan.org/address/0x88BA56c5e38536378B17376945f0670F66964714 +export const L2_ENCODER = '0x88BA56c5e38536378B17376945f0670F66964714'; -// https://sepolia.basescan.org/address/0xAc5Cc0A193C6FAc2616c7c5FACfd1C9DB909371C -export const UI_INCENTIVE_DATA_PROVIDER = '0xAc5Cc0A193C6FAc2616c7c5FACfd1C9DB909371C'; +// https://sepolia.basescan.org/address/0xed20622f29362aeAa2B2e8833a65b30c2B83A0DC +export const POOL_ADDRESSES_PROVIDER_REGISTRY = '0xed20622f29362aeAa2B2e8833a65b30c2B83A0DC'; -// https://sepolia.basescan.org/address/0x912D4A80f8cA3959eB49Ce38f060c46323D1e3A4 -export const UI_POOL_DATA_PROVIDER = '0x912D4A80f8cA3959eB49Ce38f060c46323D1e3A4'; +// https://sepolia.basescan.org/address/0x1A706064675d226ABeFA50124e68a422d9FE777a +export const UI_INCENTIVE_DATA_PROVIDER = '0x1A706064675d226ABeFA50124e68a422d9FE777a'; -// https://sepolia.basescan.org/address/0x2a5208950631917efE7EbE969eC1be68EE46AB16 -export const WALLET_BALANCE_PROVIDER = '0x2a5208950631917efE7EbE969eC1be68EE46AB16'; +// https://sepolia.basescan.org/address/0xB177501db055d357587Ab973f8D7748588A8A8B5 +export const UI_POOL_DATA_PROVIDER = '0xB177501db055d357587Ab973f8D7748588A8A8B5'; -// https://sepolia.basescan.org/address/0x63bBa35193cB5E061E8F0318F8A1788EA34E5198 -export const WETH_GATEWAY = '0x63bBa35193cB5E061E8F0318F8A1788EA34E5198'; +// https://sepolia.basescan.org/address/0x29e4a5A618845250383dCd33DD0a5A4223c26Acd +export const WALLET_BALANCE_PROVIDER = '0x29e4a5A618845250383dCd33DD0a5A4223c26Acd'; + +// https://sepolia.basescan.org/address/0x85c10e659FcEB9319248d88f82E5e0c8cb0Bc000 +export const WETH_GATEWAY = '0x85c10e659FcEB9319248d88f82E5e0c8cb0Bc000'; export const CHAIN_ID = 84532; export const ASSETS = { USDC: { - decimals: 18, + decimals: 6, id: 0, - UNDERLYING: '0x31DeecB1f03D68154fB7d86EA54F3276afDC33e3', - A_TOKEN: '0x005E9Aea520839b897FC97cfBc39bbc58539Ee8B', - V_TOKEN: '0x31cC4e1faA41C748e4aA4E2e7CA0E7C03B39092E', - INTEREST_RATE_STRATEGY: '0x25286160e24a8567B24649AD230f581BC9DC1a66', + UNDERLYING: '0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f', + A_TOKEN: '0xaF163ca48f93776195D472954dcad349528678aF', + V_TOKEN: '0x040a0aCdBd42f7f0c605423Aacc6abB47d7cB42C', + INTEREST_RATE_STRATEGY: '0x25203996df0d836EC9E2b4f92EAd42E8b424C865', ORACLE: '0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165', }, USDT: { - decimals: 18, + decimals: 6, id: 1, - UNDERLYING: '0x3cbFF758cB60163f5C59055f0e89cBc60699A143', - A_TOKEN: '0x1f1258B4584E7227F0A1d8c6f6503Bc1eEE72734', - V_TOKEN: '0x737c471a6eE5891C554B87127dE5bF95B5806374', - INTEREST_RATE_STRATEGY: '0x25286160e24a8567B24649AD230f581BC9DC1a66', + UNDERLYING: '0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a', + A_TOKEN: '0xA98575847a756085DDD61329EfEE7CDab4BB92A0', + V_TOKEN: '0xd37D7004D54d1F779BC788193C72AC6C826e9046', + INTEREST_RATE_STRATEGY: '0x25203996df0d836EC9E2b4f92EAd42E8b424C865', ORACLE: '0x3ec8593F930EA45ea58c968260e6e9FF53FC934f', }, - DAI: { - decimals: 18, + WBTC: { + decimals: 8, id: 2, - UNDERLYING: '0x9320CDD004557870e6066fEf0C88B46F9fCeA9e0', - A_TOKEN: '0x5c941817F022fc61bB4587E7983fD7ed95B9117e', - V_TOKEN: '0x5fba1aBb20B8F1C558992557Bc0d74C5Af9F04d7', - INTEREST_RATE_STRATEGY: '0x25286160e24a8567B24649AD230f581BC9DC1a66', - ORACLE: '0xD1092a65338d049DB68D7Be6bD89d17a0929945e', + UNDERLYING: '0x54114591963CF60EF3aA63bEfD6eC263D98145a4', + A_TOKEN: '0x3c93A2c798e4759F1Af4BFA1C052A0083ccF42Ef', + V_TOKEN: '0x8D4dFea75077400457FF68A039E9c39997398b80', + INTEREST_RATE_STRATEGY: '0x25203996df0d836EC9E2b4f92EAd42E8b424C865', + ORACLE: '0x0FB99723Aee6f420beAD13e6bBB79b7E6F034298', }, WETH: { decimals: 18, id: 3, UNDERLYING: '0x4200000000000000000000000000000000000006', - A_TOKEN: '0xFBcD8add8F85BdfeDfF99E20D6fc4b215a9C96e3', - V_TOKEN: '0x1a22c2261A23516D9A14bCAbC0B6522Eb98220fF', - INTEREST_RATE_STRATEGY: '0x25286160e24a8567B24649AD230f581BC9DC1a66', + A_TOKEN: '0x713751EC1A92a78112ca3b62bace0dE9377a14b3', + V_TOKEN: '0x6b20DFD2264152431a7242771eE381E03D378D96', + INTEREST_RATE_STRATEGY: '0x25203996df0d836EC9E2b4f92EAd42E8b424C865', ORACLE: '0x4aDC67696bA383F43DD60A9e78F2C97Fbbfc7cb1', }, cbETH: { decimals: 18, id: 4, - UNDERLYING: '0xc246553D4aff65E8091ed6072bE7Db6fb5318657', - A_TOKEN: '0xeba135faBD9585Fd24879d95435F198AEb9D8a0c', - V_TOKEN: '0x4B91a4D368a92C0aF8e5dB3Fb557ee75E391695E', - INTEREST_RATE_STRATEGY: '0x25286160e24a8567B24649AD230f581BC9DC1a66', + UNDERLYING: '0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B', + A_TOKEN: '0xB542b8E3cC87B34A3F80902d9f8841D83b01d173', + V_TOKEN: '0x7352Cfa37Cd01320491C9fb53D941E511932D345', + INTEREST_RATE_STRATEGY: '0x25203996df0d836EC9E2b4f92EAd42E8b424C865', ORACLE: '0x3c65e28D357a37589e1C7C86044a9f44dDC17134', }, + LINK: { + decimals: 18, + id: 5, + UNDERLYING: '0x810D46F9a9027E28F9B01F75E2bdde839dA61115', + A_TOKEN: '0x4c9a538604BA9283eC2B2838BCB6C755B85B76Ce', + V_TOKEN: '0x1076426cDFf78456AbdCE9eD654724B914B2b318', + INTEREST_RATE_STRATEGY: '0x25203996df0d836EC9E2b4f92EAd42E8b424C865', + ORACLE: '0xb113F5A928BCfF189C998ab20d753a47F9dE5A61', + }, } as const; export const E_MODES = { '1': { @@ -116,12 +128,12 @@ export const E_MODES = { collateralBitmap: '24', collateralAssets: [ '0x4200000000000000000000000000000000000006', - '0xc246553D4aff65E8091ed6072bE7Db6fb5318657', + '0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B', ], borrowableBitmap: '24', borrowableAssets: [ '0x4200000000000000000000000000000000000006', - '0xc246553D4aff65E8091ed6072bE7Db6fb5318657', + '0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B', ], ltv: 9300, liquidationThreshold: 9500, diff --git a/src/ts/AaveV3Fuji.ts b/src/ts/AaveV3Fuji.ts index ec35e2cc..25a7f437 100644 --- a/src/ts/AaveV3Fuji.ts +++ b/src/ts/AaveV3Fuji.ts @@ -1,102 +1,122 @@ // AUTOGENERATED - MANUALLY CHANGES WILL BE REVERTED BY THE GENERATOR -// IPoolAddressesProvider https://testnet.snowtrace.io/address/0x07D04EfAAA0Ac69D19d107795aF247C42Eb50F1C -export const POOL_ADDRESSES_PROVIDER = '0x07D04EfAAA0Ac69D19d107795aF247C42Eb50F1C'; +// IPoolAddressesProvider https://testnet.snowtrace.io/address/0x83E0E6095a318446b313f7D27e0c33Ed1e9c0213 +export const POOL_ADDRESSES_PROVIDER = '0x83E0E6095a318446b313f7D27e0c33Ed1e9c0213'; -// IPool https://testnet.snowtrace.io/address/0x8B9b2AF4afB389b4a70A474dfD4AdCD4a302bb40 -export const POOL = '0x8B9b2AF4afB389b4a70A474dfD4AdCD4a302bb40'; +// IPool https://testnet.snowtrace.io/address/0xd6a6339c6C1B5a8792afA6e0E80b1908b8579f51 +export const POOL = '0xd6a6339c6C1B5a8792afA6e0E80b1908b8579f51'; -// IPoolConfigurator https://testnet.snowtrace.io/address/0xF9f36C15fBddAF0B64E0D16E4D6852B433a86cbE -export const POOL_CONFIGURATOR = '0xF9f36C15fBddAF0B64E0D16E4D6852B433a86cbE'; +// IPoolConfigurator https://testnet.snowtrace.io/address/0xaFb7Bc3f69A8Cc6a49823eFF9E3974CD49181A9c +export const POOL_CONFIGURATOR = '0xaFb7Bc3f69A8Cc6a49823eFF9E3974CD49181A9c'; -// IAaveOracle https://testnet.snowtrace.io/address/0xd36338d0F231446b36008310f1DE0812784ADeBC -export const ORACLE = '0xd36338d0F231446b36008310f1DE0812784ADeBC'; +// IAaveOracle https://testnet.snowtrace.io/address/0x4523495a435Aea946644EB1c9123Cd8BB2a5B389 +export const ORACLE = '0x4523495a435Aea946644EB1c9123Cd8BB2a5B389'; -// https://testnet.snowtrace.io/address/0x6ec33534BE07d45cc4E02Fbd127F8ed2aE919a6b -export const ACL_ADMIN = '0x6ec33534BE07d45cc4E02Fbd127F8ed2aE919a6b'; +// https://testnet.snowtrace.io/address/0x956DE559DFc27678FD69d4f49f485196b50BDD0F +export const ACL_ADMIN = '0x956DE559DFc27678FD69d4f49f485196b50BDD0F'; -// IACLManager https://testnet.snowtrace.io/address/0xa411Accec7000c52feE9bFeDaDc53E1CEF72d6d4 -export const ACL_MANAGER = '0xa411Accec7000c52feE9bFeDaDc53E1CEF72d6d4'; +// IACLManager https://testnet.snowtrace.io/address/0xE99aeEaaBA947D8f96A20ceD6Ff3d157cd3529E8 +export const ACL_MANAGER = '0xE99aeEaaBA947D8f96A20ceD6Ff3d157cd3529E8'; -// IPoolDataProvider https://testnet.snowtrace.io/address/0xC65cbd1e309Bf0e841Ee6f6E786480598e6a4014 -export const AAVE_PROTOCOL_DATA_PROVIDER = '0xC65cbd1e309Bf0e841Ee6f6E786480598e6a4014'; +// IPoolDataProvider https://testnet.snowtrace.io/address/0x9153c061f54bA728F892979522A1462386694c86 +export const AAVE_PROTOCOL_DATA_PROVIDER = '0x9153c061f54bA728F892979522A1462386694c86'; -// https://testnet.snowtrace.io/address/0xff1DB744F1275f8e04A62A7E5D663575F3a774B6 -export const POOL_IMPL = '0xff1DB744F1275f8e04A62A7E5D663575F3a774B6'; +// https://testnet.snowtrace.io/address/0xd8247C7926841337E8adf9fD9E87026992C45062 +export const POOL_IMPL = '0xd8247C7926841337E8adf9fD9E87026992C45062'; -// https://testnet.snowtrace.io/address/0x782559e349b084bB7C07c08404aE6E3436cDAE2E -export const POOL_CONFIGURATOR_IMPL = '0x782559e349b084bB7C07c08404aE6E3436cDAE2E'; +// https://testnet.snowtrace.io/address/0x294daB91f3539f5a74Ed995a59235eE62A14A345 +export const POOL_CONFIGURATOR_IMPL = '0x294daB91f3539f5a74Ed995a59235eE62A14A345'; -// https://testnet.snowtrace.io/address/0x03aFC1Dfb53eae8eB7BE0E8CB6524aa79C3F8578 -export const DEFAULT_INCENTIVES_CONTROLLER = '0x03aFC1Dfb53eae8eB7BE0E8CB6524aa79C3F8578'; +// https://testnet.snowtrace.io/address/0x6FAa7a29d4Af1Dc2acbC58cff158d367E3436CB9 +export const DEFAULT_INCENTIVES_CONTROLLER = '0x6FAa7a29d4Af1Dc2acbC58cff158d367E3436CB9'; -// https://testnet.snowtrace.io/address/0xa46F32c76cAE9Fd34afB8029dE9c30b7F86bFA58 -export const EMISSION_MANAGER = '0xa46F32c76cAE9Fd34afB8029dE9c30b7F86bFA58'; +// https://testnet.snowtrace.io/address/0x22baB145Ce9585761437c2878ac62Fe4C442e591 +export const EMISSION_MANAGER = '0x22baB145Ce9585761437c2878ac62Fe4C442e591'; -// ICollector https://testnet.snowtrace.io/address/0xEd5b0b955C70Fd97557EF9Af2c9bA902Ad1F2AA9 -export const COLLECTOR = '0xEd5b0b955C70Fd97557EF9Af2c9bA902Ad1F2AA9'; +// ICollector https://testnet.snowtrace.io/address/0x8c31CD3ce60584c26eA49A1E2dF900247de3b517 +export const COLLECTOR = '0x8c31CD3ce60584c26eA49A1E2dF900247de3b517'; -// https://testnet.snowtrace.io/address/0xeF4d1F3F0dCe46C1Ad684F23Ea3aA542592A8cFe -export const DEFAULT_A_TOKEN_IMPL_REV_1 = '0xeF4d1F3F0dCe46C1Ad684F23Ea3aA542592A8cFe'; +// https://testnet.snowtrace.io/address/0xD63f7658C66B2934Bd234D79D06aEF5290734B30 +export const DEFAULT_A_TOKEN_IMPL_REV_1 = '0xD63f7658C66B2934Bd234D79D06aEF5290734B30'; -// https://testnet.snowtrace.io/address/0x21CcaD436A6c762B919dB7cb07C5082a43DB2589 -export const DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1 = '0x21CcaD436A6c762B919dB7cb07C5082a43DB2589'; +// https://testnet.snowtrace.io/address/0xD8994FE9B79f99CD0b13AE946F5cd866c6d12d00 +export const DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1 = '0xD8994FE9B79f99CD0b13AE946F5cd866c6d12d00'; -// https://testnet.snowtrace.io/address/0x4058FE01Aa090E0841F4E08f79D2607C4861142E -export const CONFIG_ENGINE = '0x4058FE01Aa090E0841F4E08f79D2607C4861142E'; +// https://testnet.snowtrace.io/address/0xdFf435BCcf782f11187D3a4454d96702eD78e092 +export const CONFIG_ENGINE = '0xdFf435BCcf782f11187D3a4454d96702eD78e092'; -// https://testnet.snowtrace.io/address/0x9E7DF170E44093d6738057157CA048794B02555d -export const POOL_ADDRESSES_PROVIDER_REGISTRY = '0x9E7DF170E44093d6738057157CA048794B02555d'; +// https://testnet.snowtrace.io/address/0x0AfF487736AAF982A90Fe996Afa43Dfa05646C0c +export const POOL_ADDRESSES_PROVIDER_REGISTRY = '0x0AfF487736AAF982A90Fe996Afa43Dfa05646C0c'; -// https://testnet.snowtrace.io/address/0xc344A904BFd1E11AD58a18847940637C35f28ce4 -export const STATA_FACTORY = '0xc344A904BFd1E11AD58a18847940637C35f28ce4'; +// https://testnet.snowtrace.io/address/0xC400635a7a87b0a41f1A0720687a03eE2e5Cbe1F +export const STATA_FACTORY = '0xC400635a7a87b0a41f1A0720687a03eE2e5Cbe1F'; -// https://testnet.snowtrace.io/address/0x9Ba30437Ba63AA2902319DE1B3f0E25a18826842 -export const UI_INCENTIVE_DATA_PROVIDER = '0x9Ba30437Ba63AA2902319DE1B3f0E25a18826842'; +// https://testnet.snowtrace.io/address/0x4A49351ED179b23af08523Af98a8ca95C712b9d9 +export const UI_INCENTIVE_DATA_PROVIDER = '0x4A49351ED179b23af08523Af98a8ca95C712b9d9'; -// https://testnet.snowtrace.io/address/0x43fAE24bd7eA952B4000Ea3A2e0D8B50CA64EBbA -export const WALLET_BALANCE_PROVIDER = '0x43fAE24bd7eA952B4000Ea3A2e0D8B50CA64EBbA'; +// https://testnet.snowtrace.io/address/0xC5dfC5E3a5099A6456a8BF20D7497Eb76358899F +export const UI_POOL_DATA_PROVIDER = '0xC5dfC5E3a5099A6456a8BF20D7497Eb76358899F'; -// https://testnet.snowtrace.io/address/0x3d2ee1AB8C3a597cDf80273C684dE0036481bE3a -export const WETH_GATEWAY = '0x3d2ee1AB8C3a597cDf80273C684dE0036481bE3a'; +// https://testnet.snowtrace.io/address/0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520 +export const WALLET_BALANCE_PROVIDER = '0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520'; + +// https://testnet.snowtrace.io/address/0x46Dcd5F4600319b02649Fd76B55aA6c1035CA478 +export const WETH_GATEWAY = '0x46Dcd5F4600319b02649Fd76B55aA6c1035CA478'; export const CHAIN_ID = 43113; export const ASSETS = { USDC: { decimals: 6, id: 0, - UNDERLYING: '0x5425890298aed601595a70AB815c96711a31Bc65', - A_TOKEN: '0x9CFcc1B289E59FBe1E769f020C77315DF8473760', - V_TOKEN: '0x92cb483760299e69d31f59050cfD5937B8730E48', - INTEREST_RATE_STRATEGY: '0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461', + UNDERLYING: '0x89502c3731F69DDC95B65753708A07F8Cd0373F4', + A_TOKEN: '0x9FA9607021A7d4e0570f3686632121945EB1FE5F', + V_TOKEN: '0x6396fD2e4Eb71B9bbf6c0fE6Dc6Aa4977F6aaBE7', + INTEREST_RATE_STRATEGY: '0x5C2e738F6E27bCE0F7558051Bf90605dD6176900', ORACLE: '0x97FE42a7E96640D932bbc0e1580c73E705A8EB73', }, - EURC: { + USDT: { decimals: 6, id: 1, - UNDERLYING: '0x5E44db7996c682E92a960b65AC713a54AD815c6B', - A_TOKEN: '0xBb51336dAD7A010Ff32656b53233c2C3670cc5B9', - V_TOKEN: '0x8C776d6d7A6D250Abb1b9Ce22b4E310b95E1ef85', - INTEREST_RATE_STRATEGY: '0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461', + UNDERLYING: '0x96dFCCB3F9ACDaF6c8f8a35E814023C3484d1eA2', + A_TOKEN: '0x7134E7dFf2fB941Fe235EC279C2e41eb18a3f66B', + V_TOKEN: '0x41b84B9f233e26e8D0F944e53da28ac2466007FE', + INTEREST_RATE_STRATEGY: '0x5C2e738F6E27bCE0F7558051Bf90605dD6176900', ORACLE: '0x7898AcCC83587C3C55116c5230C17a6Cd9C71bad', }, - WAVAX: { - decimals: 18, + WBTC: { + decimals: 8, id: 2, - UNDERLYING: '0xd00ae08403B9bbb9124bB305C09058E32C39A48c', - A_TOKEN: '0x50902e21C8CfB5f2e45127c1Bbcd6B985119b433', - V_TOKEN: '0xe7CF4cE189b3a519EE2A41c18338a3bef0f28a9D', - INTEREST_RATE_STRATEGY: '0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461', - ORACLE: '0x5498BB86BC934c8D34FDA08E81D444153d0D06aD', + UNDERLYING: '0x4bd918F7A01b04D6dB19d5c03dB03Ec68943c02a', + A_TOKEN: '0xcF01643FDaE7e46a2028532De943b6a5997648aB', + V_TOKEN: '0xFB9061900b5A6785b3677A06e9C7177CBD658573', + INTEREST_RATE_STRATEGY: '0x5C2e738F6E27bCE0F7558051Bf90605dD6176900', + ORACLE: '0x31CF013A08c6Ac228C94551d535d5BAfE19c602a', }, - USDX: { + WETH: { decimals: 18, id: 3, - UNDERLYING: '0x22913D4E21D44EF7662B118A6540450e25fE09a9', - A_TOKEN: '0x687b7a6Ea699E0652552Cd8C86aA764eF33f285d', - V_TOKEN: '0x8ECa241b42f89EcA1F790A1Bd908a0F73F8e1A11', - INTEREST_RATE_STRATEGY: '0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461', - ORACLE: '0x97FE42a7E96640D932bbc0e1580c73E705A8EB73', - STATA_TOKEN: '0x17Bb5B12D6716FC96565dB996DAFC7F7a731731F', + UNDERLYING: '0xbf32c7dFC72b730967072B112927ca0de205dbb5', + A_TOKEN: '0x399383e30A89db93C791C2f23Fb331F246Af3094', + V_TOKEN: '0x6d98C06dCd3c2F51173186999A9F9824fF8C8851', + INTEREST_RATE_STRATEGY: '0x5C2e738F6E27bCE0F7558051Bf90605dD6176900', + ORACLE: '0x86d67c3D38D2bCeE722E601025C25a575021c6EA', + }, + LINK: { + decimals: 18, + id: 4, + UNDERLYING: '0x96Cf2f5dDEcE1b3060ddC3bE4021b2B84Aa882eA', + A_TOKEN: '0xC854512a8587Ac65AFED436aaa42ae93BF909606', + V_TOKEN: '0xAf14D1181650aFD20124d0fF9276Dcf01Eb9d4Ad', + INTEREST_RATE_STRATEGY: '0x5C2e738F6E27bCE0F7558051Bf90605dD6176900', + ORACLE: '0x34C4c526902d88a3Aa98DB8a9b802603EB1E3470', + }, + WAVAX: { + decimals: 18, + id: 5, + UNDERLYING: '0xd00ae08403B9bbb9124bB305C09058E32C39A48c', + A_TOKEN: '0x160c02B4d3609D9c12526Edf2C9977bE8E4C16BD', + V_TOKEN: '0x4738A050aE2185b70D35E09586bC07DC7432CDB0', + INTEREST_RATE_STRATEGY: '0x5C2e738F6E27bCE0F7558051Bf90605dD6176900', + ORACLE: '0x5498BB86BC934c8D34FDA08E81D444153d0D06aD', }, } as const; export const E_MODES = {} as const; diff --git a/src/ts/MiscBaseSepolia.ts b/src/ts/MiscBaseSepolia.ts index 5cb9ff91..f253a4b6 100644 --- a/src/ts/MiscBaseSepolia.ts +++ b/src/ts/MiscBaseSepolia.ts @@ -1,11 +1,14 @@ // AUTOGENERATED - MANUALLY CHANGES WILL BE REVERTED BY THE GENERATOR -// https://sepolia.basescan.org/address/0xd1B3E25fD7C8AE7CADDC6F71b461b79CD4ddcFa3 -export const TRANSPARENT_PROXY_FACTORY = '0xd1B3E25fD7C8AE7CADDC6F71b461b79CD4ddcFa3'; +// https://sepolia.basescan.org/address/0x95F99D1695c866FEb16657cCA8E91437a50D2a5e +export const TRANSPARENT_PROXY_FACTORY = '0x95F99D1695c866FEb16657cCA8E91437a50D2a5e'; -// https://sepolia.basescan.org/address/0xbeCE3Cb857644b44Bb44084f9AfE784473ADb17B -export const PROXY_ADMIN = '0xbeCE3Cb857644b44Bb44084f9AfE784473ADb17B'; +// https://sepolia.basescan.org/address/0x6CBc6928Ad317F60E8880C43479850F2190F2a0B +export const PROXY_ADMIN = '0x6CBc6928Ad317F60E8880C43479850F2190F2a0B'; // https://sepolia.basescan.org/address/0x7CFa3f3d1cded0Da930881c609D4Dbf0012c14Bb export const GHO_TOKEN = '0x7CFa3f3d1cded0Da930881c609D4Dbf0012c14Bb'; +// https://sepolia.basescan.org/address/0xD9145b5F45Ad4519c7ACcD6E0A4A82e83bB8A6Dc +export const FAUCET = '0xD9145b5F45Ad4519c7ACcD6E0A4A82e83bB8A6Dc'; + export const CHAIN_ID = 84532; diff --git a/src/ts/MiscFuji.ts b/src/ts/MiscFuji.ts index 52b83183..69b661f4 100644 --- a/src/ts/MiscFuji.ts +++ b/src/ts/MiscFuji.ts @@ -2,10 +2,13 @@ // https://testnet.snowtrace.io/address/0x9c04928Cc678776eC1C1C0E46ecC03a5F47A7723 export const GHO_TOKEN = '0x9c04928Cc678776eC1C1C0E46ecC03a5F47A7723'; -// https://testnet.snowtrace.io/address/0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731 -export const TRANSPARENT_PROXY_FACTORY = '0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731'; +// https://testnet.snowtrace.io/address/0x421117D7319E96d831972b3F7e970bbfe29C4F21 +export const TRANSPARENT_PROXY_FACTORY = '0x421117D7319E96d831972b3F7e970bbfe29C4F21'; -// https://testnet.snowtrace.io/address/0x440F1b750Cbc7DDd2Bd9Af279Afe422EaeE58b41 -export const PROXY_ADMIN = '0x440F1b750Cbc7DDd2Bd9Af279Afe422EaeE58b41'; +// https://testnet.snowtrace.io/address/0xd6a6339c6C1B5a8792afA6e0E80b1908b8579f51 +export const PROXY_ADMIN = '0xd6a6339c6C1B5a8792afA6e0E80b1908b8579f51'; + +// https://testnet.snowtrace.io/address/0x48B5bD96e36a9c0D0eA3f07d3b3dA34bBD514fB3 +export const FAUCET = '0x48B5bD96e36a9c0D0eA3f07d3b3dA34bBD514fB3'; export const CHAIN_ID = 43113; From f0c12d4a0490d35f89fd5d6638f819daa583479b Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 25 Nov 2024 12:13:42 +0100 Subject: [PATCH 02/11] feat: add umbrella addresses --- scripts/configs/pools/avalanche.ts | 1 + scripts/configs/pools/base.ts | 3 ++- scripts/configs/types.ts | 1 + tests/cache/verified.json | 18 ++++++++++++++ tests/sanity/umbrella.spec.ts | 40 ++++++++++++++++++++++++++++++ 5 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 tests/sanity/umbrella.spec.ts diff --git a/scripts/configs/pools/avalanche.ts b/scripts/configs/pools/avalanche.ts index 08277821..b47c1a9c 100644 --- a/scripts/configs/pools/avalanche.ts +++ b/scripts/configs/pools/avalanche.ts @@ -27,6 +27,7 @@ export const fujiProtoV3: PoolConfig = { UI_POOL_DATA_PROVIDER: '0xC5dfC5E3a5099A6456a8BF20D7497Eb76358899F', WALLET_BALANCE_PROVIDER: '0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520', WETH_GATEWAY: '0x46Dcd5F4600319b02649Fd76B55aA6c1035CA478', + UMBRELLA: '0xF9530F06960523e05F5c5a2d7054eC601407c1DE', }, }; diff --git a/scripts/configs/pools/base.ts b/scripts/configs/pools/base.ts index 50741740..d8eb3d12 100644 --- a/scripts/configs/pools/base.ts +++ b/scripts/configs/pools/base.ts @@ -22,6 +22,7 @@ export const baseProtoV3: PoolConfig = { UI_POOL_DATA_PROVIDER: '0x68100bd5345ea474d93577127c11f39ff8463e93', WALLET_BALANCE_PROVIDER: '0x5779b29B0a34577d927E8D511B595ef9abbFAE82', WETH_GATEWAY: '0x729b3EA8C005AbC58c9150fb57Ec161296F06766', + UMBRELLA: '0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5', }, }; @@ -60,5 +61,5 @@ export const baseSepoliaLidoProtoV3: PoolConfig = { UI_POOL_DATA_PROVIDER: '0xB177501db055d357587Ab973f8D7748588A8A8B5', WALLET_BALANCE_PROVIDER: '0x29e4a5A618845250383dCd33DD0a5A4223c26Acd', WETH_GATEWAY: '0x85c10e659FcEB9319248d88f82E5e0c8cb0Bc000', - } + }, }; diff --git a/scripts/configs/types.ts b/scripts/configs/types.ts index 2c273cbf..75b068b5 100644 --- a/scripts/configs/types.ts +++ b/scripts/configs/types.ts @@ -67,6 +67,7 @@ export interface PoolConfig { RATES_FACTORY?: Hex; PERMISSION_MANAGER?: Hex; WALLET_BALANCE_PROVIDER?: Hex; + UMBRELLA?: Hex; }; // will be used for pending pools where the impls can't be fetched yet initial?: { diff --git a/tests/cache/verified.json b/tests/cache/verified.json index 909c4ce4..8332f036 100644 --- a/tests/cache/verified.json +++ b/tests/cache/verified.json @@ -2279,6 +2279,24 @@ }, "0x9FB3B12248bf010AEA7cE08343C8499FFAB4770f": { "name": "TransparentProxyFactory" + }, + "0xA1290d69c65A6Fe4DF752f95823fae25cB99e5A7": { + "name": "TransparentUpgradeableProxy" + }, + "0x2D62109243b87C4bA3EE7bA1D91B0dD0A074d7b1": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x6De3E52A1B7294A34e271a508082b1Ff4a37E30e": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x47F52B2e43D0386cF161e001835b03Ad49889e3b": { + "name": "RsETHPriceCapAdapter" + }, + "0xd1B2dec98A95B773C4909B5CD8FB455F467A527f": { + "name": "ParaSwapDebtSwapAdapterV3" + }, + "0x40ede12b44d98Fc4E53A2fB027D1BD1846e1690C": { + "name": "ParaSwapDebtSwapAdapterV3" } }, "10": { diff --git a/tests/sanity/umbrella.spec.ts b/tests/sanity/umbrella.spec.ts new file mode 100644 index 00000000..2b3c5f08 --- /dev/null +++ b/tests/sanity/umbrella.spec.ts @@ -0,0 +1,40 @@ +import {describe, expect, it} from 'vitest'; +import * as addressBook from '../../src/ts/AaveAddressBook'; +import {getContract} from 'viem'; +import {getClient} from '../../scripts/clients'; + +export async function check(addresses: Record) { + const client = getClient(addresses.CHAIN_ID); + const gateway = getContract({ + abi: [ + { + type: 'function', + name: 'POOL', + inputs: [], + outputs: [ + { + name: '', + type: 'address', + internalType: 'address', + }, + ], + stateMutability: 'view', + }, + ] as const, + address: addresses.UMRELLA, + client, + }); + const [POOL] = await Promise.all([gateway.read.POOL()]); + expect(POOL).toEqual(addresses.POOL); +} + +describe('weth gateway', () => { + it('should reference correct contracts on all getters', async () => { + await Promise.all( + Object.keys(addressBook).map((library) => { + const addresses = addressBook[library]; + if (addresses.UMBRELLA) return check(addresses); + }), + ); + }); +}); From f99e217025efbebff91332f815b203ea06979439 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 25 Nov 2024 12:42:50 +0100 Subject: [PATCH 03/11] fix: update addresses --- safe.csv | 1 + src/AaveV3Base.sol | 3 +++ src/AaveV3Fuji.sol | 3 +++ src/ts/AaveV3Base.ts | 3 +++ src/ts/AaveV3Fuji.ts | 3 +++ 5 files changed, 13 insertions(+) diff --git a/safe.csv b/safe.csv index 91445cc5..9f4bda12 100644 --- a/safe.csv +++ b/safe.csv @@ -1630,6 +1630,7 @@ address,name,chainId 0x2E549104c516b8657A7D888494DfbAbD7C70b464,AaveV3Base SWAP_COLLATERAL_ADAPTER,8453 0x91E04cf78e53aEBe609e8a7f2003e7EECD743F2B,AaveV3Base UI_INCENTIVE_DATA_PROVIDER,8453 0x68100bD5345eA474D93577127C11F39FF8463e93,AaveV3Base UI_POOL_DATA_PROVIDER,8453 +0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5,AaveV3Base UMBRELLA,8453 0x5779b29B0a34577d927E8D511B595ef9abbFAE82,AaveV3Base WALLET_BALANCE_PROVIDER,8453 0x729b3EA8C005AbC58c9150fb57Ec161296F06766,AaveV3Base WETH_GATEWAY,8453 0x5598BbFA2f4fE8151f45bBA0a3edE1b54B51a0a9,AaveV3Base WITHDRAW_SWAP_ADAPTER,8453 diff --git a/src/AaveV3Base.sol b/src/AaveV3Base.sol index 6aef5e70..f7c3ab2e 100644 --- a/src/AaveV3Base.sol +++ b/src/AaveV3Base.sol @@ -105,6 +105,9 @@ library AaveV3Base { // https://basescan.org/address/0x729b3EA8C005AbC58c9150fb57Ec161296F06766 address internal constant WETH_GATEWAY = 0x729b3EA8C005AbC58c9150fb57Ec161296F06766; + + // https://basescan.org/address/0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5 + address internal constant UMBRELLA = 0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5; } library AaveV3BaseAssets { // https://basescan.org/address/0x4200000000000000000000000000000000000006 diff --git a/src/AaveV3Fuji.sol b/src/AaveV3Fuji.sol index 449bc2a7..0fc082e0 100644 --- a/src/AaveV3Fuji.sol +++ b/src/AaveV3Fuji.sol @@ -74,6 +74,9 @@ library AaveV3Fuji { // https://testnet.snowtrace.io/address/0x46Dcd5F4600319b02649Fd76B55aA6c1035CA478 address internal constant WETH_GATEWAY = 0x46Dcd5F4600319b02649Fd76B55aA6c1035CA478; + + // https://testnet.snowtrace.io/address/0xF9530F06960523e05F5c5a2d7054eC601407c1DE + address internal constant UMBRELLA = 0xF9530F06960523e05F5c5a2d7054eC601407c1DE; } library AaveV3FujiAssets { // https://testnet.snowtrace.io/address/0x89502c3731F69DDC95B65753708A07F8Cd0373F4 diff --git a/src/ts/AaveV3Base.ts b/src/ts/AaveV3Base.ts index 91638302..cefe4912 100644 --- a/src/ts/AaveV3Base.ts +++ b/src/ts/AaveV3Base.ts @@ -92,6 +92,9 @@ export const WALLET_BALANCE_PROVIDER = '0x5779b29B0a34577d927E8D511B595ef9abbFAE // https://basescan.org/address/0x729b3EA8C005AbC58c9150fb57Ec161296F06766 export const WETH_GATEWAY = '0x729b3EA8C005AbC58c9150fb57Ec161296F06766'; +// https://basescan.org/address/0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5 +export const UMBRELLA = '0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5'; + export const CHAIN_ID = 8453; export const ASSETS = { WETH: { diff --git a/src/ts/AaveV3Fuji.ts b/src/ts/AaveV3Fuji.ts index 25a7f437..051be943 100644 --- a/src/ts/AaveV3Fuji.ts +++ b/src/ts/AaveV3Fuji.ts @@ -62,6 +62,9 @@ export const WALLET_BALANCE_PROVIDER = '0xde35f7711295Dfd0CD8bd94d46f65b8Acb1825 // https://testnet.snowtrace.io/address/0x46Dcd5F4600319b02649Fd76B55aA6c1035CA478 export const WETH_GATEWAY = '0x46Dcd5F4600319b02649Fd76B55aA6c1035CA478'; +// https://testnet.snowtrace.io/address/0xF9530F06960523e05F5c5a2d7054eC601407c1DE +export const UMBRELLA = '0xF9530F06960523e05F5c5a2d7054eC601407c1DE'; + export const CHAIN_ID = 43113; export const ASSETS = { USDC: { From a29810eb1d7114e5932eb5be79c34e6c7ef2dbe7 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 25 Nov 2024 12:51:37 +0100 Subject: [PATCH 04/11] fix: typo --- safe.csv | 1 - scripts/configs/pools/base.ts | 2 +- src/AaveV3Base.sol | 3 --- src/AaveV3BaseSepolia.sol | 3 +++ src/ts/AaveV3Base.ts | 3 --- src/ts/AaveV3BaseSepolia.ts | 3 +++ tests/sanity/umbrella.spec.ts | 9 +++++---- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/safe.csv b/safe.csv index 9f4bda12..91445cc5 100644 --- a/safe.csv +++ b/safe.csv @@ -1630,7 +1630,6 @@ address,name,chainId 0x2E549104c516b8657A7D888494DfbAbD7C70b464,AaveV3Base SWAP_COLLATERAL_ADAPTER,8453 0x91E04cf78e53aEBe609e8a7f2003e7EECD743F2B,AaveV3Base UI_INCENTIVE_DATA_PROVIDER,8453 0x68100bD5345eA474D93577127C11F39FF8463e93,AaveV3Base UI_POOL_DATA_PROVIDER,8453 -0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5,AaveV3Base UMBRELLA,8453 0x5779b29B0a34577d927E8D511B595ef9abbFAE82,AaveV3Base WALLET_BALANCE_PROVIDER,8453 0x729b3EA8C005AbC58c9150fb57Ec161296F06766,AaveV3Base WETH_GATEWAY,8453 0x5598BbFA2f4fE8151f45bBA0a3edE1b54B51a0a9,AaveV3Base WITHDRAW_SWAP_ADAPTER,8453 diff --git a/scripts/configs/pools/base.ts b/scripts/configs/pools/base.ts index d8eb3d12..cc3d8610 100644 --- a/scripts/configs/pools/base.ts +++ b/scripts/configs/pools/base.ts @@ -22,7 +22,6 @@ export const baseProtoV3: PoolConfig = { UI_POOL_DATA_PROVIDER: '0x68100bd5345ea474d93577127c11f39ff8463e93', WALLET_BALANCE_PROVIDER: '0x5779b29B0a34577d927E8D511B595ef9abbFAE82', WETH_GATEWAY: '0x729b3EA8C005AbC58c9150fb57Ec161296F06766', - UMBRELLA: '0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5', }, }; @@ -39,6 +38,7 @@ export const baseSepoliaProtoV3: PoolConfig = { // UI_POOL_DATA_PROVIDER: '0x2D2F3e3884e112e555A9Ae213B9781Ca8aFE3b88', WALLET_BALANCE_PROVIDER: '0xdc5D225Df17df184d11015B91C4A10cd7834e2aC', WETH_GATEWAY: '0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461', + UMBRELLA: '0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5', }, initial: { COLLECTOR: '0x67F521ca716dD9413fd2D2AfdEbEE9285289d2cB', diff --git a/src/AaveV3Base.sol b/src/AaveV3Base.sol index f7c3ab2e..6aef5e70 100644 --- a/src/AaveV3Base.sol +++ b/src/AaveV3Base.sol @@ -105,9 +105,6 @@ library AaveV3Base { // https://basescan.org/address/0x729b3EA8C005AbC58c9150fb57Ec161296F06766 address internal constant WETH_GATEWAY = 0x729b3EA8C005AbC58c9150fb57Ec161296F06766; - - // https://basescan.org/address/0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5 - address internal constant UMBRELLA = 0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5; } library AaveV3BaseAssets { // https://basescan.org/address/0x4200000000000000000000000000000000000006 diff --git a/src/AaveV3BaseSepolia.sol b/src/AaveV3BaseSepolia.sol index 4e16cf0d..e09e8c3c 100644 --- a/src/AaveV3BaseSepolia.sol +++ b/src/AaveV3BaseSepolia.sol @@ -74,6 +74,9 @@ library AaveV3BaseSepolia { // https://sepolia.basescan.org/address/0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461 address internal constant WETH_GATEWAY = 0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461; + + // https://sepolia.basescan.org/address/0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5 + address internal constant UMBRELLA = 0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5; } library AaveV3BaseSepoliaAssets { // https://sepolia.basescan.org/address/0x036CbD53842c5426634e7929541eC2318f3dCF7e diff --git a/src/ts/AaveV3Base.ts b/src/ts/AaveV3Base.ts index cefe4912..91638302 100644 --- a/src/ts/AaveV3Base.ts +++ b/src/ts/AaveV3Base.ts @@ -92,9 +92,6 @@ export const WALLET_BALANCE_PROVIDER = '0x5779b29B0a34577d927E8D511B595ef9abbFAE // https://basescan.org/address/0x729b3EA8C005AbC58c9150fb57Ec161296F06766 export const WETH_GATEWAY = '0x729b3EA8C005AbC58c9150fb57Ec161296F06766'; -// https://basescan.org/address/0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5 -export const UMBRELLA = '0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5'; - export const CHAIN_ID = 8453; export const ASSETS = { WETH: { diff --git a/src/ts/AaveV3BaseSepolia.ts b/src/ts/AaveV3BaseSepolia.ts index 2de50482..31cdeb31 100644 --- a/src/ts/AaveV3BaseSepolia.ts +++ b/src/ts/AaveV3BaseSepolia.ts @@ -62,6 +62,9 @@ export const WALLET_BALANCE_PROVIDER = '0xdc5D225Df17df184d11015B91C4A10cd7834e2 // https://sepolia.basescan.org/address/0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461 export const WETH_GATEWAY = '0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461'; +// https://sepolia.basescan.org/address/0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5 +export const UMBRELLA = '0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5'; + export const CHAIN_ID = 84532; export const ASSETS = { USDC: { diff --git a/tests/sanity/umbrella.spec.ts b/tests/sanity/umbrella.spec.ts index 2b3c5f08..e11edb21 100644 --- a/tests/sanity/umbrella.spec.ts +++ b/tests/sanity/umbrella.spec.ts @@ -5,7 +5,7 @@ import {getClient} from '../../scripts/clients'; export async function check(addresses: Record) { const client = getClient(addresses.CHAIN_ID); - const gateway = getContract({ + const umbrella = getContract({ abi: [ { type: 'function', @@ -21,14 +21,15 @@ export async function check(addresses: Record) { stateMutability: 'view', }, ] as const, - address: addresses.UMRELLA, + address: addresses.UMBRELLA, client, }); - const [POOL] = await Promise.all([gateway.read.POOL()]); + console.log(addresses.UMBRELLA, addresses.CHAIN_ID); + const [POOL] = await Promise.all([umbrella.read.POOL()]); expect(POOL).toEqual(addresses.POOL); } -describe('weth gateway', () => { +describe('umbrella', () => { it('should reference correct contracts on all getters', async () => { await Promise.all( Object.keys(addressBook).map((library) => { From 2c213c37d9aa4fb7f0f578149e3d0a14595411b5 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 25 Nov 2024 13:07:52 +0100 Subject: [PATCH 05/11] addresses - add stata addresses --- src/AaveV3Fuji.sol | 18 ++++++++++++++++++ src/ts/AaveV3Fuji.ts | 6 ++++++ 2 files changed, 24 insertions(+) diff --git a/src/AaveV3Fuji.sol b/src/AaveV3Fuji.sol index 0fc082e0..f120f4f3 100644 --- a/src/AaveV3Fuji.sol +++ b/src/AaveV3Fuji.sol @@ -97,6 +97,9 @@ library AaveV3FujiAssets { address internal constant USDC_INTEREST_RATE_STRATEGY = 0x5C2e738F6E27bCE0F7558051Bf90605dD6176900; + // https://testnet.snowtrace.io/address/0xEB099AEb2441a13B67C35759D83764fe887a8903 + address internal constant USDC_STATA_TOKEN = 0xEB099AEb2441a13B67C35759D83764fe887a8903; + // https://testnet.snowtrace.io/address/0x96dFCCB3F9ACDaF6c8f8a35E814023C3484d1eA2 address internal constant USDT_UNDERLYING = 0x96dFCCB3F9ACDaF6c8f8a35E814023C3484d1eA2; @@ -115,6 +118,9 @@ library AaveV3FujiAssets { address internal constant USDT_INTEREST_RATE_STRATEGY = 0x5C2e738F6E27bCE0F7558051Bf90605dD6176900; + // https://testnet.snowtrace.io/address/0xA6811b192d3E22DCfa4CD42e5237a3d979f64F03 + address internal constant USDT_STATA_TOKEN = 0xA6811b192d3E22DCfa4CD42e5237a3d979f64F03; + // https://testnet.snowtrace.io/address/0x4bd918F7A01b04D6dB19d5c03dB03Ec68943c02a address internal constant WBTC_UNDERLYING = 0x4bd918F7A01b04D6dB19d5c03dB03Ec68943c02a; @@ -133,6 +139,9 @@ library AaveV3FujiAssets { address internal constant WBTC_INTEREST_RATE_STRATEGY = 0x5C2e738F6E27bCE0F7558051Bf90605dD6176900; + // https://testnet.snowtrace.io/address/0xe0CA1F1d2d8736FCa553F268f4d626FA7FA0F342 + address internal constant WBTC_STATA_TOKEN = 0xe0CA1F1d2d8736FCa553F268f4d626FA7FA0F342; + // https://testnet.snowtrace.io/address/0xbf32c7dFC72b730967072B112927ca0de205dbb5 address internal constant WETH_UNDERLYING = 0xbf32c7dFC72b730967072B112927ca0de205dbb5; @@ -151,6 +160,9 @@ library AaveV3FujiAssets { address internal constant WETH_INTEREST_RATE_STRATEGY = 0x5C2e738F6E27bCE0F7558051Bf90605dD6176900; + // https://testnet.snowtrace.io/address/0xf28d3B4e7fFF74880c20Fe29aF5800ecd4389dA1 + address internal constant WETH_STATA_TOKEN = 0xf28d3B4e7fFF74880c20Fe29aF5800ecd4389dA1; + // https://testnet.snowtrace.io/address/0x96Cf2f5dDEcE1b3060ddC3bE4021b2B84Aa882eA address internal constant LINK_UNDERLYING = 0x96Cf2f5dDEcE1b3060ddC3bE4021b2B84Aa882eA; @@ -169,6 +181,9 @@ library AaveV3FujiAssets { address internal constant LINK_INTEREST_RATE_STRATEGY = 0x5C2e738F6E27bCE0F7558051Bf90605dD6176900; + // https://testnet.snowtrace.io/address/0xC7276460Afb61F0eC7Af99c302b52d893e11cDF3 + address internal constant LINK_STATA_TOKEN = 0xC7276460Afb61F0eC7Af99c302b52d893e11cDF3; + // https://testnet.snowtrace.io/address/0xd00ae08403B9bbb9124bB305C09058E32C39A48c address internal constant WAVAX_UNDERLYING = 0xd00ae08403B9bbb9124bB305C09058E32C39A48c; @@ -186,6 +201,9 @@ library AaveV3FujiAssets { // https://testnet.snowtrace.io/address/0x5C2e738F6E27bCE0F7558051Bf90605dD6176900 address internal constant WAVAX_INTEREST_RATE_STRATEGY = 0x5C2e738F6E27bCE0F7558051Bf90605dD6176900; + + // https://testnet.snowtrace.io/address/0x78F6Ab435898d314359320d22e673667172D0A27 + address internal constant WAVAX_STATA_TOKEN = 0x78F6Ab435898d314359320d22e673667172D0A27; } library AaveV3FujiEModes { uint8 internal constant NONE = 0; diff --git a/src/ts/AaveV3Fuji.ts b/src/ts/AaveV3Fuji.ts index 051be943..9bb9d74c 100644 --- a/src/ts/AaveV3Fuji.ts +++ b/src/ts/AaveV3Fuji.ts @@ -75,6 +75,7 @@ export const ASSETS = { V_TOKEN: '0x6396fD2e4Eb71B9bbf6c0fE6Dc6Aa4977F6aaBE7', INTEREST_RATE_STRATEGY: '0x5C2e738F6E27bCE0F7558051Bf90605dD6176900', ORACLE: '0x97FE42a7E96640D932bbc0e1580c73E705A8EB73', + STATA_TOKEN: '0xEB099AEb2441a13B67C35759D83764fe887a8903', }, USDT: { decimals: 6, @@ -84,6 +85,7 @@ export const ASSETS = { V_TOKEN: '0x41b84B9f233e26e8D0F944e53da28ac2466007FE', INTEREST_RATE_STRATEGY: '0x5C2e738F6E27bCE0F7558051Bf90605dD6176900', ORACLE: '0x7898AcCC83587C3C55116c5230C17a6Cd9C71bad', + STATA_TOKEN: '0xA6811b192d3E22DCfa4CD42e5237a3d979f64F03', }, WBTC: { decimals: 8, @@ -93,6 +95,7 @@ export const ASSETS = { V_TOKEN: '0xFB9061900b5A6785b3677A06e9C7177CBD658573', INTEREST_RATE_STRATEGY: '0x5C2e738F6E27bCE0F7558051Bf90605dD6176900', ORACLE: '0x31CF013A08c6Ac228C94551d535d5BAfE19c602a', + STATA_TOKEN: '0xe0CA1F1d2d8736FCa553F268f4d626FA7FA0F342', }, WETH: { decimals: 18, @@ -102,6 +105,7 @@ export const ASSETS = { V_TOKEN: '0x6d98C06dCd3c2F51173186999A9F9824fF8C8851', INTEREST_RATE_STRATEGY: '0x5C2e738F6E27bCE0F7558051Bf90605dD6176900', ORACLE: '0x86d67c3D38D2bCeE722E601025C25a575021c6EA', + STATA_TOKEN: '0xf28d3B4e7fFF74880c20Fe29aF5800ecd4389dA1', }, LINK: { decimals: 18, @@ -111,6 +115,7 @@ export const ASSETS = { V_TOKEN: '0xAf14D1181650aFD20124d0fF9276Dcf01Eb9d4Ad', INTEREST_RATE_STRATEGY: '0x5C2e738F6E27bCE0F7558051Bf90605dD6176900', ORACLE: '0x34C4c526902d88a3Aa98DB8a9b802603EB1E3470', + STATA_TOKEN: '0xC7276460Afb61F0eC7Af99c302b52d893e11cDF3', }, WAVAX: { decimals: 18, @@ -120,6 +125,7 @@ export const ASSETS = { V_TOKEN: '0x4738A050aE2185b70D35E09586bC07DC7432CDB0', INTEREST_RATE_STRATEGY: '0x5C2e738F6E27bCE0F7558051Bf90605dD6176900', ORACLE: '0x5498BB86BC934c8D34FDA08E81D444153d0D06aD', + STATA_TOKEN: '0x78F6Ab435898d314359320d22e673667172D0A27', }, } as const; export const E_MODES = {} as const; From bb503d4b72477be2d2c630c13b50ed25e735660f Mon Sep 17 00:00:00 2001 From: Harsh Pandey Date: Mon, 25 Nov 2024 18:36:11 +0530 Subject: [PATCH 06/11] feat: add base sepolia testnet market --- scripts/configs/pools/base.ts | 26 ++-- src/AaveV3BaseSepolia.sol | 222 ++++++++++++++++++++-------------- src/ts/AaveV3BaseSepolia.ts | 167 +++++++++++++++---------- 3 files changed, 242 insertions(+), 173 deletions(-) diff --git a/scripts/configs/pools/base.ts b/scripts/configs/pools/base.ts index cc3d8610..d9abd192 100644 --- a/scripts/configs/pools/base.ts +++ b/scripts/configs/pools/base.ts @@ -28,24 +28,18 @@ export const baseProtoV3: PoolConfig = { export const baseSepoliaProtoV3: PoolConfig = { name: 'BaseSepolia', chainId: ChainId.base_sepolia, - POOL_ADDRESSES_PROVIDER: '0x150E9a8b83b731B9218a5633F1E804BC82508A46', + POOL_ADDRESSES_PROVIDER: '0xE4C23309117Aa30342BFaae6c95c6478e0A4Ad00', additionalAddresses: { - STATA_FACTORY: '0xAE252DA024783d1813C890d82642bbED120c3093', - CONFIG_ENGINE: '0x3d2ee1AB8C3a597cDf80273C684dE0036481bE3a', - L2_ENCODER: '0x0ffE481FBF0AE2282A5E1f701fab266aF487A97D', - POOL_ADDRESSES_PROVIDER_REGISTRY: '0x5A6c2685b9dd22705203C99d7Fc30AE53C4c7513', - UI_INCENTIVE_DATA_PROVIDER: '0xb0633e01310a09C1Ee71a96c057DcF9c13fd6F62', - // UI_POOL_DATA_PROVIDER: '0x2D2F3e3884e112e555A9Ae213B9781Ca8aFE3b88', - WALLET_BALANCE_PROVIDER: '0xdc5D225Df17df184d11015B91C4A10cd7834e2aC', - WETH_GATEWAY: '0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461', + STATA_FACTORY: '0x4Afb5ADe7Bd7a670B61f303ab0C740eE8350918f', + CONFIG_ENGINE: '0xD3a3f523100e1eaa740A6eE72Ae94710A0fAcFCe', + L2_ENCODER: '0x8eB0791E0981947df2eA074D2479dB9A258b0312', + POOL_ADDRESSES_PROVIDER_REGISTRY: '0x34473a6Ef69d92191d7b25352b5D266f3a5BAca2', + UI_INCENTIVE_DATA_PROVIDER: '0xDB1412acf288D5bE057f8e90fd7b1BF4f84bB3B1', + UI_POOL_DATA_PROVIDER: '0x6a9D64f93DB660EaCB2b6E9424792c630CdA87d8', + WALLET_BALANCE_PROVIDER: '0x2c4D1F4EC7F4FfA09a5E1C9e74fD3A10f21Bd811', + WETH_GATEWAY: '0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6', UMBRELLA: '0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5', - }, - initial: { - COLLECTOR: '0x67F521ca716dD9413fd2D2AfdEbEE9285289d2cB', - DEFAULT_A_TOKEN_IMPL: '0xA9E3fFb25C369e44862DD3e87Be4420abb879965', - DEFAULT_VARIABLE_DEBT_TOKEN_IMPL: '0x95eeA7A0b16C8ee3A923D3F5ebe6d77C0332084c', - DEFAULT_STABLE_DEBT_TOKEN_IMPL: '0x4dF950Ff1352B22dA739c33C35C6f0c81B5d9d19', - }, + } }; export const baseSepoliaLidoProtoV3: PoolConfig = { diff --git a/src/AaveV3BaseSepolia.sol b/src/AaveV3BaseSepolia.sol index e09e8c3c..44a14a89 100644 --- a/src/AaveV3BaseSepolia.sol +++ b/src/AaveV3BaseSepolia.sol @@ -5,177 +5,215 @@ pragma solidity >=0.6.0; import {IPoolAddressesProvider, IPool, IPoolConfigurator, IAaveOracle, IPoolDataProvider, IACLManager} from './AaveV3.sol'; import {ICollector} from './common/ICollector.sol'; library AaveV3BaseSepolia { - // https://sepolia.basescan.org/address/0x150E9a8b83b731B9218a5633F1E804BC82508A46 + // https://sepolia.basescan.org/address/0xE4C23309117Aa30342BFaae6c95c6478e0A4Ad00 IPoolAddressesProvider internal constant POOL_ADDRESSES_PROVIDER = - IPoolAddressesProvider(0x150E9a8b83b731B9218a5633F1E804BC82508A46); + IPoolAddressesProvider(0xE4C23309117Aa30342BFaae6c95c6478e0A4Ad00); - // https://sepolia.basescan.org/address/0xbE781D7Bdf469f3d94a62Cdcc407aCe106AEcA74 - IPool internal constant POOL = IPool(0xbE781D7Bdf469f3d94a62Cdcc407aCe106AEcA74); + // https://sepolia.basescan.org/address/0x8bAB6d1b75f19e9eD9fCe8b9BD338844fF79aE27 + IPool internal constant POOL = IPool(0x8bAB6d1b75f19e9eD9fCe8b9BD338844fF79aE27); - // https://sepolia.basescan.org/address/0x4200a89Bd036745918889D6dCC5685A4C6F01C24 + // https://sepolia.basescan.org/address/0x0Bf6bdFF4da24C272BC524d521Ab0db20601D384 IPoolConfigurator internal constant POOL_CONFIGURATOR = - IPoolConfigurator(0x4200a89Bd036745918889D6dCC5685A4C6F01C24); + IPoolConfigurator(0x0Bf6bdFF4da24C272BC524d521Ab0db20601D384); - // https://sepolia.basescan.org/address/0x9Ba30437Ba63AA2902319DE1B3f0E25a18826842 - IAaveOracle internal constant ORACLE = IAaveOracle(0x9Ba30437Ba63AA2902319DE1B3f0E25a18826842); + // https://sepolia.basescan.org/address/0x943b0dE18d4abf4eF02A85912F8fc07684C141dF + IAaveOracle internal constant ORACLE = IAaveOracle(0x943b0dE18d4abf4eF02A85912F8fc07684C141dF); - // https://sepolia.basescan.org/address/0x6ec33534BE07d45cc4E02Fbd127F8ed2aE919a6b - address internal constant ACL_ADMIN = 0x6ec33534BE07d45cc4E02Fbd127F8ed2aE919a6b; + // https://sepolia.basescan.org/address/0x956DE559DFc27678FD69d4f49f485196b50BDD0F + address internal constant ACL_ADMIN = 0x956DE559DFc27678FD69d4f49f485196b50BDD0F; - // https://sepolia.basescan.org/address/0xb880879303D35a82B1888a4A6d47D2ef0653E4A2 + // https://sepolia.basescan.org/address/0x9f09F541Adf314341d8d45E5B18961147b9050E9 IACLManager internal constant ACL_MANAGER = - IACLManager(0xb880879303D35a82B1888a4A6d47D2ef0653E4A2); + IACLManager(0x9f09F541Adf314341d8d45E5B18961147b9050E9); - // https://sepolia.basescan.org/address/0xAF4646B0131af8fc0DC435AF7F7d303Ac131E072 + // https://sepolia.basescan.org/address/0xa432Be23d16907918d626DA6523f89a7c9A299A0 IPoolDataProvider internal constant AAVE_PROTOCOL_DATA_PROVIDER = - IPoolDataProvider(0xAF4646B0131af8fc0DC435AF7F7d303Ac131E072); + IPoolDataProvider(0xa432Be23d16907918d626DA6523f89a7c9A299A0); - // https://sepolia.basescan.org/address/0x07D04EfAAA0Ac69D19d107795aF247C42Eb50F1C - address internal constant POOL_IMPL = 0x07D04EfAAA0Ac69D19d107795aF247C42Eb50F1C; + // https://sepolia.basescan.org/address/0x18A9a9c3B93bdB18eE4cEFe50e55C203D1A31b89 + address internal constant POOL_IMPL = 0x18A9a9c3B93bdB18eE4cEFe50e55C203D1A31b89; - // https://sepolia.basescan.org/address/0x9E7DF170E44093d6738057157CA048794B02555d - address internal constant POOL_CONFIGURATOR_IMPL = 0x9E7DF170E44093d6738057157CA048794B02555d; + // https://sepolia.basescan.org/address/0x7315c5ac05cf06aa50693C73929844b66F039DC1 + address internal constant POOL_CONFIGURATOR_IMPL = 0x7315c5ac05cf06aa50693C73929844b66F039DC1; - // https://sepolia.basescan.org/address/0x294FF52d234a7e09E9642F846702A45337ceB2E2 + // https://sepolia.basescan.org/address/0x71B448405c803A3982aBa448133133D2DEAFBE5F address internal constant DEFAULT_INCENTIVES_CONTROLLER = - 0x294FF52d234a7e09E9642F846702A45337ceB2E2; + 0x71B448405c803A3982aBa448133133D2DEAFBE5F; - // https://sepolia.basescan.org/address/0x1F95c29C9E686e4f438ED5D13cF0B7430B9F39ec - address internal constant EMISSION_MANAGER = 0x1F95c29C9E686e4f438ED5D13cF0B7430B9F39ec; + // https://sepolia.basescan.org/address/0x49ECA4d8e7EaE6a1e7c02516851fF9038b277e96 + address internal constant EMISSION_MANAGER = 0x49ECA4d8e7EaE6a1e7c02516851fF9038b277e96; - // https://sepolia.basescan.org/address/0x67F521ca716dD9413fd2D2AfdEbEE9285289d2cB - ICollector internal constant COLLECTOR = ICollector(0x67F521ca716dD9413fd2D2AfdEbEE9285289d2cB); + // https://sepolia.basescan.org/address/0x6414DE3F58d54Fb90636e8393F065fDFe34Da420 + ICollector internal constant COLLECTOR = ICollector(0x6414DE3F58d54Fb90636e8393F065fDFe34Da420); - // https://sepolia.basescan.org/address/0xA9E3fFb25C369e44862DD3e87Be4420abb879965 - address internal constant DEFAULT_A_TOKEN_IMPL_REV_1 = 0xA9E3fFb25C369e44862DD3e87Be4420abb879965; + // https://sepolia.basescan.org/address/0x3012CaC83a1286D0014aA9BB0461b80eb9c8e1b1 + address internal constant DEFAULT_A_TOKEN_IMPL_REV_1 = 0x3012CaC83a1286D0014aA9BB0461b80eb9c8e1b1; - // https://sepolia.basescan.org/address/0x95eeA7A0b16C8ee3A923D3F5ebe6d77C0332084c + // https://sepolia.basescan.org/address/0x9B928e20ECD8d2bA6444B307F4B5127A41d6e19C address internal constant DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1 = - 0x95eeA7A0b16C8ee3A923D3F5ebe6d77C0332084c; + 0x9B928e20ECD8d2bA6444B307F4B5127A41d6e19C; - // https://sepolia.basescan.org/address/0xAE252DA024783d1813C890d82642bbED120c3093 - address internal constant STATA_FACTORY = 0xAE252DA024783d1813C890d82642bbED120c3093; + // https://sepolia.basescan.org/address/0x4Afb5ADe7Bd7a670B61f303ab0C740eE8350918f + address internal constant STATA_FACTORY = 0x4Afb5ADe7Bd7a670B61f303ab0C740eE8350918f; - // https://sepolia.basescan.org/address/0x3d2ee1AB8C3a597cDf80273C684dE0036481bE3a - address internal constant CONFIG_ENGINE = 0x3d2ee1AB8C3a597cDf80273C684dE0036481bE3a; + // https://sepolia.basescan.org/address/0xD3a3f523100e1eaa740A6eE72Ae94710A0fAcFCe + address internal constant CONFIG_ENGINE = 0xD3a3f523100e1eaa740A6eE72Ae94710A0fAcFCe; - // https://sepolia.basescan.org/address/0x0ffE481FBF0AE2282A5E1f701fab266aF487A97D - address internal constant L2_ENCODER = 0x0ffE481FBF0AE2282A5E1f701fab266aF487A97D; + // https://sepolia.basescan.org/address/0x8eB0791E0981947df2eA074D2479dB9A258b0312 + address internal constant L2_ENCODER = 0x8eB0791E0981947df2eA074D2479dB9A258b0312; - // https://sepolia.basescan.org/address/0x5A6c2685b9dd22705203C99d7Fc30AE53C4c7513 + // https://sepolia.basescan.org/address/0x34473a6Ef69d92191d7b25352b5D266f3a5BAca2 address internal constant POOL_ADDRESSES_PROVIDER_REGISTRY = - 0x5A6c2685b9dd22705203C99d7Fc30AE53C4c7513; + 0x34473a6Ef69d92191d7b25352b5D266f3a5BAca2; - // https://sepolia.basescan.org/address/0xb0633e01310a09C1Ee71a96c057DcF9c13fd6F62 - address internal constant UI_INCENTIVE_DATA_PROVIDER = 0xb0633e01310a09C1Ee71a96c057DcF9c13fd6F62; + // https://sepolia.basescan.org/address/0xDB1412acf288D5bE057f8e90fd7b1BF4f84bB3B1 + address internal constant UI_INCENTIVE_DATA_PROVIDER = 0xDB1412acf288D5bE057f8e90fd7b1BF4f84bB3B1; - // https://sepolia.basescan.org/address/0xdc5D225Df17df184d11015B91C4A10cd7834e2aC - address internal constant WALLET_BALANCE_PROVIDER = 0xdc5D225Df17df184d11015B91C4A10cd7834e2aC; + // https://sepolia.basescan.org/address/0x6a9D64f93DB660EaCB2b6E9424792c630CdA87d8 + address internal constant UI_POOL_DATA_PROVIDER = 0x6a9D64f93DB660EaCB2b6E9424792c630CdA87d8; - // https://sepolia.basescan.org/address/0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461 - address internal constant WETH_GATEWAY = 0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461; + // https://sepolia.basescan.org/address/0x2c4D1F4EC7F4FfA09a5E1C9e74fD3A10f21Bd811 + address internal constant WALLET_BALANCE_PROVIDER = 0x2c4D1F4EC7F4FfA09a5E1C9e74fD3A10f21Bd811; + + // https://sepolia.basescan.org/address/0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6 + address internal constant WETH_GATEWAY = 0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6; // https://sepolia.basescan.org/address/0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5 address internal constant UMBRELLA = 0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5; } library AaveV3BaseSepoliaAssets { - // https://sepolia.basescan.org/address/0x036CbD53842c5426634e7929541eC2318f3dCF7e - address internal constant USDC_UNDERLYING = 0x036CbD53842c5426634e7929541eC2318f3dCF7e; + // https://sepolia.basescan.org/address/0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f + address internal constant USDC_UNDERLYING = 0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f; uint8 internal constant USDC_DECIMALS = 6; - // https://sepolia.basescan.org/address/0xfE45Bf4dEF7223Ab1Bf83cA17a4462Ef1647F7FF - address internal constant USDC_A_TOKEN = 0xfE45Bf4dEF7223Ab1Bf83cA17a4462Ef1647F7FF; + // https://sepolia.basescan.org/address/0x10F1A9D11CDf50041f3f8cB7191CBE2f31750ACC + address internal constant USDC_A_TOKEN = 0x10F1A9D11CDf50041f3f8cB7191CBE2f31750ACC; - // https://sepolia.basescan.org/address/0x5E531B00C86C2D0014020183DaFE7c17C4aA90D8 - address internal constant USDC_V_TOKEN = 0x5E531B00C86C2D0014020183DaFE7c17C4aA90D8; + // https://sepolia.basescan.org/address/0xFB3e85601b7fEb3691bbb8779Ef0E1069E347204 + address internal constant USDC_V_TOKEN = 0xFB3e85601b7fEb3691bbb8779Ef0E1069E347204; // https://sepolia.basescan.org/address/0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165 address internal constant USDC_ORACLE = 0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165; - // https://sepolia.basescan.org/address/0xff1DB744F1275f8e04A62A7E5D663575F3a774B6 + // https://sepolia.basescan.org/address/0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92 address internal constant USDC_INTEREST_RATE_STRATEGY = - 0xff1DB744F1275f8e04A62A7E5D663575F3a774B6; + 0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92; - // https://sepolia.basescan.org/address/0x808456652fdb597867f38412077A9182bf77359F - address internal constant EURC_UNDERLYING = 0x808456652fdb597867f38412077A9182bf77359F; + // https://sepolia.basescan.org/address/0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a + address internal constant USDT_UNDERLYING = 0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a; - uint8 internal constant EURC_DECIMALS = 6; + uint8 internal constant USDT_DECIMALS = 6; - // https://sepolia.basescan.org/address/0x70B607b3cdED31635779781d42540580D4Ac18F4 - address internal constant EURC_A_TOKEN = 0x70B607b3cdED31635779781d42540580D4Ac18F4; + // https://sepolia.basescan.org/address/0xcE3CAae5Ed17A7AafCEEbc897DE843fA6CC0c018 + address internal constant USDT_A_TOKEN = 0xcE3CAae5Ed17A7AafCEEbc897DE843fA6CC0c018; - // https://sepolia.basescan.org/address/0xEa1b67213437E753656B209d1d3d16c1DFE424fd - address internal constant EURC_V_TOKEN = 0xEa1b67213437E753656B209d1d3d16c1DFE424fd; + // https://sepolia.basescan.org/address/0xE3C742c88EE6A610157C16b60bBDD62351daeE39 + address internal constant USDT_V_TOKEN = 0xE3C742c88EE6A610157C16b60bBDD62351daeE39; - // https://sepolia.basescan.org/address/0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165 - address internal constant EURC_ORACLE = 0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165; + // https://sepolia.basescan.org/address/0x3ec8593F930EA45ea58c968260e6e9FF53FC934f + address internal constant USDT_ORACLE = 0x3ec8593F930EA45ea58c968260e6e9FF53FC934f; + + // https://sepolia.basescan.org/address/0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92 + address internal constant USDT_INTEREST_RATE_STRATEGY = + 0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92; + + // https://sepolia.basescan.org/address/0x54114591963CF60EF3aA63bEfD6eC263D98145a4 + address internal constant WBTC_UNDERLYING = 0x54114591963CF60EF3aA63bEfD6eC263D98145a4; + + uint8 internal constant WBTC_DECIMALS = 8; + + // https://sepolia.basescan.org/address/0x47Db195BAf46898302C06c31bCF46c01C64ACcF9 + address internal constant WBTC_A_TOKEN = 0x47Db195BAf46898302C06c31bCF46c01C64ACcF9; + + // https://sepolia.basescan.org/address/0x638291B5Ccb9fEd339FdD351Eb086e607fCA9561 + address internal constant WBTC_V_TOKEN = 0x638291B5Ccb9fEd339FdD351Eb086e607fCA9561; + + // https://sepolia.basescan.org/address/0x0FB99723Aee6f420beAD13e6bBB79b7E6F034298 + address internal constant WBTC_ORACLE = 0x0FB99723Aee6f420beAD13e6bBB79b7E6F034298; - // https://sepolia.basescan.org/address/0xff1DB744F1275f8e04A62A7E5D663575F3a774B6 - address internal constant EURC_INTEREST_RATE_STRATEGY = - 0xff1DB744F1275f8e04A62A7E5D663575F3a774B6; + // https://sepolia.basescan.org/address/0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92 + address internal constant WBTC_INTEREST_RATE_STRATEGY = + 0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92; // https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000006 address internal constant WETH_UNDERLYING = 0x4200000000000000000000000000000000000006; uint8 internal constant WETH_DECIMALS = 18; - // https://sepolia.basescan.org/address/0x6dE9f4b8d4A52D15F1372ef463e27AeAa8a3FdF4 - address internal constant WETH_A_TOKEN = 0x6dE9f4b8d4A52D15F1372ef463e27AeAa8a3FdF4; + // https://sepolia.basescan.org/address/0x73a5bB60b0B0fc35710DDc0ea9c407031E31Bdbb + address internal constant WETH_A_TOKEN = 0x73a5bB60b0B0fc35710DDc0ea9c407031E31Bdbb; - // https://sepolia.basescan.org/address/0x80bEA6A08B3c2df41B48F27c983C3238f1144093 - address internal constant WETH_V_TOKEN = 0x80bEA6A08B3c2df41B48F27c983C3238f1144093; + // https://sepolia.basescan.org/address/0x562abf6562d6A2b165aDa02b5946bc3E7b4dD653 + address internal constant WETH_V_TOKEN = 0x562abf6562d6A2b165aDa02b5946bc3E7b4dD653; // https://sepolia.basescan.org/address/0x4aDC67696bA383F43DD60A9e78F2C97Fbbfc7cb1 address internal constant WETH_ORACLE = 0x4aDC67696bA383F43DD60A9e78F2C97Fbbfc7cb1; - // https://sepolia.basescan.org/address/0xff1DB744F1275f8e04A62A7E5D663575F3a774B6 + // https://sepolia.basescan.org/address/0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92 address internal constant WETH_INTEREST_RATE_STRATEGY = - 0xff1DB744F1275f8e04A62A7E5D663575F3a774B6; + 0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92; - // https://sepolia.basescan.org/address/0x3e138010792d63e4af70dD7F2401C9cdE0eaf3C8 - address internal constant USDX_UNDERLYING = 0x3e138010792d63e4af70dD7F2401C9cdE0eaf3C8; + // https://sepolia.basescan.org/address/0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B + address internal constant cbETH_UNDERLYING = 0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B; - uint8 internal constant USDX_DECIMALS = 18; + uint8 internal constant cbETH_DECIMALS = 18; - // https://sepolia.basescan.org/address/0x7E60de07156fdA16A74F3700725e2bbB5CFC8CB8 - address internal constant USDX_A_TOKEN = 0x7E60de07156fdA16A74F3700725e2bbB5CFC8CB8; + // https://sepolia.basescan.org/address/0x9Fd6d1DBAd7c052e0c43f46df36eEc6a68814B63 + address internal constant cbETH_A_TOKEN = 0x9Fd6d1DBAd7c052e0c43f46df36eEc6a68814B63; - // https://sepolia.basescan.org/address/0xed47C3087a7B41a4F2cA93747DDDc368f8EcDE47 - address internal constant USDX_V_TOKEN = 0xed47C3087a7B41a4F2cA93747DDDc368f8EcDE47; + // https://sepolia.basescan.org/address/0xa1a483652b157FF006292CDb0e9EB7FFad2a5142 + address internal constant cbETH_V_TOKEN = 0xa1a483652b157FF006292CDb0e9EB7FFad2a5142; - // https://sepolia.basescan.org/address/0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165 - address internal constant USDX_ORACLE = 0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165; + // https://sepolia.basescan.org/address/0x3c65e28D357a37589e1C7C86044a9f44dDC17134 + address internal constant cbETH_ORACLE = 0x3c65e28D357a37589e1C7C86044a9f44dDC17134; + + // https://sepolia.basescan.org/address/0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92 + address internal constant cbETH_INTEREST_RATE_STRATEGY = + 0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92; + + // https://sepolia.basescan.org/address/0x810D46F9a9027E28F9B01F75E2bdde839dA61115 + address internal constant LINK_UNDERLYING = 0x810D46F9a9027E28F9B01F75E2bdde839dA61115; + + uint8 internal constant LINK_DECIMALS = 18; - // https://sepolia.basescan.org/address/0xff1DB744F1275f8e04A62A7E5D663575F3a774B6 - address internal constant USDX_INTEREST_RATE_STRATEGY = - 0xff1DB744F1275f8e04A62A7E5D663575F3a774B6; + // https://sepolia.basescan.org/address/0x0aD46dE765522399d7b25B438b230A894d72272B + address internal constant LINK_A_TOKEN = 0x0aD46dE765522399d7b25B438b230A894d72272B; - // https://sepolia.basescan.org/address/0xb17966889E3D914CCf9A11bA0Fd71870B03727AF - address internal constant USDX_STATA_TOKEN = 0xb17966889E3D914CCf9A11bA0Fd71870B03727AF; + // https://sepolia.basescan.org/address/0xBA42C6752F347e3c22DD0A4e5578dCB0137C1325 + address internal constant LINK_V_TOKEN = 0xBA42C6752F347e3c22DD0A4e5578dCB0137C1325; + + // https://sepolia.basescan.org/address/0xb113F5A928BCfF189C998ab20d753a47F9dE5A61 + address internal constant LINK_ORACLE = 0xb113F5A928BCfF189C998ab20d753a47F9dE5A61; + + // https://sepolia.basescan.org/address/0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92 + address internal constant LINK_INTEREST_RATE_STRATEGY = + 0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92; } library AaveV3BaseSepoliaEModes { uint8 internal constant NONE = 0; + + uint8 internal constant ETH_CORRELATED = 1; } library AaveV3BaseSepoliaExternalLibraries { - // https://sepolia.basescan.org/address/0xb32381feFFF45eE9F47fD2f2cF83C832637d6EF0 - address internal constant FLASHLOAN_LOGIC = 0xb32381feFFF45eE9F47fD2f2cF83C832637d6EF0; + // https://sepolia.basescan.org/address/0x994cf1D67Cdc3d0439865B73B18A380CC2E90684 + address internal constant FLASHLOAN_LOGIC = 0x994cf1D67Cdc3d0439865B73B18A380CC2E90684; - // https://sepolia.basescan.org/address/0x4c52FE2162200bf26c314d7bbd8611699139d553 - address internal constant BORROW_LOGIC = 0x4c52FE2162200bf26c314d7bbd8611699139d553; + // https://sepolia.basescan.org/address/0x7079bAa685eb5c46a0f50610E9f05D7C96216cD6 + address internal constant BORROW_LOGIC = 0x7079bAa685eb5c46a0f50610E9f05D7C96216cD6; - // https://sepolia.basescan.org/address/0x97dCbFaE5372A63128F141E8C0BC2c871Ca5F604 - address internal constant BRIDGE_LOGIC = 0x97dCbFaE5372A63128F141E8C0BC2c871Ca5F604; + // https://sepolia.basescan.org/address/0x9D5f335616DaDb68FAf45B92f2a4b2cB84D3De4B + address internal constant BRIDGE_LOGIC = 0x9D5f335616DaDb68FAf45B92f2a4b2cB84D3De4B; // https://sepolia.basescan.org/address/0x88F864670De467aA73CD45325F9652C578C8AB85 address internal constant E_MODE_LOGIC = 0x88F864670De467aA73CD45325F9652C578C8AB85; - // https://sepolia.basescan.org/address/0x80d16970B31243Fe67DaB028115f3E4c3E3510Ad - address internal constant LIQUIDATION_LOGIC = 0x80d16970B31243Fe67DaB028115f3E4c3E3510Ad; + // https://sepolia.basescan.org/address/0x8F998d941ECEef32FBA945a2A42318dB37632293 + address internal constant LIQUIDATION_LOGIC = 0x8F998d941ECEef32FBA945a2A42318dB37632293; // https://sepolia.basescan.org/address/0xA58FB47bE9074828215A173564C0CD10f6F249bf address internal constant POOL_LOGIC = 0xA58FB47bE9074828215A173564C0CD10f6F249bf; - // https://sepolia.basescan.org/address/0x2b22E425C1322fbA0DbF17bb1dA25d71811EE7ba - address internal constant SUPPLY_LOGIC = 0x2b22E425C1322fbA0DbF17bb1dA25d71811EE7ba; + // https://sepolia.basescan.org/address/0xB19dD2d8F5be5f22DfC3916a98AdcEd3e4b4Aa60 + address internal constant SUPPLY_LOGIC = 0xB19dD2d8F5be5f22DfC3916a98AdcEd3e4b4Aa60; } diff --git a/src/ts/AaveV3BaseSepolia.ts b/src/ts/AaveV3BaseSepolia.ts index 31cdeb31..30899d56 100644 --- a/src/ts/AaveV3BaseSepolia.ts +++ b/src/ts/AaveV3BaseSepolia.ts @@ -1,66 +1,69 @@ // AUTOGENERATED - MANUALLY CHANGES WILL BE REVERTED BY THE GENERATOR -// IPoolAddressesProvider https://sepolia.basescan.org/address/0x150E9a8b83b731B9218a5633F1E804BC82508A46 -export const POOL_ADDRESSES_PROVIDER = '0x150E9a8b83b731B9218a5633F1E804BC82508A46'; +// IPoolAddressesProvider https://sepolia.basescan.org/address/0xE4C23309117Aa30342BFaae6c95c6478e0A4Ad00 +export const POOL_ADDRESSES_PROVIDER = '0xE4C23309117Aa30342BFaae6c95c6478e0A4Ad00'; -// IPool https://sepolia.basescan.org/address/0xbE781D7Bdf469f3d94a62Cdcc407aCe106AEcA74 -export const POOL = '0xbE781D7Bdf469f3d94a62Cdcc407aCe106AEcA74'; +// IPool https://sepolia.basescan.org/address/0x8bAB6d1b75f19e9eD9fCe8b9BD338844fF79aE27 +export const POOL = '0x8bAB6d1b75f19e9eD9fCe8b9BD338844fF79aE27'; -// IPoolConfigurator https://sepolia.basescan.org/address/0x4200a89Bd036745918889D6dCC5685A4C6F01C24 -export const POOL_CONFIGURATOR = '0x4200a89Bd036745918889D6dCC5685A4C6F01C24'; +// IPoolConfigurator https://sepolia.basescan.org/address/0x0Bf6bdFF4da24C272BC524d521Ab0db20601D384 +export const POOL_CONFIGURATOR = '0x0Bf6bdFF4da24C272BC524d521Ab0db20601D384'; -// IAaveOracle https://sepolia.basescan.org/address/0x9Ba30437Ba63AA2902319DE1B3f0E25a18826842 -export const ORACLE = '0x9Ba30437Ba63AA2902319DE1B3f0E25a18826842'; +// IAaveOracle https://sepolia.basescan.org/address/0x943b0dE18d4abf4eF02A85912F8fc07684C141dF +export const ORACLE = '0x943b0dE18d4abf4eF02A85912F8fc07684C141dF'; -// https://sepolia.basescan.org/address/0x6ec33534BE07d45cc4E02Fbd127F8ed2aE919a6b -export const ACL_ADMIN = '0x6ec33534BE07d45cc4E02Fbd127F8ed2aE919a6b'; +// https://sepolia.basescan.org/address/0x956DE559DFc27678FD69d4f49f485196b50BDD0F +export const ACL_ADMIN = '0x956DE559DFc27678FD69d4f49f485196b50BDD0F'; -// IACLManager https://sepolia.basescan.org/address/0xb880879303D35a82B1888a4A6d47D2ef0653E4A2 -export const ACL_MANAGER = '0xb880879303D35a82B1888a4A6d47D2ef0653E4A2'; +// IACLManager https://sepolia.basescan.org/address/0x9f09F541Adf314341d8d45E5B18961147b9050E9 +export const ACL_MANAGER = '0x9f09F541Adf314341d8d45E5B18961147b9050E9'; -// IPoolDataProvider https://sepolia.basescan.org/address/0xAF4646B0131af8fc0DC435AF7F7d303Ac131E072 -export const AAVE_PROTOCOL_DATA_PROVIDER = '0xAF4646B0131af8fc0DC435AF7F7d303Ac131E072'; +// IPoolDataProvider https://sepolia.basescan.org/address/0xa432Be23d16907918d626DA6523f89a7c9A299A0 +export const AAVE_PROTOCOL_DATA_PROVIDER = '0xa432Be23d16907918d626DA6523f89a7c9A299A0'; -// https://sepolia.basescan.org/address/0x07D04EfAAA0Ac69D19d107795aF247C42Eb50F1C -export const POOL_IMPL = '0x07D04EfAAA0Ac69D19d107795aF247C42Eb50F1C'; +// https://sepolia.basescan.org/address/0x18A9a9c3B93bdB18eE4cEFe50e55C203D1A31b89 +export const POOL_IMPL = '0x18A9a9c3B93bdB18eE4cEFe50e55C203D1A31b89'; -// https://sepolia.basescan.org/address/0x9E7DF170E44093d6738057157CA048794B02555d -export const POOL_CONFIGURATOR_IMPL = '0x9E7DF170E44093d6738057157CA048794B02555d'; +// https://sepolia.basescan.org/address/0x7315c5ac05cf06aa50693C73929844b66F039DC1 +export const POOL_CONFIGURATOR_IMPL = '0x7315c5ac05cf06aa50693C73929844b66F039DC1'; -// https://sepolia.basescan.org/address/0x294FF52d234a7e09E9642F846702A45337ceB2E2 -export const DEFAULT_INCENTIVES_CONTROLLER = '0x294FF52d234a7e09E9642F846702A45337ceB2E2'; +// https://sepolia.basescan.org/address/0x71B448405c803A3982aBa448133133D2DEAFBE5F +export const DEFAULT_INCENTIVES_CONTROLLER = '0x71B448405c803A3982aBa448133133D2DEAFBE5F'; -// https://sepolia.basescan.org/address/0x1F95c29C9E686e4f438ED5D13cF0B7430B9F39ec -export const EMISSION_MANAGER = '0x1F95c29C9E686e4f438ED5D13cF0B7430B9F39ec'; +// https://sepolia.basescan.org/address/0x49ECA4d8e7EaE6a1e7c02516851fF9038b277e96 +export const EMISSION_MANAGER = '0x49ECA4d8e7EaE6a1e7c02516851fF9038b277e96'; -// ICollector https://sepolia.basescan.org/address/0x67F521ca716dD9413fd2D2AfdEbEE9285289d2cB -export const COLLECTOR = '0x67F521ca716dD9413fd2D2AfdEbEE9285289d2cB'; +// ICollector https://sepolia.basescan.org/address/0x6414DE3F58d54Fb90636e8393F065fDFe34Da420 +export const COLLECTOR = '0x6414DE3F58d54Fb90636e8393F065fDFe34Da420'; -// https://sepolia.basescan.org/address/0xA9E3fFb25C369e44862DD3e87Be4420abb879965 -export const DEFAULT_A_TOKEN_IMPL_REV_1 = '0xA9E3fFb25C369e44862DD3e87Be4420abb879965'; +// https://sepolia.basescan.org/address/0x3012CaC83a1286D0014aA9BB0461b80eb9c8e1b1 +export const DEFAULT_A_TOKEN_IMPL_REV_1 = '0x3012CaC83a1286D0014aA9BB0461b80eb9c8e1b1'; -// https://sepolia.basescan.org/address/0x95eeA7A0b16C8ee3A923D3F5ebe6d77C0332084c -export const DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1 = '0x95eeA7A0b16C8ee3A923D3F5ebe6d77C0332084c'; +// https://sepolia.basescan.org/address/0x9B928e20ECD8d2bA6444B307F4B5127A41d6e19C +export const DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1 = '0x9B928e20ECD8d2bA6444B307F4B5127A41d6e19C'; -// https://sepolia.basescan.org/address/0xAE252DA024783d1813C890d82642bbED120c3093 -export const STATA_FACTORY = '0xAE252DA024783d1813C890d82642bbED120c3093'; +// https://sepolia.basescan.org/address/0x4Afb5ADe7Bd7a670B61f303ab0C740eE8350918f +export const STATA_FACTORY = '0x4Afb5ADe7Bd7a670B61f303ab0C740eE8350918f'; -// https://sepolia.basescan.org/address/0x3d2ee1AB8C3a597cDf80273C684dE0036481bE3a -export const CONFIG_ENGINE = '0x3d2ee1AB8C3a597cDf80273C684dE0036481bE3a'; +// https://sepolia.basescan.org/address/0xD3a3f523100e1eaa740A6eE72Ae94710A0fAcFCe +export const CONFIG_ENGINE = '0xD3a3f523100e1eaa740A6eE72Ae94710A0fAcFCe'; -// https://sepolia.basescan.org/address/0x0ffE481FBF0AE2282A5E1f701fab266aF487A97D -export const L2_ENCODER = '0x0ffE481FBF0AE2282A5E1f701fab266aF487A97D'; +// https://sepolia.basescan.org/address/0x8eB0791E0981947df2eA074D2479dB9A258b0312 +export const L2_ENCODER = '0x8eB0791E0981947df2eA074D2479dB9A258b0312'; -// https://sepolia.basescan.org/address/0x5A6c2685b9dd22705203C99d7Fc30AE53C4c7513 -export const POOL_ADDRESSES_PROVIDER_REGISTRY = '0x5A6c2685b9dd22705203C99d7Fc30AE53C4c7513'; +// https://sepolia.basescan.org/address/0x34473a6Ef69d92191d7b25352b5D266f3a5BAca2 +export const POOL_ADDRESSES_PROVIDER_REGISTRY = '0x34473a6Ef69d92191d7b25352b5D266f3a5BAca2'; -// https://sepolia.basescan.org/address/0xb0633e01310a09C1Ee71a96c057DcF9c13fd6F62 -export const UI_INCENTIVE_DATA_PROVIDER = '0xb0633e01310a09C1Ee71a96c057DcF9c13fd6F62'; +// https://sepolia.basescan.org/address/0xDB1412acf288D5bE057f8e90fd7b1BF4f84bB3B1 +export const UI_INCENTIVE_DATA_PROVIDER = '0xDB1412acf288D5bE057f8e90fd7b1BF4f84bB3B1'; -// https://sepolia.basescan.org/address/0xdc5D225Df17df184d11015B91C4A10cd7834e2aC -export const WALLET_BALANCE_PROVIDER = '0xdc5D225Df17df184d11015B91C4A10cd7834e2aC'; +// https://sepolia.basescan.org/address/0x6a9D64f93DB660EaCB2b6E9424792c630CdA87d8 +export const UI_POOL_DATA_PROVIDER = '0x6a9D64f93DB660EaCB2b6E9424792c630CdA87d8'; -// https://sepolia.basescan.org/address/0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461 -export const WETH_GATEWAY = '0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461'; +// https://sepolia.basescan.org/address/0x2c4D1F4EC7F4FfA09a5E1C9e74fD3A10f21Bd811 +export const WALLET_BALANCE_PROVIDER = '0x2c4D1F4EC7F4FfA09a5E1C9e74fD3A10f21Bd811'; + +// https://sepolia.basescan.org/address/0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6 +export const WETH_GATEWAY = '0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6'; // https://sepolia.basescan.org/address/0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5 export const UMBRELLA = '0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5'; @@ -70,40 +73,74 @@ export const ASSETS = { USDC: { decimals: 6, id: 0, - UNDERLYING: '0x036CbD53842c5426634e7929541eC2318f3dCF7e', - A_TOKEN: '0xfE45Bf4dEF7223Ab1Bf83cA17a4462Ef1647F7FF', - V_TOKEN: '0x5E531B00C86C2D0014020183DaFE7c17C4aA90D8', - INTEREST_RATE_STRATEGY: '0xff1DB744F1275f8e04A62A7E5D663575F3a774B6', + UNDERLYING: '0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f', + A_TOKEN: '0x10F1A9D11CDf50041f3f8cB7191CBE2f31750ACC', + V_TOKEN: '0xFB3e85601b7fEb3691bbb8779Ef0E1069E347204', + INTEREST_RATE_STRATEGY: '0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92', ORACLE: '0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165', }, - EURC: { + USDT: { decimals: 6, id: 1, - UNDERLYING: '0x808456652fdb597867f38412077A9182bf77359F', - A_TOKEN: '0x70B607b3cdED31635779781d42540580D4Ac18F4', - V_TOKEN: '0xEa1b67213437E753656B209d1d3d16c1DFE424fd', - INTEREST_RATE_STRATEGY: '0xff1DB744F1275f8e04A62A7E5D663575F3a774B6', - ORACLE: '0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165', + UNDERLYING: '0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a', + A_TOKEN: '0xcE3CAae5Ed17A7AafCEEbc897DE843fA6CC0c018', + V_TOKEN: '0xE3C742c88EE6A610157C16b60bBDD62351daeE39', + INTEREST_RATE_STRATEGY: '0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92', + ORACLE: '0x3ec8593F930EA45ea58c968260e6e9FF53FC934f', + }, + WBTC: { + decimals: 8, + id: 2, + UNDERLYING: '0x54114591963CF60EF3aA63bEfD6eC263D98145a4', + A_TOKEN: '0x47Db195BAf46898302C06c31bCF46c01C64ACcF9', + V_TOKEN: '0x638291B5Ccb9fEd339FdD351Eb086e607fCA9561', + INTEREST_RATE_STRATEGY: '0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92', + ORACLE: '0x0FB99723Aee6f420beAD13e6bBB79b7E6F034298', }, WETH: { decimals: 18, - id: 2, + id: 3, UNDERLYING: '0x4200000000000000000000000000000000000006', - A_TOKEN: '0x6dE9f4b8d4A52D15F1372ef463e27AeAa8a3FdF4', - V_TOKEN: '0x80bEA6A08B3c2df41B48F27c983C3238f1144093', - INTEREST_RATE_STRATEGY: '0xff1DB744F1275f8e04A62A7E5D663575F3a774B6', + A_TOKEN: '0x73a5bB60b0B0fc35710DDc0ea9c407031E31Bdbb', + V_TOKEN: '0x562abf6562d6A2b165aDa02b5946bc3E7b4dD653', + INTEREST_RATE_STRATEGY: '0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92', ORACLE: '0x4aDC67696bA383F43DD60A9e78F2C97Fbbfc7cb1', }, - USDX: { + cbETH: { decimals: 18, - id: 3, - UNDERLYING: '0x3e138010792d63e4af70dD7F2401C9cdE0eaf3C8', - A_TOKEN: '0x7E60de07156fdA16A74F3700725e2bbB5CFC8CB8', - V_TOKEN: '0xed47C3087a7B41a4F2cA93747DDDc368f8EcDE47', - INTEREST_RATE_STRATEGY: '0xff1DB744F1275f8e04A62A7E5D663575F3a774B6', - ORACLE: '0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165', - STATA_TOKEN: '0xb17966889E3D914CCf9A11bA0Fd71870B03727AF', + id: 4, + UNDERLYING: '0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B', + A_TOKEN: '0x9Fd6d1DBAd7c052e0c43f46df36eEc6a68814B63', + V_TOKEN: '0xa1a483652b157FF006292CDb0e9EB7FFad2a5142', + INTEREST_RATE_STRATEGY: '0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92', + ORACLE: '0x3c65e28D357a37589e1C7C86044a9f44dDC17134', + }, + LINK: { + decimals: 18, + id: 5, + UNDERLYING: '0x810D46F9a9027E28F9B01F75E2bdde839dA61115', + A_TOKEN: '0x0aD46dE765522399d7b25B438b230A894d72272B', + V_TOKEN: '0xBA42C6752F347e3c22DD0A4e5578dCB0137C1325', + INTEREST_RATE_STRATEGY: '0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92', + ORACLE: '0xb113F5A928BCfF189C998ab20d753a47F9dE5A61', + }, +} as const; +export const E_MODES = { + '1': { + label: 'ETH correlated', + collateralBitmap: '24', + collateralAssets: [ + '0x4200000000000000000000000000000000000006', + '0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B', + ], + borrowableBitmap: '24', + borrowableAssets: [ + '0x4200000000000000000000000000000000000006', + '0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B', + ], + ltv: 9300, + liquidationThreshold: 9500, + liquidationBonus: 10250, }, } as const; -export const E_MODES = {} as const; export const EXTERNAL_LIBRARIES = {} as const; From 93dcb37f9a8c4c24b76d1d16da5fcee581ff6661 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 25 Nov 2024 14:43:57 +0100 Subject: [PATCH 07/11] feat: add umbrella --- scripts/configs/pools/base.ts | 5 +++-- src/AaveV3BaseSepolia.sol | 4 ++-- src/AaveV3BaseSepoliaLido.sol | 3 +++ src/ts/AaveV3BaseSepolia.ts | 4 ++-- src/ts/AaveV3BaseSepoliaLido.ts | 3 +++ 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/scripts/configs/pools/base.ts b/scripts/configs/pools/base.ts index d9abd192..064ca6ba 100644 --- a/scripts/configs/pools/base.ts +++ b/scripts/configs/pools/base.ts @@ -38,8 +38,8 @@ export const baseSepoliaProtoV3: PoolConfig = { UI_POOL_DATA_PROVIDER: '0x6a9D64f93DB660EaCB2b6E9424792c630CdA87d8', WALLET_BALANCE_PROVIDER: '0x2c4D1F4EC7F4FfA09a5E1C9e74fD3A10f21Bd811', WETH_GATEWAY: '0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6', - UMBRELLA: '0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5', - } + UMBRELLA: '0xb939e96168a3953697B64DA8055570dee8735829', + }, }; export const baseSepoliaLidoProtoV3: PoolConfig = { @@ -55,5 +55,6 @@ export const baseSepoliaLidoProtoV3: PoolConfig = { UI_POOL_DATA_PROVIDER: '0xB177501db055d357587Ab973f8D7748588A8A8B5', WALLET_BALANCE_PROVIDER: '0x29e4a5A618845250383dCd33DD0a5A4223c26Acd', WETH_GATEWAY: '0x85c10e659FcEB9319248d88f82E5e0c8cb0Bc000', + UMBRELLA: '0x779f13D3C70B50707a1C1ac9772c117cC3aDA477', }, }; diff --git a/src/AaveV3BaseSepolia.sol b/src/AaveV3BaseSepolia.sol index 44a14a89..66fc67d5 100644 --- a/src/AaveV3BaseSepolia.sol +++ b/src/AaveV3BaseSepolia.sol @@ -78,8 +78,8 @@ library AaveV3BaseSepolia { // https://sepolia.basescan.org/address/0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6 address internal constant WETH_GATEWAY = 0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6; - // https://sepolia.basescan.org/address/0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5 - address internal constant UMBRELLA = 0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5; + // https://sepolia.basescan.org/address/0xb939e96168a3953697B64DA8055570dee8735829 + address internal constant UMBRELLA = 0xb939e96168a3953697B64DA8055570dee8735829; } library AaveV3BaseSepoliaAssets { // https://sepolia.basescan.org/address/0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f diff --git a/src/AaveV3BaseSepoliaLido.sol b/src/AaveV3BaseSepoliaLido.sol index 93e99f26..938ab86d 100644 --- a/src/AaveV3BaseSepoliaLido.sol +++ b/src/AaveV3BaseSepoliaLido.sol @@ -77,6 +77,9 @@ library AaveV3BaseSepoliaLido { // https://sepolia.basescan.org/address/0x85c10e659FcEB9319248d88f82E5e0c8cb0Bc000 address internal constant WETH_GATEWAY = 0x85c10e659FcEB9319248d88f82E5e0c8cb0Bc000; + + // https://sepolia.basescan.org/address/0x779f13D3C70B50707a1C1ac9772c117cC3aDA477 + address internal constant UMBRELLA = 0x779f13D3C70B50707a1C1ac9772c117cC3aDA477; } library AaveV3BaseSepoliaLidoAssets { // https://sepolia.basescan.org/address/0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f diff --git a/src/ts/AaveV3BaseSepolia.ts b/src/ts/AaveV3BaseSepolia.ts index 30899d56..d041119b 100644 --- a/src/ts/AaveV3BaseSepolia.ts +++ b/src/ts/AaveV3BaseSepolia.ts @@ -65,8 +65,8 @@ export const WALLET_BALANCE_PROVIDER = '0x2c4D1F4EC7F4FfA09a5E1C9e74fD3A10f21Bd8 // https://sepolia.basescan.org/address/0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6 export const WETH_GATEWAY = '0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6'; -// https://sepolia.basescan.org/address/0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5 -export const UMBRELLA = '0xcBF4fF4FF25a031419fe211A49Ff27B7a7c90dA5'; +// https://sepolia.basescan.org/address/0xb939e96168a3953697B64DA8055570dee8735829 +export const UMBRELLA = '0xb939e96168a3953697B64DA8055570dee8735829'; export const CHAIN_ID = 84532; export const ASSETS = { diff --git a/src/ts/AaveV3BaseSepoliaLido.ts b/src/ts/AaveV3BaseSepoliaLido.ts index d55b35e3..d0898465 100644 --- a/src/ts/AaveV3BaseSepoliaLido.ts +++ b/src/ts/AaveV3BaseSepoliaLido.ts @@ -65,6 +65,9 @@ export const WALLET_BALANCE_PROVIDER = '0x29e4a5A618845250383dCd33DD0a5A4223c26A // https://sepolia.basescan.org/address/0x85c10e659FcEB9319248d88f82E5e0c8cb0Bc000 export const WETH_GATEWAY = '0x85c10e659FcEB9319248d88f82E5e0c8cb0Bc000'; +// https://sepolia.basescan.org/address/0x779f13D3C70B50707a1C1ac9772c117cC3aDA477 +export const UMBRELLA = '0x779f13D3C70B50707a1C1ac9772c117cC3aDA477'; + export const CHAIN_ID = 84532; export const ASSETS = { USDC: { From 1132b8e4e1c88f228b9c452bb49e8c17ea306406 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 25 Nov 2024 15:07:48 +0100 Subject: [PATCH 08/11] fix: add stata tokens --- src/AaveV3BaseSepolia.sol | 18 ++++++++++++++++++ src/AaveV3BaseSepoliaLido.sol | 18 ++++++++++++++++++ src/ts/AaveV3BaseSepolia.ts | 6 ++++++ src/ts/AaveV3BaseSepoliaLido.ts | 6 ++++++ tests/cache/verified.json | 3 +++ 5 files changed, 51 insertions(+) diff --git a/src/AaveV3BaseSepolia.sol b/src/AaveV3BaseSepolia.sol index 66fc67d5..b34aae60 100644 --- a/src/AaveV3BaseSepolia.sol +++ b/src/AaveV3BaseSepolia.sol @@ -100,6 +100,9 @@ library AaveV3BaseSepoliaAssets { address internal constant USDC_INTEREST_RATE_STRATEGY = 0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92; + // https://sepolia.basescan.org/address/0xf430cb6E2b85f99222fBFA6dFEa18Ff60FA6B32a + address internal constant USDC_STATA_TOKEN = 0xf430cb6E2b85f99222fBFA6dFEa18Ff60FA6B32a; + // https://sepolia.basescan.org/address/0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a address internal constant USDT_UNDERLYING = 0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a; @@ -118,6 +121,9 @@ library AaveV3BaseSepoliaAssets { address internal constant USDT_INTEREST_RATE_STRATEGY = 0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92; + // https://sepolia.basescan.org/address/0xf63dA51069FAe9448747FA425F8Cb84B0149eC0F + address internal constant USDT_STATA_TOKEN = 0xf63dA51069FAe9448747FA425F8Cb84B0149eC0F; + // https://sepolia.basescan.org/address/0x54114591963CF60EF3aA63bEfD6eC263D98145a4 address internal constant WBTC_UNDERLYING = 0x54114591963CF60EF3aA63bEfD6eC263D98145a4; @@ -136,6 +142,9 @@ library AaveV3BaseSepoliaAssets { address internal constant WBTC_INTEREST_RATE_STRATEGY = 0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92; + // https://sepolia.basescan.org/address/0x5d7538579560F5fdD54F9D264DBe0e697b5BF668 + address internal constant WBTC_STATA_TOKEN = 0x5d7538579560F5fdD54F9D264DBe0e697b5BF668; + // https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000006 address internal constant WETH_UNDERLYING = 0x4200000000000000000000000000000000000006; @@ -154,6 +163,9 @@ library AaveV3BaseSepoliaAssets { address internal constant WETH_INTEREST_RATE_STRATEGY = 0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92; + // https://sepolia.basescan.org/address/0xde7820fFb73059608928cb9e29F6EB1369Ad1342 + address internal constant WETH_STATA_TOKEN = 0xde7820fFb73059608928cb9e29F6EB1369Ad1342; + // https://sepolia.basescan.org/address/0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B address internal constant cbETH_UNDERLYING = 0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B; @@ -172,6 +184,9 @@ library AaveV3BaseSepoliaAssets { address internal constant cbETH_INTEREST_RATE_STRATEGY = 0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92; + // https://sepolia.basescan.org/address/0x9F56ff6c3441bb89eBFf1c0bc75D4096C33230d1 + address internal constant cbETH_STATA_TOKEN = 0x9F56ff6c3441bb89eBFf1c0bc75D4096C33230d1; + // https://sepolia.basescan.org/address/0x810D46F9a9027E28F9B01F75E2bdde839dA61115 address internal constant LINK_UNDERLYING = 0x810D46F9a9027E28F9B01F75E2bdde839dA61115; @@ -189,6 +204,9 @@ library AaveV3BaseSepoliaAssets { // https://sepolia.basescan.org/address/0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92 address internal constant LINK_INTEREST_RATE_STRATEGY = 0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92; + + // https://sepolia.basescan.org/address/0xFb3AB5ABd3dE4703C0F296B1fe6f5E570e1631Ff + address internal constant LINK_STATA_TOKEN = 0xFb3AB5ABd3dE4703C0F296B1fe6f5E570e1631Ff; } library AaveV3BaseSepoliaEModes { uint8 internal constant NONE = 0; diff --git a/src/AaveV3BaseSepoliaLido.sol b/src/AaveV3BaseSepoliaLido.sol index 938ab86d..6351a3cc 100644 --- a/src/AaveV3BaseSepoliaLido.sol +++ b/src/AaveV3BaseSepoliaLido.sol @@ -100,6 +100,9 @@ library AaveV3BaseSepoliaLidoAssets { address internal constant USDC_INTEREST_RATE_STRATEGY = 0x25203996df0d836EC9E2b4f92EAd42E8b424C865; + // https://sepolia.basescan.org/address/0x5F27a04278bce1b04b80462e829b5582BD42B260 + address internal constant USDC_STATA_TOKEN = 0x5F27a04278bce1b04b80462e829b5582BD42B260; + // https://sepolia.basescan.org/address/0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a address internal constant USDT_UNDERLYING = 0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a; @@ -118,6 +121,9 @@ library AaveV3BaseSepoliaLidoAssets { address internal constant USDT_INTEREST_RATE_STRATEGY = 0x25203996df0d836EC9E2b4f92EAd42E8b424C865; + // https://sepolia.basescan.org/address/0x35C90dfcEC0BBfD90355Eab33b6807dD044937B2 + address internal constant USDT_STATA_TOKEN = 0x35C90dfcEC0BBfD90355Eab33b6807dD044937B2; + // https://sepolia.basescan.org/address/0x54114591963CF60EF3aA63bEfD6eC263D98145a4 address internal constant WBTC_UNDERLYING = 0x54114591963CF60EF3aA63bEfD6eC263D98145a4; @@ -136,6 +142,9 @@ library AaveV3BaseSepoliaLidoAssets { address internal constant WBTC_INTEREST_RATE_STRATEGY = 0x25203996df0d836EC9E2b4f92EAd42E8b424C865; + // https://sepolia.basescan.org/address/0xaBf1f599A74469e02A9489545823389A6f560705 + address internal constant WBTC_STATA_TOKEN = 0xaBf1f599A74469e02A9489545823389A6f560705; + // https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000006 address internal constant WETH_UNDERLYING = 0x4200000000000000000000000000000000000006; @@ -154,6 +163,9 @@ library AaveV3BaseSepoliaLidoAssets { address internal constant WETH_INTEREST_RATE_STRATEGY = 0x25203996df0d836EC9E2b4f92EAd42E8b424C865; + // https://sepolia.basescan.org/address/0x35005A1D2f262F941CcA230EB04377059c977101 + address internal constant WETH_STATA_TOKEN = 0x35005A1D2f262F941CcA230EB04377059c977101; + // https://sepolia.basescan.org/address/0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B address internal constant cbETH_UNDERLYING = 0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B; @@ -172,6 +184,9 @@ library AaveV3BaseSepoliaLidoAssets { address internal constant cbETH_INTEREST_RATE_STRATEGY = 0x25203996df0d836EC9E2b4f92EAd42E8b424C865; + // https://sepolia.basescan.org/address/0x13B9Fa684b90367Ddd20D53d5b5a81F54eaf1B8A + address internal constant cbETH_STATA_TOKEN = 0x13B9Fa684b90367Ddd20D53d5b5a81F54eaf1B8A; + // https://sepolia.basescan.org/address/0x810D46F9a9027E28F9B01F75E2bdde839dA61115 address internal constant LINK_UNDERLYING = 0x810D46F9a9027E28F9B01F75E2bdde839dA61115; @@ -189,6 +204,9 @@ library AaveV3BaseSepoliaLidoAssets { // https://sepolia.basescan.org/address/0x25203996df0d836EC9E2b4f92EAd42E8b424C865 address internal constant LINK_INTEREST_RATE_STRATEGY = 0x25203996df0d836EC9E2b4f92EAd42E8b424C865; + + // https://sepolia.basescan.org/address/0x257bB590608322Fdf47446a1Fc531bf5EC7e8f38 + address internal constant LINK_STATA_TOKEN = 0x257bB590608322Fdf47446a1Fc531bf5EC7e8f38; } library AaveV3BaseSepoliaLidoEModes { uint8 internal constant NONE = 0; diff --git a/src/ts/AaveV3BaseSepolia.ts b/src/ts/AaveV3BaseSepolia.ts index d041119b..a105137b 100644 --- a/src/ts/AaveV3BaseSepolia.ts +++ b/src/ts/AaveV3BaseSepolia.ts @@ -78,6 +78,7 @@ export const ASSETS = { V_TOKEN: '0xFB3e85601b7fEb3691bbb8779Ef0E1069E347204', INTEREST_RATE_STRATEGY: '0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92', ORACLE: '0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165', + STATA_TOKEN: '0xf430cb6E2b85f99222fBFA6dFEa18Ff60FA6B32a', }, USDT: { decimals: 6, @@ -87,6 +88,7 @@ export const ASSETS = { V_TOKEN: '0xE3C742c88EE6A610157C16b60bBDD62351daeE39', INTEREST_RATE_STRATEGY: '0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92', ORACLE: '0x3ec8593F930EA45ea58c968260e6e9FF53FC934f', + STATA_TOKEN: '0xf63dA51069FAe9448747FA425F8Cb84B0149eC0F', }, WBTC: { decimals: 8, @@ -96,6 +98,7 @@ export const ASSETS = { V_TOKEN: '0x638291B5Ccb9fEd339FdD351Eb086e607fCA9561', INTEREST_RATE_STRATEGY: '0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92', ORACLE: '0x0FB99723Aee6f420beAD13e6bBB79b7E6F034298', + STATA_TOKEN: '0x5d7538579560F5fdD54F9D264DBe0e697b5BF668', }, WETH: { decimals: 18, @@ -105,6 +108,7 @@ export const ASSETS = { V_TOKEN: '0x562abf6562d6A2b165aDa02b5946bc3E7b4dD653', INTEREST_RATE_STRATEGY: '0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92', ORACLE: '0x4aDC67696bA383F43DD60A9e78F2C97Fbbfc7cb1', + STATA_TOKEN: '0xde7820fFb73059608928cb9e29F6EB1369Ad1342', }, cbETH: { decimals: 18, @@ -114,6 +118,7 @@ export const ASSETS = { V_TOKEN: '0xa1a483652b157FF006292CDb0e9EB7FFad2a5142', INTEREST_RATE_STRATEGY: '0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92', ORACLE: '0x3c65e28D357a37589e1C7C86044a9f44dDC17134', + STATA_TOKEN: '0x9F56ff6c3441bb89eBFf1c0bc75D4096C33230d1', }, LINK: { decimals: 18, @@ -123,6 +128,7 @@ export const ASSETS = { V_TOKEN: '0xBA42C6752F347e3c22DD0A4e5578dCB0137C1325', INTEREST_RATE_STRATEGY: '0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92', ORACLE: '0xb113F5A928BCfF189C998ab20d753a47F9dE5A61', + STATA_TOKEN: '0xFb3AB5ABd3dE4703C0F296B1fe6f5E570e1631Ff', }, } as const; export const E_MODES = { diff --git a/src/ts/AaveV3BaseSepoliaLido.ts b/src/ts/AaveV3BaseSepoliaLido.ts index d0898465..3a322446 100644 --- a/src/ts/AaveV3BaseSepoliaLido.ts +++ b/src/ts/AaveV3BaseSepoliaLido.ts @@ -78,6 +78,7 @@ export const ASSETS = { V_TOKEN: '0x040a0aCdBd42f7f0c605423Aacc6abB47d7cB42C', INTEREST_RATE_STRATEGY: '0x25203996df0d836EC9E2b4f92EAd42E8b424C865', ORACLE: '0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165', + STATA_TOKEN: '0x5F27a04278bce1b04b80462e829b5582BD42B260', }, USDT: { decimals: 6, @@ -87,6 +88,7 @@ export const ASSETS = { V_TOKEN: '0xd37D7004D54d1F779BC788193C72AC6C826e9046', INTEREST_RATE_STRATEGY: '0x25203996df0d836EC9E2b4f92EAd42E8b424C865', ORACLE: '0x3ec8593F930EA45ea58c968260e6e9FF53FC934f', + STATA_TOKEN: '0x35C90dfcEC0BBfD90355Eab33b6807dD044937B2', }, WBTC: { decimals: 8, @@ -96,6 +98,7 @@ export const ASSETS = { V_TOKEN: '0x8D4dFea75077400457FF68A039E9c39997398b80', INTEREST_RATE_STRATEGY: '0x25203996df0d836EC9E2b4f92EAd42E8b424C865', ORACLE: '0x0FB99723Aee6f420beAD13e6bBB79b7E6F034298', + STATA_TOKEN: '0xaBf1f599A74469e02A9489545823389A6f560705', }, WETH: { decimals: 18, @@ -105,6 +108,7 @@ export const ASSETS = { V_TOKEN: '0x6b20DFD2264152431a7242771eE381E03D378D96', INTEREST_RATE_STRATEGY: '0x25203996df0d836EC9E2b4f92EAd42E8b424C865', ORACLE: '0x4aDC67696bA383F43DD60A9e78F2C97Fbbfc7cb1', + STATA_TOKEN: '0x35005A1D2f262F941CcA230EB04377059c977101', }, cbETH: { decimals: 18, @@ -114,6 +118,7 @@ export const ASSETS = { V_TOKEN: '0x7352Cfa37Cd01320491C9fb53D941E511932D345', INTEREST_RATE_STRATEGY: '0x25203996df0d836EC9E2b4f92EAd42E8b424C865', ORACLE: '0x3c65e28D357a37589e1C7C86044a9f44dDC17134', + STATA_TOKEN: '0x13B9Fa684b90367Ddd20D53d5b5a81F54eaf1B8A', }, LINK: { decimals: 18, @@ -123,6 +128,7 @@ export const ASSETS = { V_TOKEN: '0x1076426cDFf78456AbdCE9eD654724B914B2b318', INTEREST_RATE_STRATEGY: '0x25203996df0d836EC9E2b4f92EAd42E8b424C865', ORACLE: '0xb113F5A928BCfF189C998ab20d753a47F9dE5A61', + STATA_TOKEN: '0x257bB590608322Fdf47446a1Fc531bf5EC7e8f38', }, } as const; export const E_MODES = { diff --git a/tests/cache/verified.json b/tests/cache/verified.json index 8332f036..d7532901 100644 --- a/tests/cache/verified.json +++ b/tests/cache/verified.json @@ -2297,6 +2297,9 @@ }, "0x40ede12b44d98Fc4E53A2fB027D1BD1846e1690C": { "name": "ParaSwapDebtSwapAdapterV3" + }, + "0xA1c93D2687f7014Aaf588c764E3Ce80aF016229b": { + "name": "GnosisSafeProxy" } }, "10": { From 733e039a7f7b2362efe7fa927892e189f5a166f1 Mon Sep 17 00:00:00 2001 From: Lukas Date: Tue, 26 Nov 2024 21:02:56 +0100 Subject: [PATCH 09/11] test: ensure verification on testnets as well --- scripts/clients.ts | 5 +- tests/__snapshots__/verification.spec.ts.snap | 138 ++ tests/cache/verified.json | 1218 +++++++++++++++-- tests/setup.ts | 1 + tests/verification.spec.ts | 40 +- vitest.config.ts | 7 + 6 files changed, 1302 insertions(+), 107 deletions(-) create mode 100644 tests/setup.ts create mode 100644 vitest.config.ts diff --git a/scripts/clients.ts b/scripts/clients.ts index c36bb40f..5d20b2e1 100644 --- a/scripts/clients.ts +++ b/scripts/clients.ts @@ -1,5 +1,4 @@ -import {HttpTransportConfig, createClient, http} from 'viem'; -import {Client} from 'viem'; +import {HttpTransportConfig, createPublicClient, Client, http} from 'viem'; import {ChainList, getRPCUrl} from '@bgd-labs/rpc-env'; const commonConfig: HttpTransportConfig = {timeout: 30_000, batch: true}; @@ -11,7 +10,7 @@ export function getClient(chainId: number) { if (!clientCache[chainId]) { const rpcURL = getRPCUrl(chainId as any, {alchemyKey: process.env.ALCHEMY_API_KEY}); - clientCache[chainId] = createClient({ + clientCache[chainId] = createPublicClient({ chain: ChainList[chainId], transport: http(rpcURL, commonConfig), ...batchConfig, diff --git a/tests/__snapshots__/verification.spec.ts.snap b/tests/__snapshots__/verification.spec.ts.snap index 14d7f161..28465e46 100644 --- a/tests/__snapshots__/verification.spec.ts.snap +++ b/tests/__snapshots__/verification.spec.ts.snap @@ -32,6 +32,66 @@ exports[`verification > should have all contracts verified except for the known "value": "0x645654D59A5226CBab969b1f5431aA47CBf64ab8", }, }, + { + "item": { + "chainId": 43113, + "path": [ + "AaveV2Fuji", + "POOL_IMPL", + ], + "value": "0x6C66d96ACCCCC2E6F576813A480AD230D56FB2F1", + }, + }, + { + "item": { + "chainId": 43113, + "path": [ + "AaveV2Fuji", + "ORACLE", + ], + "value": "0xfa4f5B081632c4709667D467F817C09d9008A46A", + }, + }, + { + "item": { + "chainId": 43113, + "path": [ + "AaveV2Fuji", + "LENDING_RATE_ORACLE", + ], + "value": "0x76Ec7c83aCb6af821E61F1DF1E0aBE684Bc904F8", + }, + }, + { + "item": { + "chainId": 43113, + "path": [ + "AaveV2Fuji", + "DEFAULT_INCENTIVES_CONTROLLER", + ], + "value": "0xa1EF206fb9a8D8186157FC817fCddcC47727ED55", + }, + }, + { + "item": { + "chainId": 43113, + "path": [ + "AaveV2Fuji", + "FAUCET", + ], + "value": "0x90E5BAc5A98fff59617080848959f44eACB4Cd7B", + }, + }, + { + "item": { + "chainId": 43113, + "path": [ + "AaveV2Fuji", + "UI_INCENTIVE_DATA_PROVIDER", + ], + "value": "0x9842E5B7b7C6cEDfB1952a388e050582Ff95645b", + }, + }, { "item": { "chainId": 43114, @@ -42,5 +102,83 @@ exports[`verification > should have all contracts verified except for the known "value": "0x11979886A6dBAE27D7a72c49fCF3F23240D647bF", }, }, + { + "item": { + "chainId": 84532, + "path": [ + "AaveV3BaseSepolia", + "COLLECTOR", + ], + "value": "0x6414DE3F58d54Fb90636e8393F065fDFe34Da420", + }, + }, + { + "item": { + "chainId": 84532, + "path": [ + "AaveV3BaseSepolia", + "UMBRELLA", + ], + "value": "0xb939e96168a3953697B64DA8055570dee8735829", + }, + }, + { + "item": { + "chainId": 421614, + "path": [ + "AaveV3ArbitrumSepolia", + "ASSETS", + "USDC", + "INTEREST_RATE_STRATEGY", + ], + "value": "0x5C0A210C9C0df2Ab147BDE7D9583c07cEb3131CD", + }, + }, + { + "item": { + "chainId": 421614, + "path": [ + "AaveV3ArbitrumSepolia", + "ASSETS", + "WETH", + "INTEREST_RATE_STRATEGY", + ], + "value": "0x46d3a2A27E2c700d74f21AD3290A20cB8437F7b7", + }, + }, + { + "item": { + "chainId": 11155420, + "path": [ + "AaveV3OptimismSepolia", + "RATES_FACTORY", + ], + "value": "0x83E0E6095a318446b313f7D27e0c33Ed1e9c0213", + }, + }, + { + "item": { + "chainId": 11155420, + "path": [ + "AaveV3OptimismSepolia", + "ASSETS", + "USDC", + "INTEREST_RATE_STRATEGY", + ], + "value": "0xd6a6339c6C1B5a8792afA6e0E80b1908b8579f51", + }, + }, + { + "item": { + "chainId": 11155420, + "path": [ + "AaveV3OptimismSepolia", + "ASSETS", + "WETH", + "INTEREST_RATE_STRATEGY", + ], + "value": "0xaFb7Bc3f69A8Cc6a49823eFF9E3974CD49181A9c", + }, + }, ] `; diff --git a/tests/cache/verified.json b/tests/cache/verified.json index d7532901..bd6dfa68 100644 --- a/tests/cache/verified.json +++ b/tests/cache/verified.json @@ -4806,6 +4806,122 @@ "name": "TransparentProxyFactory" } }, + "4002": { + "0x1558c6FadDe1bEaf0f6628BDd1DFf3461185eA24": { + "name": "PoolAddressesProvider" + }, + "0x18a8d31dA46eeb9138a16dfC429E74C04ff523F4": { + "name": "AaveOracle" + }, + "0xD5D4f4fe4BfC8e8193f38927EfafDbfbB66dd7e0": { + "name": "ACLManager" + }, + "0x3c9F4EEa18B02ee331218646Fea59EE3661d2A61": { + "name": "AaveProtocolDataProvider" + }, + "0x685b86a6659a1CbcfE168304386e1b54C543Ce16": { + "name": "Pool" + }, + "0x1034d6131E0E7F2F47bFAd06597ed97b35aA5492": { + "name": "PoolConfigurator" + }, + "0xBAdD48c3EB42A10dB791D7b02E3c07Fbf95B3155": { + "name": "EmissionManager" + }, + "0x445e52B0C18704448f4589C4304f63Ea287c2eb0": { + "name": "InitializableAdminUpgradeabilityProxy" + }, + "0x6056C29483433A095eF98Fb0d01F2827F5FCeB99": { + "name": "AToken" + }, + "0x67F50B454972F7557c359AfE2DD3caef9930d665": { + "name": "VariableDebtToken" + }, + "0x021BE22Bdfa497D6643D4035E530095E7b452967": { + "name": "Faucet" + }, + "0xf24dc19cFb9A25bbc4DDcaAdb116DfD17472207B": { + "name": "UiIncentiveDataProviderV3" + }, + "0xC91dB4F736b6Acf5A2e379a58280D1b06BD24E7d": { + "name": "UiPoolDataProviderV3" + }, + "0x49cC86071dEcC7999BA656763b8389f23058bB34": { + "name": "WalletBalanceProvider" + }, + "0xd2B0C9778d088Fc79C28Da719bC02158E64796bD": { + "name": "WrappedTokenGatewayV3" + }, + "0x77FDe93fEe5fe272dC17d799cb61447431E6Eba2": { + "name": "TestnetERC20" + }, + "0xEF97dc4389e8198068939ac2E92ca24371b67F1F": { + "name": "DefaultReserveInterestRateStrategy" + }, + "0x00DF377c2C82a65A8bAe2Ff04a9434a721Bc5aEB": { + "name": "MockAggregator" + }, + "0x1Da81b322451C51D2580B373974a999d5A9C2D21": { + "name": "TestnetERC20" + }, + "0x9060C6E714BA5C3A46665599103989778a736D4B": { + "name": "DefaultReserveInterestRateStrategy" + }, + "0x55c7852e10fcd07cF63Ad1bb9FC191b6F4d96ebD": { + "name": "MockAggregator" + }, + "0x66F61903D7FEC18048bEc2e792f272cb8B657733": { + "name": "TestnetERC20" + }, + "0x3877E12506b087e56CdB7C9a54A04bE0D322B26C": { + "name": "DefaultReserveInterestRateStrategy" + }, + "0x4CeDCB57Af02293231BAA9D39354D6BFDFD251e0": { + "name": "MockAggregator" + }, + "0x2c95d10bA4BBEc79e562e8B3f48687751808C925": { + "name": "TestnetERC20" + }, + "0x8022B4f0165644D9EFcDEF70b09F5739b95740bc": { + "name": "MockAggregator" + }, + "0xc8c0Cf9436F4862a8F60Ce680Ca5a9f0f99b5ded": { + "name": "TestnetERC20" + }, + "0x9e2DDb6aA91399546Bd875E2e63E8d6df276922e": { + "name": "MockAggregator" + }, + "0x9DFf9E93B1e513379cf820504D642c6891d8F7CC": { + "name": "TestnetERC20" + }, + "0x7CBa02e449d1D41b792A28fC15ee3F72C5aDC113": { + "name": "MockAggregator" + }, + "0x52D800ca262522580CeBAD275395ca6e7598C014": { + "name": "TestnetERC20" + }, + "0xB516d30421d2A0524769A243BBE5e193E78ab35c": { + "name": "MockAggregator" + }, + "0x2Fa2e7a6dEB7bb51B625336DBe1dA23511914a8A": { + "name": "WETH9Mock" + }, + "0x76675dEA78639e06a0f6b377262A03dEA916D6a4": { + "name": "MockAggregator" + }, + "0xc199807AF4fEDB02EE567Ed0FeB814A077de4802": { + "name": "TestnetERC20" + }, + "0xd409F17095a370800A9C352124C6a1e82695203E": { + "name": "MockAggregator" + }, + "0x1fdE0eCc619726f4cD597887C9F3b4c8740e19e2": { + "name": "TestnetERC20" + }, + "0xcDA8dE50b65cB2Affc8B89f35C40A97Eed4B270F": { + "name": "MockAggregator" + } + }, "8453": { "0x793177a6Cf520C7fE5B2E45660EBB48132184BBC": { "name": "AaveProtocolDataProvider" @@ -5797,6 +5913,171 @@ }, "0xF9f36C15fBddAF0B64E0D16E4D6852B433a86cbE": { "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x5488A48E5C22175548E8d68622211F5928cBbf23": { + "name": "TransparentUpgradeableProxy" + }, + "0x79Edd77c76F95b6b69907CaD1d8241F9DB0e3FD0": { + "name": "VotingMachine" + }, + "0xf1842f9D6C3D9ec1153d7afCBb9cDBC537Ea5d15": { + "name": "TransparentUpgradeableProxy" + }, + "0xACd2b1bA0B85FaF0f45D4974Ba8ee538E157fBc6": { + "name": "Executor" + }, + "0x8c55a1bf3DC7076522C5cd025f497A498eF90143": { + "name": "VotingStrategyTest" + }, + "0xDB23939d4C483E748c2487916fB20d7fF7e39588": { + "name": "DataWarehouse" + }, + "0x83E0E6095a318446b313f7D27e0c33Ed1e9c0213": { + "name": "PoolAddressesProvider" + }, + "0xd6a6339c6C1B5a8792afA6e0E80b1908b8579f51": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xaFb7Bc3f69A8Cc6a49823eFF9E3974CD49181A9c": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x4523495a435Aea946644EB1c9123Cd8BB2a5B389": { + "name": "AaveOracle" + }, + "0xE99aeEaaBA947D8f96A20ceD6Ff3d157cd3529E8": { + "name": "ACLManager" + }, + "0x9153c061f54bA728F892979522A1462386694c86": { + "name": "AaveProtocolDataProvider" + }, + "0xd8247C7926841337E8adf9fD9E87026992C45062": { + "name": "PoolInstance" + }, + "0x294daB91f3539f5a74Ed995a59235eE62A14A345": { + "name": "PoolConfiguratorInstance" + }, + "0x6FAa7a29d4Af1Dc2acbC58cff158d367E3436CB9": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x22baB145Ce9585761437c2878ac62Fe4C442e591": { + "name": "EmissionManager" + }, + "0x8c31CD3ce60584c26eA49A1E2dF900247de3b517": { + "name": "TransparentUpgradeableProxy" + }, + "0xD63f7658C66B2934Bd234D79D06aEF5290734B30": { + "name": "ATokenInstance" + }, + "0xD8994FE9B79f99CD0b13AE946F5cd866c6d12d00": { + "name": "VariableDebtTokenInstance" + }, + "0xdFf435BCcf782f11187D3a4454d96702eD78e092": { + "name": "AaveV3ConfigEngine" + }, + "0x0AfF487736AAF982A90Fe996Afa43Dfa05646C0c": { + "name": "PoolAddressesProviderRegistry" + }, + "0xC400635a7a87b0a41f1A0720687a03eE2e5Cbe1F": { + "name": "TransparentUpgradeableProxy" + }, + "0x4A49351ED179b23af08523Af98a8ca95C712b9d9": { + "name": "UiIncentiveDataProviderV3" + }, + "0xC5dfC5E3a5099A6456a8BF20D7497Eb76358899F": { + "name": "UiPoolDataProviderV3" + }, + "0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520": { + "name": "WalletBalanceProvider" + }, + "0x46Dcd5F4600319b02649Fd76B55aA6c1035CA478": { + "name": "WrappedTokenGatewayV3" + }, + "0xF9530F06960523e05F5c5a2d7054eC601407c1DE": { + "name": "TransparentUpgradeableProxy" + }, + "0x89502c3731F69DDC95B65753708A07F8Cd0373F4": { + "name": "TestnetERC20" + }, + "0x9FA9607021A7d4e0570f3686632121945EB1FE5F": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x6396fD2e4Eb71B9bbf6c0fE6Dc6Aa4977F6aaBE7": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x5C2e738F6E27bCE0F7558051Bf90605dD6176900": { + "name": "DefaultReserveInterestRateStrategyV2" + }, + "0xEB099AEb2441a13B67C35759D83764fe887a8903": { + "name": "TransparentUpgradeableProxy" + }, + "0x96dFCCB3F9ACDaF6c8f8a35E814023C3484d1eA2": { + "name": "TestnetERC20" + }, + "0x7134E7dFf2fB941Fe235EC279C2e41eb18a3f66B": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x41b84B9f233e26e8D0F944e53da28ac2466007FE": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xA6811b192d3E22DCfa4CD42e5237a3d979f64F03": { + "name": "TransparentUpgradeableProxy" + }, + "0x4bd918F7A01b04D6dB19d5c03dB03Ec68943c02a": { + "name": "TestnetERC20" + }, + "0xcF01643FDaE7e46a2028532De943b6a5997648aB": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xFB9061900b5A6785b3677A06e9C7177CBD658573": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xe0CA1F1d2d8736FCa553F268f4d626FA7FA0F342": { + "name": "TransparentUpgradeableProxy" + }, + "0xbf32c7dFC72b730967072B112927ca0de205dbb5": { + "name": "TestnetERC20" + }, + "0x399383e30A89db93C791C2f23Fb331F246Af3094": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x6d98C06dCd3c2F51173186999A9F9824fF8C8851": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xf28d3B4e7fFF74880c20Fe29aF5800ecd4389dA1": { + "name": "TransparentUpgradeableProxy" + }, + "0x96Cf2f5dDEcE1b3060ddC3bE4021b2B84Aa882eA": { + "name": "TestnetERC20" + }, + "0xC854512a8587Ac65AFED436aaa42ae93BF909606": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xAf14D1181650aFD20124d0fF9276Dcf01Eb9d4Ad": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x34C4c526902d88a3Aa98DB8a9b802603EB1E3470": { + "name": "EACAggregatorProxy" + }, + "0xC7276460Afb61F0eC7Af99c302b52d893e11cDF3": { + "name": "TransparentUpgradeableProxy" + }, + "0x160c02B4d3609D9c12526Edf2C9977bE8E4C16BD": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x4738A050aE2185b70D35E09586bC07DC7432CDB0": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x78F6Ab435898d314359320d22e673667172D0A27": { + "name": "TransparentUpgradeableProxy" + }, + "0x9c04928Cc678776eC1C1C0E46ecC03a5F47A7723": { + "name": "GhoToken" + }, + "0x421117D7319E96d831972b3F7e970bbfe29C4F21": { + "name": "TransparentProxyFactory" + }, + "0x48B5bD96e36a9c0D0eA3f07d3b3dA34bBD514fB3": { + "name": "Faucet" } }, "43114": { @@ -6467,130 +6748,582 @@ }, "0xd5DDE725b0A2dE43fBDb4E488A7fdA389210d461": { "name": "WrappedTokenGatewayV3" - } - }, - "421614": { - "0x12373B5085e3b42D42C1D4ABF3B3Cf4Df0E0Fa01": { - "name": "AaveProtocolDataProvider" - }, - "0xC08C599C22bfD4a729E33e1Ed9b49456Abad0005": { - "name": "Executor" - }, - "0xB66f0fF09f256A73d2E2b5faF596b363A21a7D68": { - "name": "ACLManager" - }, - "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d": { - "name": "FiatTokenProxy" }, - "0x460b97BD498E1157530AEb3086301d5225b91216": { - "name": "InitializableImmutableAdminUpgradeabilityProxy" + "0xE4C23309117Aa30342BFaae6c95c6478e0A4Ad00": { + "name": "PoolAddressesProvider" }, - "0x4fBE3A94C60A5085dA6a2D309965DcF34c36711d": { + "0x8bAB6d1b75f19e9eD9fCe8b9BD338844fF79aE27": { "name": "InitializableImmutableAdminUpgradeabilityProxy" }, - "0x0153002d20B96532C639313c2d54c3dA09109309": { - "name": "EACAggregatorProxy" - }, - "0x1dF462e2712496373A347f8ad10802a5E95f053D": { - "name": "WETH9" - }, - "0xf5f17EbE81E516Dc7cB38D61908EC252F150CE60": { + "0x0Bf6bdFF4da24C272BC524d521Ab0db20601D384": { "name": "InitializableImmutableAdminUpgradeabilityProxy" }, - "0x372eB464296D8D78acaa462b41eaaf2D3663dAD3": { - "name": "InitializableImmutableAdminUpgradeabilityProxy" + "0x943b0dE18d4abf4eF02A85912F8fc07684C141dF": { + "name": "AaveOracle" }, - "0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165": { - "name": "EACAggregatorProxy" + "0x9f09F541Adf314341d8d45E5B18961147b9050E9": { + "name": "ACLManager" }, - "0xa0208CE8356ad6C5EC6dFb8996c9A6B828212022": { - "name": "TransparentUpgradeableProxy" + "0xa432Be23d16907918d626DA6523f89a7c9A299A0": { + "name": "AaveProtocolDataProvider" }, - "0x0a275C06556EeB3c7Ff2b0f0cfD462A7645772EF": { - "name": "AaveV3ConfigEngine" + "0x18A9a9c3B93bdB18eE4cEFe50e55C203D1A31b89": { + "name": "L2PoolInstance" }, - "0xc0Bac16A64FbAa7EE6483bD12a759e28cD13dcBe": { - "name": "AToken" + "0x7315c5ac05cf06aa50693C73929844b66F039DC1": { + "name": "PoolConfiguratorInstance" }, - "0x3A203B14CF8749a1e3b7314c6c49004B77Ee667A": { + "0x71B448405c803A3982aBa448133133D2DEAFBE5F": { "name": "InitializableImmutableAdminUpgradeabilityProxy" }, - "0x486C2D3F59E4d72f3cAa301a7eF19E3db657F5b0": { - "name": "VariableDebtToken" - }, - "0x54E3aa872c3d2A89D1A6495F770f2cCa2C4Fc185": { + "0x49ECA4d8e7EaE6a1e7c02516851fF9038b277e96": { "name": "EmissionManager" }, - "0x2E45e7dCD1e94d8edf1605FfF4602912FDC662bC": { - "name": "L2Encoder" - }, - "0xEf95A6B9e88Bd509Fd67BA741cf2b263DaC65c00": { - "name": "AaveOracle" - }, - "0xBfC91D59fdAA134A4ED45f7B584cAf96D7792Eff": { - "name": "InitializableImmutableAdminUpgradeabilityProxy" + "0x3012CaC83a1286D0014aA9BB0461b80eb9c8e1b1": { + "name": "ATokenInstance" }, - "0xB25a5D144626a0D488e52AE717A051a2E9997076": { - "name": "PoolAddressesProvider" + "0x9B928e20ECD8d2bA6444B307F4B5127A41d6e19C": { + "name": "VariableDebtTokenInstance" }, - "0xbB7492Cce831eE6F349960a6E2da8eadC4b50cA3": { - "name": "PoolAddressesProviderRegistry" + "0x4Afb5ADe7Bd7a670B61f303ab0C740eE8350918f": { + "name": "TransparentUpgradeableProxy" }, - "0x8E4Bb46E6245a507F1a267ef488228B08c0dc664": { - "name": "InitializableImmutableAdminUpgradeabilityProxy" + "0xD3a3f523100e1eaa740A6eE72Ae94710A0fAcFCe": { + "name": "AaveV3ConfigEngine" }, - "0x629A5a607aC4901252e4C48a0Fde156785598F5b": { - "name": "PoolConfigurator" + "0x8eB0791E0981947df2eA074D2479dB9A258b0312": { + "name": "L2Encoder" }, - "0x82405D1a189bd6cE4667809C35B37fBE136A4c5B": { - "name": "L2Pool" + "0x34473a6Ef69d92191d7b25352b5D266f3a5BAca2": { + "name": "PoolAddressesProviderRegistry" }, - "0xB90fa850a4af6D30feA8b41989eaAecDcA8fd414": { + "0xDB1412acf288D5bE057f8e90fd7b1BF4f84bB3B1": { "name": "UiIncentiveDataProviderV3" }, - "0x97Cf44bF6a9A3D2B4F32b05C480dBEdC018F72A9": { + "0x6a9D64f93DB660EaCB2b6E9424792c630CdA87d8": { "name": "UiPoolDataProviderV3" }, - "0x1Be33D186a081eFDf15310e4bdEd81E828C47f9b": { + "0x2c4D1F4EC7F4FfA09a5E1C9e74fD3A10f21Bd811": { "name": "WalletBalanceProvider" }, - "0x20040a64612555042335926d72B4E5F667a67fA1": { + "0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6": { "name": "WrappedTokenGatewayV3" - } - }, - "534352": { - "0xD9b61AC3a94584E7B5253F37Fe7500259D688a63": { - "name": "AaveProtocolDataProvider" - }, - "0xc1ABF87FfAdf4908f4eC8dc54A25DCFEabAE4A24": { - "name": "Executor" - }, - "0x7633F981D87dC6307227de9383D2ce7243158081": { - "name": "ACLManager" - }, - "0x5300000000000000000000000000000000000004": { - "name": "WrappedEther" }, - "0xf301805bE1Df81102C957f6d4Ce29d2B8c056B2a": { - "name": "InitializableImmutableAdminUpgradeabilityProxy" + "0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f": { + "name": "TestnetERC20" }, - "0x117d9cF336287F46DBE509a43925cFF115Aa563c": { + "0x10F1A9D11CDf50041f3f8cB7191CBE2f31750ACC": { "name": "InitializableImmutableAdminUpgradeabilityProxy" }, - "0xfD7344CeB1Df9Cf238EcD667f4A6F99c6Ef44a56": { + "0xFB3e85601b7fEb3691bbb8779Ef0E1069E347204": { "name": "InitializableImmutableAdminUpgradeabilityProxy" }, - "0xEC93d0BBA1b1e635ba0Fff4786dB323db49D99F0": { + "0x705F7D9Ed0Ac3724eC974DaF6A099bA59d254b92": { "name": "DefaultReserveInterestRateStrategyV2" }, - "0x6bF14CB0A831078629D993FDeBcB182b21A8774C": { - "name": "EACAggregatorProxy" - }, - "0x6b9DfaC194fa78a1882680E2cE19194D006AeEfd": { + "0xf430cb6E2b85f99222fBFA6dFEa18Ff60FA6B32a": { "name": "TransparentUpgradeableProxy" }, - "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4": { - "name": "FiatTokenProxy" + "0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a": { + "name": "TestnetERC20" + }, + "0xcE3CAae5Ed17A7AafCEEbc897DE843fA6CC0c018": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xE3C742c88EE6A610157C16b60bBDD62351daeE39": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x3ec8593F930EA45ea58c968260e6e9FF53FC934f": { + "name": "EACAggregatorProxy" + }, + "0xf63dA51069FAe9448747FA425F8Cb84B0149eC0F": { + "name": "TransparentUpgradeableProxy" + }, + "0x54114591963CF60EF3aA63bEfD6eC263D98145a4": { + "name": "TestnetERC20" + }, + "0x47Db195BAf46898302C06c31bCF46c01C64ACcF9": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x638291B5Ccb9fEd339FdD351Eb086e607fCA9561": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x0FB99723Aee6f420beAD13e6bBB79b7E6F034298": { + "name": "EACAggregatorProxy" + }, + "0x5d7538579560F5fdD54F9D264DBe0e697b5BF668": { + "name": "TransparentUpgradeableProxy" + }, + "0x73a5bB60b0B0fc35710DDc0ea9c407031E31Bdbb": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x562abf6562d6A2b165aDa02b5946bc3E7b4dD653": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xde7820fFb73059608928cb9e29F6EB1369Ad1342": { + "name": "TransparentUpgradeableProxy" + }, + "0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B": { + "name": "TestnetERC20" + }, + "0x9Fd6d1DBAd7c052e0c43f46df36eEc6a68814B63": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xa1a483652b157FF006292CDb0e9EB7FFad2a5142": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x3c65e28D357a37589e1C7C86044a9f44dDC17134": { + "name": "EACAggregatorProxy" + }, + "0x9F56ff6c3441bb89eBFf1c0bc75D4096C33230d1": { + "name": "TransparentUpgradeableProxy" + }, + "0x810D46F9a9027E28F9B01F75E2bdde839dA61115": { + "name": "TestnetERC20" + }, + "0x0aD46dE765522399d7b25B438b230A894d72272B": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xBA42C6752F347e3c22DD0A4e5578dCB0137C1325": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xb113F5A928BCfF189C998ab20d753a47F9dE5A61": { + "name": "EACAggregatorProxy" + }, + "0xFb3AB5ABd3dE4703C0F296B1fe6f5E570e1631Ff": { + "name": "TransparentUpgradeableProxy" + }, + "0xc08746B8A3bE6ebbB1a8C0b3e7474EB4A0d6F9fb": { + "name": "PoolAddressesProvider" + }, + "0x7b2F44923254d438556CA0faC364920e72b700c0": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xf6CB188D70aF9bFeF1f932BE34563eb87443bb12": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x351c866eF5876b591C695E12e662bED68C1E5c74": { + "name": "AaveOracle" + }, + "0x4F987c03244d92793e92BA573AF377424Ad8cC1b": { + "name": "ACLManager" + }, + "0xF79eD307027B94e2aD0d91101Cf4650266475924": { + "name": "AaveProtocolDataProvider" + }, + "0xBBAce2C0D027c15dA142E3C1B5B1c7a1d8530443": { + "name": "L2PoolInstance" + }, + "0x14Cfd46aD03b9563B46c12ee7f3247EA27445669": { + "name": "PoolConfiguratorInstance" + }, + "0xFEC49bCa4A83502E57d716B5578249C5e1872dE8": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xa6AE0751dc06EE8dE771905bEa435a35c7C05A1b": { + "name": "EmissionManager" + }, + "0x073479553F63C7f91080491dE2F48E7AbB9D5013": { + "name": "TransparentUpgradeableProxy" + }, + "0x6AE08bFee892fA655082CE3Ef99ebE7b83EDC422": { + "name": "ATokenInstance" + }, + "0x6A173B0E7b2189b0Ba4FCb5bFF55D70Ed91443A6": { + "name": "VariableDebtTokenInstance" + }, + "0x949addAD066F276c216B9892ae4a19D39fA394E1": { + "name": "TransparentUpgradeableProxy" + }, + "0x39471096B7EE44d50ba01b978a06d88D164446e3": { + "name": "AaveV3ConfigEngine" + }, + "0x88BA56c5e38536378B17376945f0670F66964714": { + "name": "L2Encoder" + }, + "0xed20622f29362aeAa2B2e8833a65b30c2B83A0DC": { + "name": "PoolAddressesProviderRegistry" + }, + "0x1A706064675d226ABeFA50124e68a422d9FE777a": { + "name": "UiIncentiveDataProviderV3" + }, + "0xB177501db055d357587Ab973f8D7748588A8A8B5": { + "name": "UiPoolDataProviderV3" + }, + "0x29e4a5A618845250383dCd33DD0a5A4223c26Acd": { + "name": "WalletBalanceProvider" + }, + "0x85c10e659FcEB9319248d88f82E5e0c8cb0Bc000": { + "name": "WrappedTokenGatewayV3" + }, + "0x779f13D3C70B50707a1C1ac9772c117cC3aDA477": { + "name": "TransparentUpgradeableProxy" + }, + "0xaF163ca48f93776195D472954dcad349528678aF": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x040a0aCdBd42f7f0c605423Aacc6abB47d7cB42C": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x25203996df0d836EC9E2b4f92EAd42E8b424C865": { + "name": "DefaultReserveInterestRateStrategyV2" + }, + "0x5F27a04278bce1b04b80462e829b5582BD42B260": { + "name": "TransparentUpgradeableProxy" + }, + "0xA98575847a756085DDD61329EfEE7CDab4BB92A0": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xd37D7004D54d1F779BC788193C72AC6C826e9046": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x35C90dfcEC0BBfD90355Eab33b6807dD044937B2": { + "name": "TransparentUpgradeableProxy" + }, + "0x3c93A2c798e4759F1Af4BFA1C052A0083ccF42Ef": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x8D4dFea75077400457FF68A039E9c39997398b80": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xaBf1f599A74469e02A9489545823389A6f560705": { + "name": "TransparentUpgradeableProxy" + }, + "0x713751EC1A92a78112ca3b62bace0dE9377a14b3": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x6b20DFD2264152431a7242771eE381E03D378D96": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x35005A1D2f262F941CcA230EB04377059c977101": { + "name": "TransparentUpgradeableProxy" + }, + "0xB542b8E3cC87B34A3F80902d9f8841D83b01d173": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x7352Cfa37Cd01320491C9fb53D941E511932D345": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x13B9Fa684b90367Ddd20D53d5b5a81F54eaf1B8A": { + "name": "TransparentUpgradeableProxy" + }, + "0x4c9a538604BA9283eC2B2838BCB6C755B85B76Ce": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x1076426cDFf78456AbdCE9eD654724B914B2b318": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x257bB590608322Fdf47446a1Fc531bf5EC7e8f38": { + "name": "TransparentUpgradeableProxy" + }, + "0x95F99D1695c866FEb16657cCA8E91437a50D2a5e": { + "name": "TransparentProxyFactory" + }, + "0x6CBc6928Ad317F60E8880C43479850F2190F2a0B": { + "name": "ProxyAdmin" + }, + "0x7CFa3f3d1cded0Da930881c609D4Dbf0012c14Bb": { + "name": "GhoToken" + }, + "0xD9145b5F45Ad4519c7ACcD6E0A4A82e83bB8A6Dc": { + "name": "Faucet" + } + }, + "421614": { + "0x12373B5085e3b42D42C1D4ABF3B3Cf4Df0E0Fa01": { + "name": "AaveProtocolDataProvider" + }, + "0xC08C599C22bfD4a729E33e1Ed9b49456Abad0005": { + "name": "Executor" + }, + "0xB66f0fF09f256A73d2E2b5faF596b363A21a7D68": { + "name": "ACLManager" + }, + "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d": { + "name": "FiatTokenProxy" + }, + "0x460b97BD498E1157530AEb3086301d5225b91216": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x4fBE3A94C60A5085dA6a2D309965DcF34c36711d": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x0153002d20B96532C639313c2d54c3dA09109309": { + "name": "EACAggregatorProxy" + }, + "0x1dF462e2712496373A347f8ad10802a5E95f053D": { + "name": "WETH9" + }, + "0xf5f17EbE81E516Dc7cB38D61908EC252F150CE60": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x372eB464296D8D78acaa462b41eaaf2D3663dAD3": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165": { + "name": "EACAggregatorProxy" + }, + "0xa0208CE8356ad6C5EC6dFb8996c9A6B828212022": { + "name": "TransparentUpgradeableProxy" + }, + "0x0a275C06556EeB3c7Ff2b0f0cfD462A7645772EF": { + "name": "AaveV3ConfigEngine" + }, + "0xc0Bac16A64FbAa7EE6483bD12a759e28cD13dcBe": { + "name": "AToken" + }, + "0x3A203B14CF8749a1e3b7314c6c49004B77Ee667A": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x486C2D3F59E4d72f3cAa301a7eF19E3db657F5b0": { + "name": "VariableDebtToken" + }, + "0x54E3aa872c3d2A89D1A6495F770f2cCa2C4Fc185": { + "name": "EmissionManager" + }, + "0x2E45e7dCD1e94d8edf1605FfF4602912FDC662bC": { + "name": "L2Encoder" + }, + "0xEf95A6B9e88Bd509Fd67BA741cf2b263DaC65c00": { + "name": "AaveOracle" + }, + "0xBfC91D59fdAA134A4ED45f7B584cAf96D7792Eff": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xB25a5D144626a0D488e52AE717A051a2E9997076": { + "name": "PoolAddressesProvider" + }, + "0xbB7492Cce831eE6F349960a6E2da8eadC4b50cA3": { + "name": "PoolAddressesProviderRegistry" + }, + "0x8E4Bb46E6245a507F1a267ef488228B08c0dc664": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x629A5a607aC4901252e4C48a0Fde156785598F5b": { + "name": "PoolConfigurator" + }, + "0x82405D1a189bd6cE4667809C35B37fBE136A4c5B": { + "name": "L2Pool" + }, + "0xB90fa850a4af6D30feA8b41989eaAecDcA8fd414": { + "name": "UiIncentiveDataProviderV3" + }, + "0x97Cf44bF6a9A3D2B4F32b05C480dBEdC018F72A9": { + "name": "UiPoolDataProviderV3" + }, + "0x1Be33D186a081eFDf15310e4bdEd81E828C47f9b": { + "name": "WalletBalanceProvider" + }, + "0x20040a64612555042335926d72B4E5F667a67fA1": { + "name": "WrappedTokenGatewayV3" + }, + "0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731": { + "name": "TransparentProxyFactory" + }, + "0xCB5B3ca20603231945dC5731C33E7f7F7679Ea89": { + "name": "ProxyAdmin" + }, + "0xb13Cfa6f8B2Eed2C37fB00fF0c1A59807C585810": { + "name": "GhoToken" + } + }, + "534351": { + "0x52A27dC690F8652288194Dd2bc523863eBdEa236": { + "name": "PoolAddressesProvider" + }, + "0x48914C788295b5db23aF2b5F0B3BE775C4eA9440": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x63BB78Fbac521998BD6E33f1a960677c7a1d4F10": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x4B7C7D2EbcDc1015D35F617596318C15d9d24e59": { + "name": "AaveOracle" + }, + "0x166601A0Cc6Cf979e2f0eF94EC5363B6BC24061C": { + "name": "ACLManager" + }, + "0xaE58b3Be9E159bDEc67Ada8507CA3001c80725Ee": { + "name": "AaveProtocolDataProvider" + }, + "0xB186894F315133C2396104CAb386C3A0fEC09025": { + "name": "L2Pool" + }, + "0xE7560d98a9fdAe4F3b87eb172ae44177A075eeDF": { + "name": "PoolConfigurator" + }, + "0xa76F05D0cdf599E0186dec880F2FA480fd0c5280": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x01dd3Ad7D942406C47acd5b70cBad28fd377c6f2": { + "name": "EmissionManager" + }, + "0x104Cd7695C9247096F7AD37d3258B63c9675A00e": { + "name": "InitializableAdminUpgradeabilityProxy" + }, + "0x0Eae78c97347bf6FCF784Aa91CABC4aCdB5cc2dd": { + "name": "AToken" + }, + "0xAb8eaAE8383Abe28203cB6e6FAa0477B2fb97f07": { + "name": "VariableDebtToken" + }, + "0x2F826FD1a0071476330a58dD1A9B36bcF7da832d": { + "name": "Faucet" + }, + "0x3Bb33c67908D0d58F8d7349cBe726ff3b059e0fC": { + "name": "L2Encoder" + }, + "0xBf67A725F976d4A7C1fa9ea5303FD57D13CA0A37": { + "name": "UiIncentiveDataProviderV3" + }, + "0xDC55BcFC0963608401A4bA6298624E5895f8250a": { + "name": "UiPoolDataProviderV3" + }, + "0x6c68e975764a56e62AF3d1C8209F789779Eb763B": { + "name": "WalletBalanceProvider" + }, + "0x57ce905CfD7f986A929A26b006f797d181dB706e": { + "name": "WrappedTokenGatewayV3" + }, + "0x7984E363c38b590bB4CA35aEd5133Ef2c6619C40": { + "name": "TestnetERC20" + }, + "0x99Cb50E6bE36C8096e6731ED7738d93090B710DD": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x09F9A7cd11BE8468064b06FF20Dce43E0A434a2A": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x85AD5a4a0974b6092d1F7369eC39c8b2255b8e6f": { + "name": "DefaultReserveInterestRateStrategy" + }, + "0x58A5C0E02CF344c538F4Cf8d3EFC51e7c134B31A": { + "name": "MockAggregator" + }, + "0x279cBF5B7e3651F03CB9b71A9E7A3c924b267801": { + "name": "TestnetERC20" + }, + "0x55DD1cDFE13fCa68F6D14D452E2a20cABe191841": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x2f42470c67aA2f6D7d2855FBB691179a6Dba4822": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x9a8D012c2e26cE911AD211976aa06Ca020487389": { + "name": "DefaultReserveInterestRateStrategy" + }, + "0x01BdbF85210e113db2216e837D9b1e401eb7003e": { + "name": "MockAggregator" + }, + "0x2C9678042D52B97D27f2bD2947F7111d93F3dD0D": { + "name": "TestnetERC20" + }, + "0x6E4A1BcBd3C3038e6957207cadC1A17092DC7ba3": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x6ED2eB0A4141975A8A33558234137265f36055f7": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x9c41A3E545126Cc2c160634405E00461Ec30F709": { + "name": "DefaultReserveInterestRateStrategy" + }, + "0xB1732127A07B05e6Ea1FA53c8B791560Ff768439": { + "name": "MockAggregator" + }, + "0x5EA79f3190ff37418d42F9B2618688494dBD9693": { + "name": "TestnetERC20" + }, + "0x43AE2a14AD923915aa85d683D1b7d0d320ae87B2": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x52a011bF32a85D952aa259D85b705b7cF040836f": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xb09f1850207Af7AFcd564632bB541B7b3c776006": { + "name": "MockAggregator" + }, + "0xb123dCe044EdF0a755505d9623Fba16C0F41cae9": { + "name": "WETH9Mock" + }, + "0x9E8CEC4F2F4596141B62e88966D7167E9db555aD": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xD502CD7A595ec36992b0601fae0A4b50A88084D4": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xA0579Ea869d26CE4dfED0b65b54A08A4BdF3F5A8": { + "name": "MockAggregator" + }, + "0x186C0C26c45A8DA1Da34339ee513624a9609156d": { + "name": "TestnetERC20" + }, + "0x54Cb3ba40705d7CCB18c1C24edD8B602a88eF4CE": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x4cB0Dd10789208630F4def0DAAB4161f4Bb7b09D": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x2d00F2DBA40e677E23AC442B5ab932Ce699d163e": { + "name": "MockAggregator" + }, + "0xfc2921bE7B2762F0E87039905d6019B0fF5978a8": { + "name": "TestnetERC20" + }, + "0xC5209E1325A0DBeb28143D82e7E1DE709456Fc8a": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x7AE95AD823943283c3D5b7E9bE5E24414ba980cD": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x79fb53cF4Ba1B59E07Eeed92D641F8374DaAFC8f": { + "name": "MockAggregator" + }, + "0xDf40f3a3566b4271450083f1Ad5732590BA47575": { + "name": "TestnetERC20" + }, + "0xD49d1CF2886B1c95A94e8a9066E8b298646716b6": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x2160F75FB89A6C35Bd59Ecf120B26f459956c925": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xC6C58919440AD9daBF04D85b29820477AE7E808E": { + "name": "MockAggregator" + } + }, + "534352": { + "0xD9b61AC3a94584E7B5253F37Fe7500259D688a63": { + "name": "AaveProtocolDataProvider" + }, + "0xc1ABF87FfAdf4908f4eC8dc54A25DCFEabAE4A24": { + "name": "Executor" + }, + "0x7633F981D87dC6307227de9383D2ce7243158081": { + "name": "ACLManager" + }, + "0x5300000000000000000000000000000000000004": { + "name": "WrappedEther" + }, + "0xf301805bE1Df81102C957f6d4Ce29d2B8c056B2a": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x117d9cF336287F46DBE509a43925cFF115Aa563c": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xfD7344CeB1Df9Cf238EcD667f4A6F99c6Ef44a56": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xEC93d0BBA1b1e635ba0Fff4786dB323db49D99F0": { + "name": "DefaultReserveInterestRateStrategyV2" + }, + "0x6bF14CB0A831078629D993FDeBcB182b21A8774C": { + "name": "EACAggregatorProxy" + }, + "0x6b9DfaC194fa78a1882680E2cE19194D006AeEfd": { + "name": "TransparentUpgradeableProxy" + }, + "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4": { + "name": "FiatTokenProxy" }, "0x1D738a3436A8C49CefFbaB7fbF04B660fb528CbD": { "name": "InitializableImmutableAdminUpgradeabilityProxy" @@ -6799,5 +7532,318 @@ "0x3cd1dFB81C50A5300C60a181ED145a7286d81e0a": { "name": "TransparentProxyFactory" } + }, + "11155111": { + "0x012bAC54348C0E635dCAc9D5FB99f06F24136C9A": { + "name": "PoolAddressesProvider" + }, + "0x6Ae43d3271ff6888e7Fc43Fd7321a503ff738951": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x7Ee60D184C24Ef7AfC1Ec7Be59A0f448A0abd138": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x2da88497588bf89281816106C7259e31AF45a663": { + "name": "AaveOracle" + }, + "0x7F2bE3b178deeFF716CD6Ff03Ef79A1dFf360ddD": { + "name": "ACLManager" + }, + "0x3e9708d80f7B3e43118013075F7e95CE3AB31F31": { + "name": "AaveProtocolDataProvider" + }, + "0x0562453c3DAFBB5e625483af58f4E6D668c44e19": { + "name": "Pool" + }, + "0x63Dea961A0B2e2dF4F7A4bb61CBc39BF53A6eb32": { + "name": "PoolConfigurator" + }, + "0x4DA5c4da71C5a167171cC839487536d86e083483": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x098a890BAfDf6FB4ACD24bF107D20EA15D229C62": { + "name": "EmissionManager" + }, + "0x604264f8017fEF3b11B3dD63537CB501560380B5": { + "name": "InitializableAdminUpgradeabilityProxy" + }, + "0x48424f2779be0f03cDF6F02E17A591A9BF7AF89f": { + "name": "AToken" + }, + "0x54bdE009156053108E73E2401aEA755e38f92098": { + "name": "VariableDebtToken" + }, + "0xC959483DBa39aa9E78757139af0e9a2EDEb3f42D": { + "name": "Faucet" + }, + "0xBA25de9a7DC623B30799F33B770d31B44c2C3b77": { + "name": "UiIncentiveDataProviderV3" + }, + "0x69529987FA4A075D0C00B0128fa848dc9ebbE9CE": { + "name": "UiPoolDataProviderV3" + }, + "0xCD4e0d6D2b1252E2A709B8aE97DBA31164C5a709": { + "name": "WalletBalanceProvider" + }, + "0x387d311e47e80b498169e6fb51d3193167d89F7D": { + "name": "WrappedTokenGatewayV3" + }, + "0xd210dFB43B694430B8d31762B5199e30c31266C8": { + "name": "TransparentUpgradeableProxy" + }, + "0x69B9843A16a6E9933125EBD97659BA3CCbE2Ef8A": { + "name": "UiGhoDataProvider" + }, + "0xFF34B3d4Aee8ddCd6F9AFFFB6Fe49bD371b8a357": { + "name": "TestnetERC20" + }, + "0x29598b72eb5CeBd806C5dCD549490FdA35B13cD8": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x22675C506A8FC26447aFFfa33640f6af5d4D4cF0": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xA813CC4d67821fbAcF24659e414A1Cf6c551373c": { + "name": "DefaultReserveInterestRateStrategy" + }, + "0x9aF11c35c5d3Ae182C0050438972aac4376f9516": { + "name": "MockAggregator" + }, + "0xDE46e43F46ff74A23a65EBb0580cbe3dFE684a17": { + "name": "TransparentUpgradeableProxy" + }, + "0xf8Fb3713D459D7C1018BD0A49D19b4C44290EBE5": { + "name": "TestnetERC20" + }, + "0x3FfAf50D4F4E96eB78f2407c090b72e86eCaed24": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x34a4d932E722b9dFb492B9D8131127690CE2430B": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xCA30c502d52F905FB3D04eE60cA48F5A1A89f8dB": { + "name": "DefaultReserveInterestRateStrategy" + }, + "0x14fC51b7df22b4D393cD45504B9f0A3002A63F3F": { + "name": "MockAggregator" + }, + "0x8227a989709a757f25dF251C3C3e71CA38627836": { + "name": "TransparentUpgradeableProxy" + }, + "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8": { + "name": "TestnetERC20" + }, + "0x16dA4541aD1807f4443d92D26044C1147406EB80": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x36B5dE936eF1710E1d22EabE5231b28581a92ECc": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x5CB1008969a2d5FAcE8eF32732e6A306d0D0EF2A": { + "name": "DefaultReserveInterestRateStrategy" + }, + "0x98458D6A99489F15e6eB5aFa67ACFAcf6F211051": { + "name": "MockAggregator" + }, + "0x8A88124522dbBF1E56352ba3DE1d9F78C143751e": { + "name": "TransparentUpgradeableProxy" + }, + "0x29f2D40B0605204364af54EC677bD022dA425d03": { + "name": "TestnetERC20" + }, + "0x1804Bf30507dc2EB3bDEbbbdd859991EAeF6EefF": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xEB016dFd303F19fbDdFb6300eB4AeB2DA7Ceac37": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x784B90bA1E9a8cf3C9939c2e072F058B024C4b8a": { + "name": "MockAggregator" + }, + "0x131a121bda71ED810bCAf2aC9079214925e59C18": { + "name": "TransparentUpgradeableProxy" + }, + "0xC558DBdd856501FCd9aaF1E62eae57A9F0629a3c": { + "name": "WETH9Mock" + }, + "0x5b071b590a59395fE4025A0Ccc1FcC931AAc1830": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x22a35DB253f4F6D0029025D6312A3BdAb20C2c6A": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xDde0E8E6d3653614878Bf5009EDC317BC129fE2F": { + "name": "MockAggregator" + }, + "0x162B500569F42D9eCe937e6a61EDfef660A12E98": { + "name": "TransparentUpgradeableProxy" + }, + "0xaA8E23Fb1079EA71e0a56F48a2aA51851D8433D0": { + "name": "TestnetERC20" + }, + "0xAF0F6e8b0Dc5c913bbF4d14c22B4E78Dd14310B6": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x9844386d29EEd970B9F6a2B9a676083b0478210e": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x4e86D3Aa271Fa418F38D7262fdBa2989C94aa5Ba": { + "name": "MockAggregator" + }, + "0x978206fAe13faF5a8d293FB614326B237684B750": { + "name": "TransparentUpgradeableProxy" + }, + "0x88541670E55cC00bEEFD87eB59EDd1b7C511AC9a": { + "name": "TestnetERC20" + }, + "0x6b8558764d3b7572136F17174Cb9aB1DDc7E1259": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xf12fdFc4c631F6D361b48723c2F2800b84B519e6": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xda678Ef100c13504edDb8a228A1e8e4CB139f189": { + "name": "MockAggregator" + }, + "0x56771cEF0cb422e125564CcCC98BB05fdc718E77": { + "name": "TransparentUpgradeableProxy" + }, + "0x6d906e526a4e2Ca02097BA9d0caA3c382F52278E": { + "name": "TestnetERC20" + }, + "0xB20691021F9AcED8631eDaa3c0Cd2949EB45662D": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x94482C7A7477196259D8a0f74fB853277Fa5a75b": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xCbE15C1f40f1D7eE1De3756D1557d5Fdc2A50bBD": { + "name": "MockAggregator" + }, + "0x72B49a461900e11632C95dfa563e7173438D4e3E": { + "name": "TransparentUpgradeableProxy" + }, + "0xc4bF5CbDaBE595361438F8c6a187bDc330539c60": { + "name": "GhoToken" + }, + "0xd190eF37dB51Bb955A680fF1A85763CC72d083D4": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x67ae46EF043F7A4508BD1d6B94DB6c33F0915844": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x521247B4d0a51E71DE580dA2cBF99EB40a44b3Bf": { + "name": "GhoInterestRateStrategy" + }, + "0x00f7fecFAEbEd9499e1f3f9d04E755a21E5fc47C": { + "name": "GhoOracle" + }, + "0x84B08568906ee891de1c23175E5B92d7Df7DDCc4": { + "name": "TransparentProxyFactory" + }, + "0x8dDa7a1E3e96EB13BE50bB59e80485227E3DE2e7": { + "name": "ProxyAdmin" + }, + "0xB5d0ef1548D9C70d3E7a96cA67A2d7EbC5b1173E": { + "name": "GhoFlashMinter" + } + }, + "11155420": { + "0x36616cf17557639614c1cdDb356b1B83fc0B2132": { + "name": "PoolAddressesProvider" + }, + "0xb50201558B00496A145fE76f7424749556E326D8": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x7304979ec9E4EaA0273b6A037a31c4e9e5A75D16": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xeb0a051be10228213BAEb449db63719d6742F7c4": { + "name": "AaveOracle" + }, + "0x1dF462e2712496373A347f8ad10802a5E95f053D": { + "name": "Executor" + }, + "0x41585C50524fb8c3899B43D7D797d9486AAc94DB": { + "name": "ACLManager" + }, + "0x501B4c19dd9C2e06E94dA7b6D5Ed4ddA013EC741": { + "name": "AaveProtocolDataProvider" + }, + "0xB1532b76D054c9F9E61b25c4d91f69B4133E4671": { + "name": "L2Pool" + }, + "0x25Ec457d1778b0E5316e7f38f3c22baF413F1A8C": { + "name": "PoolConfigurator" + }, + "0xaD4F91D26254B6B0C6346b390dDA2991FDE2F20d": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0xB438D5376ADB4b31D0103E659f1673eAD684BAD9": { + "name": "EmissionManager" + }, + "0x3e652E97ff339B73421f824F5b03d75b62F1Fb51": { + "name": "TransparentUpgradeableProxy" + }, + "0x6c23bAF050ec192afc0B967a93b83e6c5405df43": { + "name": "AToken" + }, + "0x777fBA024bA1228fDa76149A4ff8B23475ed057D": { + "name": "VariableDebtToken" + }, + "0xBeC519531F0E78BcDdB295242fA4EC5251B38574": { + "name": "L2Encoder" + }, + "0x1D0f881Ce1a646E2f27Dec3c57Fa056cB838BCC2": { + "name": "AaveV3ConfigEngine" + }, + "0x1236010CECea55998384e795B59815D871f5f94d": { + "name": "PoolAddressesProviderRegistry" + }, + "0xCFDAdA7DCd2e785cF706BaDBC2B8Af5084d595e9": { + "name": "UiIncentiveDataProviderV3" + }, + "0x86E2938daE289763D4e09a7e42c5cCcA62Cf9809": { + "name": "UiPoolDataProviderV3" + }, + "0x4172E6aAEC070ACB31aaCE343A58c93E4C70f44D": { + "name": "WalletBalanceProvider" + }, + "0x589750BA8aF186cE5B55391B0b7148cAD43a1619": { + "name": "WrappedTokenGatewayV3" + }, + "0x5fd84259d66Cd46123540766Be93DFE6D43130D7": { + "name": "FiatTokenProxy" + }, + "0xa818F1B57c201E092C4A2017A91815034326Efd1": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x0c0fce05F2314540EcB095bF4D069e5E0ED90fF8": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x6e44e50E3cc14DD16e01C590DC1d7020cb36eD4C": { + "name": "EACAggregatorProxy" + }, + "0x4200000000000000000000000000000000000006": { + "name": "WETH9" + }, + "0x23e4E76D01B2002BE436CE8d6044b0aA2f68B68a": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x9D881f67F20B49243c98f53d2B9E91E39d02Ae09": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x61Ec26aA57019C486B10502285c5A3D4A4750AD7": { + "name": "EACAggregatorProxy" + }, + "0xb13Cfa6f8B2Eed2C37fB00fF0c1A59807C585810": { + "name": "GhoToken" + }, + "0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731": { + "name": "TransparentProxyFactory" + }, + "0xe892E40C92c2E4D281Be59b2E6300F271d824E75": { + "name": "ProxyAdmin" + } } } \ No newline at end of file diff --git a/tests/setup.ts b/tests/setup.ts new file mode 100644 index 00000000..0b172b7b --- /dev/null +++ b/tests/setup.ts @@ -0,0 +1 @@ +import 'dotenv/config'; diff --git a/tests/verification.spec.ts b/tests/verification.spec.ts index cd008d59..c8d46e73 100644 --- a/tests/verification.spec.ts +++ b/tests/verification.spec.ts @@ -3,7 +3,8 @@ import {describe, expect, it} from 'vitest'; import {flattenedAddresses, ListItem} from '../ui/src/utils/getAddresses'; import verified from './cache/verified.json'; import {writeFileSync} from 'fs'; -import {zeroAddress} from 'viem'; +import {Hex, PublicClient, zeroAddress} from 'viem'; +import {getClient} from '../scripts/clients'; const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY as string; @@ -97,8 +98,7 @@ describe( it('should have all contracts verified except for the known set of errors', async () => { const addressesToCheck = flattenedAddresses.filter( (item) => - ![ChainId.harmony, ChainId.fantom].includes(item.chainId as any) && - !ChainList[item.chainId].testnet, + ![ChainId.harmony, ChainId.fantom, ChainId.fantom_testnet].includes(item.chainId as any), ); const errors: {item: ListItem}[] = []; let newVerified = false; @@ -106,25 +106,29 @@ describe( // used to prevent double checking the same address const checked = new Set(); for (const item of addressesToCheck) { - const hasBeenCheckedBefore = verified[item.chainId][item.value]; + const hasBeenCheckedBefore = verified[item.chainId]?.[item.value]; if (!hasBeenCheckedBefore && item.value !== zeroAddress) { const key = `${item.chainId}-${item.value}`; if (checked.has(key)) continue; checked.add(key); - const {status, result} = (await checkVerified(item)) as { - status: string; - result: {ContractName: string}[]; - }; - await sleep(300); - if (status !== '1' || !result[0].ContractName) { - errors.push({item}); - console.log(result); - } else { - newVerified = true; - if (!verified[item.chainId]) verified[item.chainId] = {}; - verified[item.chainId][item.value] = { - name: result[0].ContractName, + const client = getClient(item.chainId) as PublicClient; + const hasCode = await client.getCode({address: item.value as Hex}); + if (hasCode) { + const {status, result} = (await checkVerified(item)) as { + status: string; + result: {ContractName: string}[]; }; + await sleep(300); + if (status !== '1' || !result[0].ContractName) { + errors.push({item}); + console.log(item.chainId, item.value); + } else { + newVerified = true; + if (!verified[item.chainId]) verified[item.chainId] = {}; + verified[item.chainId][item.value] = { + name: result[0].ContractName, + }; + } } } } @@ -136,5 +140,5 @@ describe( expect(errors).toMatchSnapshot(); }); }, - {timeout: 120_000}, + {timeout: 500_000}, ); diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 00000000..32b37ef6 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,7 @@ +import {defineConfig} from 'vitest/config'; + +export default defineConfig({ + test: { + setupFiles: ['./tests/setup.ts'], //this line, + }, +}); From e30189fa090bfc48b25d815b755fb715b4c29379 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 2 Dec 2024 11:10:09 +0100 Subject: [PATCH 10/11] fix: add umbrella spec --- lib/aave-v3-origin | 2 +- scripts/abi/umbrella.ts | 358 +++++++++++++++++++++++++ scripts/clients.ts | 21 +- scripts/generator/umbrellaGenerator.ts | 46 ++++ tests/generators/umbrella.spec.ts | 98 +++++++ 5 files changed, 520 insertions(+), 5 deletions(-) create mode 100644 scripts/abi/umbrella.ts create mode 100644 scripts/generator/umbrellaGenerator.ts create mode 100644 tests/generators/umbrella.spec.ts diff --git a/lib/aave-v3-origin b/lib/aave-v3-origin index 58e60a24..be37b99b 160000 --- a/lib/aave-v3-origin +++ b/lib/aave-v3-origin @@ -1 +1 @@ -Subproject commit 58e60a249c04f7e67e551a6d9952ba87c54cdc6a +Subproject commit be37b99b8fd47b5087e918bb2d4726d6470ab5c5 diff --git a/scripts/abi/umbrella.ts b/scripts/abi/umbrella.ts new file mode 100644 index 00000000..4a5bc7bf --- /dev/null +++ b/scripts/abi/umbrella.ts @@ -0,0 +1,358 @@ +export const IUmbrella_ABI = [ + { + inputs: [ + {internalType: 'contract IPool', name: 'pool', type: 'address'}, + {internalType: 'address', name: 'collector', type: 'address'}, + {internalType: 'contract ITransparentProxyFactory', name: 'proxyFactory', type: 'address'}, + {internalType: 'address', name: 'stakeTokenImpl', type: 'address'}, + {internalType: 'address', name: 'proxyAdmin', type: 'address'}, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + {inputs: [], name: 'CannotSlashReserve', type: 'error'}, + { + inputs: [{internalType: 'bytes32', name: 'key', type: 'bytes32'}], + name: 'EnumerableMapNonexistentKey', + type: 'error', + }, + {inputs: [], name: 'InvalidInitialization', type: 'error'}, + {inputs: [], name: 'InvalidLiquidationBonus', type: 'error'}, + {inputs: [], name: 'MathOverflowedMulDiv', type: 'error'}, + {inputs: [], name: 'NoDeficitToCover', type: 'error'}, + {inputs: [], name: 'NoDeficitToSlash', type: 'error'}, + {inputs: [], name: 'NotInitializing', type: 'error'}, + { + inputs: [{internalType: 'address', name: 'owner', type: 'address'}], + name: 'OwnableInvalidOwner', + type: 'error', + }, + { + inputs: [{internalType: 'address', name: 'account', type: 'address'}], + name: 'OwnableUnauthorizedAccount', + type: 'error', + }, + {inputs: [], name: 'StataAssetMustMatchReserve', type: 'error'}, + { + inputs: [{internalType: 'address', name: 'target', type: 'address'}], + name: 'UmbrellaNotInControl', + type: 'error', + }, + { + anonymous: false, + inputs: [{indexed: false, internalType: 'uint64', name: 'version', type: 'uint64'}], + name: 'Initialized', + type: 'event', + }, + { + anonymous: false, + inputs: [ + {indexed: true, internalType: 'address', name: 'previousOwner', type: 'address'}, + {indexed: true, internalType: 'address', name: 'newOwner', type: 'address'}, + ], + name: 'OwnershipTransferred', + type: 'event', + }, + { + anonymous: false, + inputs: [ + {indexed: true, internalType: 'address', name: 'reserve', type: 'address'}, + {indexed: false, internalType: 'uint256', name: 'amount', type: 'uint256'}, + ], + name: 'RecordedReserveDeficitChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + {indexed: true, internalType: 'address', name: 'reserve', type: 'address'}, + {indexed: false, internalType: 'address', name: 'stakeToken', type: 'address'}, + {indexed: false, internalType: 'uint256', name: 'liquidationBonus', type: 'uint256'}, + {indexed: false, internalType: 'address', name: 'oracle', type: 'address'}, + {indexed: false, internalType: 'bool', name: 'isReserveStataToken', type: 'bool'}, + ], + name: 'SlashingConfigurationChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + {indexed: true, internalType: 'address', name: 'reserve', type: 'address'}, + {indexed: false, internalType: 'address', name: 'stakeToken', type: 'address'}, + ], + name: 'SlashingConfigurationRemoved', + type: 'event', + }, + { + anonymous: false, + inputs: [ + {indexed: false, internalType: 'address', name: 'stakeToken', type: 'address'}, + {indexed: false, internalType: 'address', name: 'underlying', type: 'address'}, + {indexed: false, internalType: 'string', name: 'name', type: 'string'}, + {indexed: false, internalType: 'string', name: 'symbol', type: 'string'}, + ], + name: 'StakeTokenCreated', + type: 'event', + }, + { + inputs: [], + name: 'COLLECTOR', + outputs: [{internalType: 'address', name: '', type: 'address'}], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'POOL', + outputs: [{internalType: 'contract IPool', name: '', type: 'address'}], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'POOL_ADDRESSES_PROVIDER', + outputs: [{internalType: 'contract IPoolAddressesProvider', name: '', type: 'address'}], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'PROXY_ADMIN', + outputs: [{internalType: 'address', name: '', type: 'address'}], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'STAKE_TOKEN_IMPL', + outputs: [{internalType: 'address', name: '', type: 'address'}], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'TRANSPARENT_PROXY_FACTORY', + outputs: [{internalType: 'contract ITransparentProxyFactory', name: '', type: 'address'}], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + {internalType: 'address', name: 'reserve', type: 'address'}, + {internalType: 'uint256', name: 'amount', type: 'uint256'}, + ], + name: 'coverReserveDeficit', + outputs: [{internalType: 'uint256', name: '', type: 'uint256'}], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + {internalType: 'address', name: 'underlying', type: 'address'}, + {internalType: 'uint256', name: 'defaultCooldown', type: 'uint256'}, + {internalType: 'uint256', name: 'defaultUnstakeWindow', type: 'uint256'}, + ], + name: 'createStakeToken', + outputs: [{internalType: 'address', name: '', type: 'address'}], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + {internalType: 'address', name: 'stakeToken', type: 'address'}, + {internalType: 'address', name: 'to', type: 'address'}, + {internalType: 'uint256', name: 'amount', type: 'uint256'}, + ], + name: 'emergencyEtherTransferStk', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + {internalType: 'address', name: 'stakeToken', type: 'address'}, + {internalType: 'address', name: 'erc20Token', type: 'address'}, + {internalType: 'address', name: 'to', type: 'address'}, + {internalType: 'uint256', name: 'amount', type: 'uint256'}, + ], + name: 'emergencyTokenTransferStk', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{internalType: 'address', name: 'reserve', type: 'address'}], + name: 'getPendingDeficitResolution', + outputs: [{internalType: 'uint256', name: '', type: 'uint256'}], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + {internalType: 'address', name: 'reserve', type: 'address'}, + {internalType: 'address', name: 'stakeToken', type: 'address'}, + ], + name: 'getReserveSlashingConfig', + outputs: [ + { + components: [ + {internalType: 'address', name: 'stakeToken', type: 'address'}, + {internalType: 'contract AggregatorInterface', name: 'oracle', type: 'address'}, + {internalType: 'uint256', name: 'liquidationBonus', type: 'uint256'}, + {internalType: 'bool', name: 'isReserveStataToken', type: 'bool'}, + ], + internalType: 'struct IUmbrellaConfiguration.SlashingConfig', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [{internalType: 'address', name: 'reserve', type: 'address'}], + name: 'getReserveSlashingConfigs', + outputs: [ + { + components: [ + {internalType: 'address', name: 'stakeToken', type: 'address'}, + {internalType: 'contract AggregatorInterface', name: 'oracle', type: 'address'}, + {internalType: 'uint256', name: 'liquidationBonus', type: 'uint256'}, + {internalType: 'bool', name: 'isReserveStataToken', type: 'bool'}, + ], + internalType: 'struct IUmbrellaConfiguration.SlashingConfig[]', + name: '', + type: 'tuple[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getStkTokens', + outputs: [{internalType: 'address[]', name: '', type: 'address[]'}], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [{internalType: 'address', name: 'owner', type: 'address'}], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{internalType: 'address', name: 'reserve', type: 'address'}], + name: 'isReserveSlashable', + outputs: [{internalType: 'bool', name: '', type: 'bool'}], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [{internalType: 'address', name: 'stakeToken', type: 'address'}], + name: 'isUmbrellaStkToken', + outputs: [{internalType: 'bool', name: '', type: 'bool'}], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'owner', + outputs: [{internalType: 'address', name: '', type: 'address'}], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [{internalType: 'address', name: 'stakeToken', type: 'address'}], + name: 'pauseStk', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + {internalType: 'address', name: 'reserve', type: 'address'}, + {internalType: 'address', name: 'stakeToken', type: 'address'}, + ], + internalType: 'struct IUmbrellaConfiguration.SlashingConfigRemoval[]', + name: 'removalPairs', + type: 'tuple[]', + }, + ], + name: 'removeSlashingConfigs', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + {internalType: 'address', name: 'stakeToken', type: 'address'}, + {internalType: 'uint256', name: 'newCooldown', type: 'uint256'}, + ], + name: 'setCooldownStk', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + {internalType: 'address', name: 'stakeToken', type: 'address'}, + {internalType: 'uint256', name: 'newUnstakeWindow', type: 'uint256'}, + ], + name: 'setUnstakeWindowStk', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{internalType: 'address', name: 'reserve', type: 'address'}], + name: 'slashReserveDeficit', + outputs: [{internalType: 'uint256', name: '', type: 'uint256'}], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{internalType: 'address', name: 'newOwner', type: 'address'}], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{internalType: 'address', name: 'stakeToken', type: 'address'}], + name: 'unpauseStk', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + {internalType: 'address', name: 'reserve', type: 'address'}, + {internalType: 'address', name: 'stakeToken', type: 'address'}, + {internalType: 'uint256', name: 'liquidationBonus', type: 'uint256'}, + {internalType: 'bool', name: 'isReserveStataToken', type: 'bool'}, + {internalType: 'address', name: 'stakeTokenOracle', type: 'address'}, + ], + internalType: 'struct IUmbrellaConfiguration.SlashingConfigUpdate[]', + name: 'coverageConfig', + type: 'tuple[]', + }, + ], + name: 'updateSlashingConfigs', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, +] as const; diff --git a/scripts/clients.ts b/scripts/clients.ts index 5d20b2e1..1d8e1bfb 100644 --- a/scripts/clients.ts +++ b/scripts/clients.ts @@ -1,4 +1,4 @@ -import {HttpTransportConfig, createPublicClient, Client, http} from 'viem'; +import {HttpTransportConfig, createClient, Client, http} from 'viem'; import {ChainList, getRPCUrl} from '@bgd-labs/rpc-env'; const commonConfig: HttpTransportConfig = {timeout: 30_000, batch: true}; @@ -6,15 +6,28 @@ const batchConfig = {batch: {multicall: true}}; const clientCache: Record = {}; +const set = (obj, path, value) => { + // Regex explained: https://regexr.com/58j0k + const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g); + + pathArray.reduce((acc, key, i) => { + if (acc[key] === undefined) acc[key] = {}; + if (i === pathArray.length - 1) acc[key] = value; + return acc[key]; + }, obj); +}; + export function getClient(chainId: number) { if (!clientCache[chainId]) { const rpcURL = getRPCUrl(chainId as any, {alchemyKey: process.env.ALCHEMY_API_KEY}); - - clientCache[chainId] = createPublicClient({ + const transport = http(rpcURL, commonConfig); + const client = createClient({ chain: ChainList[chainId], - transport: http(rpcURL, commonConfig), + transport: transport, ...batchConfig, }); + + clientCache[chainId] = client; } return clientCache[chainId]; } diff --git a/scripts/generator/umbrellaGenerator.ts b/scripts/generator/umbrellaGenerator.ts new file mode 100644 index 00000000..5cd0fc82 --- /dev/null +++ b/scripts/generator/umbrellaGenerator.ts @@ -0,0 +1,46 @@ +import {Address, getContract} from 'viem'; +import {IUmbrella_ABI} from '../abi/umbrella'; +import {getClient} from '../clients'; +import {IPool_ABI} from '../../src/ts/abis/IPool'; + +type UmbrellaConfig = { + pool: Address; + stakeTokens: readonly Address[]; + coverage: readonly { + reserve: Address; + configs: readonly { + isReserveStataToken: boolean; + liquidationBonus: bigint; + oracle: Address; + stakeToken: Address; + }[]; + }[]; +}; + +export async function getUmbrellaConfig( + chainId: number, + umbrella: Address, +): Promise { + const client = getClient(chainId); + const umbrellaContract = getContract({ + abi: IUmbrella_ABI, + client, + address: umbrella, + }); + + const [stakeTokens, pool] = await Promise.all([ + umbrellaContract.read.getStkTokens(), + umbrellaContract.read.POOL(), + ]); + const poolContract = getContract({address: pool, abi: IPool_ABI, client}); + const reserves = await poolContract.read.getReservesList(); + const coverage = await Promise.all( + reserves.map((r) => umbrellaContract.read.getReserveSlashingConfigs([r])), + ); + + return { + pool, + stakeTokens, + coverage: reserves.map((r, i) => ({reserve: r, configs: coverage[i]})), + }; +} diff --git a/tests/generators/umbrella.spec.ts b/tests/generators/umbrella.spec.ts new file mode 100644 index 00000000..7c63ee80 --- /dev/null +++ b/tests/generators/umbrella.spec.ts @@ -0,0 +1,98 @@ +import {describe, it, expect} from 'vitest'; +import {getUmbrellaConfig} from '../../scripts/generator/umbrellaGenerator'; +import {rpcResponseCache} from '../../scripts/clients'; + +describe('umbrellaGenerator', () => { + it('should generate the config', async () => { + const config = await getUmbrellaConfig(84532, '0x779f13D3C70B50707a1C1ac9772c117cC3aDA477'); + expect(config).toMatchInlineSnapshot(` + { + "coverage": [ + { + "configs": [ + { + "isReserveStataToken": false, + "liquidationBonus": 10000n, + "oracle": "0x0000000000000000000000000000000000000000", + "stakeToken": "0xFCf0DbDE4a68C95EeE14dD7f2FE61e09F9Fb5433", + }, + ], + "reserve": "0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f", + }, + { + "configs": [ + { + "isReserveStataToken": false, + "liquidationBonus": 10000n, + "oracle": "0x0000000000000000000000000000000000000000", + "stakeToken": "0xE9bd69a6d6bE3A18017b29db0Bc771e98de67642", + }, + ], + "reserve": "0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a", + }, + { + "configs": [ + { + "isReserveStataToken": false, + "liquidationBonus": 10000n, + "oracle": "0x0000000000000000000000000000000000000000", + "stakeToken": "0xbAF767aF5e31b13aCAeFFE1db94f76B5026f9b54", + }, + ], + "reserve": "0x54114591963CF60EF3aA63bEfD6eC263D98145a4", + }, + { + "configs": [ + { + "isReserveStataToken": false, + "liquidationBonus": 10000n, + "oracle": "0x0000000000000000000000000000000000000000", + "stakeToken": "0xA8EB382804BEE84985053C4ce5F94E9e91593042", + }, + ], + "reserve": "0x4200000000000000000000000000000000000006", + }, + { + "configs": [ + { + "isReserveStataToken": false, + "liquidationBonus": 10000n, + "oracle": "0x0000000000000000000000000000000000000000", + "stakeToken": "0x98297F8CE8fBE6Ac21Baa23549389852D28715C4", + }, + ], + "reserve": "0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B", + }, + { + "configs": [ + { + "isReserveStataToken": false, + "liquidationBonus": 10000n, + "oracle": "0x0000000000000000000000000000000000000000", + "stakeToken": "0xF045cAB6235e10116319D94B1c5970DAAe9b7136", + }, + ], + "reserve": "0x810D46F9a9027E28F9B01F75E2bdde839dA61115", + }, + ], + "pool": "0x7b2F44923254d438556CA0faC364920e72b700c0", + "stakeTokens": [ + "0xa31db6E41C18f9B613841789C5B064Cf30bD45C3", + "0xFCf0DbDE4a68C95EeE14dD7f2FE61e09F9Fb5433", + "0xE9bd69a6d6bE3A18017b29db0Bc771e98de67642", + "0x5a800AE2117715F83a822Bed1815AcCA06c82785", + "0x5b2BB8d0D536B0eb0cEaEb47d0E1492D8222bf65", + "0xbAF767aF5e31b13aCAeFFE1db94f76B5026f9b54", + "0xA8EB382804BEE84985053C4ce5F94E9e91593042", + "0x6BF88300d11c701a7b7D2A91501062bb7650d2cF", + "0x2d4088BD07145121c348841497EA028389c4d966", + "0x98297F8CE8fBE6Ac21Baa23549389852D28715C4", + "0xF045cAB6235e10116319D94B1c5970DAAe9b7136", + "0x32735b634571904008D29086C95e90b558758F9f", + ], + } + `); + + console.log('cache', rpcResponseCache); + }); +}); From d1e4b0526832591847035d92af2f7e6e7034c366 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 2 Dec 2024 13:24:03 +0100 Subject: [PATCH 11/11] fix: resolve issues --- scripts/clients.ts | 11 -- tests/__snapshots__/verification.spec.ts.snap | 184 ------------------ tests/generators/umbrella.spec.ts | 9 +- tests/sanity/umbrella.spec.ts | 1 - tests/verification.spec.ts | 4 +- 5 files changed, 9 insertions(+), 200 deletions(-) delete mode 100644 tests/__snapshots__/verification.spec.ts.snap diff --git a/scripts/clients.ts b/scripts/clients.ts index 1d8e1bfb..4f7bae9a 100644 --- a/scripts/clients.ts +++ b/scripts/clients.ts @@ -6,17 +6,6 @@ const batchConfig = {batch: {multicall: true}}; const clientCache: Record = {}; -const set = (obj, path, value) => { - // Regex explained: https://regexr.com/58j0k - const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g); - - pathArray.reduce((acc, key, i) => { - if (acc[key] === undefined) acc[key] = {}; - if (i === pathArray.length - 1) acc[key] = value; - return acc[key]; - }, obj); -}; - export function getClient(chainId: number) { if (!clientCache[chainId]) { const rpcURL = getRPCUrl(chainId as any, {alchemyKey: process.env.ALCHEMY_API_KEY}); diff --git a/tests/__snapshots__/verification.spec.ts.snap b/tests/__snapshots__/verification.spec.ts.snap deleted file mode 100644 index 28465e46..00000000 --- a/tests/__snapshots__/verification.spec.ts.snap +++ /dev/null @@ -1,184 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`verification > should have all contracts verified except for the known set of errors 1`] = ` -[ - { - "item": { - "chainId": 1101, - "path": [ - "GovernanceV3PolygonZkEvm", - "PC_DATA_HELPER", - ], - "value": "0xF1c11BE0b4466728DDb7991A0Ac5265646ec9672", - }, - }, - { - "item": { - "chainId": 1, - "path": [ - "AaveV2EthereumAMM", - "UI_INCENTIVE_DATA_PROVIDER", - ], - "value": "0xD01ab9a6577E1D84F142e44D49380e23A340387d", - }, - }, - { - "item": { - "chainId": 137, - "path": [ - "AaveV2Polygon", - "UI_INCENTIVE_DATA_PROVIDER", - ], - "value": "0x645654D59A5226CBab969b1f5431aA47CBf64ab8", - }, - }, - { - "item": { - "chainId": 43113, - "path": [ - "AaveV2Fuji", - "POOL_IMPL", - ], - "value": "0x6C66d96ACCCCC2E6F576813A480AD230D56FB2F1", - }, - }, - { - "item": { - "chainId": 43113, - "path": [ - "AaveV2Fuji", - "ORACLE", - ], - "value": "0xfa4f5B081632c4709667D467F817C09d9008A46A", - }, - }, - { - "item": { - "chainId": 43113, - "path": [ - "AaveV2Fuji", - "LENDING_RATE_ORACLE", - ], - "value": "0x76Ec7c83aCb6af821E61F1DF1E0aBE684Bc904F8", - }, - }, - { - "item": { - "chainId": 43113, - "path": [ - "AaveV2Fuji", - "DEFAULT_INCENTIVES_CONTROLLER", - ], - "value": "0xa1EF206fb9a8D8186157FC817fCddcC47727ED55", - }, - }, - { - "item": { - "chainId": 43113, - "path": [ - "AaveV2Fuji", - "FAUCET", - ], - "value": "0x90E5BAc5A98fff59617080848959f44eACB4Cd7B", - }, - }, - { - "item": { - "chainId": 43113, - "path": [ - "AaveV2Fuji", - "UI_INCENTIVE_DATA_PROVIDER", - ], - "value": "0x9842E5B7b7C6cEDfB1952a388e050582Ff95645b", - }, - }, - { - "item": { - "chainId": 43114, - "path": [ - "AaveV2Avalanche", - "UI_INCENTIVE_DATA_PROVIDER", - ], - "value": "0x11979886A6dBAE27D7a72c49fCF3F23240D647bF", - }, - }, - { - "item": { - "chainId": 84532, - "path": [ - "AaveV3BaseSepolia", - "COLLECTOR", - ], - "value": "0x6414DE3F58d54Fb90636e8393F065fDFe34Da420", - }, - }, - { - "item": { - "chainId": 84532, - "path": [ - "AaveV3BaseSepolia", - "UMBRELLA", - ], - "value": "0xb939e96168a3953697B64DA8055570dee8735829", - }, - }, - { - "item": { - "chainId": 421614, - "path": [ - "AaveV3ArbitrumSepolia", - "ASSETS", - "USDC", - "INTEREST_RATE_STRATEGY", - ], - "value": "0x5C0A210C9C0df2Ab147BDE7D9583c07cEb3131CD", - }, - }, - { - "item": { - "chainId": 421614, - "path": [ - "AaveV3ArbitrumSepolia", - "ASSETS", - "WETH", - "INTEREST_RATE_STRATEGY", - ], - "value": "0x46d3a2A27E2c700d74f21AD3290A20cB8437F7b7", - }, - }, - { - "item": { - "chainId": 11155420, - "path": [ - "AaveV3OptimismSepolia", - "RATES_FACTORY", - ], - "value": "0x83E0E6095a318446b313f7D27e0c33Ed1e9c0213", - }, - }, - { - "item": { - "chainId": 11155420, - "path": [ - "AaveV3OptimismSepolia", - "ASSETS", - "USDC", - "INTEREST_RATE_STRATEGY", - ], - "value": "0xd6a6339c6C1B5a8792afA6e0E80b1908b8579f51", - }, - }, - { - "item": { - "chainId": 11155420, - "path": [ - "AaveV3OptimismSepolia", - "ASSETS", - "WETH", - "INTEREST_RATE_STRATEGY", - ], - "value": "0xaFb7Bc3f69A8Cc6a49823eFF9E3974CD49181A9c", - }, - }, -] -`; diff --git a/tests/generators/umbrella.spec.ts b/tests/generators/umbrella.spec.ts index 7c63ee80..b36cc769 100644 --- a/tests/generators/umbrella.spec.ts +++ b/tests/generators/umbrella.spec.ts @@ -1,6 +1,5 @@ import {describe, it, expect} from 'vitest'; import {getUmbrellaConfig} from '../../scripts/generator/umbrellaGenerator'; -import {rpcResponseCache} from '../../scripts/clients'; describe('umbrellaGenerator', () => { it('should generate the config', async () => { @@ -89,10 +88,14 @@ describe('umbrellaGenerator', () => { "0x98297F8CE8fBE6Ac21Baa23549389852D28715C4", "0xF045cAB6235e10116319D94B1c5970DAAe9b7136", "0x32735b634571904008D29086C95e90b558758F9f", + "0x7c743cCAE301b558D2DB0c72D6d69C792AA2E4c9", + "0x4Dc9749D5FF960e92b21800CC0a6fC7A2aD606f8", + "0x8d1dF6F3602f1Ca01f01F6e6d1071B205FbB0026", + "0xF2176ACe5DA79291D176C645a725eBa96A8f246D", + "0xC550C904e04C6046122C0271A5D90891870f8824", + "0xA821016E5A282676c07FeC5217016e229B518dE0", ], } `); - - console.log('cache', rpcResponseCache); }); }); diff --git a/tests/sanity/umbrella.spec.ts b/tests/sanity/umbrella.spec.ts index e11edb21..20361d63 100644 --- a/tests/sanity/umbrella.spec.ts +++ b/tests/sanity/umbrella.spec.ts @@ -24,7 +24,6 @@ export async function check(addresses: Record) { address: addresses.UMBRELLA, client, }); - console.log(addresses.UMBRELLA, addresses.CHAIN_ID); const [POOL] = await Promise.all([umbrella.read.POOL()]); expect(POOL).toEqual(addresses.POOL); } diff --git a/tests/verification.spec.ts b/tests/verification.spec.ts index c8d46e73..b4873c1a 100644 --- a/tests/verification.spec.ts +++ b/tests/verification.spec.ts @@ -4,6 +4,8 @@ import {flattenedAddresses, ListItem} from '../ui/src/utils/getAddresses'; import verified from './cache/verified.json'; import {writeFileSync} from 'fs'; import {Hex, PublicClient, zeroAddress} from 'viem'; +import {getCode} from 'viem/actions'; + import {getClient} from '../scripts/clients'; const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY as string; @@ -112,7 +114,7 @@ describe( if (checked.has(key)) continue; checked.add(key); const client = getClient(item.chainId) as PublicClient; - const hasCode = await client.getCode({address: item.value as Hex}); + const hasCode = await getCode(client, {address: item.value as Hex}); if (hasCode) { const {status, result} = (await checkVerified(item)) as { status: string;