Converts price-space bands into the relative-tick position plan the add /
update instructions expect. Pool ticks price token_1 in token_0, so when
the base mint orders as token_1 a band above the launch price sits
below the anchor in pool space — this helper does that mapping
internally, which is the mint-ordering footgun it exists to remove
(isBaseMintToken0 comes from deriveRaydiumClmmPoolAccounts).
Sidedness is validated in price space with readable errors before the
on-chain plan validation would reject it: a band entirely above the
launch price must be funded with base tokens only, a band entirely below
with quote tokens only, a band straddling (or touching) it with both,
and every funded side must meet the minimum share floor.
Note the multiples are converted through floating-point log math and
rounded to the nearest tick (~0.01% price granularity); band edges are
then further widened to the pool's tick spacing on-chain. Bands are
authoring input, not exact prices.
Converts price-space bands into the relative-tick position plan the add / update instructions expect. Pool ticks price token_1 in token_0, so when the base mint orders as token_1 a band above the launch price sits below the anchor in pool space — this helper does that mapping internally, which is the mint-ordering footgun it exists to remove (
isBaseMintToken0comes fromderiveRaydiumClmmPoolAccounts).Sidedness is validated in price space with readable errors before the on-chain plan validation would reject it: a band entirely above the launch price must be funded with base tokens only, a band entirely below with quote tokens only, a band straddling (or touching) it with both, and every funded side must meet the minimum share floor.
Note the multiples are converted through floating-point log math and rounded to the nearest tick (~0.01% price granularity); band edges are then further widened to the pool's tick spacing on-chain. Bands are authoring input, not exact prices.