Two new typed clients for the Week-1 flywheel contracts, dependency-light
(no viem/ethers import required — accepts any EIP-1193-style provider).
src/sink/AereSinkClient.ts
- readConfig(): all 8 immutable parameters in one batched eth_call sequence
(AERE token, BURN_VAULT, SAERE_VAULT, DEX_ROUTER, 4 bps values, slippage cap).
- readSplitPercentages(): convenience that returns burn/buyback/staker
as human-readable percentages.
- encodeFlush(token, amount): calldata for the integrator-side flush call.
- encodeSweepDust(token): calldata for the permissionless dust-sweep.
src/saere/sAEREClient.ts
- readVaultState(): live snapshot — underlying address, totalAssets,
totalSupply, pricePerShare, decimals.
- balanceOf(user): per-user sAERE share balance.
- convertToAssets / convertToShares: round-trip conversion helpers.
- encodeDeposit / encodeWithdraw / encodeRedeem: ERC-4626 write calldata.
Both clients precompute 4-byte function selectors at module load so the
SDK doesn't depend on a keccak helper. ABI-encoded address and uint
arguments built manually so consumers can use this with either a
high-level library (viem, ethers) or raw fetch against rpc.aere.network.
Re-exported from src/index.ts under 'export * from sink/saere' so the
SDK keeps a single import path.