@picon-finance/dlmm-sdk 1.2.0 → 1.3.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.
Files changed (221) hide show
  1. package/README.md +107 -16
  2. package/dist/entities/admin_config.d.ts +23 -0
  3. package/dist/entities/admin_config.d.ts.map +1 -0
  4. package/dist/entities/admin_config.js +54 -0
  5. package/dist/entities/bin_array.d.ts +36 -0
  6. package/dist/entities/bin_array.d.ts.map +1 -0
  7. package/dist/entities/bin_array.js +62 -0
  8. package/dist/entities/dlmm_program.d.ts +50 -0
  9. package/dist/entities/dlmm_program.d.ts.map +1 -0
  10. package/dist/entities/dlmm_program.js +73 -0
  11. package/dist/entities/index.d.ts +7 -0
  12. package/dist/entities/index.d.ts.map +1 -0
  13. package/dist/entities/index.js +6 -0
  14. package/dist/entities/pool.d.ts +71 -0
  15. package/dist/entities/pool.d.ts.map +1 -0
  16. package/dist/entities/pool.js +189 -0
  17. package/dist/entities/position.d.ts +51 -0
  18. package/dist/entities/position.d.ts.map +1 -0
  19. package/dist/entities/position.js +248 -0
  20. package/dist/entities/position_pool.d.ts +7 -0
  21. package/dist/entities/position_pool.d.ts.map +1 -0
  22. package/dist/entities/position_pool.js +30 -0
  23. package/dist/entities/types.d.ts +5 -0
  24. package/dist/entities/types.d.ts.map +1 -0
  25. package/dist/entities/types.js +0 -0
  26. package/dist/events.d.ts +9 -1
  27. package/dist/events.d.ts.map +1 -1
  28. package/dist/events.js +48 -0
  29. package/dist/index.d.ts +2 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -1
  32. package/dist/program_addresses.d.ts.map +1 -1
  33. package/dist/program_addresses.js +0 -5
  34. package/dist/utils/assert.d.ts +9 -0
  35. package/dist/utils/assert.d.ts.map +1 -0
  36. package/dist/utils/assert.js +10 -0
  37. package/dist/utils/bin_location.d.ts +4 -0
  38. package/dist/utils/bin_location.d.ts.map +1 -1
  39. package/dist/utils/bin_location.js +0 -12
  40. package/dist/utils/chunk.d.ts +1 -0
  41. package/dist/utils/chunk.d.ts.map +1 -1
  42. package/dist/utils/chunk.js +4 -0
  43. package/dist/utils/type_guards.d.ts +2 -0
  44. package/dist/utils/type_guards.d.ts.map +1 -1
  45. package/dist/utils/type_guards.js +7 -0
  46. package/package.json +1 -2
  47. package/src/entities/admin_config.ts +122 -0
  48. package/src/entities/bin_array.ts +156 -0
  49. package/src/entities/dlmm_program.ts +210 -0
  50. package/src/entities/index.ts +6 -0
  51. package/src/entities/pool.ts +392 -0
  52. package/src/entities/position.ts +444 -0
  53. package/src/entities/position_pool.ts +68 -0
  54. package/src/entities/types.ts +3 -0
  55. package/src/events.ts +77 -0
  56. package/src/index.ts +2 -1
  57. package/src/program_addresses.ts +0 -6
  58. package/src/utils/assert.ts +25 -0
  59. package/src/utils/bin_location.ts +5 -12
  60. package/src/utils/chunk.ts +9 -0
  61. package/src/utils/type_guards.ts +12 -0
  62. package/dist/actions/accept_admin_authority.d.ts +0 -13
  63. package/dist/actions/accept_admin_authority.d.ts.map +0 -1
  64. package/dist/actions/accept_admin_authority.js +0 -7
  65. package/dist/actions/claim_fee.d.ts +0 -21
  66. package/dist/actions/claim_fee.d.ts.map +0 -1
  67. package/dist/actions/claim_fee.js +0 -40
  68. package/dist/actions/claim_multiple_fees.d.ts +0 -19
  69. package/dist/actions/claim_multiple_fees.d.ts.map +0 -1
  70. package/dist/actions/claim_multiple_fees.js +0 -81
  71. package/dist/actions/claim_protocol_fee.d.ts +0 -18
  72. package/dist/actions/claim_protocol_fee.d.ts.map +0 -1
  73. package/dist/actions/claim_protocol_fee.js +0 -33
  74. package/dist/actions/close_position.d.ts +0 -14
  75. package/dist/actions/close_position.d.ts.map +0 -1
  76. package/dist/actions/close_position.js +0 -14
  77. package/dist/actions/create_admin_config.d.ts +0 -15
  78. package/dist/actions/create_admin_config.d.ts.map +0 -1
  79. package/dist/actions/create_admin_config.js +0 -30
  80. package/dist/actions/create_bin_array.d.ts +0 -16
  81. package/dist/actions/create_bin_array.d.ts.map +0 -1
  82. package/dist/actions/create_bin_array.js +0 -10
  83. package/dist/actions/create_pool.d.ts +0 -21
  84. package/dist/actions/create_pool.d.ts.map +0 -1
  85. package/dist/actions/create_pool.js +0 -22
  86. package/dist/actions/delete_bin_array.d.ts +0 -16
  87. package/dist/actions/delete_bin_array.d.ts.map +0 -1
  88. package/dist/actions/delete_bin_array.js +0 -13
  89. package/dist/actions/deposit_by_weight.d.ts +0 -27
  90. package/dist/actions/deposit_by_weight.d.ts.map +0 -1
  91. package/dist/actions/deposit_by_weight.js +0 -52
  92. package/dist/actions/get_admin_config.d.ts +0 -4
  93. package/dist/actions/get_admin_config.d.ts.map +0 -1
  94. package/dist/actions/get_admin_config.js +0 -7
  95. package/dist/actions/get_bin_arrays_by_indices.d.ts +0 -5
  96. package/dist/actions/get_bin_arrays_by_indices.d.ts.map +0 -1
  97. package/dist/actions/get_bin_arrays_by_indices.js +0 -6
  98. package/dist/actions/get_pool.d.ts +0 -4
  99. package/dist/actions/get_pool.d.ts.map +0 -1
  100. package/dist/actions/get_pool.js +0 -5
  101. package/dist/actions/get_position.d.ts +0 -4
  102. package/dist/actions/get_position.d.ts.map +0 -1
  103. package/dist/actions/get_position.js +0 -5
  104. package/dist/actions/get_position_by_position_mint.d.ts +0 -4
  105. package/dist/actions/get_position_by_position_mint.d.ts.map +0 -1
  106. package/dist/actions/get_position_by_position_mint.js +0 -6
  107. package/dist/actions/get_positions_by_owner.d.ts +0 -5
  108. package/dist/actions/get_positions_by_owner.d.ts.map +0 -1
  109. package/dist/actions/get_positions_by_owner.js +0 -33
  110. package/dist/actions/get_positions_by_position_mints.d.ts +0 -5
  111. package/dist/actions/get_positions_by_position_mints.d.ts.map +0 -1
  112. package/dist/actions/get_positions_by_position_mints.js +0 -9
  113. package/dist/actions/helpers/build_swap_transaction_message.d.ts +0 -22
  114. package/dist/actions/helpers/build_swap_transaction_message.d.ts.map +0 -1
  115. package/dist/actions/helpers/build_swap_transaction_message.js +0 -50
  116. package/dist/actions/helpers/build_transaction_message.d.ts +0 -20
  117. package/dist/actions/helpers/build_transaction_message.d.ts.map +0 -1
  118. package/dist/actions/helpers/build_transaction_message.js +0 -5
  119. package/dist/actions/helpers/index.d.ts +0 -8
  120. package/dist/actions/helpers/index.d.ts.map +0 -1
  121. package/dist/actions/helpers/index.js +0 -7
  122. package/dist/actions/helpers/resolve_active_bin_and_mints.d.ts +0 -12
  123. package/dist/actions/helpers/resolve_active_bin_and_mints.d.ts.map +0 -1
  124. package/dist/actions/helpers/resolve_active_bin_and_mints.js +0 -13
  125. package/dist/actions/helpers/resolve_admin_config_address.d.ts +0 -3
  126. package/dist/actions/helpers/resolve_admin_config_address.d.ts.map +0 -1
  127. package/dist/actions/helpers/resolve_admin_config_address.js +0 -9
  128. package/dist/actions/helpers/resolve_mint_info.d.ts +0 -10
  129. package/dist/actions/helpers/resolve_mint_info.d.ts.map +0 -1
  130. package/dist/actions/helpers/resolve_mint_info.js +0 -20
  131. package/dist/actions/helpers/resolve_position_range.d.ts +0 -12
  132. package/dist/actions/helpers/resolve_position_range.d.ts.map +0 -1
  133. package/dist/actions/helpers/resolve_position_range.js +0 -12
  134. package/dist/actions/helpers/resolve_token_mints_and_programs.d.ts +0 -15
  135. package/dist/actions/helpers/resolve_token_mints_and_programs.d.ts.map +0 -1
  136. package/dist/actions/helpers/resolve_token_mints_and_programs.js +0 -29
  137. package/dist/actions/index.d.ts +0 -31
  138. package/dist/actions/index.d.ts.map +0 -1
  139. package/dist/actions/index.js +0 -28
  140. package/dist/actions/is_admin_config_active.d.ts +0 -4
  141. package/dist/actions/is_admin_config_active.d.ts.map +0 -1
  142. package/dist/actions/is_admin_config_active.js +0 -7
  143. package/dist/actions/on_event.d.ts +0 -11
  144. package/dist/actions/on_event.d.ts.map +0 -1
  145. package/dist/actions/on_event.js +0 -50
  146. package/dist/actions/open_position.d.ts +0 -17
  147. package/dist/actions/open_position.d.ts.map +0 -1
  148. package/dist/actions/open_position.js +0 -31
  149. package/dist/actions/quote.d.ts +0 -13
  150. package/dist/actions/quote.d.ts.map +0 -1
  151. package/dist/actions/quote.js +0 -43
  152. package/dist/actions/set_metadata_update_authority.d.ts +0 -14
  153. package/dist/actions/set_metadata_update_authority.d.ts.map +0 -1
  154. package/dist/actions/set_metadata_update_authority.js +0 -7
  155. package/dist/actions/set_pool_dynamic_fee_config.d.ts +0 -16
  156. package/dist/actions/set_pool_dynamic_fee_config.d.ts.map +0 -1
  157. package/dist/actions/set_pool_dynamic_fee_config.js +0 -7
  158. package/dist/actions/set_pool_protocol_share.d.ts +0 -15
  159. package/dist/actions/set_pool_protocol_share.d.ts.map +0 -1
  160. package/dist/actions/set_pool_protocol_share.js +0 -7
  161. package/dist/actions/swap.d.ts +0 -22
  162. package/dist/actions/swap.d.ts.map +0 -1
  163. package/dist/actions/swap.js +0 -19
  164. package/dist/actions/sync_pool.d.ts +0 -15
  165. package/dist/actions/sync_pool.d.ts.map +0 -1
  166. package/dist/actions/sync_pool.js +0 -26
  167. package/dist/actions/transfer_admin_authority.d.ts +0 -14
  168. package/dist/actions/transfer_admin_authority.d.ts.map +0 -1
  169. package/dist/actions/transfer_admin_authority.js +0 -7
  170. package/dist/actions/withdraw.d.ts +0 -22
  171. package/dist/actions/withdraw.d.ts.map +0 -1
  172. package/dist/actions/withdraw.js +0 -41
  173. package/dist/utils/admin_config.d.ts +0 -3
  174. package/dist/utils/admin_config.d.ts.map +0 -1
  175. package/dist/utils/admin_config.js +0 -4
  176. package/dist/utils/bin_array.d.ts +0 -8
  177. package/dist/utils/bin_array.d.ts.map +0 -1
  178. package/dist/utils/bin_array.js +0 -29
  179. package/dist/utils/compute_budget.d.ts +0 -11
  180. package/dist/utils/compute_budget.d.ts.map +0 -1
  181. package/dist/utils/compute_budget.js +0 -22
  182. package/src/actions/accept_admin_authority.ts +0 -17
  183. package/src/actions/claim_fee.ts +0 -84
  184. package/src/actions/claim_multiple_fees.ts +0 -123
  185. package/src/actions/claim_protocol_fee.ts +0 -68
  186. package/src/actions/close_position.ts +0 -21
  187. package/src/actions/create_admin_config.ts +0 -51
  188. package/src/actions/create_bin_array.ts +0 -30
  189. package/src/actions/create_pool.ts +0 -49
  190. package/src/actions/delete_bin_array.ts +0 -33
  191. package/src/actions/deposit_by_weight.ts +0 -107
  192. package/src/actions/get_admin_config.ts +0 -13
  193. package/src/actions/get_bin_arrays_by_indices.ts +0 -15
  194. package/src/actions/get_pool.ts +0 -8
  195. package/src/actions/get_position.ts +0 -8
  196. package/src/actions/get_position_by_position_mint.ts +0 -14
  197. package/src/actions/get_positions_by_owner.ts +0 -48
  198. package/src/actions/get_positions_by_position_mints.ts +0 -21
  199. package/src/actions/helpers/build_swap_transaction_message.ts +0 -86
  200. package/src/actions/helpers/build_transaction_message.ts +0 -45
  201. package/src/actions/helpers/index.ts +0 -7
  202. package/src/actions/helpers/resolve_active_bin_and_mints.ts +0 -21
  203. package/src/actions/helpers/resolve_admin_config_address.ts +0 -11
  204. package/src/actions/helpers/resolve_mint_info.ts +0 -36
  205. package/src/actions/helpers/resolve_position_range.ts +0 -21
  206. package/src/actions/helpers/resolve_token_mints_and_programs.ts +0 -56
  207. package/src/actions/index.ts +0 -34
  208. package/src/actions/is_admin_config_active.ts +0 -14
  209. package/src/actions/on_event.ts +0 -78
  210. package/src/actions/open_position.ts +0 -66
  211. package/src/actions/quote.ts +0 -70
  212. package/src/actions/set_metadata_update_authority.ts +0 -17
  213. package/src/actions/set_pool_dynamic_fee_config.ts +0 -17
  214. package/src/actions/set_pool_protocol_share.ts +0 -17
  215. package/src/actions/swap.ts +0 -56
  216. package/src/actions/sync_pool.ts +0 -35
  217. package/src/actions/transfer_admin_authority.ts +0 -17
  218. package/src/actions/withdraw.ts +0 -87
  219. package/src/utils/admin_config.ts +0 -6
  220. package/src/utils/bin_array.ts +0 -45
  221. package/src/utils/compute_budget.ts +0 -58
