@meteora-ag/dynamic-bonding-curve-sdk 1.5.11 → 1.5.13-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,720 @@
1
+ # Changelog
2
+
3
+ All notable changes to the Dynamic Bonding Curve SDK will be documented in this file.
4
+
5
+ ## [2.0.0] - 2026-10-10
6
+
7
+ Syncs the SDK with dynamic-bonding-curve 0.2.2 (audited release, program commit 82054df) and defines the 2.0 public API.
8
+
9
+ ### Added
10
+
11
+ - `client.partner.createConfig2`. Pass `transferFeeParameters` for a base-mint transfer fee, or `null` when there is none. `0` basis points still creates a `TransferFeeConfig` and is rejected with `MigratedTransferFeeAuthorityOption.Immutable` or `RevokeZeroFee`.
12
+ - `TransferFeeWithheldAuthority` and `MigratedTransferFeeAuthorityOption`.
13
+ - Swap quotes account for Token-2022 transfer fees and return `includedTransferFeeAmountIn` and `excludedTransferFeeAmountOut`. `getSwapQuoteTransferFees(connection, config, { commitment?, baseMint? })` fetches the quote mint, the base mint when `baseMint` is passed, and the current epoch.
14
+ - `getQuoteFromInputAmount` and `getQuoteFromOutputAmount` quote a `buildCurve` result as its pool would be right after `initialize_pool`. `client.pool.swapQuote2` quotes an existing pool and requires `currentPoint`.
15
+ - `@meteora-ag/dynamic-bonding-curve-sdk/math`: the ports of the program's curve, fee, transfer fee and swap math, plus `ProgramError`, the program's error strings the SDK throws.
16
+ - `QuotePoolConfig`, `QuoteVirtualPool`, `QuotePoolFees`, `QuoteDynamicFee` and `QuoteVolatilityTracker`: the fields the quote math reads. A `PoolConfig` and a `VirtualPool` satisfy them.
17
+ - `client.state.getPoolWithKind` and `client.state.getPoolConfigWithKind` fetch an account once and say whether it is the transfer-hook variant.
18
+ - `getMigrationQuoteAmountFromThreshold`, `getTransferFeeMigrationPositionSplit`, `EpochTransferFee`, `TransferFeeMigrationPositionSplit` and `PoolFeeSummary` at the package root.
19
+ - `rateLimiterApplied` at the package root, for callers who build the swap instruction themselves and need to know whether to pass the instructions sysvar.
20
+ - `MAX_DYNAMIC_FEE_PERCENT` and `PARTNER_AND_CREATOR_SURPLUS_SHARE`.
21
+ - `getSurplusBreakdown` and `client.state.getPoolSurplus`: the surplus split the program pays on `partnerWithdrawSurplus` and `creatorWithdrawSurplus`, and whether each side has withdrawn.
22
+ - `liveCurve` on `./math`: a stored `PoolConfig.curve` up to its first zero point.
23
+
24
+ ### Changed
25
+
26
+ - `createConfigAndPool` and `createConfigAndPoolWithFirstBuy` always use `createConfig2`. Omitting `transferFeeParameters` is the same as `null`.
27
+ - A base transfer fee, or a quote mint with a non-zero transfer fee or a live transfer fee config authority, requires a constant token supply, no locked vesting, `MigrationFeeOption.Customizable` and `MigratedCollectFeeMode.Compounding`. The base fee is Token-2022 only and at most 10%. A partner transfer-fee authority, and a Token-2022 partner token-update authority, require a non-default `feeClaimer`.
28
+ - `MigratedCollectFeeMode.Compounding` allows `compoundingFeeBps` of `0`.
29
+ - Configs created by program 0.2.2 have `PoolConfig.version` 1 and `transferFeeFlag`. Swap quotes read the base transfer fee from that flag unless `baseMint` or `baseTransferFeeBasisPoints` is passed. A transfer fee is zero when its basis points are 0 or its maximum fee is 0.
30
+ - A legacy config (`version` 0) cannot initialize a pool on a quote mint with a non-zero transfer fee or a live transfer fee config authority, and `migrateToDammV2` rejects it when the quote mint's current transfer fee is non-zero. Transfer-hook pool initialization rejects those quote mints at any version.
31
+ - Compounding migration deposits round the scaled base up and the quote down. `getTransferFeeMigrationPositionSplit` uses the numerator `(1_000_000_000 / 100) * percentage` and rounds the liquidity down.
32
+ - Partial-fill quotes throw `Required input amount exceeds the provided amount in` when the reconstructed input is larger than `amountIn`.
33
+ - `withdrawLeftover` makes `leftoverReceiver` a signer when the leftover charges a transfer fee.
34
+ - Curve builders reserve the program migration base, `ceil(migrationQuoteThreshold * (100 - migrationFee.feePercentage) / 100)`. `buildCurveWithLiquidityWeights` and `buildCurveWithCustomSqrtPrices` use constant product for `Compounding` and concentrated liquidity otherwise, and the last segment of `buildCurveWithLiquidityWeights` now ends exactly at the migration sqrt price. `buildCurveWithTwoSegments` and `buildCurveWithMidPrice` keep a fractional `percentageSupplyOnMigration`.
35
+ - Builders throw instead of returning an unusable config: when the migration base, locked vesting and leftover exceed the supply, when no mid price gives positive liquidity, when a fee schedule cannot reach its ending fee, when a period frequency floors to zero, and when a fixed `MigrationFeeOption` is combined with a custom migrated pool base fee mode or market cap scheduler. `getMigratedPoolFeeParams` takes three arguments and requires a market cap scheduler base fee mode exactly when `marketCapFeeSchedulerParams` is set.
36
+ - `getFeeSchedulerParams` checks both fees against the program bounds, also when the fee is constant. Exponential schedulers, including the migrated market-cap scheduler, choose `reductionFactor` with the program's Q64 decay so the last period stays at or above the ending fee. `calculateFeeSchedulerEndingBaseFeeBps` uses the program's integer conversion.
37
+ - `getLockedVestingParams` and `getLiquidityVestingInfoParams` floor their frequency and reject a duration shorter than the number of periods.
38
+ - `validateConfigParameters` takes an options object, checks the curve shape before any curve math runs on it, and only applies the fee-claimer rule when `feeClaimer` is passed.
39
+ - Rate-limiter validation checks the fee at `u64::MAX`. Swap quotes reject amounts outside the program's `u64` and `u128` bounds and `slippageBps` outside `[0, 10_000]`.
40
+ - Errors that mirror a program error use the program's message: `Math operation overflow`, `Type cast error`, `Pool is completed`, `Amount left is not zero`, `Liquidity in bonding curve is insufficient`, `Invalid collect fee mode`, and so on. `ProgramError` in `./math` lists them.
41
+ - `client.state.getPoolConfigsByOwner` filters on the config's fee claimer. It filtered on the leftover receiver since 1.0.
42
+ - `getCurveBreakdown` consumes only the remaining threshold on each segment and stops at exact cumulative completion (PR #120, snuff12).
43
+ - `getBaseTokenForSwap`, `getMigrationThresholdPrice`, `getSwapAmountWithBuffer`, `getCurveBreakdown` and `getQuoteReserveFromNextSqrtPrice` stop at the first zero point of a stored curve, like the program. `client.state.getPoolBaseTokenCurveProgress` threw `Math operation overflow` once the price reached the last curve point, and at any time for a config whose last point is the migration price.
44
+ - `getBaseTokenForSwap` and `getMigrationThresholdPrice` accumulate without a per-segment `u64` bound, like the program.
45
+ - The first-buy builders pass the instructions sysvar only when the config enables the first swap with the minimum fee.
46
+ - `client.state.getDammV1MigrationMetadata` returns `null` instead of throwing when the account does not exist.
47
+ - `client.state.getPoolMetadata(pool)` and `client.state.getPartnerMetadata(feeClaimer)` fetch the metadata PDA and return the account, or `null` when none was created, instead of an array.
48
+ - `getTokenType` and `getTokenDecimals` take an optional commitment.
49
+ - Synced the DAMM v2 IDL and `cp_amm.so` fixture to cp_amm 0.2.5.
50
+ - `docs.md` and `CHANGELOG.md` ship in the package.
51
+
52
+ ### Deprecated
53
+
54
+ - `client.partner.createConfig` in favour of `createConfig2`. `createConfig` and `createConfigWithTransferHook` reject a quote mint with a non-zero transfer fee or a live transfer fee config authority.
55
+ - `getRateLimiterParams`. The program rejects `BaseFeeMode.RateLimiter` for new configs.
56
+
57
+ ### Removed
58
+
59
+ - Helpers nothing referenced: `getAccountData`, `getAccountCreationTimestamp`, `getAccountCreationTimestamps`, `prepareTokenAccountTx`, `cleanUpTokenAccountTx`, `checkRateLimiterApplied`, `validateBalance`, `validateBaseTokenType`, `validateQuoteMintBasic`, `deriveDammV1EventAuthority`, `deriveDammV1PoolAuthority`, `deriveDammV2LockEscrowAddress`, `findAssociatedTokenAddress`, `deriveVaultAddress`, `deriveTokenVaultKey`, `deriveVaultLpMintAddress`, `requirePublicKey`, `convertDecimalToBN` (use `fromDecimalToBN`), `mulShr`, `SafeMath.mod`, `getFeeSchedulerMaxBaseFeeNumerator`, `getRateLimiterMinBaseFeeNumerator`, `getDeltaAmountBaseUnsignedUnchecked` and `getDeltaAmountQuoteUnsignedUnchecked` (the `256` variants are the unbounded ones), `BaseFeeHandler.validate`, `getProgram()` on the services (use `program`), and `DynamicBondingCurveClient.create` (the constructor defaults `commitment` to `confirmed`).
60
+ - Types nothing used: `SwapQuoteConfig`, `DynamicCurveProgram`, `CreateConfigAccounts`, `InitializeSplPoolAccounts`, `InitializeToken2022PoolAccounts`, `InitializePoolParameters`, `LockEscrow`, `FeeResult`, `ClaimCreatorTradingFeeWithQuoteMintNotSolParams` and `ClaimCreatorTradingFeeWithQuoteMintSolParams`.
61
+ - The `jito-ts` dev dependency.
62
+
63
+ ### Breaking Changes
64
+
65
+ - Import from `@meteora-ag/dynamic-bonding-curve-sdk` or `@meteora-ag/dynamic-bonding-curve-sdk/math`. The package root is an explicit export list and the `exports` map exposes only those two entries. The curve, fee, transfer fee and swap math moved to `./math` (57 functions, among them `calculateBaseToQuoteFromAmountIn`, `getFeeMode`, `getIncludedFeeAmount`, `getFeeNumeratorFromIncludedAmount`, `getSwapResult`, the `getDeltaAmount*` and `getNextSqrtPrice*` functions, `SafeMath`, `mulDiv` and `pow`). `swapQuoteExactIn`, `swapQuoteExactOut`, `swapQuotePartialFill` and `DynamicBondingCurveProgram` are not exported; `swapQuote` stays on the root. Internal helpers such as `getOrCreateATAInstruction`, `unwrapSOLInstruction`, `wrapSOLInstruction`, `deriveMintMetadata`, `derivePositionAddress`, `createDammV1Program`, `getFirstCurve`, `getTwoCurve`, `isDefaultLockedVesting` and the `validate*` building blocks are no longer exported.
66
+ - Construct the services through `DynamicBondingCurveClient`. `new PoolService(connection, commitment)` and the same constructor on the other services are no longer supported.
67
+ - `CreateConfigParams`, `CreateConfig2Params` and `CreateConfigWithTransferHookParams` declare `config`, `feeClaimer`, `leftoverReceiver`, `quoteMint` and `payer` as required `PublicKey`s.
68
+ - `getSwapQuoteTransferFees` takes an options object instead of a commitment string. Swap quotes for a Token-2022 quote mint require `quoteMint` and `currentEpoch`.
69
+ - `getFeeOnAmount` and `splitFees` no longer take `poolFees`. `calculateBaseToQuoteFromAmountOut` and `calculateQuoteToBaseFromAmountOut` return `{ amountIn, nextSqrtPrice }`.
70
+ - `getOrCreateATAInstruction(connection, mint, owner, payer, tokenProgram, commitment?)`: the `allowOwnerOffCurve` argument is gone and always on. `unwrapSOLInstruction` always returns an instruction.
71
+ - `createDbcProgram` returns the `Program` instead of `{ program }`. `deriveEscrow` is `deriveLockerEscrowAddress`.
72
+ - `getMigratedPoolFeeParams` throws for `MigrationFeeOption.Customizable` when `migratedPoolFee.poolFeeBps` is not set.
73
+ - `swap`, `swap2`, `claimPartnerTradingFee`, `claimPartnerTradingFeeToReceiver`, `claimCreatorTradingFee` and `claimCreatorTradingFeeToReceiver` reject transfer-hook pools. Use `swap2WithTransferHook`, `claimPartnerTradingFee2` and `claimCreatorTradingFee2`. Standard pool creation rejects a transfer-hook config, and transfer-hook pool creation rejects a standard config.
74
+ - `transferPoolCreator` rejects a `newCreator` equal to `creator`.
75
+ - `tempWSolAcc` is gone from `claimPartnerTradingFee` and `claimCreatorTradingFee`. With a native SOL quote the fee is wrapped into the fee claimer's or creator's token account and unwrapped to `receiver`, so only the claimer signs.
76
+ - `validateSwapAmount` returns nothing and throws `Amount is zero`.
77
+
78
+ ## [1.5.13] - 2026-09-24
79
+
80
+ ### Changed
81
+
82
+ - `tokenQuoteDecimal` now accepts any quote mint decimals, for example 5 for BONK. The program only restricts the base token decimals to 6 to 9, and `tokenBaseDecimal` keeps that restriction. This applies to `buildCurve*`, `createSqrtPrices`, `getPriceFromSqrtPrice`, and `getRateLimiterParams`.
83
+
84
+ ## [1.5.12] - 2026-09-07
85
+
86
+ ### Added
87
+
88
+ - Added optional `tokenBadge` remaining account support on config and pool creation. Required when the quote mint is not permissionless-supported.
89
+ - Added `deriveTokenBadgeAddress` and `getTokenBadgeRemainingAccounts` helpers.
90
+ - Added `TokenBadge` account type and `client.state.getTokenBadge`.
91
+
92
+ ### Changed
93
+
94
+ - Updated the DBC IDL to program version 0.2.1.
95
+ - `getOrCreateATAInstruction` and `prepareTokenAccountTx` now accept an optional `commitment` (defaults to `confirmed`) and pass it through to the token account fetch.
96
+ - Synced the DAMM v2 IDL and test-validator `cp_amm.so` fixture to cp_amm 0.2.4. DAMM v2 configs now include a `permission` bitmask. Migration tests create a private DAMM v2 config with `CreatePoolWithoutMintValidation` so Token-2022 quote mints that need a DBC token badge can still migrate. Token-2022 wrapped SOL is still rejected.
97
+
98
+ ### Deprecated
99
+
100
+ - Deprecated `BaseFeeMode.RateLimiter` for new configs and new pools. Existing rate-limiter pools can still be quoted and swapped.
101
+ - Deprecated `MigrationOption.MET_DAMM` (DAMM v1) for new configs and new pools. Existing DAMM v1 pools can still migrate.
102
+
103
+ ### Breaking Changes
104
+
105
+ - `createConfig`, `createPool`, and `buildCurve*` now reject `BaseFeeMode.RateLimiter` and `MigrationOption.MET_DAMM`.
106
+ - `getMigratedPoolFeeParams` now rejects `MigrationOption.MET_DAMM`.
107
+ - `getBaseFeeParams` no longer takes `tokenQuoteDecimal` or `activationType`. Those arguments were only used to encode RateLimiter params, which this helper now rejects.
108
+
109
+ ## [1.5.11] - 2026-07-30
110
+
111
+ ### Changed
112
+
113
+ - Updated `StateService` to be a standalone read-only service that no longer extends `DynamicBondingCurveProgram`, removing the circular inheritance between the two.
114
+ - Updated `PoolService`, `PartnerService`, `CreatorService`, and `MigrationService` to create their own internal `StateService`, since `StateService` holds no shared state or caching.
115
+
116
+ ### Breaking Changes
117
+
118
+ - **Service constructors no longer accept a `StateService` argument.** `DynamicBondingCurveProgram`, `PoolService`, `PartnerService`, `CreatorService`, and `MigrationService` are now constructed with `(connection, commitment)` only. Callers passing a third `StateService` argument must drop it; runtime behavior is unchanged because `StateService` is stateless and each service now creates its own.
119
+ - **`StateService` no longer inherits `DynamicBondingCurveProgram` members.** It keeps `program` and `getProgram()`, but code relying on inherited members such as `connection`, `poolAuthority`, or `instanceof DynamicBondingCurveProgram` checks must be updated.
120
+
121
+ ## [1.5.10] - 2026-06-08
122
+
123
+ ### Added
124
+
125
+ - Added `client.pool.getQuoteFromInputAmount` and `client.pool.getQuoteFromOutputAmount` for quoting launch-state swaps before a pool exists.
126
+ - Added `SwapQuoteConfig`, `SimulatedQuoteFromInputAmountParams`, and `SimulatedQuoteFromOutputAmountParams` types for pre-pool swap quote simulations.
127
+
128
+ ### Changed
129
+
130
+ - Updated pool quote simulation to accept either an existing pool config or a `buildCurve` output, deriving `migrationSqrtPrice` when it is not present.
131
+
132
+ ## [1.5.9] - 2026-06-03
133
+
134
+ ### Fixed
135
+
136
+ - Fixed `StateService` endpoints to correctly fetch both regular and transfer-hook pool and config accounts.
137
+
138
+ ## [1.5.8] - 2026-05-26
139
+
140
+ ### Added
141
+
142
+ - Added Token-2022 transfer-hook support for DBC pool configs and pools:
143
+ - `client.partner.createConfigWithTransferHook`
144
+ - `client.partner.createConfigAndPoolWithTransferHook`
145
+ - `client.partner.createConfigAndPoolWithFirstBuyWithTransferHook`
146
+ - `client.creator.createPoolWithTransferHook`
147
+ - `client.creator.createPoolWithFirstBuyWithTransferHook`
148
+ - `client.creator.createPoolWithPartnerAndCreatorFirstBuyWithTransferHook`
149
+ - Added transfer-hook swap and fee claim endpoints:
150
+ - `client.pool.swap2WithTransferHook`
151
+ - `client.partner.claimPartnerTradingFee2`
152
+ - `client.creator.claimCreatorTradingFee2`
153
+ - Added transfer-hook account helper types:
154
+ - `TransferHookAccountsInfo`
155
+ - `TransferHookRemainingAccounts`
156
+ - `FirstBuyWithTransferHookParams`
157
+ - `PartnerFirstBuyWithTransferHookParams`
158
+ - `CreatorFirstBuyWithTransferHookParams`
159
+ - `AccountsType`
160
+ - Added account types for transfer-hook program accounts:
161
+ - `ConfigWithTransferHook`
162
+ - `TransferHookPool`
163
+ - Added `CreateVirtualPoolMetadataParameters` as an exported IDL-derived type.
164
+ - Added `client.partner.createConfigAndPool` and `client.partner.createConfigAndPoolWithFirstBuy` so partner-owned config-and-pool flows live under the partner service.
165
+ - Added `client.creator.createPool`, `client.creator.createPoolWithFirstBuy`, and `client.creator.createPoolWithPartnerAndCreatorFirstBuy` so creator-owned pool initialization flows live under the creator service.
166
+ - Added `client.partner.claimPartnerTradingFeeToReceiver` and `client.creator.claimCreatorTradingFeeToReceiver` for the non-transfer-hook fee claim flows that do not require `tempWSolAcc`.
167
+ - Added test coverage for transfer-hook config creation, pool creation, swaps, first buys, and fee claims using the new `transfer_hook_counter` test program.
168
+
169
+ ### Changed
170
+
171
+ - Updated the DBC IDL and generated types to include transfer-hook instructions and account layouts.
172
+ - Updated DAMM V1, DAMM V2, and Dynamic Vault IDLs and generated types.
173
+ - Updated `DynamicBondingCurveClient` so all services share one `StateService` instance.
174
+ - Updated `StateService.getPoolConfig` to fetch both regular `poolConfig` accounts and transfer-hook config accounts.
175
+ - Updated `StateService.getPool` to fetch both regular `virtualPool` accounts and transfer-hook pool accounts.
176
+ - Updated swap quote math and state helpers to read virtual pool fields from the new nested `poolState` layout.
177
+ - Updated `buildCurve*` helpers to accept `token.tokenAuthorityOption` and map it to the on-chain `tokenUpdateAuthority` field.
178
+ - Renamed `createVaultProgram` to `createDynamicVaultProgram` to match the Dynamic Vault IDL naming.
179
+ - Renamed internal/public DAMM V1 and Dynamic Vault generated IDL program types from `DammV1` and `DynamicVault` to `Amm` and `Vault`.
180
+ - Updated validator and CI setup to use the `mercurial_vault.so` fixture and include the `transfer_hook_counter.so` fixture.
181
+ - Reworked `docs.md` with the current SDK service layout and transfer-hook function documentation.
182
+ - Updated `getMigratedPoolMarketCapFeeSchedulerParams` and `MigratedPoolMarketCapFeeSchedulerParams` to use `priceMultiple` directly.
183
+
184
+ ### Breaking Changes
185
+
186
+ - **Pool creation methods moved service namespaces.** Existing callers must update:
187
+ - `client.pool.createPool(...)` -> `client.creator.createPool(...)`
188
+ - `client.pool.createPoolWithFirstBuy(...)` -> `client.creator.createPoolWithFirstBuy(...)`
189
+ - `client.pool.createPoolWithPartnerAndCreatorFirstBuy(...)` -> `client.creator.createPoolWithPartnerAndCreatorFirstBuy(...)`
190
+ - `client.pool.createConfigAndPool(...)` -> `client.partner.createConfigAndPool(...)`
191
+ - `client.pool.createConfigAndPoolWithFirstBuy(...)` -> `client.partner.createConfigAndPoolWithFirstBuy(...)`
192
+ - **Pool address params were renamed from `virtualPool` to `pool` across SDK request types.** Update call sites for:
193
+ - `CreateLockerParams`
194
+ - `WithdrawLeftoverParams`
195
+ - `MigrateToDammV1Params`
196
+ - `MigrateToDammV2Params`
197
+ - `DammLpTokenParams`
198
+ - `PartnerWithdrawSurplusParams`
199
+ - `CreatorWithdrawSurplusParams`
200
+ - `TransferPoolCreatorParams`
201
+ - `WithdrawMigrationFeeParams`
202
+ - `ClaimPartnerPoolCreationFeeParams`
203
+ - **Virtual pool account data now uses the nested `poolState` layout.** Code that directly reads `VirtualPool` fields must migrate from flat fields like `pool.config`, `pool.baseMint`, `pool.quoteReserve`, `pool.sqrtPrice`, and `pool.metrics` to `pool.poolState.config`, `pool.poolState.baseMint`, `pool.poolState.quoteReserve`, `pool.poolState.sqrtPrice`, and `pool.poolState.metrics`.
204
+ - **`TokenType.SPL` was renamed to `TokenType.SPLToken`.** The enum value remains `0`, but TypeScript callers must update the enum member name.
205
+ - **`TokenUpdateAuthorityOption` was renamed to `TokenAuthorityOption`.** Update imports and references.
206
+ - **`TokenConfig.tokenUpdateAuthority` was renamed to `tokenAuthorityOption` for all `buildCurve*` helpers.** The helper still maps this value to the on-chain `tokenUpdateAuthority` config field.
207
+ - **`PreCreatePoolParams` was renamed to `CreatePoolBaseParams`.** Update imports and any explicit type annotations.
208
+ - **The old no-`tempWSolAcc` trading fee claim types were renamed.**
209
+ - `ClaimTradingFeeParams` -> `ClaimPartnerTradingFeeParams`
210
+ - `ClaimTradingFee2Params` -> `ClaimPartnerTradingFeeToReceiverParams`
211
+ - `ClaimCreatorTradingFee2Params` -> `ClaimCreatorTradingFeeToReceiverParams`
212
+ - **The old `claimPartnerTradingFee2` and `claimCreatorTradingFee2` non-transfer-hook behavior moved to `claimPartnerTradingFeeToReceiver` and `claimCreatorTradingFeeToReceiver`.** In `1.5.8`, `claimPartnerTradingFee2` and `claimCreatorTradingFee2` build transfer-hook fee claim instructions and should be used only for transfer-hook pools.
213
+ - **`createVaultProgram` was renamed to `createDynamicVaultProgram`.** Update helper imports.
214
+ - **`StateService.getDammV1LockEscrow` was removed.** Consumers that need lock escrow data must fetch it through the relevant generated program client.
215
+ - **`LockEscrow` now comes from IDL types instead of IDL accounts.** Update assumptions if you were treating it as an Anchor account object.
216
+ - **Raw IDL instruction indexes changed.** Code using `DynamicBondingCurve['instructions'][index]` directly must be updated because transfer-hook instructions shifted the generated instruction order.
217
+ - **Market cap fee scheduler config now uses `priceMultiple`.** Replace `marketCapFeeSchedulerParams.startingMarketCap` and `marketCapFeeSchedulerParams.endingMarketCap` with `marketCapFeeSchedulerParams.priceMultiple`.
218
+
219
+ ### Fixed
220
+
221
+ - Fixed state and quote helpers to work with the new nested virtual pool account layout.
222
+ - Fixed transfer-hook pool state reads so `getPoolConfig`, `getPool`, fee metrics, fee breakdowns, and curve progress helpers work with both regular and transfer-hook pools.
223
+ - Fixed SOL quote handling in transfer-hook fee claim flows by preserving the wrapped SOL post-instructions where needed.
224
+
225
+ ## [1.5.7] - 2026-03-24
226
+
227
+ ### Changed
228
+
229
+ - Updated `getMigratedPoolMarketCapFeeSchedulerParams` function to use `startingMarketCap` and `endingMarketCap` instead of `sqrtPriceStepBps`
230
+
231
+ ## [1.5.6] - 2026-03-12
232
+
233
+ ### Added
234
+
235
+ - Added `MigratedCollectFeeMode` enum with `Compounding` (2) support for migrated DAMM v2 pool configuration.
236
+ - Added `compoundingFeeBps` support in `MigratedPoolFeeConfig` and propagated it through all `buildCurve*` helpers.
237
+
238
+ ### Changed
239
+
240
+ - Updated migrated pool fee validation to require `compoundingFeeBps > 0` only when `collectFeeMode = MigratedCollectFeeMode.Compounding`, and `0` otherwise.
241
+ - Updated migration flow for DAMM v2 to remove position vesting accounts from `migrateDammV2` remaining accounts.
242
+ - Removed `deriveDammV2PositionVestingAccount` PDA helper.
243
+
244
+ ### Fixed
245
+
246
+ - Fixed `getDynamicFeeParams` function to correctly calculate the dynamic fee parameters based on the max price change bps
247
+
248
+ ## [1.5.5] - 2026-02-25
249
+
250
+ ### Changed
251
+
252
+ - Fixed `getPoolBaseTokenCurveProgress` function to correctly calculate the progress of the base token curve using `getBaseTokenForSwap` function
253
+ - `createConfigAndPoolWithFirstBuy` functions now return `createConfigTx` and `createPoolWithFirstBuyTx` as separate `Transaction` instead of an object containing 3 separate `Transaction`s
254
+ - `createPoolWithFirstBuy` functions now return a `Transaction` instead of an object containing the new config transaction and pool transaction
255
+ - `createPoolWithPartnerAndCreatorFirstBuy` functions now return a `Transaction` instead of an object containing the new config transaction and pool transaction
256
+
257
+ ## [1.5.4] - 2026-02-24
258
+
259
+ ### Added
260
+
261
+ - Added `getPoolBaseTokenCurveProgress` function to get the progress of the base token curve
262
+
263
+ ### Changed
264
+
265
+ - Renamed `getPoolCurveProgress` function to `getPoolQuoteTokenCurveProgress`
266
+
267
+ ## [1.5.3] - 2026-02-15
268
+
269
+ ### Added
270
+
271
+ - Added `TokenConfig`, `FeeConfig`, `MigrationConfig`, `MigrationFee`, `MigratedPoolFeeConfig`, `MigratedPoolMarketCapFeeSchedulerParams`, `LiquidityDistributionConfig` types for structured parameter grouping
272
+ - Added `MigratedPoolFeeResult` type for the return value of `getMigratedPoolFeeParams`
273
+ - Added `DEFAULT_MIGRATED_POOL_FEE_PARAMS` constant for default migrated pool fee values
274
+ - Added `validateMarketCapFeeSchedulerRequiresPoolFeeBps` validation to ensure `poolFeeBps > 0` when `marketCapFeeSchedulerParams` is configured
275
+ - Added comprehensive unit tests for `getMigratedPoolFeeParams` and migration fee option behavior in `buildCurve.test.ts`
276
+ - Added test coverage for all migration fee option cases: fixed options (0-5), customizable without market cap scheduler, customizable with market cap scheduler, and DAMM V1 defaults
277
+
278
+ ### Changed
279
+
280
+ - All `buildCurve*` functions now destructure the unified `MigratedPoolFeeResult` from `getMigratedPoolFeeParams` instead of separately calling `getMigratedPoolMarketCapFeeSchedulerParams`
281
+ - Updated `validateMigratedPoolFee` to accept `migratedPoolMarketCapFeeSchedulerParams` and allow non-empty `migratedPoolFee` when market cap fee scheduler is configured with a fixed fee option
282
+
283
+ ### Breaking Changes
284
+
285
+ - **`BuildCurveBaseParams` restructured** from flat parameters to nested groups: `token: TokenConfig`, `fee: FeeConfig`, `migration: MigrationConfig`, `liquidityDistribution: LiquidityDistributionConfig`, `lockedVesting: LockedVestingParams`, `activationType: ActivationType`. This affects all `buildCurve*` functions: `buildCurve`, `buildCurveWithMarketCap`, `buildCurveWithTwoSegments`, `buildCurveWithMidPrice`, `buildCurveWithLiquidityWeights`, `buildCurveWithCustomSqrtPrices`.
286
+
287
+ ## [1.5.2] - 2026-01-27
288
+
289
+ ### Added
290
+
291
+ - Added `getMigratedPoolMarketCapFeeSchedulerParams` helper function to craft `MigratedPoolMarketCapFeeSchedulerParams` object
292
+ - Added `decodePodAlignedFeeMarketCapScheduler` helper function to decode `PodAlignedFeeMarketCapScheduler` object from config account data
293
+ - Added `validateMigratedPoolBaseFeeMode` and `validateDynamicFeeParams` validation functions for config creation
294
+ - Added `getMinBaseFeeNumerator` into `BaseFeeHandler` class
295
+ - Added if `poolConfigState.enableFirstSwapWithMinFee` is true, then the `swap` and `swap2` functions will contain `SYSVAR_INSTRUCTIONS_PUBKEY` in remaining accounts
296
+
297
+ ### Changed
298
+
299
+ - Bumped DAMM v2 IDL to v0.1.7
300
+
301
+ ### Breaking Changes
302
+
303
+ - Added `migratedPoolBaseFeeMode`, `migratedPoolMarketCapFeeSchedulerParams` and `enableFirstSwapWithMinFee` parameters to `buildCurve`, `buildCurveWithMarketCap`, `buildCurveWithTwoSegments`, `buildCurveWithLiquidityWeights`, `buildCurveWithMidPrice`, `buildCurveWithCustomSqrtPrices` functions
304
+ - Added `eligibleForFirstSwapWithMinFee` parameter to `swapQuote`, `swapQuote2` functions when quoting for first swap with minimum fee
305
+
306
+ ## [1.5.1] - 2026-01-17
307
+
308
+ ### Fixed
309
+
310
+ - Fixed `calculateBaseToQuoteFromAmountIn` function to cap the sqrt price when the input amount is greater than the available liquidity
311
+
312
+ ## [1.5.0] - 2025-01-09
313
+
314
+ ### Added
315
+
316
+ - Added `firstPositionVestingAddress` and `secondPositionVestingAddress` into `remainingAccounts` in `migrateDammV2` function
317
+ - Added `claimPartnerPoolCreationFee` function
318
+ - Added validation checks for createConfig
319
+ - Added optional `partnerLiquidityVestingInfoParams` and `creatorLiquidityVestingInfoParams` parameters to all `buildCurve` functions
320
+ - Added `getLiquidityVestingInfoParams` helper function to craft `LiquidityVestingInfoParameters` object
321
+ - Added tests for `createConfig` validation, `createPool`, `swap` and `swap2`
322
+
323
+ ### Changed
324
+
325
+ - `partnerLpPercentage` and `creatorLpPercentage` has been renamed to `partnerLiquidityPercentage` and `creatorLiquidityPercentage` respectively
326
+ - `partnerLockedLpPercentage` and `creatorLockedLpPercentage` has been renamed to `partnerPermanentLockedLiquidityPercentage` and `creatorPermanentLockedLiquidityPercentage` respectively
327
+ - Renamed `BASIS_POINT_MAX` to `MAX_BASIS_POINT`
328
+
329
+ ## [1.4.10] - 2025-01-03
330
+
331
+ ### Added
332
+
333
+ - Added `buildCurveWithCustomSqrtPrices` function to build a curve with custom sqrt price points and optional liquidity weights
334
+
335
+ ## [1.4.9] - 2025-11-29
336
+
337
+ ### Added
338
+
339
+ - Added `buildCurveWithMidPrice` function to build a custom constant product curve with a mid price option.
340
+ - Added `getCurveBreakdown` helper function
341
+
342
+ ## [1.4.8] - 2025-11-23
343
+
344
+ ### Changed
345
+
346
+ - Moved `getCurrentPoint` in `if` statement to reduce unnecessary RPC calls
347
+
348
+ ## [1.4.7] - 2025-11-23
349
+
350
+ ### Added
351
+
352
+ - Added an `if` statement to check if the `baseFeeMode` is `RateLimiter` in `swap` and `swap2` endpoints
353
+
354
+ ## [1.4.6] - 2025-10-28
355
+
356
+ ### Added
357
+
358
+ - Added validation checks for migration fee percentages
359
+
360
+ ### Deprecated
361
+
362
+ - Endpoint `createDammV2MigrationMetadata` is deprecated as it is no longer needed when migrating a DAMM v2 pool.
363
+
364
+ ### Changed
365
+
366
+ - Minimum base fee increased from 1bp (0.01%) to 25 bps (0.25%). Affected endpoints: `createConfig`, `createPool`, `createConfigAndPool`, `createConfigAndPoolWithFirstBuy`, `createPoolWithFirstBuy`, `createPoolWithPartnerAndCreatorFirstBuy`
367
+ - Migration fee increased from 50% to 99%.
368
+
369
+ ## [1.4.5] - 2025-10-11
370
+
371
+ ### Changed
372
+
373
+ - Fixed `validateFeeScheduler` function to correctly validate the fee scheduler parameters
374
+ - Fixed `getMinBaseFeeNumerator` function to correctly calculate the min base fee numerator
375
+
376
+ ## [1.4.4] - 2025-09-24
377
+
378
+ ### Changed
379
+
380
+ - Bumped DAMM v2 IDL
381
+
382
+ ## [1.4.3] - 2025-09-19
383
+
384
+ ### Changed
385
+
386
+ - Fixed `getPoolFeeBreakdown` function to correctly calculate the fee breakdown for a token pool
387
+
388
+ ## [1.4.2] - 2025-09-19
389
+
390
+ ### Added
391
+
392
+ - `getPoolFeeBreakdown` function to get the fee breakdown for a token pool
393
+
394
+ ## [1.4.1] - 2025-09-15
395
+
396
+ ### Changed
397
+
398
+ - Removed `feePayer` parameter from `creatorWithdrawMigrationFee` and `partnerWithdrawMigrationFee` functions ++ Fixed functions
399
+
400
+ ## [1.4.0] - 2025-09-09
401
+
402
+ ### Changed
403
+
404
+ - Fixed `calculateFeeSchedulerEndingBaseFeeBps` function to correctly calculate the ending base fee when `numberOfPeriod` or `periodFrequency` is 0
405
+
406
+ ## [1.3.9] - 2025-09-05
407
+
408
+ ### Changed
409
+
410
+ - Remove console.log in `getDeltaAmountQuoteUnsigned` and `getDeltaAmountQuoteUnsigned256` functions
411
+
412
+ ## [1.3.8] - 2025-09-03
413
+
414
+ ### Changed
415
+
416
+ - Remove `U64_MAX` check in `getDeltaAmountQuoteUnsigned` and `getDeltaAmountQuoteUnsigned256` functions
417
+
418
+ ## [1.3.7] - 2025-08-14
419
+
420
+ ### Added
421
+
422
+ - `swap2` function with `swapMode` parameter
423
+ - `swapQuote2` function with `swapMode` parameter
424
+ - `prepareSwapAmountParam` helper function
425
+ - `getCurrentPoint` helper function
426
+
427
+ ### Changed
428
+
429
+ - `swapQuote` function now returns `SwapResult` instead of `QuoteResult`
430
+ - `getAccountData` function now requires a `commitment` parameter
431
+ - Deprecated `swapQuoteExactIn` function
432
+ - Deprecated `swapQuoteExactOut` function
433
+
434
+ ## [1.3.6] - 2025-08-08
435
+
436
+ ### Changed
437
+
438
+ - `withdrawLeftover` function fully permissionless and only `payer` needs to sign.
439
+
440
+ ## [1.3.5] - 2025-07-31
441
+
442
+ ### Added
443
+
444
+ - Added `MigrationFeeOption === 6` to `MigrationFeeOption` enum for customizable graduated pool fee. Only available for DAMM V2.
445
+ - Added new address in `DAMM_V2_MIGRATION_FEE_ADDRESS` fee address array for `MigrationFeeOption === 6`
446
+ - Validation checks for `migratedPoolFee` parameter
447
+
448
+ ### Changed
449
+
450
+ - `buildCurve`, `buildCurveWithMarketCap`, `buildCurveWithTwoSegments`, `buildCurveWithLiquidityWeights` functions now have an optional `migrationFeeOption` parameter
451
+
452
+ ## [1.3.4] - 2025-07-28
453
+
454
+ ### Added
455
+
456
+ - Added `getDammV1MigrationMetadata` to get DAMM v1 migration states
457
+
458
+ ## [1.3.3] - 2025-07-22
459
+
460
+ ### Changed
461
+
462
+ - Added compulsory `receiver` parameter for `partner` and `creator` first buy in `createPoolWithPartnerAndCreatorFirstBuy` function
463
+ - Added optional `receiver` parameter to `createPoolWithFirstBuy` and `createConfigAndPoolWithFirstBuy` functions
464
+
465
+ ## [1.3.2] - 2025-07-22
466
+
467
+ ### Changed
468
+
469
+ - Fixed precision issue in `getPoolCurveProgress` function
470
+
471
+ ## [1.3.1] - 2025-07-02
472
+
473
+ ### Added
474
+
475
+ - `swapQuoteExactOut` function
476
+
477
+ ## [1.3.0] - 2025-07-01
478
+
479
+ ### Added
480
+
481
+ - Added optional `payer` parameter to `swap` function
482
+ - Added `createPoolWithPartnerAndCreatorFirstBuy` function
483
+
484
+ ### Changed
485
+
486
+ - `createConfigAndPoolWithFirstBuy` and `createPoolWithFirstBuy` function now accepts a `buyer` parameter
487
+ - `createPoolWithFirstBuy` function now returns a `Transaction[]` containing `createPoolTx` and a `swapBuyTx` instead of a single `Transaction`
488
+
489
+ ## [1.2.9] - 2025-06-26
490
+
491
+ ### Added
492
+
493
+ - `TokenUpdateAuthorityOption` enum to have more options for token update authority:
494
+ - CreatorUpdateAuthority (0)
495
+ - Immutable (1)
496
+ - PartnerUpdateAuthority (2)
497
+ - CreatorUpdateAndMintAuthority (3)
498
+ - PartnerUpdateAndMintAuthority (4)
499
+
500
+ ### Changed
501
+
502
+ - Changed `CollectFeeMode` enums from `OnlyQuote` and `Both` to `QuoteToken` and `OutputToken`
503
+
504
+ ## [1.2.8] - 2025-06-24
505
+
506
+ ### Added
507
+
508
+ - `getQuoteReserveFromNextSqrtPrice` helper function
509
+
510
+ ## [1.2.7] - 2025-06-19
511
+
512
+ ### Changed
513
+
514
+ - Fixed `buildCurve` function to correctly calculate with precision for the `migrationBaseSupply`
515
+
516
+ ## [1.2.6] - 2025-06-13
517
+
518
+ ### Changed
519
+
520
+ - Fixed `getPercentageSupplyOnMigration` function to correctly calculate the percentage of supply on migration
521
+
522
+ ## [1.2.5] - 2025-06-12
523
+
524
+ ### Changed
525
+
526
+ - Removed `getDammV1MigrationMetadata` and `getDammV2MigrationMetadata` functions
527
+
528
+ ## [1.2.4] - 2025-06-12
529
+
530
+ ### Added
531
+
532
+ - Support for Rate Limiter mode in base fee configuration
533
+ - Allows partners to configure an alternative base fee mode that increases fee slope based on quote amount
534
+ - Only available when collect fee mode is in quote token only and for buy operations
535
+ - Prevents multiple swap instructions (or CPI) to the same pool in a single transaction
536
+
537
+ ### Breaking Changes
538
+
539
+ - Maximum `cliff_fee_numerator` increased from 50% (5000 bps / 500_000_000) to 99% (9900 bps / 990_000_000)
540
+ - `swap` instruction now requires `instruction_sysvar_account` in remaining_accounts when `is_rate_limiter_applied` is true
541
+ - `swap_quote` function updated to handle rate limiter math calculations and 99% max fee
542
+ - Base fee parameter structure updated:
543
+ - Renamed `fee_scheduler_mode` to `base_fee_mode`
544
+ - Updated parameter structure:
545
+ - New base fee modes:
546
+ - 0 = Fee Scheduler - Linear
547
+ - 1 = Fee Scheduler - Exponential
548
+ - 2 = Rate Limiter
549
+ - `buildCurve`, `buildCurveWithMarketCap`, `buildCurveWithTwoSegments`, `buildCurveWithLiquidityWeights` functions now require `baseFeeParams` parameter that can be either configured with `feeSchedulerParam` or `rateLimiterParam`
550
+
551
+ ### Changed
552
+
553
+ - Updated base fee parameter structure to support both fee scheduler and rate limiter modes
554
+ - Enhanced fee calculation logic to accommodate rate limiter functionality
555
+
556
+ ## [1.2.3] - 2025-06-07
557
+
558
+ ### Added
559
+
560
+ - `swapQuoteExactIn` function
561
+
562
+ ## [1.2.2] - 2025-06-02
563
+
564
+ ### Added
565
+
566
+ - `claimCreatorTradingFee2` function (without `tempWSolAcc` parameter)
567
+ - `claimPartnerTradingFee2` function (without `tempWSolAcc` parameter)
568
+
569
+ ## [1.2.1] - 2025-06-02
570
+
571
+ ### Changed
572
+
573
+ - Fixed `buildCurveWithMarketCap` function to correctly calculate the `migrationQuoteThreshold`
574
+ - Fixed `validateConfigParameters` function to calculate `migrationBaseAmount` correctly
575
+
576
+ ## [1.2.0] - 2025-05-31
577
+
578
+ ### Changed
579
+
580
+ - `withdrawMigrationFee` function for partner and creator is now called `partnerWithdrawMigrationFee` and `creatorWithdrawMigrationFee`
581
+ - `createConfigAndPoolWithFirstBuy` function now returns an object containing the new config transaction, new pool transaction, and first buy transaction
582
+
583
+ ## [1.1.9] - 2025-05-30
584
+
585
+ ### Added
586
+
587
+ - `transferPoolCreator` function for creator
588
+ - `withdrawMigrationFee` function for creator
589
+ - `withdrawMigrationFee` function for partner
590
+
591
+ ### Changed
592
+
593
+ - Removed `buildCurveWithCreatorFirstBuy` function
594
+
595
+ ### Breaking Changes
596
+
597
+ - `createConfig`'s `ConfigParameters` include `migrationFee` and `tokenUpdateAuthority` configurations.
598
+ - All `buildCurve` functions now require `migrationFee` and `tokenUpdateAuthority` configurations.
599
+
600
+ ## [1.1.8] - 2025-05-28
601
+
602
+ ### Added
603
+
604
+ - `createConfigAndPoolWithFirstBuy` function
605
+ - `getTokenType` helper function
606
+ - `prepareTokenAccountTx` helper function
607
+ - `cleanUpTokenAccountTx` helper function
608
+
609
+ ## [1.1.7] - 2025-05-27
610
+
611
+ ### Changed
612
+
613
+ - Fixed `buildCurveWithTwoSegments` function to correctly calculate the midSqrtPrice
614
+ - Fixed precision error of `buildCurveWithMarketCap` function
615
+ - Changed `periodFrequency` calculation in `getLockedVestingParams` function
616
+
617
+ ## [1.1.6] - 2025-05-23
618
+
619
+ ### Added
620
+
621
+ - `getPoolByBaseMint` function
622
+ - `buildCurveWithCreatorFirstBuy` function
623
+ - `buildCurveWithTwoSegments` function
624
+ - `getLockedVestingParams` function
625
+ - `getBaseFeeParams` function
626
+ - `DAMM_V1_MIGRATION_FEE_ADDRESS` and `DAMM_V2_MIGRATION_FEE_ADDRESS` fee address array
627
+ - `getPriceFromSqrtPrice` function
628
+
629
+ ### Changed
630
+
631
+ - Optimised `getPoolsQuoteFeesByConfig` and `getPoolsBaseFeesByConfig` functions
632
+ - Fixed `getDammV1MigrationMetadata` and `getDammV2MigrationMetadata` functions to derive the metadata address from the pool address
633
+ - Removed `buildCurveAndCreateConfig`, `buildCurveAndCreateConfigByMarketCap` and `buildCurveGraphAndCreateConfig` functions
634
+ - Added `tempWSolAcc` parameter to `claimPartnerTradingFee` and `claimCreatorTradingFee` functions
635
+ - Removed `getTokenDecimal` state function
636
+
637
+ ### Breaking Changes
638
+
639
+ - Curve building functions are now split into two steps:
640
+ 1. Use helper functions to build curve config:
641
+ - `buildCurve`
642
+ - `buildCurveWithMarketCap`
643
+ - `buildCurveWithTwoSegments`
644
+ - `buildCurveWithLiquidityWeights`
645
+ - `buildCurveWithCreatorFirstBuy`
646
+ 2. Call `createConfig` with the built config
647
+ - Added required `tempWSolAcc` parameter to fee claiming functions when receiver !== creator || feeClaimer
648
+
649
+ ## [1.1.5] - 2025-05-23
650
+
651
+ ### Added
652
+
653
+ - `createConfigAndPool` function
654
+
655
+ ### Changed
656
+
657
+ - `docs.md` updated with the correct createPool format
658
+ - `CHANGELOG.md` switched to DES format
659
+
660
+ ## [1.1.4] - 2025-05-09
661
+
662
+ ### Added
663
+
664
+ - New function: `buildCurveGraphAndCreateConfig`
665
+ - Added `leftover` parameter to curve building functions
666
+
667
+ ### Changed
668
+
669
+ - Updated fee claiming functions to support custom receivers
670
+
671
+ ### Breaking Changes
672
+
673
+ - `buildCurveAndCreateConfig` and `buildCurveAndCreateConfigByMarketCap` now require `leftover` parameter
674
+ - `buildCurveGraphAndCreateConfig` uses `liquidityWeights[]` instead of `kFactor`
675
+ - Added receiver option in `claimPartnerTradingFee` and `claimCreatorTradingFee`
676
+
677
+ ## [1.1.3] - 2025-05-07
678
+
679
+ ### Changed
680
+
681
+ - Updated `buildCurveGraphAndCreateConfig` to use `liquidityWeights[]` instead of `kFactor`
682
+ - Modified dynamic fee calculation to be 20% of minimum base fee
683
+ - Changed `createPoolAndBuy` buyer from `payer` to `poolCreator`
684
+
685
+ ### Added
686
+
687
+ - Payer option to `claimCreatorTradingFee` and `claimPartnerTradingFee` functions
688
+
689
+ ## [1.1.2] - 2025-04-30
690
+
691
+ ### Added
692
+
693
+ - New fee options: 4% and 6% graduation fees
694
+ - New functions:
695
+ - `creatorWithdrawSurplus`
696
+ - `claimCreatorTradingFee`
697
+ - `createPoolAndBuy`
698
+ - New getter functions
699
+ - SDK modularization and RPC call optimization
700
+
701
+ ### Changed
702
+
703
+ - Updated service and getter function calling patterns
704
+
705
+ ### Breaking Changes
706
+
707
+ - Added required `creatorTradingFeePercentage` parameter to:
708
+ - `createConfig`
709
+ - `buildCurveAndCreateConfig`
710
+ - `buildCurveAndCreateConfigByMarketCap`
711
+ - Updated function namespaces:
712
+ - `client.partners` → `client.partner`
713
+ - `client.migrations` → `client.migration`
714
+ - `client.creators` → `client.creator`
715
+ - `client.pools` → `client.pool`
716
+ - `client.getProgram()` → `client.state`
717
+ - New pool address derivation functions:
718
+ 1. `deriveDbcPoolAddress`
719
+ 2. `deriveDammV1PoolAddress`
720
+ 3. `deriveDammV2PoolAddress`