- ff98a2b: Bumps viem from 2.47.0 to 2.47.12.
- ff98a2b: Bumps @balancer-labs/balancer-maths from 0.0.38 to 0.0.40.
- c48f9f8: bump viem from 2.46.2 to 2.47.0
- 26cc5b0: Update GyroECLP factory to latest (longer pause window).
- 19a8bf4: Bump viem from 2.45.1 to 2.46.2.
- 210fcd7: Update Sonic UnbalancedAddViaSwapRouter address.
- acc99c5: Add support for Add Liquidity Unbalanced Via Swap
- c8c2a65: fix-add-monad-addresses-and-update-tests
- b29cef6: add monad to CHAINS export
- dd5f5fd: bump viem from 2.44.4 to 2.45.0. Update Sonic deployments with new factory addresses.
- e34a2c0: new pool factories and monad contracts
- 8b31785: Update LBPFactory to v3
- 850d17c: add fixed price LBPs and improve input validators for LBPs
- d31fc84: Remove pool type Boosted
- 8b144d5: Remove duplicate ABIs
- e22d978: Add hooks to addresses
- e49bbb0: Remove CSP createPool functionality
- 568d700: Remove unnecessary dependencies
- 4b8c63c: Bump viem from 2.42.0 to 2.43.5. Bump @balancer-labs/balancer-maths from 0.0.37 to 0.0.38.
- 29e0d09: Fix incorrect swap parameter
-
f51af5f: WHAT: Removed wrapped token functionality from the
Tokenclass and introduced a newNativeTokenclass to handle native tokens (like ETH) separately.WHY: This change improves type safety and separation of concerns by distinguishing between ERC-20 tokens and native tokens, making the API more explicit and preventing confusion about token types.
HOW: Update your code by:
- Replace any usage of
Tokenfor native tokens with the newNativeTokenclass if using the wrapped functionality - If not using any wrapped functionality, the
Tokencan remain as is - Import
NativeTokenfrom the SDK:import { NativeToken } from '@balancer/sdk' - Use
NativeTokenfor native token operations instead ofTokenwith wrapped functionality
- Replace any usage of
- bca04a3: Bump Viem and Balancer Maths deps.
- d2e14fb: Add X Layer support.
- a398076: Bump Viem to 2.38.5. Use Viem Plasma chain.
- 5945fac: Fix scientific notation parsing for slippage inputs
- 992a082: update hyperevm block explorer
- ccc4bec: refactor Balancer API class
- 305d7db: add plasma chain
- 508c646: fetch permit2 from deployments and improve new chain deployment setup
- 2f5c270: feat: add lbp creation with migration functionality & bpt unlocking
- 729db90: adding HyperEvm to the API chain map
- 729db90: Fix api client for HyperEvm
- 01571a7: Add hyperEVM native asset config
- da8f344: Update reCLAMM addresses to V2. Also adds Sonic reCLAMM factory.
- 4d30a06: export address provider
- 06adec2: enable hyperEVM support
- 07638a9: additional abis for improved error reporting
- b5fb791: Add poolIds and considerPoolsWithHooks filters to sorSwapPaths.
- 9fc74d3: Update to active reclamm contracts
- b4cee37: Add address validation for network deployments
- ee2709e: fix gyro eclp param calculations for reversed token order with inverted params
- 112b340: fix failing test
- d0d958c: fix pnpm-workspace.yaml
- 6879394: API client headers
- 0c94547: adds lbp creation functionality
- 0a91173: Add permit2 address for optimism network
- 2ddcb83: Prevent biome from incorrectly formatting package.json
- b2a4be7: Fix ReClamm init lint issues
- bc21824: Update dependencies to latest version
- 56e594d: Create and initialize Readjusting Concentrated Liquidity AMMs
- df0b8b2: update to latest avalanche deployments of balancer V3 contracts
-
2137cc9: ## Summary Using script to automate balancer address and ABI updates as new deployments roll out
- Contract addresses are now exported through
balancerV2ContractsandbalancerV3Contractsobjects instead of individual exports - Contract ABIs follow consistent nameing pattern of
contractNameAbi_ProtocolVersion
Previously you would import addresses like this:
import { BALANCER_BATCH_ROUTER, BALANCER_COMPOSITE_LIQUIDITY_ROUTER_BOOSTED, BALANCER_ROUTER, PERMIT2, VAULT_ADMIN, VAULT_V3, } from "@balancer/sdk"; const routerAddress = BALANCER_ROUTER[chainId];
Now you should import and use addresses like this:
import { balancerV2Contracts } from "@balancer/sdk"; import { balancerV3Contracts } from "@balancer/sdk"; const routerAddressV2 = balancerV2Contracts.Router[chainId]; const routerAddressV3 = balancerV3Contracts.Router[chainId];
For ABI imports related to balancer V2 and V3 contracts. We have standardized the naming by appending
_V2and_V3tocontractNameAbiExample
import { vaultAbi_V2, vaultAbi_V3 } from "@balancer/sdk";
- Contract addresses are now exported through
- f0a0416: Only mapPoolType for V2. V3 can use string as given.
- 57d2532: Fix Install check in our CI pipeline
- a3e92ad: add avalanche support
- fee401c: Refactor input validation errors as SDKError
- 061f490: Remove test no longer necessary on gnosis-chain
- 72a0ded: Refactor price impact errors as SDKError
- 9240e75: Error Handling - Propagate SC Errors
- 3763ca1: Update GyroECLP factory addresses and ABI
- c9b73ec: calculate derived params for gyro eclp pools
- 7fc01a9: create gyro E-CLP on v3
- 05f8937: Fix type checking for CI
- c692d85: Fix test failing intermittently on CI
- 7025ec9: Fix PI error message
- 47b3caa: Add support for monad testnet'
- b9130c3: split constants into general and version specific files
- 14bb7ba: Fix TokenAmount.toSignificant with very small amounts
- 48d4fd9: Fix price impact for add liquidity boosted on near proportional inputs
- e0e38b3: Update production Composite router addresses.
- e4d2938: Update stableSurge to release version and addresses.
- 7a62a77: Add StableSurge create support.
- 187fac2: new composite router for boosted operations with ability to wrap/unwrap single token
- ac22bc9: V2 nested mapping should not use underlying token.
- dfdaa39: Add Missing isBuffer field for sorGetSwapPaths query.
- da7dc97: Fix PermitHelper owner to support viem Account as input
- cca357f: Export calculateProportionalAmountsBoosted helper
- bd1aa32: Add Base and Arbitrum support for V3
- 0734b88: permit2 helpers for pool init
- 4a68326: Fix getPoolStateWithBalancesV3 helper
- 80b3e49: Add Sonic V3 support.
- 411ff7e: Bump viem version and undo custom sonic setup (as multicall3 is already defined in the new viem version)
- 00d2037: Add query blockno param for add/remove liq (not V2).
- eb5be5d: fix: update sonic multicall3 creation blocknumber
- eb5be5d: fix: override multicall3 for sonic in viem chain definition
- 1b47dfb: Skip flaky test
- e5a0311: Bump composable stable pool factories to v6
- 79c8144: Refactor swaps v3 integration tests
- 1c58adc: Add support for Sonic chain
- b3d61f2: Remove
queryRemoveLiquidityRecoveryfromRemoveLiquidity. Please usequerywithRemoveLiquidityRecoveryInputinstead.
- 8aa2fb9: Add native token support to AddLiquidityNested and AddLiquidityBoosted
- a6ebf0d: Add support for InitBuffer
- 15567ec: Add support for addLiquidityBuffer
- e3fdf6c: Add extra integration tests for gyro pools
- 378a8f0: Fix price impact with near proportional inputs for AddLiquidityNested
- 20aeefc: chore: debug v2 pool state multicall errors
- 6ec44e1: Update to main deployments (Mainnet, Gnosis and Sepolia)
- 688d857: Add permit and permit2 signature examples
- 863822c: Use correct index for underlying token redeem call.
- b2b9411: Enable add liquidity proportional for stable pools on v3
- 2d192ff: Update to testnet deployment 11
- c5e3ffd: Refactor nestedPoolState logic to fetch mainTokens from api
- ac0c5a5: Add proportional helper to calculate BPT from a reference amount for boosted pools
- 2712ee0: Fix getPoolStateWithBalancesV3 with less 18 decimals tokens
- 1455fde: Fix circular dependency on price impact implementation
- 603fbd5: fix: nested single token remove v2 validation
- b927594: Tidy nested types. Share common with boosted. Support for V3 addLiquidityNested PI (including nested boosted).
- f2f1e42: BPT swaps as first step & change of batch router address
- dcd1f0d: PriceImpact error handling and messaging improvements.
- Catch any errors with initial add/remove steps - these are thrown because the user input is valid, e.g. would cause INVARIANT_GROWTH errors
- Catch any errors in query during unbalanced calc steps and throw message that will help with debug - e.g. caused by delta amounts
- 52fed3d: Fix PI test.
- 72a96fb: fix: validateBuffer check for V2 buffer array.
- 46bcb86: Update CompositeRouter address (deploy10 version with bug fix). Remove CompositeRouter workarounds for Boosted Price Impact.
- a1b87c6: Add to field to query outputs. Useful for correct approval spender before build.
- e234fc1: Remove Swap Price Impact function and tests.
- 4e32362: Add optional sender and userData inputs for add/remove/swap queries. Sender can be used to query accurate result when pool may have hook thats behaviour is affected by sender, e.g. loyalty fee hook.
- 2a664ce: Make boosted add/remove support partial boosted.
- a33d0fc: Expose isBatchSwap on swap class
- a080968: chore: remove unused totalShares field from PoolStateWithUnderlyings type
- 1ce9784: added add and remove liquidity for boosted pools
- 84f3259: Full nested pool support and tests.
- 8d4d0ee: Add add/remove support for V3 nested pools.
- ae2c177: Update to Deploy 10.
- 1a85f89: Re-deploy force.
- 5442afb: Add support for userData to v3 swaps
- d64eb0f: Update vault extension ABI to deploy9 version.
- b00b8d0: Update to deploy 9
- 128313b: Support for v3 stable pool creation
- cc78c64: Add zero address sender to multicall calls to avoid issues with Nethermind/Geth nodes
- 2be2b58: Add OPTIMISM_RPC_URL to test envs
- 503f72a: Exposes PublicWalletClient type
- c2c454d: Update to 8th testnet release of v3
- 74322d3: Add vault and vault extension abis to any router interactions to enable decoded error messages.
- 3da1e5b: Update Add Liquidity Proportional to expect any referenceAmount as input
- 0aecec7: added add liquidity proportional for v3
- 2fd169e: added remove liq recovery
- ce5e764: Add support for v2 on sepolia
- 1626f5f: Accept ETH as input on buildCallWithPermit
- a3fe914: update sdk to work with the seventh testnet deployment
- 6742fb5: Fix calculate proportional amounts rounding direction for Cow Amm
- de32a7c: Fix add liquidity proportional query for cow-amm
- 838f09e: Remove round down from calculateProportionalAmounts
- ec27a5c: Fix outputReference index being incorrectly consumed
- 2fffd77: Fix remove liquidity nested query (peek) logic
- c5b4287: Adds buffer/boosted pool support to swaps.
- e3c6b5e: Add buildCallWithPermit variations for add/remove/swap operations
- f64866f: Round down calculateAmountsProportional amounts
- a0edf51: Fix remove liquidity nested for ComposableStable pools
- 1a41d80: Filter phantomBpt in mapPoolToNestedPoolState.
- 39db20c: Add missing config for Avalanche and ZkEvm.
- 9aa847e: Fix Balancer Queries address for Avalanche
- 5c353a3: Add support for chain: Fraxtal
- dc5a323: Add support for chain: Mode
- 42d3d71: Expose Batch Router ABI
- 07b6eaa: Update to use deploy 6.
- 835d023: Relayer auth read signers nonce.
- 654af8c: Expose isAuraBalSwap helper.
- de03793: Changes vaultVersion to protocolVersion to match API. CowAMM uses protocolVersion 1 instead of 0. Add support for auraBal swaps to BAL/WETH/ETH on V2 via Relayer.
- 2e0ddce: Updates for 5th testnet release of v3 contracts on Sepolia
- 73dc1bc: Add support for add/remove liquidity on CoWAMM pools
- d81de73: Update SDK to use Permit2 and conform with new SC deployment
- 18087a8: Fixed price impact to return close to 0 on proportional amounts
- 0edf25b: Use callData instead of call for all build returns.
- 8e7c349: Refactor api client helper to match api changes
- efe7c94: Handle address correctly in BalancerApi. Example updates.
- 127bc2f: Add support for V3 Swaps (single and batchSwap). Breaking changes in Swap buildCall to handle path limits correctly.'
- a759fbf: Add Price Impact for swaps and batchSwaps
- 6974a7c: Add add/remove liquidity support for stable and metastable pools
- 87d1dbd: Refactor queryRemoveLiquidityRecovery into a separate method
- 33b23c6: Bump create pool test timeout
- dfacb04: Rename buildCall interface for consistency and clarity
- e2d66ce: Adds Initialize Pool functionality for V3 pools;
- c071850: Refactor useNativeAssetAsWrappedAmountIn adn toNativeAsset into wethIsEth
- 7bc308a: Move accountAddress from query to buildCall input
- 8825f0a: Refactor sender and recipient to exist on v2 only
- b77768a: Change all refs to balancerVersion to vaultVersion to match API.
- f5291c6: Add V3 Single Swap support.
- 517a13e: Add price impact for add/remove nested liquidity
- b547e32: Adds Balancer's V3 CreatePool functionality for Weighted Pools;
- 27296e6: expose mapPoolToNestedPoolState function
- 4851160: Add Base config.
- c359a54: add GYRO type for GYRO2 in pool type mapper
- 8d8a95f: Fix add liquidity nested not working for polygon (and other chains)
- cadb555: * Refactor Swap class to work with new API SOR query response.
- Swap class has V2/V3 handler (V3 WIP in follow up PR)
- Swap example added
- Limits refactored to be internal to V2 implementation. buildCall used to create based on input Slippage. Returns minAmountOut/maxAmountIn for users.
- PriceImpact can no longer be calculated in Swap as missing pool state/maths. This has been removed for now and will be added as onchain helper in future.
- 40ee7be: Remove SOR related code & other stale code/exports.
- 579600a: Expose proportional amounts helper
- 8bd2454: Add Basic Remove Liquidity for v3
- 69d6567: Add limits calculation and data encoding in the swap
- 4c8114d: Add Basic Add Liquidity for v3
- 2593e8a: Expose JoinPoolRequest type
- dc09bf7: Remove type module from package.json
- c7c318a: Adding a function to calculate proportional amounts; Adding balancerVersion to the API Pools and Nested Pools data provider
- a1d52dc: Remove ambiguity from slippage interface
- 651e976: Add proportional amounts helper
- dec468a: Fix Add/Remove Liquidity Nested with zero amounts in
- 37f89a4: Bump tsup version
- 6c12bab: Expose Relayer class
- 69521d0: Fix cloneDeep import
- 5cac427: Safe updating all packages; Hard updating viem from v1 to v2;
- a126243: return null when there are no candidatePaths when using
sorGetSwapsWithPoolssogetBestPaathsdoesnt throw - 79e9e81: Add dpdm as circular dependency linter
- 584914b: - Add AddLiquidityNested
- Add RemoveLiquidityNestedProportional
- Add RemoveLiquidityNestedSingleToken
- 79e9e81: Replace rome with biome
- ffed733: Add v3 scaffold implementation
- 54c8925: Fixing InitPoolDataProvider to work with other poolTypes and with less input parameters;
- 16a7cce: Adding balancer v3 scaffold for init pool data provider;
- fc21f1e: Minor refactors and lint fixes
- e59f1b2: Removing duplicated constant BALANCER_VAULT and replacing by VAULT[chainId]
- 4bdc6f0: Removing BalancerHelpers contract and replacing it by BalancerQueries;
- 48d14de: Adapting pool type from API to PoolType, so we can generally use PoolType instead of string in the whole project.
- 60eebf8: Adding InitPool functionality for Composable Stable Pools
- 38c3aa2: Replace shared human readable abi with abis from ts files
- ae7b19e: Update api client to match pool type changes
- b8523b1: Add create pool for composable stable pools
- 43715b5: Add OP native asset and remove unused constant STELLATE_URL
- 1e3ad86: expose priceImpact amount
- e7a8237: Adding InitPool Functionality for Weighted Pools; Abstracting Input validation into a new class InputValidator; Moving "encodeUserData" functions from other modules to encoders;
- 7fff3d9: Adding the CreatePool class with the functionality to create weighted pools; Added integration tests for Weighted Pool Creation
- d8dc287: Add price impact calculations for add/remove liquidity and swaps
- b97bff1: Discard paths with failing limits
- 4eda061: Add Op pools from vulnerability to filter list.
- e1efe6b: - Add add/remove liquidity pool support (non-nested pools)
- Weighted pool type
- ComposableStable pool type
- Uses balancerHelpers to query amounts in/out rather than relying on specific pool math and associated data
- Integration tests run against local viem fork
- 73b19fc: Adds Balancer API Provider. A utility module designed to fetch pool data from API.
-
f6d1051: Add Fantom config. Update to have network specific vault addr.
-
67e4120: Replace dataQueries with multicall (using Viem):
- Add
BATCHSIZEconfig per network - Onchain calls correctly mapped to pool/version
- Filter bricked pools from vulnerability
- Fix scalingFactor scaling
- Add
- 7004561: Add missing gyro3 to SupportedRawPoolTypes.
- ec6fda0: Switched to vitest. Updated viem to fix parseUnits issue
- f04362c: The onChainPoolDataEnricher now also queries the pool rate, linearTargets as well as status of inRecoveryMode and isPaused
- 6a49fbc: Gyro pool support
- 99f0982: FX pool support
- 664f0c0: Automate releases with changesets