@@ -1,17 +0,0 @@
1
- import type { Address, TransactionSigner } from "@solana/kit";
2
- import { type TransactionMessageOptions, type Rpc } from "./helpers";
3
- export declare function openPosition(rpc: Rpc, { owner, positionMint, pool, lowerBinId, upperBinId, }: {
4
- owner: TransactionSigner;
5
- positionMint: TransactionSigner;
6
- pool: Address;
7
- lowerBinId: number;
8
- upperBinId: number;
9
- }, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
10
- instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
11
- version: 0;
12
- }>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
13
- instructions: readonly [];
14
- }>, "instructions"> & {
15
- readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
16
- }, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
17
- //# sourceMappingURL=open_position.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"open_position.d.ts","sourceRoot":"","sources":["../../src/actions/open_position.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAW9D,OAAO,EAAsD,KAAK,yBAAyB,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAEzH,wBAAsB,YAAY,CAChC,GAAG,EAAE,GAAG,EACR,EACE,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,UAAU,GACX,EAAE;IACD,KAAK,EAAE,iBAAiB,CAAC;IACzB,YAAY,EAAE,iBAAiB,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,EACD,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAoCxC"}
@@ -1,31 +0,0 @@
1
- import { PICON_DLMM_PROGRAM_ADDRESS, fetchAdminConfig, findBinArrayPda, findPositionPda, getOpenPositionInstructionAsync, getCreateBinArrayInstructionAsync, } from "../generated";
2
- import { getPositionBinArrayIndices } from "../utils/bin_location";
3
- import { isUndefined } from "../utils/type_guards";
4
- import { buildTransactionMessage, resolveAdminConfigAddress } from "./helpers";
5
- export async function openPosition(rpc, { owner, positionMint, pool, lowerBinId, upperBinId, }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
6
- const [adminConfig, [position]] = await Promise.all([
7
- resolveAdminConfigAddress(programAddress),
8
- findPositionPda({ positionMint: positionMint.address }, { programAddress }),
9
- ]);
10
- const { metadataUpdateAuthority } = (await fetchAdminConfig(rpc, adminConfig, options)).data;
11
- const { lowerBinArrayIndex, upperBinArrayIndex } = getPositionBinArrayIndices(lowerBinId, upperBinId);
12
- const binArrayIndices = isUndefined(upperBinArrayIndex) ? [lowerBinArrayIndex] : [lowerBinArrayIndex, upperBinArrayIndex];
13
- // Always idempotent, so no RPC existence check is needed first — the on-chain instruction
14
- // is itself a harmless no-op when the bin array already exists (create_bin_array.rs).
15
- const createBinArraysIxs = await Promise.all(binArrayIndices.map(async (index) => {
16
- const [binArray] = await findBinArrayPda({ pool, index }, { programAddress });
17
- return getCreateBinArrayInstructionAsync({ payer: owner, pool, index, idempotent: true, binArray }, { programAddress });
18
- }));
19
- const openPositionIx = await getOpenPositionInstructionAsync({
20
- pool,
21
- lowerBinId,
22
- upperBinId,
23
- owner,
24
- positionMint,
25
- position,
26
- adminConfig,
27
- metadataUpdateAuthority,
28
- }, { programAddress });
29
- const instructions = [...createBinArraysIxs, openPositionIx];
30
- return await buildTransactionMessage(rpc, { feePayer: owner, instructions }, options);
31
- }
@@ -1,13 +0,0 @@
1
- import type { Address, TransactionSigner } from "@solana/kit";
2
- import { type QuoteOutput } from "../quote";
3
- import { buildSwapTransactionMessage, type TransactionMessageOptions, type Rpc } from "./helpers";
4
- export declare function quote(rpc: Rpc, { pool, xToY, amountIn, slippageToleranceBps, }: {
5
- pool: Address;
6
- amountIn: bigint;
7
- xToY: boolean;
8
- slippageToleranceBps: number;
9
- }, programAddress?: Address, options?: TransactionMessageOptions): Promise<{
10
- quoteOutput: QuoteOutput;
11
- swap: (user: TransactionSigner, options?: TransactionMessageOptions) => ReturnType<typeof buildSwapTransactionMessage>;
12
- }>;
13
- //# sourceMappingURL=quote.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quote.d.ts","sourceRoot":"","sources":["../../src/actions/quote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAyB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAGnE,OAAO,EAEL,2BAA2B,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,GAAG,EACT,MAAM,WAAW,CAAC;AAEnB,wBAAsB,KAAK,CACzB,GAAG,EAAE,GAAG,EACR,EACE,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,oBAAoB,GACrB,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;CAC9B,EACD,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC;IACT,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,yBAAyB,KAAK,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;CACxH,CAAC,CAuCD"}
@@ -1,43 +0,0 @@
1
- import { PICON_DLMM_PROGRAM_ADDRESS, fetchAllMaybeBinArray } from "../generated";
2
- import { quote as computeQuote } from "../quote";
3
- import { findSwapBinArrayAddresses } from "../utils/bin_array";
4
- import { getPool } from "./get_pool";
5
- import { resolveMintInfo, buildSwapTransactionMessage, } from "./helpers";
6
- export async function quote(rpc, { pool, xToY, amountIn, slippageToleranceBps, }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
7
- const poolData = await getPool(rpc, pool, options);
8
- const { activeBinId, tokenMintX, tokenMintY } = poolData;
9
- const binArrayAddresses = await findSwapBinArrayAddresses(pool, activeBinId, xToY, programAddress);
10
- const [maybeBinArrays, { transferFeeX, transferFeeY, tokenProgramX, tokenProgramY }] = await Promise.all([
11
- fetchAllMaybeBinArray(rpc, binArrayAddresses, options),
12
- resolveMintInfo(rpc, tokenMintX, tokenMintY, options),
13
- ]);
14
- const binArrays = maybeBinArrays.map(maybeBinArray => maybeBinArray.exists ? maybeBinArray.data : undefined);
15
- const quoteOutput = await computeQuote({
16
- amountIn,
17
- xToY,
18
- slippageToleranceBps,
19
- now: BigInt(Math.floor(Date.now() / 1000)),
20
- poolState: poolData,
21
- inputTransferFee: xToY ? transferFeeX : transferFeeY,
22
- outputTransferFee: xToY ? transferFeeY : transferFeeX,
23
- binArrays,
24
- });
25
- return {
26
- quoteOutput,
27
- // Reuses the exact accounts (activeBinId, mints, bin arrays) this quote was computed
28
- // against, so the built swap tx can't drift from what the caller inspected the quote
29
- // against — and never re-resolves anything `buildSwapTransactionMessage` doesn't ask for.
30
- swap: (user, options = {}) => buildSwapTransactionMessage(rpc, {
31
- user,
32
- pool,
33
- xToY,
34
- amountIn,
35
- minAmountOut: quoteOutput.minAmountOut,
36
- tokenMintX,
37
- tokenMintY,
38
- tokenProgramX,
39
- tokenProgramY,
40
- binArrayAddresses,
41
- }, programAddress, options),
42
- };
43
- }
@@ -1,14 +0,0 @@
1
- import type { Address, TransactionSigner } from "@solana/kit";
2
- import { type TransactionMessageOptions, type Rpc } from "./helpers";
3
- export declare function setMetadataUpdateAuthority(rpc: Rpc, { authority, metadataUpdateAuthority }: {
4
- authority: TransactionSigner;
5
- metadataUpdateAuthority: Address;
6
- }, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
7
- instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
8
- version: 0;
9
- }>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
10
- instructions: readonly [];
11
- }>, "instructions"> & {
12
- readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
13
- }, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
14
- //# sourceMappingURL=set_metadata_update_authority.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set_metadata_update_authority.d.ts","sourceRoot":"","sources":["../../src/actions/set_metadata_update_authority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAsD,KAAK,yBAAyB,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAEzH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,GAAG,EACR,EAAE,SAAS,EAAE,uBAAuB,EAAE,EAAE;IAAE,SAAS,EAAE,iBAAiB,CAAC;IAAC,uBAAuB,EAAE,OAAO,CAAA;CAAE,EAC1G,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAQxC"}
@@ -1,7 +0,0 @@
1
- import { PICON_DLMM_PROGRAM_ADDRESS, getSetMetadataUpdateAuthorityInstructionAsync } from "../generated";
2
- import { buildTransactionMessage, resolveAdminConfigAddress } from "./helpers";
3
- export async function setMetadataUpdateAuthority(rpc, { authority, metadataUpdateAuthority }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
4
- const adminConfig = await resolveAdminConfigAddress(programAddress);
5
- const instruction = await getSetMetadataUpdateAuthorityInstructionAsync({ authority, metadataUpdateAuthority, adminConfig }, { programAddress });
6
- return await buildTransactionMessage(rpc, { feePayer: authority, instructions: [instruction] }, options);
7
- }
@@ -1,16 +0,0 @@
1
- import type { Address, TransactionSigner } from "@solana/kit";
2
- import { type DynamicFeeConfig } from "../generated";
3
- import { type TransactionMessageOptions, type Rpc } from "./helpers";
4
- export declare function setPoolDynamicFeeConfig(rpc: Rpc, { authority, pool, config }: {
5
- authority: TransactionSigner;
6
- pool: Address;
7
- config: DynamicFeeConfig;
8
- }, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
9
- instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
10
- version: 0;
11
- }>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
12
- instructions: readonly [];
13
- }>, "instructions"> & {
14
- readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
15
- }, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
16
- //# sourceMappingURL=set_pool_dynamic_fee_config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set_pool_dynamic_fee_config.d.ts","sourceRoot":"","sources":["../../src/actions/set_pool_dynamic_fee_config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAA8B,KAAK,gBAAgB,EAA8C,MAAM,cAAc,CAAC;AAC7H,OAAO,EAAsD,KAAK,yBAAyB,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAEzH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,GAAG,EACR,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAAE,SAAS,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,EACtG,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAQxC"}
@@ -1,7 +0,0 @@
1
- import { PICON_DLMM_PROGRAM_ADDRESS, getSetPoolDynamicFeeConfigInstructionAsync } from "../generated";
2
- import { buildTransactionMessage, resolveAdminConfigAddress } from "./helpers";
3
- export async function setPoolDynamicFeeConfig(rpc, { authority, pool, config }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
4
- const adminConfig = await resolveAdminConfigAddress(programAddress);
5
- const instruction = await getSetPoolDynamicFeeConfigInstructionAsync({ authority, pool, config, adminConfig }, { programAddress });
6
- return await buildTransactionMessage(rpc, { feePayer: authority, instructions: [instruction] }, options);
7
- }
@@ -1,15 +0,0 @@
1
- import type { Address, TransactionSigner } from "@solana/kit";
2
- import { type TransactionMessageOptions, type Rpc } from "./helpers";
3
- export declare function setPoolProtocolShare(rpc: Rpc, { authority, pool, protocolShare }: {
4
- authority: TransactionSigner;
5
- pool: Address;
6
- protocolShare: number;
7
- }, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
8
- instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
9
- version: 0;
10
- }>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
11
- instructions: readonly [];
12
- }>, "instructions"> & {
13
- readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
14
- }, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
15
- //# sourceMappingURL=set_pool_protocol_share.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set_pool_protocol_share.d.ts","sourceRoot":"","sources":["../../src/actions/set_pool_protocol_share.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAsD,KAAK,yBAAyB,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAEzH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,GAAG,EACR,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;IAAE,SAAS,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAC1G,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAQxC"}
@@ -1,7 +0,0 @@
1
- import { PICON_DLMM_PROGRAM_ADDRESS, getSetPoolProtocolShareInstructionAsync } from "../generated";
2
- import { buildTransactionMessage, resolveAdminConfigAddress } from "./helpers";
3
- export async function setPoolProtocolShare(rpc, { authority, pool, protocolShare }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
4
- const adminConfig = await resolveAdminConfigAddress(programAddress);
5
- const instruction = await getSetPoolProtocolShareInstructionAsync({ authority, pool, protocolShare, adminConfig }, { programAddress });
6
- return await buildTransactionMessage(rpc, { feePayer: authority, instructions: [instruction] }, options);
7
- }
@@ -1,22 +0,0 @@
1
- import type { Address, TransactionSigner } from "@solana/kit";
2
- import { type TransactionMessageOptions, type Rpc } from "./helpers";
3
- export declare function swap(rpc: Rpc, { user, pool, activeBinId, xToY, amountIn, minAmountOut, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }: {
4
- user: TransactionSigner;
5
- pool: Address;
6
- activeBinId?: number;
7
- xToY: boolean;
8
- amountIn: bigint;
9
- minAmountOut: bigint;
10
- tokenMintX?: Address;
11
- tokenMintY?: Address;
12
- tokenProgramX?: Address;
13
- tokenProgramY?: Address;
14
- }, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
15
- instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
16
- version: 0;
17
- }>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
18
- instructions: readonly [];
19
- }>, "instructions"> & {
20
- readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
21
- }, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
22
- //# sourceMappingURL=swap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../src/actions/swap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAIL,KAAK,yBAAyB,EAC9B,KAAK,GAAG,EACT,MAAM,WAAW,CAAC;AAEnB,wBAAsB,IAAI,CACxB,GAAG,EAAE,GAAG,EACR,EACE,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,GACd,EAAE;IACD,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,EACD,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAkBxC"}
@@ -1,19 +0,0 @@
1
- import { PICON_DLMM_PROGRAM_ADDRESS } from "../generated";
2
- import { findSwapBinArrayAddresses } from "../utils/bin_array";
3
- import { resolveActiveBinAndMints, resolveTokenMintsAndPrograms, buildSwapTransactionMessage, } from "./helpers";
4
- export async function swap(rpc, { user, pool, activeBinId, xToY, amountIn, minAmountOut, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
5
- ({ activeBinId, tokenMintX, tokenMintY } = await resolveActiveBinAndMints(rpc, pool, { activeBinId, tokenMintX, tokenMintY }, options));
6
- const [binArrayAddresses, tokenMintsAndPrograms] = await Promise.all([
7
- findSwapBinArrayAddresses(pool, activeBinId, xToY, programAddress),
8
- resolveTokenMintsAndPrograms(rpc, { pool, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY }, options),
9
- ]);
10
- return await buildSwapTransactionMessage(rpc, {
11
- user,
12
- pool,
13
- xToY,
14
- amountIn,
15
- minAmountOut,
16
- binArrayAddresses,
17
- ...tokenMintsAndPrograms,
18
- }, programAddress, options);
19
- }
@@ -1,15 +0,0 @@
1
- import { type Address, type TransactionSigner } from "@solana/kit";
2
- import { type TransactionMessageOptions, type Rpc } from "./helpers";
3
- export declare function syncPool(rpc: Rpc, { user, pool, desiredBinId }: {
4
- user: TransactionSigner;
5
- pool: Address;
6
- desiredBinId: number;
7
- }, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
8
- instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
9
- version: 0;
10
- }>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
11
- instructions: readonly [];
12
- }>, "instructions"> & {
13
- readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
14
- }, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
15
- //# sourceMappingURL=sync_pool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync_pool.d.ts","sourceRoot":"","sources":["../../src/actions/sync_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,iBAAiB,EAAe,MAAM,aAAa,CAAC;AAMhF,OAAO,EAA2B,KAAK,yBAAyB,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAM9F,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,GAAG,EACR,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAC9F,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAkBxC"}
@@ -1,26 +0,0 @@
1
- import { AccountRole } from "@solana/kit";
2
- import { PICON_DLMM_PROGRAM_ADDRESS, getSyncPoolInstruction } from "../generated";
3
- import { generateBinArrayIndicesForSync } from "../utils/bin_location";
4
- import { MAX_BIN_ARRAYS_PER_SYNC } from "../utils/constants";
5
- import { findBinArrayAddresses } from "../utils/bin_array";
6
- import { getPool } from "./get_pool";
7
- import { buildTransactionMessage } from "./helpers";
8
- // The base sync_pool instruction only declares `user`/`pool` — the bin arrays are Anchor
9
- // `remaining_accounts`, not part of the typed account list, so they're appended manually here.
10
- // Read-only: sync_pool only ever reads bin data (`is_zero_liquidity`) to find the next active
11
- // bin, never mutates a bin array.
12
- export async function syncPool(rpc, { user, pool, desiredBinId }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
13
- const { activeBinId } = await getPool(rpc, pool, options);
14
- const binArrayIndices = generateBinArrayIndicesForSync(activeBinId, desiredBinId, MAX_BIN_ARRAYS_PER_SYNC);
15
- const binArrayAddresses = await findBinArrayAddresses(pool, binArrayIndices, programAddress);
16
- const syncPoolIx = getSyncPoolInstruction({ user, pool, desiredBinId }, { programAddress });
17
- const remainingAccounts = binArrayAddresses.map(address => ({
18
- address,
19
- role: AccountRole.READONLY,
20
- }));
21
- const instructions = [{
22
- ...syncPoolIx,
23
- accounts: [...syncPoolIx.accounts, ...remainingAccounts],
24
- }];
25
- return await buildTransactionMessage(rpc, { feePayer: user, instructions }, options);
26
- }
@@ -1,14 +0,0 @@
1
- import type { Address, TransactionSigner } from "@solana/kit";
2
- import { type TransactionMessageOptions, type Rpc } from "./helpers";
3
- export declare function transferAdminAuthority(rpc: Rpc, { authority, newAuthority }: {
4
- authority: TransactionSigner;
5
- newAuthority: Address;
6
- }, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
7
- instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
8
- version: 0;
9
- }>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
10
- instructions: readonly [];
11
- }>, "instructions"> & {
12
- readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
13
- }, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
14
- //# sourceMappingURL=transfer_admin_authority.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transfer_admin_authority.d.ts","sourceRoot":"","sources":["../../src/actions/transfer_admin_authority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAsD,KAAK,yBAAyB,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAEzH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,GAAG,EACR,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE;IAAE,SAAS,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,EACpF,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAQxC"}
@@ -1,7 +0,0 @@
1
- import { PICON_DLMM_PROGRAM_ADDRESS, getTransferAdminAuthorityInstructionAsync } from "../generated";
2
- import { buildTransactionMessage, resolveAdminConfigAddress } from "./helpers";
3
- export async function transferAdminAuthority(rpc, { authority, newAuthority }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
4
- const adminConfig = await resolveAdminConfigAddress(programAddress);
5
- const instruction = await getTransferAdminAuthorityInstructionAsync({ authority, newAuthority, adminConfig }, { programAddress });
6
- return await buildTransactionMessage(rpc, { feePayer: authority, instructions: [instruction] }, options);
7
- }
@@ -1,22 +0,0 @@
1
- import type { Address, TransactionSigner } from "@solana/kit";
2
- import { type TransactionMessageOptions, type Rpc } from "./helpers";
3
- export declare function withdraw(rpc: Rpc, { owner, positionMint, bpsToRemove, lowerBinId, upperBinId, pool, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }: {
4
- owner: TransactionSigner;
5
- positionMint: Address;
6
- bpsToRemove: number;
7
- lowerBinId?: number;
8
- upperBinId?: number;
9
- pool?: Address;
10
- tokenMintX?: Address;
11
- tokenMintY?: Address;
12
- tokenProgramX?: Address;
13
- tokenProgramY?: Address;
14
- }, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
15
- instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
16
- version: 0;
17
- }>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
18
- instructions: readonly [];
19
- }>, "instructions"> & {
20
- readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
21
- }, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
22
- //# sourceMappingURL=withdraw.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../src/actions/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAI9D,OAAO,EAIL,KAAK,yBAAyB,EAC9B,KAAK,GAAG,EACT,MAAM,WAAW,CAAC;AAEnB,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,GAAG,EACR,EACE,KAAK,EACL,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,IAAI,EACJ,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,GACd,EAAE;IACD,KAAK,EAAE,iBAAiB,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,EACD,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAgDxC"}
@@ -1,41 +0,0 @@
1
- import { PICON_DLMM_PROGRAM_ADDRESS, findPositionPda, getWithdrawInstruction } from "../generated";
2
- import { findPositionBinArrayAddresses } from "../utils/bin_array";
3
- import { findPoolTokenVaults, findPositionTokenAccount, processAssociatedTokenAccountPair } from "../utils/ata";
4
- import { resolvePositionRange, resolveTokenMintsAndPrograms, buildTransactionMessage, } from "./helpers";
5
- export async function withdraw(rpc, { owner, positionMint, bpsToRemove, lowerBinId, upperBinId, pool, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
6
- ({ pool, lowerBinId, upperBinId } = await resolvePositionRange(rpc, positionMint, { pool, lowerBinId, upperBinId }, programAddress, options));
7
- const tokenMintsAndPrograms = await resolveTokenMintsAndPrograms(rpc, {
8
- pool,
9
- tokenMintX,
10
- tokenMintY,
11
- tokenProgramX,
12
- tokenProgramY,
13
- }, options);
14
- const [position] = await findPositionPda({ positionMint }, { programAddress });
15
- const positionTokenAccount = await findPositionTokenAccount({ owner: owner.address, positionMint });
16
- const { tokenVaultX, tokenVaultY } = await findPoolTokenVaults({ pool, ...tokenMintsAndPrograms });
17
- const { ataX: tokenOwnerAccountX, ataY: tokenOwnerAccountY, preInstructions: preInstructionsAta, postInstructions: postInstructionsAta, } = await processAssociatedTokenAccountPair({ owner, ...tokenMintsAndPrograms });
18
- const { lowerBinArray, upperBinArray } = await findPositionBinArrayAddresses(pool, lowerBinId, upperBinId, programAddress);
19
- const withdrawIx = getWithdrawInstruction({
20
- owner,
21
- pool,
22
- position,
23
- positionTokenAccount,
24
- ...tokenMintsAndPrograms,
25
- tokenOwnerAccountX,
26
- tokenOwnerAccountY,
27
- tokenVaultX,
28
- tokenVaultY,
29
- lowerBinArray,
30
- upperBinArray,
31
- lowerBinId,
32
- upperBinId,
33
- bpsToRemove,
34
- }, { programAddress });
35
- const instructions = [
36
- ...preInstructionsAta,
37
- withdrawIx,
38
- ...postInstructionsAta,
39
- ];
40
- return await buildTransactionMessage(rpc, { feePayer: owner, instructions }, options);
41
- }
@@ -1,3 +0,0 @@
1
- import { type AdminConfig } from "../generated";
2
- export declare function isAdminConfigActive(adminConfig: AdminConfig): boolean;
3
- //# sourceMappingURL=admin_config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin_config.d.ts","sourceRoot":"","sources":["../../src/utils/admin_config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAErE"}
@@ -1,4 +0,0 @@
1
- import { SYSTEM_PROGRAM_ADDRESS } from "@solana-program/system";
2
- export function isAdminConfigActive(adminConfig) {
3
- return adminConfig.authority !== SYSTEM_PROGRAM_ADDRESS;
4
- }
@@ -1,8 +0,0 @@
1
- import { type Address } from "@solana/kit";
2
- export declare function findBinArrayAddresses(pool: Address, indices: number[], programAddress: Address): Promise<Address[]>;
3
- export declare function findSwapBinArrayAddresses(pool: Address, activeBinId: number, xToY: boolean, programAddress: Address): Promise<Address[]>;
4
- export declare function findPositionBinArrayAddresses(pool: Address, lowerBinId: number, upperBinId: number, programAddress: Address): Promise<{
5
- lowerBinArray: Address;
6
- upperBinArray?: Address;
7
- }>;
8
- //# sourceMappingURL=bin_array.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bin_array.d.ts","sourceRoot":"","sources":["../../src/utils/bin_array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAS3C,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAEzH;AAID,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,EACb,cAAc,EAAE,OAAO,GACtB,OAAO,CAAC,OAAO,EAAE,CAAC,CAGpB;AAMD,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,OAAO,GACtB,OAAO,CAAC;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAU9D"}
@@ -1,29 +0,0 @@
1
- import { findBinArrayPda } from "../generated";
2
- import { generateBinArrayIndicesForSwap, getPositionBinArrayIndices } from "./bin_location";
3
- import { MAX_BIN_ARRAYS_PER_SWAP } from "./constants";
4
- import { isUndefined } from "./type_guards";
5
- // Shared by every instruction that enumerates an arbitrary span of bin arrays as Anchor
6
- // `remaining_accounts` (swap, sync_pool), as opposed to the fixed lower/upper pair a
7
- // position-scoped instruction uses.
8
- export async function findBinArrayAddresses(pool, indices, programAddress) {
9
- return Promise.all(indices.map(async (index) => (await findBinArrayPda({ pool, index }, { programAddress }))[0]));
10
- }
11
- // Pure local PDA derivation — no RPC. Shared by `swap` (which only needs the addresses for
12
- // remaining accounts) and `quote` (which additionally fetches each account's data).
13
- export function findSwapBinArrayAddresses(pool, activeBinId, xToY, programAddress) {
14
- const binArrayIndices = generateBinArrayIndicesForSwap(activeBinId, xToY, MAX_BIN_ARRAYS_PER_SWAP);
15
- return findBinArrayAddresses(pool, binArrayIndices, programAddress);
16
- }
17
- // Shared by every position-scoped instruction (open_position, deposit_by_weight, withdraw,
18
- // claim_fee) — derives the lower and (optionally) upper bin array covering the position's
19
- // range, matching the program's own `lowerBinArray` + `upperBinArray: Option<UncheckedAccount>`
20
- // account pair. `upperBinArray` is omitted when both ends fall in the same bin array.
21
- export async function findPositionBinArrayAddresses(pool, lowerBinId, upperBinId, programAddress) {
22
- const { lowerBinArrayIndex, upperBinArrayIndex } = getPositionBinArrayIndices(lowerBinId, upperBinId);
23
- const [lowerBinArray] = await findBinArrayPda({ pool, index: lowerBinArrayIndex }, { programAddress });
24
- if (isUndefined(upperBinArrayIndex)) {
25
- return { lowerBinArray };
26
- }
27
- const [upperBinArray] = await findBinArrayPda({ pool, index: upperBinArrayIndex }, { programAddress });
28
- return { lowerBinArray, upperBinArray };
29
- }
@@ -1,11 +0,0 @@
1
- import { createSolanaRpc, estimateComputeUnitLimitFactory, type TransactionMessage, type TransactionMessageWithFeePayer } from "@solana/kit";
2
- export declare function withComputeBudget<TTransactionMessage extends TransactionMessage>(message: TTransactionMessage, { computeUnitLimit, computeUnitPrice, }?: {
3
- computeUnitLimit?: number;
4
- computeUnitPrice?: bigint;
5
- }): TTransactionMessage;
6
- export declare function withEstimatedComputeBudget<TTransactionMessage extends TransactionMessage & TransactionMessageWithFeePayer>(rpc: ReturnType<typeof createSolanaRpc>, message: TTransactionMessage, { estimateComputeUnitPrice, estimateComputeUnitLimit, bufferFactor, }?: {
7
- estimateComputeUnitPrice?: bigint | ((computeUnitLimit: number) => bigint);
8
- estimateComputeUnitLimit?: ReturnType<typeof estimateComputeUnitLimitFactory>;
9
- bufferFactor?: number;
10
- }): Promise<TTransactionMessage>;
11
- //# sourceMappingURL=compute_budget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compute_budget.d.ts","sourceRoot":"","sources":["../../src/utils/compute_budget.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,eAAe,EACf,+BAA+B,EAE/B,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACpC,MAAM,aAAa,CAAC;AAGrB,wBAAgB,iBAAiB,CAAC,mBAAmB,SAAS,kBAAkB,EAC9E,OAAO,EAAE,mBAAmB,EAC5B,EACE,gBAAgB,EAChB,gBAAgB,GACjB,GAAE;IACD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACtB,GACL,mBAAmB,CAMrB;AAED,wBAAsB,0BAA0B,CAC9C,mBAAmB,SAAS,kBAAkB,GAAG,8BAA8B,EAE/E,GAAG,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,EACvC,OAAO,EAAE,mBAAmB,EAC5B,EACE,wBAAwB,EACxB,wBAAwB,EACxB,YAAkB,GACnB,GAAE;IACD,wBAAwB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,gBAAgB,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC3E,wBAAwB,CAAC,EAAE,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAC;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB,GACL,OAAO,CAAC,mBAAmB,CAAC,CAa9B"}
@@ -1,22 +0,0 @@
1
- import { getSetComputeUnitLimitInstruction, getSetComputeUnitPriceInstruction, } from "@solana-program/compute-budget";
2
- import { estimateComputeUnitLimitFactory, prependTransactionMessageInstructions, } from "@solana/kit";
3
- import { isUndefined } from "./type_guards";
4
- export function withComputeBudget(message, { computeUnitLimit, computeUnitPrice, } = {}) {
5
- const ixs = [
6
- ...(isUndefined(computeUnitLimit) ? [] : [getSetComputeUnitLimitInstruction({ units: computeUnitLimit })]),
7
- ...(isUndefined(computeUnitPrice) ? [] : [getSetComputeUnitPriceInstruction({ microLamports: computeUnitPrice })]),
8
- ];
9
- return prependTransactionMessageInstructions(ixs, message);
10
- }
11
- export async function withEstimatedComputeBudget(rpc, message, { estimateComputeUnitPrice, estimateComputeUnitLimit, bufferFactor = 1.1, } = {}) {
12
- estimateComputeUnitLimit = estimateComputeUnitLimit ?? estimateComputeUnitLimitFactory({ rpc });
13
- const computeUnitBase = await estimateComputeUnitLimit(message);
14
- const computeUnitLimit = Math.ceil(computeUnitBase * bufferFactor);
15
- const computeUnitPrice = estimateComputeUnitPrice instanceof Function
16
- ? estimateComputeUnitPrice(computeUnitLimit)
17
- : estimateComputeUnitPrice;
18
- return withComputeBudget(message, {
19
- computeUnitLimit: computeUnitLimit,
20
- computeUnitPrice,
21
- });
22
- }
@@ -1,17 +0,0 @@
1
- import type { Address, TransactionSigner } from "@solana/kit";
2
- import { PICON_DLMM_PROGRAM_ADDRESS, getAcceptAdminAuthorityInstructionAsync } from "../generated";
3
- import { buildTransactionMessage, resolveAdminConfigAddress, type TransactionMessageOptions, type Rpc } from "./helpers";
4
-
5
- export async function acceptAdminAuthority(
6
- rpc: Rpc,
7
- { pendingAuthority }: { pendingAuthority: TransactionSigner },
8
- programAddress: Address = PICON_DLMM_PROGRAM_ADDRESS,
9
- options: TransactionMessageOptions = {},
10
- ) {
11
- const adminConfig = await resolveAdminConfigAddress(programAddress);
12
- const instruction = await getAcceptAdminAuthorityInstructionAsync(
13
- { pendingAuthority, adminConfig },
14
- { programAddress },
15
- );
16
- return await buildTransactionMessage(rpc, { feePayer: pendingAuthority, instructions: [instruction] }, options);
17
- }
@@ -1,84 +0,0 @@
1
- import type { Address, TransactionSigner } from "@solana/kit";
2
- import { PICON_DLMM_PROGRAM_ADDRESS, findPositionPda, getClaimFeeInstruction } from "../generated";
3
- import { findPositionBinArrayAddresses } from "../utils/bin_array";
4
- import { findPoolTokenVaults, findPositionTokenAccount, processAssociatedTokenAccountPair } from "../utils/ata";
5
- import {
6
- resolvePositionRange,
7
- resolveTokenMintsAndPrograms,
8
- buildTransactionMessage,
9
- type TransactionMessageOptions,
10
- type Rpc,
11
- } from "./helpers";
12
-
13
- export async function claimFee(
14
- rpc: Rpc,
15
- {
16
- owner,
17
- positionMint,
18
- lowerBinId,
19
- upperBinId,
20
- pool,
21
- tokenMintX,
22
- tokenMintY,
23
- tokenProgramX,
24
- tokenProgramY,
25
- }: {
26
- owner: TransactionSigner,
27
- positionMint: Address,
28
- lowerBinId?: number,
29
- upperBinId?: number,
30
- pool?: Address,
31
- tokenMintX?: Address,
32
- tokenMintY?: Address,
33
- tokenProgramX?: Address,
34
- tokenProgramY?: Address,
35
- },
36
- programAddress: Address = PICON_DLMM_PROGRAM_ADDRESS,
37
- options: TransactionMessageOptions = {},
38
- ) {
39
- ({ pool, lowerBinId, upperBinId } = await resolvePositionRange(rpc, positionMint, { pool, lowerBinId, upperBinId }, programAddress, options));
40
-
41
- const tokenMintsAndPrograms = await resolveTokenMintsAndPrograms(rpc, {
42
- pool,
43
- tokenMintX,
44
- tokenMintY,
45
- tokenProgramX,
46
- tokenProgramY,
47
- }, options);
48
-
49
- const [position] = await findPositionPda({ positionMint }, { programAddress });
50
- const positionTokenAccount = await findPositionTokenAccount({ owner: owner.address, positionMint });
51
- const { tokenVaultX, tokenVaultY } = await findPoolTokenVaults({ pool, ...tokenMintsAndPrograms });
52
-
53
- const {
54
- ataX: tokenOwnerAccountX,
55
- ataY: tokenOwnerAccountY,
56
- preInstructions: preInstructionsAta,
57
- postInstructions: postInstructionsAta,
58
- } = await processAssociatedTokenAccountPair({ owner, ...tokenMintsAndPrograms });
59
-
60
- const { lowerBinArray, upperBinArray } = await findPositionBinArrayAddresses(pool, lowerBinId, upperBinId, programAddress);
61
-
62
- const claimFeeIx = getClaimFeeInstruction({
63
- owner,
64
- pool,
65
- position,
66
- positionTokenAccount,
67
- ...tokenMintsAndPrograms,
68
- tokenOwnerAccountX,
69
- tokenOwnerAccountY,
70
- tokenVaultX,
71
- tokenVaultY,
72
- lowerBinArray,
73
- upperBinArray,
74
- lowerBinId,
75
- upperBinId,
76
- }, { programAddress });
77
-
78
- const instructions = [
79
- ...preInstructionsAta,
80
- claimFeeIx,
81
- ...postInstructionsAta,
82
- ];
83
- return await buildTransactionMessage(rpc, { feePayer: owner, instructions }, options);
84
- }