Changelog
All notable changes to the TypeScript SDK (propamm) are documented here.
[1.5.0] - 2026-09-16
Changed
Titan moved the state-override and price-level endpoints to dedicated infrastructure. Every default now points at
eu.data.titanbuilder.xyzinstead ofrpc.titanbuilder.xyz:DEFAULT_OVERRIDES_RPC_URL—https://eu.data.titanbuilder.xyzDEFAULT_OVERRIDES_WS_URL—wss://eu.data.titanbuilder.xyz/ws/pamm_quote_streamDEFAULT_PRICE_LEVELS_RPC_URL—https://eu.data.titanbuilder.xyzDEFAULT_PRICE_LEVELS_WS_URL—wss://eu.data.titanbuilder.xyz/ws/pamm_price_levels
Titan serves the same data from
eu.,ap.andus.hosts; the oldrpc.hosts still respond but are deprecated. Callers that pass an explicit URL are unaffected — update it to the matching*.data.titanbuilder.xyzhost. Callers on the defaults outside the EU should now set the URL explicitly, since the previous non-regional default has nodata.equivalent.
[1.4.0] - 2026-09-07
Added
EL_ZORROvenue constant incommon/pamms, plus itselzorroentry inPAMMS(and therefore in thePammNameunion).
Removed
TokenOutBalanceDecreased()frompropAmmRouterAbi. The router stopped reverting with it when the bespoke Bebop adapter was removed, so viem can no longer decode a revert into it. (#67)
[1.3.0] - 2026-08-28
Added
TEMPEST,TAURUSFIandMETRICvenue constants incommon/pamms, plus theirtempest/taurusfi/metricentries inPAMMS(and therefore in thePammNameunion).
Changed
BEBOPnow points at0xB09AaA5614916d7AEb59C295C52c92ca82aDdD76, the current Bebop deployment. Code that hardcoded the previous Bebop address must be updated.
[1.2.2] - 2026-07-01
Added
- The
swapandswapAndWaitfunctions now attach a hardcoded per-function gas limit and skip node gas estimation, which can under-shoot when execution takes a heavier branch than it simulated. Override the gas limit per call with the newSwapOptions.gasLimit. PropAmmRouter.gasLimitFor(opts?)returns the gas limit a swap will attach for the given options (the explicitgasLimit, else the per-function default) — for previewing the maximum network fee without sending.
[1.2.1] - 2026-06-25
Fixed
- State-override quotes now pin the simulated
block.timestampto the beacon slot's canonical block time (genesis + slot*12) instead of the frame's emit time, falling back to the emit time when no slot is present. Venues validateblock.timestampagainst the state they pushed, which is keyed to the slot. (#61)
[1.2.0] - 2026-06-25
Added
- Browser / injected wallet support:
ContractClient.fromClientsaccepts prebuilt viem public and wallet clients (e.g. wagmi'susePublicClient/useWalletClient), so swaps can be signed by a browser wallet instead of a raw private key. (#56)
Changed
- Breaking: the
ContractClientconstructor is now private. Build a client from an RPC URL with the newContractClient.fromRpcstatic method instead ofnew ContractClient(...). (#56)
[1.1.0] - 2026-06-24
Added
- Price levels: subscribe to maker price-level updates and apply them to quotes via
PriceLevelsWsSource(WebSocket) orPriceLevelsRpcSource(RPC), plus thePriceLevelscontainer and related utilities. (#51)
[1.0.0] - 2026-06-18
Added
- Initial release. Core surface for interacting with the
PropAMMRouter:- Router actions:
quote,swap,waitForSwap,approve,allowance, and view helpers. - State overrides: apply fresh pAMM state to quotes via
OverridesWsSource(WebSocket) orOverridesRpcSource(RPC), plus utilities. - Shared helpers and types.
- Router actions: