@picon-finance/dlmm-sdk 1.2.0 → 1.4.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 +115 -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 +37 -0
  6. package/dist/entities/bin_array.d.ts.map +1 -0
  7. package/dist/entities/bin_array.js +63 -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 +55 -0
  18. package/dist/entities/position.d.ts.map +1 -0
  19. package/dist/entities/position.js +277 -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 +157 -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 +481 -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
@@ -0,0 +1,71 @@
1
+ import { createSolanaRpc, type Address, type Account, type Instruction, type TransactionSigner, type FetchAccountConfig, type FetchAccountsConfig } from "@solana/kit";
2
+ import { generated } from "..";
3
+ import { type QuoteOutput } from "../quote";
4
+ import { Position } from "./position";
5
+ import { type ProgramConfig } from "./types";
6
+ export declare class Pool {
7
+ #private;
8
+ private constructor();
9
+ get rpc(): import("@solana/rpc-spec").Rpc<(import("@solana/rpc-api").GetAccountInfoApi & import("@solana/rpc-api").GetBalanceApi & import("@solana/rpc-api").GetBlockApi & import("@solana/rpc-api").GetBlockCommitmentApi & import("@solana/rpc-api").GetBlockHeightApi & import("@solana/rpc-api").GetBlockProductionApi & import("@solana/rpc-api").GetBlocksApi & import("@solana/rpc-api").GetBlocksWithLimitApi & import("@solana/rpc-api").GetBlockTimeApi & import("@solana/rpc-api").GetClusterNodesApi & import("@solana/rpc-api").GetEpochInfoApi & import("@solana/rpc-api").GetEpochScheduleApi & import("@solana/rpc-api").GetFeeForMessageApi & import("@solana/rpc-api").GetFirstAvailableBlockApi & import("@solana/rpc-api").GetGenesisHashApi & import("@solana/rpc-api").GetHealthApi & import("@solana/rpc-api").GetHighestSnapshotSlotApi & import("@solana/rpc-api").GetIdentityApi & import("@solana/rpc-api").GetInflationGovernorApi & import("@solana/rpc-api").GetInflationRateApi & import("@solana/rpc-api").GetInflationRewardApi & import("@solana/rpc-api").GetLargestAccountsApi & import("@solana/rpc-api").GetLatestBlockhashApi & import("@solana/rpc-api").GetLeaderScheduleApi & import("@solana/rpc-api").GetMaxRetransmitSlotApi & import("@solana/rpc-api").GetMaxShredInsertSlotApi & import("@solana/rpc-api").GetMinimumBalanceForRentExemptionApi & import("@solana/rpc-api").GetMultipleAccountsApi & import("@solana/rpc-api").GetProgramAccountsApi & import("@solana/rpc-api").GetRecentPerformanceSamplesApi & import("@solana/rpc-api").GetRecentPrioritizationFeesApi & import("@solana/rpc-api").GetSignaturesForAddressApi & import("@solana/rpc-api").GetSignatureStatusesApi & import("@solana/rpc-api").GetSlotApi & import("@solana/rpc-api").GetSlotLeaderApi & import("@solana/rpc-api").GetSlotLeadersApi & import("@solana/rpc-api").GetStakeMinimumDelegationApi & import("@solana/rpc-api").GetSupplyApi & import("@solana/rpc-api").GetTokenAccountBalanceApi & import("@solana/rpc-api").GetTokenAccountsByDelegateApi & import("@solana/rpc-api").GetTokenAccountsByOwnerApi & import("@solana/rpc-api").GetTokenLargestAccountsApi & import("@solana/rpc-api").GetTokenSupplyApi & import("@solana/rpc-api").GetTransactionApi & import("@solana/rpc-api").GetTransactionCountApi & import("@solana/rpc-api").GetVersionApi & import("@solana/rpc-api").GetVoteAccountsApi & import("@solana/rpc-api").IsBlockhashValidApi & import("@solana/rpc-api").MinimumLedgerSlotApi & import("@solana/rpc-api").SendTransactionApi & import("@solana/rpc-api").SimulateTransactionApi) | (import("@solana/rpc-api").RequestAirdropApi & import("@solana/rpc-api").GetAccountInfoApi & import("@solana/rpc-api").GetBalanceApi & import("@solana/rpc-api").GetBlockApi & import("@solana/rpc-api").GetBlockCommitmentApi & import("@solana/rpc-api").GetBlockHeightApi & import("@solana/rpc-api").GetBlockProductionApi & import("@solana/rpc-api").GetBlocksApi & import("@solana/rpc-api").GetBlocksWithLimitApi & import("@solana/rpc-api").GetBlockTimeApi & import("@solana/rpc-api").GetClusterNodesApi & import("@solana/rpc-api").GetEpochInfoApi & import("@solana/rpc-api").GetEpochScheduleApi & import("@solana/rpc-api").GetFeeForMessageApi & import("@solana/rpc-api").GetFirstAvailableBlockApi & import("@solana/rpc-api").GetGenesisHashApi & import("@solana/rpc-api").GetHealthApi & import("@solana/rpc-api").GetHighestSnapshotSlotApi & import("@solana/rpc-api").GetIdentityApi & import("@solana/rpc-api").GetInflationGovernorApi & import("@solana/rpc-api").GetInflationRateApi & import("@solana/rpc-api").GetInflationRewardApi & import("@solana/rpc-api").GetLargestAccountsApi & import("@solana/rpc-api").GetLatestBlockhashApi & import("@solana/rpc-api").GetLeaderScheduleApi & import("@solana/rpc-api").GetMaxRetransmitSlotApi & import("@solana/rpc-api").GetMaxShredInsertSlotApi & import("@solana/rpc-api").GetMinimumBalanceForRentExemptionApi & import("@solana/rpc-api").GetMultipleAccountsApi & import("@solana/rpc-api").GetProgramAccountsApi & import("@solana/rpc-api").GetRecentPerformanceSamplesApi & import("@solana/rpc-api").GetRecentPrioritizationFeesApi & import("@solana/rpc-api").GetSignaturesForAddressApi & import("@solana/rpc-api").GetSignatureStatusesApi & import("@solana/rpc-api").GetSlotApi & import("@solana/rpc-api").GetSlotLeaderApi & import("@solana/rpc-api").GetSlotLeadersApi & import("@solana/rpc-api").GetStakeMinimumDelegationApi & import("@solana/rpc-api").GetSupplyApi & import("@solana/rpc-api").GetTokenAccountBalanceApi & import("@solana/rpc-api").GetTokenAccountsByDelegateApi & import("@solana/rpc-api").GetTokenAccountsByOwnerApi & import("@solana/rpc-api").GetTokenLargestAccountsApi & import("@solana/rpc-api").GetTokenSupplyApi & import("@solana/rpc-api").GetTransactionApi & import("@solana/rpc-api").GetTransactionCountApi & import("@solana/rpc-api").GetVersionApi & import("@solana/rpc-api").GetVoteAccountsApi & import("@solana/rpc-api").IsBlockhashValidApi & import("@solana/rpc-api").MinimumLedgerSlotApi & import("@solana/rpc-api").SendTransactionApi & import("@solana/rpc-api").SimulateTransactionApi)> | import("@solana/rpc").RpcDevnet<(import("@solana/rpc-api").GetAccountInfoApi & import("@solana/rpc-api").GetBalanceApi & import("@solana/rpc-api").GetBlockApi & import("@solana/rpc-api").GetBlockCommitmentApi & import("@solana/rpc-api").GetBlockHeightApi & import("@solana/rpc-api").GetBlockProductionApi & import("@solana/rpc-api").GetBlocksApi & import("@solana/rpc-api").GetBlocksWithLimitApi & import("@solana/rpc-api").GetBlockTimeApi & import("@solana/rpc-api").GetClusterNodesApi & import("@solana/rpc-api").GetEpochInfoApi & import("@solana/rpc-api").GetEpochScheduleApi & import("@solana/rpc-api").GetFeeForMessageApi & import("@solana/rpc-api").GetFirstAvailableBlockApi & import("@solana/rpc-api").GetGenesisHashApi & import("@solana/rpc-api").GetHealthApi & import("@solana/rpc-api").GetHighestSnapshotSlotApi & import("@solana/rpc-api").GetIdentityApi & import("@solana/rpc-api").GetInflationGovernorApi & import("@solana/rpc-api").GetInflationRateApi & import("@solana/rpc-api").GetInflationRewardApi & import("@solana/rpc-api").GetLargestAccountsApi & import("@solana/rpc-api").GetLatestBlockhashApi & import("@solana/rpc-api").GetLeaderScheduleApi & import("@solana/rpc-api").GetMaxRetransmitSlotApi & import("@solana/rpc-api").GetMaxShredInsertSlotApi & import("@solana/rpc-api").GetMinimumBalanceForRentExemptionApi & import("@solana/rpc-api").GetMultipleAccountsApi & import("@solana/rpc-api").GetProgramAccountsApi & import("@solana/rpc-api").GetRecentPerformanceSamplesApi & import("@solana/rpc-api").GetRecentPrioritizationFeesApi & import("@solana/rpc-api").GetSignaturesForAddressApi & import("@solana/rpc-api").GetSignatureStatusesApi & import("@solana/rpc-api").GetSlotApi & import("@solana/rpc-api").GetSlotLeaderApi & import("@solana/rpc-api").GetSlotLeadersApi & import("@solana/rpc-api").GetStakeMinimumDelegationApi & import("@solana/rpc-api").GetSupplyApi & import("@solana/rpc-api").GetTokenAccountBalanceApi & import("@solana/rpc-api").GetTokenAccountsByDelegateApi & import("@solana/rpc-api").GetTokenAccountsByOwnerApi & import("@solana/rpc-api").GetTokenLargestAccountsApi & import("@solana/rpc-api").GetTokenSupplyApi & import("@solana/rpc-api").GetTransactionApi & import("@solana/rpc-api").GetTransactionCountApi & import("@solana/rpc-api").GetVersionApi & import("@solana/rpc-api").GetVoteAccountsApi & import("@solana/rpc-api").IsBlockhashValidApi & import("@solana/rpc-api").MinimumLedgerSlotApi & import("@solana/rpc-api").SendTransactionApi & import("@solana/rpc-api").SimulateTransactionApi) | (import("@solana/rpc-api").RequestAirdropApi & import("@solana/rpc-api").GetAccountInfoApi & import("@solana/rpc-api").GetBalanceApi & import("@solana/rpc-api").GetBlockApi & import("@solana/rpc-api").GetBlockCommitmentApi & import("@solana/rpc-api").GetBlockHeightApi & import("@solana/rpc-api").GetBlockProductionApi & import("@solana/rpc-api").GetBlocksApi & import("@solana/rpc-api").GetBlocksWithLimitApi & import("@solana/rpc-api").GetBlockTimeApi & import("@solana/rpc-api").GetClusterNodesApi & import("@solana/rpc-api").GetEpochInfoApi & import("@solana/rpc-api").GetEpochScheduleApi & import("@solana/rpc-api").GetFeeForMessageApi & import("@solana/rpc-api").GetFirstAvailableBlockApi & import("@solana/rpc-api").GetGenesisHashApi & import("@solana/rpc-api").GetHealthApi & import("@solana/rpc-api").GetHighestSnapshotSlotApi & import("@solana/rpc-api").GetIdentityApi & import("@solana/rpc-api").GetInflationGovernorApi & import("@solana/rpc-api").GetInflationRateApi & import("@solana/rpc-api").GetInflationRewardApi & import("@solana/rpc-api").GetLargestAccountsApi & import("@solana/rpc-api").GetLatestBlockhashApi & import("@solana/rpc-api").GetLeaderScheduleApi & import("@solana/rpc-api").GetMaxRetransmitSlotApi & import("@solana/rpc-api").GetMaxShredInsertSlotApi & import("@solana/rpc-api").GetMinimumBalanceForRentExemptionApi & import("@solana/rpc-api").GetMultipleAccountsApi & import("@solana/rpc-api").GetProgramAccountsApi & import("@solana/rpc-api").GetRecentPerformanceSamplesApi & import("@solana/rpc-api").GetRecentPrioritizationFeesApi & import("@solana/rpc-api").GetSignaturesForAddressApi & import("@solana/rpc-api").GetSignatureStatusesApi & import("@solana/rpc-api").GetSlotApi & import("@solana/rpc-api").GetSlotLeaderApi & import("@solana/rpc-api").GetSlotLeadersApi & import("@solana/rpc-api").GetStakeMinimumDelegationApi & import("@solana/rpc-api").GetSupplyApi & import("@solana/rpc-api").GetTokenAccountBalanceApi & import("@solana/rpc-api").GetTokenAccountsByDelegateApi & import("@solana/rpc-api").GetTokenAccountsByOwnerApi & import("@solana/rpc-api").GetTokenLargestAccountsApi & import("@solana/rpc-api").GetTokenSupplyApi & import("@solana/rpc-api").GetTransactionApi & import("@solana/rpc-api").GetTransactionCountApi & import("@solana/rpc-api").GetVersionApi & import("@solana/rpc-api").GetVoteAccountsApi & import("@solana/rpc-api").IsBlockhashValidApi & import("@solana/rpc-api").MinimumLedgerSlotApi & import("@solana/rpc-api").SendTransactionApi & import("@solana/rpc-api").SimulateTransactionApi)> | import("@solana/rpc").RpcMainnet<(import("@solana/rpc-api").GetAccountInfoApi & import("@solana/rpc-api").GetBalanceApi & import("@solana/rpc-api").GetBlockApi & import("@solana/rpc-api").GetBlockCommitmentApi & import("@solana/rpc-api").GetBlockHeightApi & import("@solana/rpc-api").GetBlockProductionApi & import("@solana/rpc-api").GetBlocksApi & import("@solana/rpc-api").GetBlocksWithLimitApi & import("@solana/rpc-api").GetBlockTimeApi & import("@solana/rpc-api").GetClusterNodesApi & import("@solana/rpc-api").GetEpochInfoApi & import("@solana/rpc-api").GetEpochScheduleApi & import("@solana/rpc-api").GetFeeForMessageApi & import("@solana/rpc-api").GetFirstAvailableBlockApi & import("@solana/rpc-api").GetGenesisHashApi & import("@solana/rpc-api").GetHealthApi & import("@solana/rpc-api").GetHighestSnapshotSlotApi & import("@solana/rpc-api").GetIdentityApi & import("@solana/rpc-api").GetInflationGovernorApi & import("@solana/rpc-api").GetInflationRateApi & import("@solana/rpc-api").GetInflationRewardApi & import("@solana/rpc-api").GetLargestAccountsApi & import("@solana/rpc-api").GetLatestBlockhashApi & import("@solana/rpc-api").GetLeaderScheduleApi & import("@solana/rpc-api").GetMaxRetransmitSlotApi & import("@solana/rpc-api").GetMaxShredInsertSlotApi & import("@solana/rpc-api").GetMinimumBalanceForRentExemptionApi & import("@solana/rpc-api").GetMultipleAccountsApi & import("@solana/rpc-api").GetProgramAccountsApi & import("@solana/rpc-api").GetRecentPerformanceSamplesApi & import("@solana/rpc-api").GetRecentPrioritizationFeesApi & import("@solana/rpc-api").GetSignaturesForAddressApi & import("@solana/rpc-api").GetSignatureStatusesApi & import("@solana/rpc-api").GetSlotApi & import("@solana/rpc-api").GetSlotLeaderApi & import("@solana/rpc-api").GetSlotLeadersApi & import("@solana/rpc-api").GetStakeMinimumDelegationApi & import("@solana/rpc-api").GetSupplyApi & import("@solana/rpc-api").GetTokenAccountBalanceApi & import("@solana/rpc-api").GetTokenAccountsByDelegateApi & import("@solana/rpc-api").GetTokenAccountsByOwnerApi & import("@solana/rpc-api").GetTokenLargestAccountsApi & import("@solana/rpc-api").GetTokenSupplyApi & import("@solana/rpc-api").GetTransactionApi & import("@solana/rpc-api").GetTransactionCountApi & import("@solana/rpc-api").GetVersionApi & import("@solana/rpc-api").GetVoteAccountsApi & import("@solana/rpc-api").IsBlockhashValidApi & import("@solana/rpc-api").MinimumLedgerSlotApi & import("@solana/rpc-api").SendTransactionApi & import("@solana/rpc-api").SimulateTransactionApi) | (import("@solana/rpc-api").RequestAirdropApi & import("@solana/rpc-api").GetAccountInfoApi & import("@solana/rpc-api").GetBalanceApi & import("@solana/rpc-api").GetBlockApi & import("@solana/rpc-api").GetBlockCommitmentApi & import("@solana/rpc-api").GetBlockHeightApi & import("@solana/rpc-api").GetBlockProductionApi & import("@solana/rpc-api").GetBlocksApi & import("@solana/rpc-api").GetBlocksWithLimitApi & import("@solana/rpc-api").GetBlockTimeApi & import("@solana/rpc-api").GetClusterNodesApi & import("@solana/rpc-api").GetEpochInfoApi & import("@solana/rpc-api").GetEpochScheduleApi & import("@solana/rpc-api").GetFeeForMessageApi & import("@solana/rpc-api").GetFirstAvailableBlockApi & import("@solana/rpc-api").GetGenesisHashApi & import("@solana/rpc-api").GetHealthApi & import("@solana/rpc-api").GetHighestSnapshotSlotApi & import("@solana/rpc-api").GetIdentityApi & import("@solana/rpc-api").GetInflationGovernorApi & import("@solana/rpc-api").GetInflationRateApi & import("@solana/rpc-api").GetInflationRewardApi & import("@solana/rpc-api").GetLargestAccountsApi & import("@solana/rpc-api").GetLatestBlockhashApi & import("@solana/rpc-api").GetLeaderScheduleApi & import("@solana/rpc-api").GetMaxRetransmitSlotApi & import("@solana/rpc-api").GetMaxShredInsertSlotApi & import("@solana/rpc-api").GetMinimumBalanceForRentExemptionApi & import("@solana/rpc-api").GetMultipleAccountsApi & import("@solana/rpc-api").GetProgramAccountsApi & import("@solana/rpc-api").GetRecentPerformanceSamplesApi & import("@solana/rpc-api").GetRecentPrioritizationFeesApi & import("@solana/rpc-api").GetSignaturesForAddressApi & import("@solana/rpc-api").GetSignatureStatusesApi & import("@solana/rpc-api").GetSlotApi & import("@solana/rpc-api").GetSlotLeaderApi & import("@solana/rpc-api").GetSlotLeadersApi & import("@solana/rpc-api").GetStakeMinimumDelegationApi & import("@solana/rpc-api").GetSupplyApi & import("@solana/rpc-api").GetTokenAccountBalanceApi & import("@solana/rpc-api").GetTokenAccountsByDelegateApi & import("@solana/rpc-api").GetTokenAccountsByOwnerApi & import("@solana/rpc-api").GetTokenLargestAccountsApi & import("@solana/rpc-api").GetTokenSupplyApi & import("@solana/rpc-api").GetTransactionApi & import("@solana/rpc-api").GetTransactionCountApi & import("@solana/rpc-api").GetVersionApi & import("@solana/rpc-api").GetVoteAccountsApi & import("@solana/rpc-api").IsBlockhashValidApi & import("@solana/rpc-api").MinimumLedgerSlotApi & import("@solana/rpc-api").SendTransactionApi & import("@solana/rpc-api").SimulateTransactionApi)> | import("@solana/rpc").RpcTestnet<(import("@solana/rpc-api").GetAccountInfoApi & import("@solana/rpc-api").GetBalanceApi & import("@solana/rpc-api").GetBlockApi & import("@solana/rpc-api").GetBlockCommitmentApi & import("@solana/rpc-api").GetBlockHeightApi & import("@solana/rpc-api").GetBlockProductionApi & import("@solana/rpc-api").GetBlocksApi & import("@solana/rpc-api").GetBlocksWithLimitApi & import("@solana/rpc-api").GetBlockTimeApi & import("@solana/rpc-api").GetClusterNodesApi & import("@solana/rpc-api").GetEpochInfoApi & import("@solana/rpc-api").GetEpochScheduleApi & import("@solana/rpc-api").GetFeeForMessageApi & import("@solana/rpc-api").GetFirstAvailableBlockApi & import("@solana/rpc-api").GetGenesisHashApi & import("@solana/rpc-api").GetHealthApi & import("@solana/rpc-api").GetHighestSnapshotSlotApi & import("@solana/rpc-api").GetIdentityApi & import("@solana/rpc-api").GetInflationGovernorApi & import("@solana/rpc-api").GetInflationRateApi & import("@solana/rpc-api").GetInflationRewardApi & import("@solana/rpc-api").GetLargestAccountsApi & import("@solana/rpc-api").GetLatestBlockhashApi & import("@solana/rpc-api").GetLeaderScheduleApi & import("@solana/rpc-api").GetMaxRetransmitSlotApi & import("@solana/rpc-api").GetMaxShredInsertSlotApi & import("@solana/rpc-api").GetMinimumBalanceForRentExemptionApi & import("@solana/rpc-api").GetMultipleAccountsApi & import("@solana/rpc-api").GetProgramAccountsApi & import("@solana/rpc-api").GetRecentPerformanceSamplesApi & import("@solana/rpc-api").GetRecentPrioritizationFeesApi & import("@solana/rpc-api").GetSignaturesForAddressApi & import("@solana/rpc-api").GetSignatureStatusesApi & import("@solana/rpc-api").GetSlotApi & import("@solana/rpc-api").GetSlotLeaderApi & import("@solana/rpc-api").GetSlotLeadersApi & import("@solana/rpc-api").GetStakeMinimumDelegationApi & import("@solana/rpc-api").GetSupplyApi & import("@solana/rpc-api").GetTokenAccountBalanceApi & import("@solana/rpc-api").GetTokenAccountsByDelegateApi & import("@solana/rpc-api").GetTokenAccountsByOwnerApi & import("@solana/rpc-api").GetTokenLargestAccountsApi & import("@solana/rpc-api").GetTokenSupplyApi & import("@solana/rpc-api").GetTransactionApi & import("@solana/rpc-api").GetTransactionCountApi & import("@solana/rpc-api").GetVersionApi & import("@solana/rpc-api").GetVoteAccountsApi & import("@solana/rpc-api").IsBlockhashValidApi & import("@solana/rpc-api").MinimumLedgerSlotApi & import("@solana/rpc-api").SendTransactionApi & import("@solana/rpc-api").SimulateTransactionApi) | (import("@solana/rpc-api").RequestAirdropApi & import("@solana/rpc-api").GetAccountInfoApi & import("@solana/rpc-api").GetBalanceApi & import("@solana/rpc-api").GetBlockApi & import("@solana/rpc-api").GetBlockCommitmentApi & import("@solana/rpc-api").GetBlockHeightApi & import("@solana/rpc-api").GetBlockProductionApi & import("@solana/rpc-api").GetBlocksApi & import("@solana/rpc-api").GetBlocksWithLimitApi & import("@solana/rpc-api").GetBlockTimeApi & import("@solana/rpc-api").GetClusterNodesApi & import("@solana/rpc-api").GetEpochInfoApi & import("@solana/rpc-api").GetEpochScheduleApi & import("@solana/rpc-api").GetFeeForMessageApi & import("@solana/rpc-api").GetFirstAvailableBlockApi & import("@solana/rpc-api").GetGenesisHashApi & import("@solana/rpc-api").GetHealthApi & import("@solana/rpc-api").GetHighestSnapshotSlotApi & import("@solana/rpc-api").GetIdentityApi & import("@solana/rpc-api").GetInflationGovernorApi & import("@solana/rpc-api").GetInflationRateApi & import("@solana/rpc-api").GetInflationRewardApi & import("@solana/rpc-api").GetLargestAccountsApi & import("@solana/rpc-api").GetLatestBlockhashApi & import("@solana/rpc-api").GetLeaderScheduleApi & import("@solana/rpc-api").GetMaxRetransmitSlotApi & import("@solana/rpc-api").GetMaxShredInsertSlotApi & import("@solana/rpc-api").GetMinimumBalanceForRentExemptionApi & import("@solana/rpc-api").GetMultipleAccountsApi & import("@solana/rpc-api").GetProgramAccountsApi & import("@solana/rpc-api").GetRecentPerformanceSamplesApi & import("@solana/rpc-api").GetRecentPrioritizationFeesApi & import("@solana/rpc-api").GetSignaturesForAddressApi & import("@solana/rpc-api").GetSignatureStatusesApi & import("@solana/rpc-api").GetSlotApi & import("@solana/rpc-api").GetSlotLeaderApi & import("@solana/rpc-api").GetSlotLeadersApi & import("@solana/rpc-api").GetStakeMinimumDelegationApi & import("@solana/rpc-api").GetSupplyApi & import("@solana/rpc-api").GetTokenAccountBalanceApi & import("@solana/rpc-api").GetTokenAccountsByDelegateApi & import("@solana/rpc-api").GetTokenAccountsByOwnerApi & import("@solana/rpc-api").GetTokenLargestAccountsApi & import("@solana/rpc-api").GetTokenSupplyApi & import("@solana/rpc-api").GetTransactionApi & import("@solana/rpc-api").GetTransactionCountApi & import("@solana/rpc-api").GetVersionApi & import("@solana/rpc-api").GetVoteAccountsApi & import("@solana/rpc-api").IsBlockhashValidApi & import("@solana/rpc-api").MinimumLedgerSlotApi & import("@solana/rpc-api").SendTransactionApi & import("@solana/rpc-api").SimulateTransactionApi)>;
10
+ get programAddress(): Address;
11
+ get address(): Address<string>;
12
+ get data(): generated.Pool;
13
+ get activeBinId(): number;
14
+ get tokenMintX(): Address;
15
+ get tokenMintY(): Address;
16
+ get tokenVaultX(): Address;
17
+ get tokenVaultY(): Address;
18
+ get tokenProgramX(): Address;
19
+ get tokenProgramY(): Address;
20
+ refresh(data: Account<generated.Pool>): Promise<void>;
21
+ refresh(config?: FetchAccountConfig): Promise<void>;
22
+ getPosition(address: Address, config?: FetchAccountsConfig): Promise<Position>;
23
+ getPositionByPositionMint(positionMint: Address, config?: FetchAccountsConfig): Promise<Position>;
24
+ getAllPositionsByPositionMints(positionMints: Address[], config?: FetchAccountsConfig): Promise<Position[]>;
25
+ openPosition(owner: TransactionSigner, positionMint: TransactionSigner, { lowerBinId, upperBinId }: {
26
+ lowerBinId: number;
27
+ upperBinId: number;
28
+ }): Promise<Instruction[]>;
29
+ closePosition(owner: TransactionSigner, positionMint: Address): Promise<Instruction>;
30
+ swap(user: TransactionSigner, { xToY, amountIn, minAmountOut, }: {
31
+ xToY: boolean;
32
+ amountIn: bigint;
33
+ minAmountOut: bigint;
34
+ }): Promise<Instruction[]>;
35
+ quote({ xToY, amountIn, slippageToleranceBps, }: {
36
+ xToY: boolean;
37
+ amountIn: bigint;
38
+ slippageToleranceBps: number;
39
+ }): Promise<QuoteOutput>;
40
+ quoteAndSwap(user: TransactionSigner, { xToY, amountIn, slippageToleranceBps, }: {
41
+ xToY: boolean;
42
+ amountIn: bigint;
43
+ slippageToleranceBps: number;
44
+ }): Promise<{
45
+ quoteOutput: QuoteOutput;
46
+ instructions: Instruction[];
47
+ }>;
48
+ sync(user: TransactionSigner, desiredBinId: number): Promise<Instruction[]>;
49
+ setDynamicFeeConfig(authority: TransactionSigner, dynamicFeeConfig: generated.DynamicFeeConfig): Promise<Instruction>;
50
+ setProtocolShare(authority: TransactionSigner, protocolShare: number): Promise<Instruction>;
51
+ claimProtocolFee(authority: TransactionSigner): Promise<Instruction[]>;
52
+ static load(rpc: ReturnType<typeof createSolanaRpc>, address: Address, programAddress: Address, config?: FetchAccountConfig): Promise<Pool>;
53
+ }
54
+ export declare function findPoolAddress(seeds: {
55
+ tokenMintX: Address;
56
+ tokenMintY: Address;
57
+ binStep: number;
58
+ feeRate: number;
59
+ }, config: ProgramConfig): Promise<Address>;
60
+ export declare function createPool({ authority, binStep, feeRate, protocolShare, activeBinId, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }: {
61
+ authority: TransactionSigner;
62
+ binStep: number;
63
+ feeRate: number;
64
+ protocolShare: number;
65
+ activeBinId: number;
66
+ tokenMintX: Address;
67
+ tokenMintY: Address;
68
+ tokenProgramX: Address;
69
+ tokenProgramY: Address;
70
+ }, config: ProgramConfig): Promise<Instruction>;
71
+ //# sourceMappingURL=pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/entities/pool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,189 @@
1
+ import { AccountRole, } from "@solana/kit";
2
+ import { fetchAllMint, } from "@solana-program/token-2022";
3
+ import { generated } from "..";
4
+ import { quote } from "../quote";
5
+ import { isAccount } from "../utils/type_guards";
6
+ import { resolveAdminConfigAddress } from "./admin_config";
7
+ import { processAssociatedTokenAccountPair } from "../utils/ata";
8
+ import { generateBinArrayIndicesForSwap, generateBinArrayIndicesForSync, } from "../utils/bin_location";
9
+ import { resolveTransferFee } from "../utils/transfer_fee";
10
+ import { MAX_BIN_ARRAYS_PER_SWAP, MAX_BIN_ARRAYS_PER_SYNC, } from "../utils/constants";
11
+ import { Position, openPosition, closePosition, findPositionAddress, findAllPositionAddresses, } from "./position";
12
+ import { findAllBinArrayAddresses } from "./bin_array";
13
+ export class Pool {
14
+ #programAddress;
15
+ #rpc;
16
+ #account;
17
+ #mintX;
18
+ #mintY;
19
+ constructor(rpc, account, mintX, mintY, programAddress) {
20
+ this.#rpc = rpc;
21
+ this.#account = account;
22
+ this.#mintX = mintX;
23
+ this.#mintY = mintY;
24
+ this.#programAddress = programAddress;
25
+ }
26
+ get rpc() { return this.#rpc; }
27
+ get programAddress() { return this.#programAddress; }
28
+ get address() { return this.#account.address; }
29
+ get data() { return this.#account.data; }
30
+ get activeBinId() { return this.data.activeBinId; }
31
+ get tokenMintX() { return this.data.tokenMintX; }
32
+ get tokenMintY() { return this.data.tokenMintY; }
33
+ get tokenVaultX() { return this.data.tokenVaultX; }
34
+ get tokenVaultY() { return this.data.tokenVaultY; }
35
+ get tokenProgramX() { return this.#mintX.programAddress; }
36
+ get tokenProgramY() { return this.#mintY.programAddress; }
37
+ async refresh(arg) {
38
+ if (!isAccount(arg)) {
39
+ arg = await generated.fetchPool(this.#rpc, this.address, arg);
40
+ }
41
+ this.#account = arg;
42
+ }
43
+ async getPosition(address, config) {
44
+ return await Position.load(this, address, config);
45
+ }
46
+ async getPositionByPositionMint(positionMint, config) {
47
+ const address = await findPositionAddress({ positionMint }, { programAddress: this.#programAddress });
48
+ return await Position.load(this, address, config);
49
+ }
50
+ async getAllPositionsByPositionMints(positionMints, config) {
51
+ const addresses = await findAllPositionAddresses({ positionMints }, { programAddress: this.#programAddress });
52
+ return await Position.loadAll(this, addresses, config);
53
+ }
54
+ async openPosition(owner, positionMint, { lowerBinId, upperBinId }) {
55
+ return await openPosition(this.#rpc, { owner, positionMint, pool: this.address, lowerBinId, upperBinId }, { programAddress: this.#programAddress });
56
+ }
57
+ async closePosition(owner, positionMint) {
58
+ return await closePosition({ owner, positionMint }, { programAddress: this.#programAddress });
59
+ }
60
+ async swap(user, { xToY, amountIn, minAmountOut, }) {
61
+ const indices = generateBinArrayIndicesForSwap(this.activeBinId, xToY, MAX_BIN_ARRAYS_PER_SWAP);
62
+ const [binArrayAddresses, { ataX: tokenUserAccountX, ataY: tokenUserAccountY, preInstructions, postInstructions, }] = await Promise.all([
63
+ findAllBinArrayAddresses({ pool: this.address, indices }, { programAddress: this.#programAddress }),
64
+ processAssociatedTokenAccountPair({
65
+ owner: user,
66
+ tokenMintX: this.tokenMintX,
67
+ tokenMintY: this.tokenMintY,
68
+ tokenProgramX: this.tokenProgramX,
69
+ tokenProgramY: this.tokenProgramY,
70
+ amountX: xToY ? amountIn : undefined,
71
+ amountY: xToY ? undefined : amountIn,
72
+ }),
73
+ ]);
74
+ const swapIx = generated.getSwapInstruction({
75
+ user,
76
+ pool: this.address,
77
+ tokenMintX: this.tokenMintX,
78
+ tokenMintY: this.tokenMintY,
79
+ tokenUserAccountX,
80
+ tokenUserAccountY,
81
+ tokenVaultX: this.tokenVaultX,
82
+ tokenVaultY: this.tokenVaultY,
83
+ tokenProgramX: this.tokenProgramX,
84
+ tokenProgramY: this.tokenProgramY,
85
+ amountIn,
86
+ minAmountOut,
87
+ xToY,
88
+ }, { programAddress: this.#programAddress });
89
+ const remainingAccounts = binArrayAddresses.map(address => ({ address, role: AccountRole.WRITABLE }));
90
+ const swapIxWithBinArrays = { ...swapIx, accounts: [...swapIx.accounts, ...remainingAccounts] };
91
+ return [...preInstructions, swapIxWithBinArrays, ...postInstructions];
92
+ }
93
+ async quote({ xToY, amountIn, slippageToleranceBps, }) {
94
+ const indices = generateBinArrayIndicesForSwap(this.activeBinId, xToY, MAX_BIN_ARRAYS_PER_SWAP);
95
+ const binArrayAddresses = await findAllBinArrayAddresses({ pool: this.address, indices }, { programAddress: this.#programAddress });
96
+ const [maybeBinArrays, { epoch }] = await Promise.all([
97
+ generated.fetchAllMaybeBinArray(this.#rpc, binArrayAddresses),
98
+ this.#rpc.getEpochInfo().send(),
99
+ ]);
100
+ const binArrays = maybeBinArrays.map(maybeBinArray => maybeBinArray.exists ? maybeBinArray.data : undefined);
101
+ const transferFeeX = resolveTransferFee(this.#mintX.data, epoch);
102
+ const transferFeeY = resolveTransferFee(this.#mintY.data, epoch);
103
+ return await quote({
104
+ amountIn,
105
+ xToY,
106
+ slippageToleranceBps,
107
+ now: BigInt(Math.floor(Date.now() / 1000)),
108
+ poolState: this.data,
109
+ inputTransferFee: xToY ? transferFeeX : transferFeeY,
110
+ outputTransferFee: xToY ? transferFeeY : transferFeeX,
111
+ binArrays,
112
+ });
113
+ }
114
+ async quoteAndSwap(user, { xToY, amountIn, slippageToleranceBps, }) {
115
+ const quoteOutput = await this.quote({ xToY, amountIn, slippageToleranceBps });
116
+ const instructions = await this.swap(user, { xToY, amountIn, minAmountOut: quoteOutput.minAmountOut });
117
+ return { quoteOutput, instructions };
118
+ }
119
+ async sync(user, desiredBinId) {
120
+ const indices = generateBinArrayIndicesForSync(this.activeBinId, desiredBinId, MAX_BIN_ARRAYS_PER_SYNC);
121
+ const binArrayAddresses = await findAllBinArrayAddresses({ pool: this.address, indices }, { programAddress: this.#programAddress });
122
+ const syncPoolIx = generated.getSyncPoolInstruction({ user, pool: this.address, desiredBinId }, { programAddress: this.#programAddress });
123
+ const remainingAccounts = binArrayAddresses.map(address => ({ address, role: AccountRole.READONLY }));
124
+ return [{ ...syncPoolIx, accounts: [...syncPoolIx.accounts, ...remainingAccounts] }];
125
+ }
126
+ async setDynamicFeeConfig(authority, dynamicFeeConfig) {
127
+ const adminConfig = await resolveAdminConfigAddress(this.#programAddress);
128
+ return await generated.getSetPoolDynamicFeeConfigInstructionAsync({ authority, pool: this.address, config: dynamicFeeConfig, adminConfig }, { programAddress: this.#programAddress });
129
+ }
130
+ async setProtocolShare(authority, protocolShare) {
131
+ const adminConfig = await resolveAdminConfigAddress(this.#programAddress);
132
+ return await generated.getSetPoolProtocolShareInstructionAsync({ authority, pool: this.address, protocolShare, adminConfig }, { programAddress: this.#programAddress });
133
+ }
134
+ async claimProtocolFee(authority) {
135
+ const [adminConfig, { ataX: tokenAdminAccountX, ataY: tokenAdminAccountY, preInstructions, postInstructions, }] = await Promise.all([
136
+ resolveAdminConfigAddress(this.#programAddress),
137
+ processAssociatedTokenAccountPair({
138
+ owner: authority,
139
+ tokenMintX: this.tokenMintX,
140
+ tokenMintY: this.tokenMintY,
141
+ tokenProgramX: this.tokenProgramX,
142
+ tokenProgramY: this.tokenProgramY,
143
+ }),
144
+ ]);
145
+ const claimProtocolFeeIx = await generated.getClaimProtocolFeeInstructionAsync({
146
+ authority,
147
+ pool: this.address,
148
+ adminConfig,
149
+ tokenMintX: this.tokenMintX,
150
+ tokenMintY: this.tokenMintY,
151
+ tokenVaultX: this.tokenVaultX,
152
+ tokenVaultY: this.tokenVaultY,
153
+ tokenAdminAccountX,
154
+ tokenAdminAccountY,
155
+ tokenProgramX: this.tokenProgramX,
156
+ tokenProgramY: this.tokenProgramY,
157
+ }, { programAddress: this.#programAddress });
158
+ return [...preInstructions, claimProtocolFeeIx, ...postInstructions];
159
+ }
160
+ static async load(rpc, address, programAddress, config) {
161
+ const pool = await generated.fetchPool(rpc, address, config);
162
+ const { tokenMintX, tokenMintY } = pool.data;
163
+ const [mintX, mintY] = await fetchAllMint(rpc, [tokenMintX, tokenMintY], config);
164
+ return new Pool(rpc, pool, mintX, mintY, programAddress);
165
+ }
166
+ }
167
+ export async function findPoolAddress(seeds, config) {
168
+ const [address] = await generated.findPoolPda(seeds, config);
169
+ return address;
170
+ }
171
+ export async function createPool({ authority, binStep, feeRate, protocolShare, activeBinId, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }, config) {
172
+ const [pool, adminConfig] = await Promise.all([
173
+ findPoolAddress({ tokenMintX, tokenMintY, binStep, feeRate }, config),
174
+ resolveAdminConfigAddress(config.programAddress),
175
+ ]);
176
+ return await generated.getCreatePoolInstructionAsync({
177
+ authority,
178
+ pool,
179
+ adminConfig,
180
+ binStep,
181
+ feeRate,
182
+ protocolShare,
183
+ activeBinId,
184
+ tokenMintX,
185
+ tokenMintY,
186
+ tokenProgramX,
187
+ tokenProgramY,
188
+ }, config);
189
+ }
@@ -0,0 +1,55 @@
1
+ import { createSolanaRpc, type Address, type Account, type Instruction, type TransactionSigner, type FetchAccountsConfig } from "@solana/kit";
2
+ import { generated } from "..";
3
+ import { type BinIdRange } from "../utils/bin_location";
4
+ import { Pool } from "./pool";
5
+ import { type ProgramConfig } from "./types";
6
+ export declare class Position {
7
+ #private;
8
+ private constructor();
9
+ get address(): Address<string>;
10
+ get data(): generated.Position;
11
+ get positionMint(): Address;
12
+ get binArrayAddresses(): {
13
+ lowerBinArray: Address;
14
+ upperBinArray?: Address | undefined;
15
+ };
16
+ getPendingFee(): {
17
+ amountX: bigint;
18
+ amountY: bigint;
19
+ };
20
+ refresh(data: [Account<generated.Position>, Account<generated.BinArray>[]]): Promise<void>;
21
+ refresh(config?: FetchAccountsConfig): Promise<void>;
22
+ depositByWeight(owner: TransactionSigner, { amountX, amountY, lowerBinId, binWeights, maxActiveBinSlippage, distributionMode, }: {
23
+ amountX: bigint;
24
+ amountY: bigint;
25
+ lowerBinId: number;
26
+ binWeights: number[];
27
+ maxActiveBinSlippage: number;
28
+ distributionMode: generated.DistributionMode;
29
+ }): Promise<Instruction[]>;
30
+ claimFee(owner: TransactionSigner, range?: BinIdRange): Promise<Instruction[]>;
31
+ withdraw(owner: TransactionSigner, bpsToRemove: number, range?: BinIdRange): Promise<Instruction[]>;
32
+ close(owner: TransactionSigner): Promise<Instruction>;
33
+ static load(pool: Pool, address: Address, config?: FetchAccountsConfig): Promise<Position>;
34
+ static loadAll(pool: Pool, addresses: Address[], config?: FetchAccountsConfig): Promise<Position[]>;
35
+ static refreshAll(rpc: ReturnType<typeof createSolanaRpc>, positions: Position[], config?: FetchAccountsConfig): Promise<void>;
36
+ }
37
+ export declare function findPositionAddress(seeds: {
38
+ positionMint: Address;
39
+ }, config: ProgramConfig): Promise<Address>;
40
+ export declare function findAllPositionAddresses({ positionMints }: {
41
+ positionMints: Address[];
42
+ }, config: ProgramConfig): Promise<Address[]>;
43
+ export declare function openPosition(rpc: ReturnType<typeof createSolanaRpc>, { owner, positionMint, pool, lowerBinId, upperBinId, }: {
44
+ owner: TransactionSigner;
45
+ positionMint: TransactionSigner;
46
+ pool: Address;
47
+ lowerBinId: number;
48
+ upperBinId: number;
49
+ }, config: ProgramConfig): Promise<Instruction[]>;
50
+ export declare function closePosition({ owner, positionMint, position, }: {
51
+ owner: TransactionSigner;
52
+ positionMint: Address;
53
+ position?: Address;
54
+ }, config: ProgramConfig): Promise<Instruction>;
55
+ //# sourceMappingURL=position.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../src/entities/position.ts"],"names":[],"mappings":"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"}