Context
We built a taker-side execution product on Aqua (SwapVM router + docked strategy) on Base Sepolia, and used @1inch/aqua-sdk in the frontend to decode protocol events from fill receipts. Three gaps we hit, all on the testnet/deployment-coverage side:
1. DockedEvent.TOPIC is never emitted by the deployed Base Sepolia registry
AQUA_CONTRACT_ADDRESSES has no entry for chain 84532, so we hardcoded our deployment's registry (0xd2A8f6D7…). When we then searched for dock provenance using DockedEvent.TOPIC (0xd173a1d1…) across the deployment window, eth_getLogs returned zero events — while the registry does emit 5 events in that window, all anonymous-layout (single topic = signature, all args in data):
| observed topic0 |
matches the SDK's |
0xdc3622e0… |
ShippedEvent.TOPIC ✔ |
0x3f18354a… |
PushedEvent.TOPIC ✔ |
0x3ad61047… |
PulledEvent.TOPIC ✔ |
0xd173a1d1… (DockedEvent.TOPIC) |
never observed |
Pushed/Pulled topics match live fill receipts byte-for-byte (we decode sixty-plus fills with them), so the mismatch is specific to Docked/the registry deployment. Likely version skew between the SDK's event definitions and the testnet registry's ABI.
2. AQUA_ABI item types don't satisfy viem's typed getLogs {abi, eventName} overload
client.getLogs({address, abi: ABI.AQUA_ABI, eventName: "Docked"}) fails to typecheck (the SDK's readonly item shapes don't match viem's Abi), forcing a raw client.request("eth_getLogs") with manual casts. Since viem ^2.48.4 is already a direct dependency, exporting a viem-Abi-typed constant would keep integrators on the typed path.
3. rawBalances / safeBalances semantics are undocumented
For maker + app + strategyHash + token we read ~1030.5 (18-dec) dETH and ~2.9M (6-dec) dUSD raw, while that maker's wallet held ~6,000 dETH and ~40 dETH were ever executed across all schedules. Without units or the accounting rule (cumulative pushes? pushes − pulls? a multiplier?), the values cannot be used in any UI. A doc tying rawBalances to an observable push/pull history would fix it.
Request
A testnet coverage pass: publish Base Sepolia deployment addresses + their exact event ABIs (per-deployment topic0s), and a short doc for the registry's balance functions. Full write-up with tx hashes and repro in FEEDBACK-AQUA.md at our public repo.
Versions
@1inch/aqua-sdk 0.2.0 → 0.3.1 (identical public surface, both affected)
- Base Sepolia, registry
0xd2A8f6D7645F53aB23dC3EcB146a196026F964DA, app/router 0x054F6A7CE03fdEB7814977B0FE7017cc5B2d7DA2, strategyHash 0x4a4ffe294877219b0438c8ad16ef5ff405a523c95bf5225f56b354507657c8db
Context
We built a taker-side execution product on Aqua (SwapVM router + docked strategy) on Base Sepolia, and used
@1inch/aqua-sdkin the frontend to decode protocol events from fill receipts. Three gaps we hit, all on the testnet/deployment-coverage side:1.
DockedEvent.TOPICis never emitted by the deployed Base Sepolia registryAQUA_CONTRACT_ADDRESSEShas no entry for chain84532, so we hardcoded our deployment's registry (0xd2A8f6D7…). When we then searched for dock provenance usingDockedEvent.TOPIC(0xd173a1d1…) across the deployment window,eth_getLogsreturned zero events — while the registry does emit 5 events in that window, all anonymous-layout (single topic = signature, all args indata):0xdc3622e0…ShippedEvent.TOPIC✔0x3f18354a…PushedEvent.TOPIC✔0x3ad61047…PulledEvent.TOPIC✔0xd173a1d1…(DockedEvent.TOPIC)Pushed/Pulled topics match live fill receipts byte-for-byte (we decode sixty-plus fills with them), so the mismatch is specific to
Docked/the registry deployment. Likely version skew between the SDK's event definitions and the testnet registry's ABI.2.
AQUA_ABIitem types don't satisfy viem's typedgetLogs {abi, eventName}overloadclient.getLogs({address, abi: ABI.AQUA_ABI, eventName: "Docked"})fails to typecheck (the SDK's readonly item shapes don't match viem'sAbi), forcing a rawclient.request("eth_getLogs")with manual casts. Sinceviem ^2.48.4is already a direct dependency, exporting a viem-Abi-typed constant would keep integrators on the typed path.3.
rawBalances/safeBalancessemantics are undocumentedFor
maker + app + strategyHash + tokenwe read ~1030.5 (18-dec) dETH and ~2.9M (6-dec) dUSD raw, while that maker's wallet held ~6,000 dETH and ~40 dETH were ever executed across all schedules. Without units or the accounting rule (cumulative pushes? pushes − pulls? a multiplier?), the values cannot be used in any UI. A doc tyingrawBalancesto an observable push/pull history would fix it.Request
A testnet coverage pass: publish Base Sepolia deployment addresses + their exact event ABIs (per-deployment topic0s), and a short doc for the registry's balance functions. Full write-up with tx hashes and repro in
FEEDBACK-AQUA.mdat our public repo.Versions
@1inch/aqua-sdk0.2.0 → 0.3.1 (identical public surface, both affected)0xd2A8f6D7645F53aB23dC3EcB146a196026F964DA, app/router0x054F6A7CE03fdEB7814977B0FE7017cc5B2d7DA2, strategyHash0x4a4ffe294877219b0438c8ad16ef5ff405a523c95bf5225f56b354507657c8db