From bdf22cdc611a2a87b5de87453ca95220da35cee1 Mon Sep 17 00:00:00 2001 From: Himanshu Singh Date: Wed, 16 Sep 2026 21:27:44 +0530 Subject: [PATCH] Point the stable-rate check at a URL that resolves MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The check added with 0.3.1 built its URL with a `..` segment against the address book's raw host, which raw.githubusercontent does not resolve. It reported `N/A — Could not read IPool.sol` rather than failing, so the check meant to prove Aave's stable-rate retirement was passing by not running, and `N/A` in a column of `OK` is easy to read past. It now reads Aave's own IPool.sol and asserts the interface carries neither swapBorrowRateMode nor rebalanceStableBorrowRate. Co-Authored-By: Claude Opus 5 (1M context) --- scripts/conformance.live.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/conformance.live.ts b/scripts/conformance.live.ts index 9eae214..a1e023b 100644 --- a/scripts/conformance.live.ts +++ b/scripts/conformance.live.ts @@ -179,6 +179,8 @@ async function kraken(): Promise { const ADDRESS_BOOK = 'https://api.github.com/repos/bgd-labs/aave-address-book/contents/src' const ADDRESS_BOOK_RAW = 'https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/src' +/** Aave's own Pool interface. A stable-rate function reappearing here is the retirement coming undone. */ +const AAVE_IPOOL = 'https://raw.githubusercontent.com/aave-dao/aave-v3-origin/main/src/contracts/interfaces/IPool.sol' /** * The address book names a deployment by chain: `AaveV3Base.sol`, and Ethereum's @@ -220,7 +222,7 @@ async function aave(): Promise { // instantiating a stable debt token on a new listing, so the proof is that the // interface itself no longer carries one. `IPool.sol` is the file that would // have to grow it back. - const poolApi = await request(`${ADDRESS_BOOK_RAW}/../lib/aave-v3-origin/src/contracts/interfaces/IPool.sol`, followed, DEADLINE_MS) + const poolApi = await request(AAVE_IPOOL, followed, DEADLINE_MS) const poolSource = poolApi.ok ? await poolApi.text() : '' const stableFns = ['swapBorrowRateMode', 'rebalanceStableBorrowRate'].filter((fn) => poolSource.includes(fn)) findings.push({