@picon-finance/dlmm-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +48 -0
- package/dist/actions/accept_admin_authority.d.ts +13 -0
- package/dist/actions/accept_admin_authority.d.ts.map +1 -0
- package/dist/actions/accept_admin_authority.js +7 -0
- package/dist/actions/claim_fee.d.ts +21 -0
- package/dist/actions/claim_fee.d.ts.map +1 -0
- package/dist/actions/claim_fee.js +40 -0
- package/dist/actions/claim_multiple_fees.d.ts +19 -0
- package/dist/actions/claim_multiple_fees.d.ts.map +1 -0
- package/dist/actions/claim_multiple_fees.js +81 -0
- package/dist/actions/claim_protocol_fee.d.ts +18 -0
- package/dist/actions/claim_protocol_fee.d.ts.map +1 -0
- package/dist/actions/claim_protocol_fee.js +33 -0
- package/dist/actions/close_position.d.ts +14 -0
- package/dist/actions/close_position.d.ts.map +1 -0
- package/dist/actions/close_position.js +14 -0
- package/dist/actions/create_admin_config.d.ts +15 -0
- package/dist/actions/create_admin_config.d.ts.map +1 -0
- package/dist/actions/create_admin_config.js +30 -0
- package/dist/actions/create_bin_array.d.ts +16 -0
- package/dist/actions/create_bin_array.d.ts.map +1 -0
- package/dist/actions/create_bin_array.js +10 -0
- package/dist/actions/create_pool.d.ts +21 -0
- package/dist/actions/create_pool.d.ts.map +1 -0
- package/dist/actions/create_pool.js +22 -0
- package/dist/actions/delete_bin_array.d.ts +16 -0
- package/dist/actions/delete_bin_array.d.ts.map +1 -0
- package/dist/actions/delete_bin_array.js +13 -0
- package/dist/actions/deposit_by_weight.d.ts +27 -0
- package/dist/actions/deposit_by_weight.d.ts.map +1 -0
- package/dist/actions/deposit_by_weight.js +52 -0
- package/dist/actions/get_admin_config.d.ts +4 -0
- package/dist/actions/get_admin_config.d.ts.map +1 -0
- package/dist/actions/get_admin_config.js +7 -0
- package/dist/actions/get_bin_arrays_by_indices.d.ts +5 -0
- package/dist/actions/get_bin_arrays_by_indices.d.ts.map +1 -0
- package/dist/actions/get_bin_arrays_by_indices.js +6 -0
- package/dist/actions/get_pool.d.ts +4 -0
- package/dist/actions/get_pool.d.ts.map +1 -0
- package/dist/actions/get_pool.js +5 -0
- package/dist/actions/get_position.d.ts +4 -0
- package/dist/actions/get_position.d.ts.map +1 -0
- package/dist/actions/get_position.js +5 -0
- package/dist/actions/get_position_by_position_mint.d.ts +4 -0
- package/dist/actions/get_position_by_position_mint.d.ts.map +1 -0
- package/dist/actions/get_position_by_position_mint.js +6 -0
- package/dist/actions/get_positions_by_owner.d.ts +5 -0
- package/dist/actions/get_positions_by_owner.d.ts.map +1 -0
- package/dist/actions/get_positions_by_owner.js +33 -0
- package/dist/actions/get_positions_by_position_mints.d.ts +5 -0
- package/dist/actions/get_positions_by_position_mints.d.ts.map +1 -0
- package/dist/actions/get_positions_by_position_mints.js +9 -0
- package/dist/actions/helpers/build_swap_transaction_message.d.ts +22 -0
- package/dist/actions/helpers/build_swap_transaction_message.d.ts.map +1 -0
- package/dist/actions/helpers/build_swap_transaction_message.js +50 -0
- package/dist/actions/helpers/build_transaction_message.d.ts +20 -0
- package/dist/actions/helpers/build_transaction_message.d.ts.map +1 -0
- package/dist/actions/helpers/build_transaction_message.js +5 -0
- package/dist/actions/helpers/index.d.ts +8 -0
- package/dist/actions/helpers/index.d.ts.map +1 -0
- package/dist/actions/helpers/index.js +7 -0
- package/dist/actions/helpers/resolve_active_bin_and_mints.d.ts +12 -0
- package/dist/actions/helpers/resolve_active_bin_and_mints.d.ts.map +1 -0
- package/dist/actions/helpers/resolve_active_bin_and_mints.js +13 -0
- package/dist/actions/helpers/resolve_admin_config_address.d.ts +3 -0
- package/dist/actions/helpers/resolve_admin_config_address.d.ts.map +1 -0
- package/dist/actions/helpers/resolve_admin_config_address.js +9 -0
- package/dist/actions/helpers/resolve_mint_info.d.ts +10 -0
- package/dist/actions/helpers/resolve_mint_info.d.ts.map +1 -0
- package/dist/actions/helpers/resolve_mint_info.js +20 -0
- package/dist/actions/helpers/resolve_position_range.d.ts +12 -0
- package/dist/actions/helpers/resolve_position_range.d.ts.map +1 -0
- package/dist/actions/helpers/resolve_position_range.js +12 -0
- package/dist/actions/helpers/resolve_token_mints_and_programs.d.ts +15 -0
- package/dist/actions/helpers/resolve_token_mints_and_programs.d.ts.map +1 -0
- package/dist/actions/helpers/resolve_token_mints_and_programs.js +29 -0
- package/dist/actions/index.d.ts +31 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +28 -0
- package/dist/actions/is_admin_config_active.d.ts +4 -0
- package/dist/actions/is_admin_config_active.d.ts.map +1 -0
- package/dist/actions/is_admin_config_active.js +7 -0
- package/dist/actions/on_event.d.ts +11 -0
- package/dist/actions/on_event.d.ts.map +1 -0
- package/dist/actions/on_event.js +50 -0
- package/dist/actions/open_position.d.ts +17 -0
- package/dist/actions/open_position.d.ts.map +1 -0
- package/dist/actions/open_position.js +31 -0
- package/dist/actions/quote.d.ts +13 -0
- package/dist/actions/quote.d.ts.map +1 -0
- package/dist/actions/quote.js +43 -0
- package/dist/actions/set_metadata_update_authority.d.ts +14 -0
- package/dist/actions/set_metadata_update_authority.d.ts.map +1 -0
- package/dist/actions/set_metadata_update_authority.js +7 -0
- package/dist/actions/set_pool_dynamic_fee_config.d.ts +16 -0
- package/dist/actions/set_pool_dynamic_fee_config.d.ts.map +1 -0
- package/dist/actions/set_pool_dynamic_fee_config.js +7 -0
- package/dist/actions/set_pool_protocol_share.d.ts +15 -0
- package/dist/actions/set_pool_protocol_share.d.ts.map +1 -0
- package/dist/actions/set_pool_protocol_share.js +7 -0
- package/dist/actions/swap.d.ts +22 -0
- package/dist/actions/swap.d.ts.map +1 -0
- package/dist/actions/swap.js +19 -0
- package/dist/actions/sync_pool.d.ts +15 -0
- package/dist/actions/sync_pool.d.ts.map +1 -0
- package/dist/actions/sync_pool.js +26 -0
- package/dist/actions/transfer_admin_authority.d.ts +14 -0
- package/dist/actions/transfer_admin_authority.d.ts.map +1 -0
- package/dist/actions/transfer_admin_authority.js +7 -0
- package/dist/actions/withdraw.d.ts +22 -0
- package/dist/actions/withdraw.d.ts.map +1 -0
- package/dist/actions/withdraw.js +41 -0
- package/dist/events.d.ts +93 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +166 -0
- package/dist/generated/accounts/adminConfig.d.ts +35 -0
- package/dist/generated/accounts/adminConfig.d.ts.map +1 -0
- package/dist/generated/accounts/adminConfig.js +60 -0
- package/dist/generated/accounts/binArray.d.ts +40 -0
- package/dist/generated/accounts/binArray.d.ts.map +1 -0
- package/dist/generated/accounts/binArray.js +65 -0
- package/dist/generated/accounts/index.d.ts +12 -0
- package/dist/generated/accounts/index.d.ts.map +1 -0
- package/dist/generated/accounts/index.js +11 -0
- package/dist/generated/accounts/pool.d.ts +54 -0
- package/dist/generated/accounts/pool.d.ts.map +1 -0
- package/dist/generated/accounts/pool.js +79 -0
- package/dist/generated/accounts/position.d.ts +42 -0
- package/dist/generated/accounts/position.d.ts.map +1 -0
- package/dist/generated/accounts/position.js +67 -0
- package/dist/generated/errors/index.d.ts +9 -0
- package/dist/generated/errors/index.d.ts.map +1 -0
- package/dist/generated/errors/index.js +8 -0
- package/dist/generated/errors/piconDlmm.d.ts +58 -0
- package/dist/generated/errors/piconDlmm.d.ts.map +1 -0
- package/dist/generated/errors/piconDlmm.js +80 -0
- package/dist/generated/index.d.ts +14 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +13 -0
- package/dist/generated/instructions/acceptAdminAuthority.d.ts +47 -0
- package/dist/generated/instructions/acceptAdminAuthority.d.ts.map +1 -0
- package/dist/generated/instructions/acceptAdminAuthority.js +99 -0
- package/dist/generated/instructions/claimFee.d.ts +83 -0
- package/dist/generated/instructions/claimFee.d.ts.map +1 -0
- package/dist/generated/instructions/claimFee.js +127 -0
- package/dist/generated/instructions/claimProtocolFee.d.ts +83 -0
- package/dist/generated/instructions/claimProtocolFee.d.ts.map +1 -0
- package/dist/generated/instructions/claimProtocolFee.js +147 -0
- package/dist/generated/instructions/closePosition.d.ts +59 -0
- package/dist/generated/instructions/closePosition.d.ts.map +1 -0
- package/dist/generated/instructions/closePosition.js +124 -0
- package/dist/generated/instructions/createAdminConfig.d.ts +68 -0
- package/dist/generated/instructions/createAdminConfig.d.ts.map +1 -0
- package/dist/generated/instructions/createAdminConfig.js +132 -0
- package/dist/generated/instructions/createBinArray.d.ts +64 -0
- package/dist/generated/instructions/createBinArray.d.ts.map +1 -0
- package/dist/generated/instructions/createBinArray.js +122 -0
- package/dist/generated/instructions/createPool.d.ts +100 -0
- package/dist/generated/instructions/createPool.d.ts.map +1 -0
- package/dist/generated/instructions/createPool.js +202 -0
- package/dist/generated/instructions/deleteBinArray.d.ts +68 -0
- package/dist/generated/instructions/deleteBinArray.d.ts.map +1 -0
- package/dist/generated/instructions/deleteBinArray.js +130 -0
- package/dist/generated/instructions/depositByWeight.d.ts +99 -0
- package/dist/generated/instructions/depositByWeight.d.ts.map +1 -0
- package/dist/generated/instructions/depositByWeight.js +136 -0
- package/dist/generated/instructions/index.d.ts +25 -0
- package/dist/generated/instructions/index.d.ts.map +1 -0
- package/dist/generated/instructions/index.js +24 -0
- package/dist/generated/instructions/openPosition.d.ts +88 -0
- package/dist/generated/instructions/openPosition.d.ts.map +1 -0
- package/dist/generated/instructions/openPosition.js +200 -0
- package/dist/generated/instructions/setMetadataUpdateAuthority.d.ts +52 -0
- package/dist/generated/instructions/setMetadataUpdateAuthority.d.ts.map +1 -0
- package/dist/generated/instructions/setMetadataUpdateAuthority.js +98 -0
- package/dist/generated/instructions/setPoolDynamicFeeConfig.d.ts +57 -0
- package/dist/generated/instructions/setPoolDynamicFeeConfig.d.ts.map +1 -0
- package/dist/generated/instructions/setPoolDynamicFeeConfig.js +107 -0
- package/dist/generated/instructions/setPoolProtocolShare.d.ts +56 -0
- package/dist/generated/instructions/setPoolProtocolShare.d.ts.map +1 -0
- package/dist/generated/instructions/setPoolProtocolShare.js +106 -0
- package/dist/generated/instructions/swap.d.ts +74 -0
- package/dist/generated/instructions/swap.d.ts.map +1 -0
- package/dist/generated/instructions/swap.js +108 -0
- package/dist/generated/instructions/syncPool.d.ts +44 -0
- package/dist/generated/instructions/syncPool.d.ts.map +1 -0
- package/dist/generated/instructions/syncPool.js +71 -0
- package/dist/generated/instructions/transferAdminAuthority.d.ts +52 -0
- package/dist/generated/instructions/transferAdminAuthority.d.ts.map +1 -0
- package/dist/generated/instructions/transferAdminAuthority.js +98 -0
- package/dist/generated/instructions/withdraw.d.ts +86 -0
- package/dist/generated/instructions/withdraw.d.ts.map +1 -0
- package/dist/generated/instructions/withdraw.js +129 -0
- package/dist/generated/pdas/adminConfig.d.ts +12 -0
- package/dist/generated/pdas/adminConfig.d.ts.map +1 -0
- package/dist/generated/pdas/adminConfig.js +19 -0
- package/dist/generated/pdas/binArray.d.ts +16 -0
- package/dist/generated/pdas/binArray.d.ts.map +1 -0
- package/dist/generated/pdas/binArray.js +19 -0
- package/dist/generated/pdas/index.d.ts +12 -0
- package/dist/generated/pdas/index.d.ts.map +1 -0
- package/dist/generated/pdas/index.js +11 -0
- package/dist/generated/pdas/pool.d.ts +18 -0
- package/dist/generated/pdas/pool.d.ts.map +1 -0
- package/dist/generated/pdas/pool.js +21 -0
- package/dist/generated/pdas/position.d.ts +15 -0
- package/dist/generated/pdas/position.d.ts.map +1 -0
- package/dist/generated/pdas/position.js +18 -0
- package/dist/generated/programs/index.d.ts +9 -0
- package/dist/generated/programs/index.d.ts.map +1 -0
- package/dist/generated/programs/index.js +8 -0
- package/dist/generated/programs/piconDlmm.d.ts +126 -0
- package/dist/generated/programs/piconDlmm.d.ts.map +1 -0
- package/dist/generated/programs/piconDlmm.js +285 -0
- package/dist/generated/types/bin.d.ts +28 -0
- package/dist/generated/types/bin.d.ts.map +1 -0
- package/dist/generated/types/bin.js +31 -0
- package/dist/generated/types/distributionMode.d.ts +19 -0
- package/dist/generated/types/distributionMode.d.ts.map +1 -0
- package/dist/generated/types/distributionMode.js +24 -0
- package/dist/generated/types/dynamicFeeConfig.d.ts +29 -0
- package/dist/generated/types/dynamicFeeConfig.d.ts.map +1 -0
- package/dist/generated/types/dynamicFeeConfig.js +29 -0
- package/dist/generated/types/dynamicFeeState.d.ts +27 -0
- package/dist/generated/types/dynamicFeeState.d.ts.map +1 -0
- package/dist/generated/types/dynamicFeeState.js +30 -0
- package/dist/generated/types/feeState.d.ts +26 -0
- package/dist/generated/types/feeState.d.ts.map +1 -0
- package/dist/generated/types/feeState.js +29 -0
- package/dist/generated/types/index.d.ts +13 -0
- package/dist/generated/types/index.d.ts.map +1 -0
- package/dist/generated/types/index.js +12 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/picon_dlmm.json +2378 -0
- package/dist/program_addresses.d.ts +4 -0
- package/dist/program_addresses.d.ts.map +1 -0
- package/dist/program_addresses.js +8 -0
- package/dist/quote/index.d.ts +4 -0
- package/dist/quote/index.d.ts.map +1 -0
- package/dist/quote/index.js +5 -0
- package/dist/quote/wasm-node/picon_dlmm_quote.d.ts +6 -0
- package/dist/quote/wasm-node/picon_dlmm_quote.d.ts.map +1 -0
- package/dist/quote/wasm-node/picon_dlmm_quote.js +398 -0
- package/dist/quote/wasm-node/picon_dlmm_quote_bg.wasm +0 -0
- package/dist/quote/wasm-node-loader.d.ts +4 -0
- package/dist/quote/wasm-node-loader.d.ts.map +1 -0
- package/dist/quote/wasm-node-loader.js +7 -0
- package/dist/quote/wasm-web/picon_dlmm_quote.d.ts +9 -0
- package/dist/quote/wasm-web/picon_dlmm_quote.d.ts.map +1 -0
- package/dist/quote/wasm-web/picon_dlmm_quote.js +486 -0
- package/dist/quote/wasm-web/picon_dlmm_quote_bg.wasm +0 -0
- package/dist/quote/wasm-web-loader.d.ts +4 -0
- package/dist/quote/wasm-web-loader.d.ts.map +1 -0
- package/dist/quote/wasm-web-loader.js +12 -0
- package/dist/utils/admin_config.d.ts +3 -0
- package/dist/utils/admin_config.d.ts.map +1 -0
- package/dist/utils/admin_config.js +4 -0
- package/dist/utils/ata.d.ts +49 -0
- package/dist/utils/ata.d.ts.map +1 -0
- package/dist/utils/ata.js +113 -0
- package/dist/utils/bin_array.d.ts +8 -0
- package/dist/utils/bin_array.d.ts.map +1 -0
- package/dist/utils/bin_array.js +29 -0
- package/dist/utils/bin_location.d.ts +11 -0
- package/dist/utils/bin_location.d.ts.map +1 -0
- package/dist/utils/bin_location.js +55 -0
- package/dist/utils/chunk.d.ts +2 -0
- package/dist/utils/chunk.d.ts.map +1 -0
- package/dist/utils/chunk.js +7 -0
- package/dist/utils/compute_budget.d.ts +11 -0
- package/dist/utils/compute_budget.d.ts.map +1 -0
- package/dist/utils/compute_budget.js +22 -0
- package/dist/utils/constants.d.ts +12 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +20 -0
- package/dist/utils/transfer_fee.d.ts +4 -0
- package/dist/utils/transfer_fee.d.ts.map +1 -0
- package/dist/utils/transfer_fee.js +21 -0
- package/dist/utils/type_guards.d.ts +2 -0
- package/dist/utils/type_guards.d.ts.map +1 -0
- package/dist/utils/type_guards.js +3 -0
- package/package.json +59 -0
- package/src/actions/accept_admin_authority.ts +17 -0
- package/src/actions/claim_fee.ts +84 -0
- package/src/actions/claim_multiple_fees.ts +123 -0
- package/src/actions/claim_protocol_fee.ts +68 -0
- package/src/actions/close_position.ts +21 -0
- package/src/actions/create_admin_config.ts +50 -0
- package/src/actions/create_bin_array.ts +30 -0
- package/src/actions/create_pool.ts +49 -0
- package/src/actions/delete_bin_array.ts +33 -0
- package/src/actions/deposit_by_weight.ts +107 -0
- package/src/actions/get_admin_config.ts +13 -0
- package/src/actions/get_bin_arrays_by_indices.ts +15 -0
- package/src/actions/get_pool.ts +8 -0
- package/src/actions/get_position.ts +8 -0
- package/src/actions/get_position_by_position_mint.ts +14 -0
- package/src/actions/get_positions_by_owner.ts +48 -0
- package/src/actions/get_positions_by_position_mints.ts +21 -0
- package/src/actions/helpers/build_swap_transaction_message.ts +86 -0
- package/src/actions/helpers/build_transaction_message.ts +45 -0
- package/src/actions/helpers/index.ts +7 -0
- package/src/actions/helpers/resolve_active_bin_and_mints.ts +21 -0
- package/src/actions/helpers/resolve_admin_config_address.ts +11 -0
- package/src/actions/helpers/resolve_mint_info.ts +36 -0
- package/src/actions/helpers/resolve_position_range.ts +21 -0
- package/src/actions/helpers/resolve_token_mints_and_programs.ts +56 -0
- package/src/actions/index.ts +34 -0
- package/src/actions/is_admin_config_active.ts +14 -0
- package/src/actions/on_event.ts +78 -0
- package/src/actions/open_position.ts +66 -0
- package/src/actions/quote.ts +70 -0
- package/src/actions/set_metadata_update_authority.ts +17 -0
- package/src/actions/set_pool_dynamic_fee_config.ts +17 -0
- package/src/actions/set_pool_protocol_share.ts +17 -0
- package/src/actions/swap.ts +56 -0
- package/src/actions/sync_pool.ts +35 -0
- package/src/actions/transfer_admin_authority.ts +17 -0
- package/src/actions/withdraw.ts +87 -0
- package/src/events.ts +279 -0
- package/src/generated/accounts/adminConfig.ts +147 -0
- package/src/generated/accounts/binArray.ts +155 -0
- package/src/generated/accounts/index.ts +12 -0
- package/src/generated/accounts/pool.ts +192 -0
- package/src/generated/accounts/position.ts +164 -0
- package/src/generated/errors/index.ts +9 -0
- package/src/generated/errors/piconDlmm.ts +124 -0
- package/src/generated/index.ts +14 -0
- package/src/generated/instructions/acceptAdminAuthority.ts +262 -0
- package/src/generated/instructions/claimFee.ts +395 -0
- package/src/generated/instructions/claimProtocolFee.ts +462 -0
- package/src/generated/instructions/closePosition.ts +342 -0
- package/src/generated/instructions/createAdminConfig.ts +369 -0
- package/src/generated/instructions/createBinArray.ts +344 -0
- package/src/generated/instructions/createPool.ts +582 -0
- package/src/generated/instructions/deleteBinArray.ts +365 -0
- package/src/generated/instructions/depositByWeight.ts +435 -0
- package/src/generated/instructions/index.ts +25 -0
- package/src/generated/instructions/openPosition.ts +547 -0
- package/src/generated/instructions/setMetadataUpdateAuthority.ts +274 -0
- package/src/generated/instructions/setPoolDynamicFeeConfig.ts +304 -0
- package/src/generated/instructions/setPoolProtocolShare.ts +298 -0
- package/src/generated/instructions/swap.ts +336 -0
- package/src/generated/instructions/syncPool.ts +189 -0
- package/src/generated/instructions/transferAdminAuthority.ts +271 -0
- package/src/generated/instructions/withdraw.ts +402 -0
- package/src/generated/pdas/adminConfig.ts +32 -0
- package/src/generated/pdas/binArray.ts +40 -0
- package/src/generated/pdas/index.ts +12 -0
- package/src/generated/pdas/pool.ts +43 -0
- package/src/generated/pdas/position.ts +37 -0
- package/src/generated/programs/index.ts +9 -0
- package/src/generated/programs/piconDlmm.ts +803 -0
- package/src/generated/types/bin.ts +64 -0
- package/src/generated/types/distributionMode.ts +43 -0
- package/src/generated/types/dynamicFeeConfig.ts +69 -0
- package/src/generated/types/dynamicFeeState.ts +71 -0
- package/src/generated/types/feeState.ts +60 -0
- package/src/generated/types/index.ts +13 -0
- package/src/index.ts +4 -0
- package/src/picon_dlmm.json +2378 -0
- package/src/program_addresses.ts +10 -0
- package/src/quote/index.ts +14 -0
- package/src/quote/wasm-node/package.json +4 -0
- package/src/quote/wasm-node/picon_dlmm_quote.d.ts +64 -0
- package/src/quote/wasm-node/picon_dlmm_quote.js +407 -0
- package/src/quote/wasm-node/picon_dlmm_quote_bg.wasm +0 -0
- package/src/quote/wasm-node/picon_dlmm_quote_bg.wasm.d.ts +11 -0
- package/src/quote/wasm-node-loader.ts +11 -0
- package/src/quote/wasm-web/picon_dlmm_quote.d.ts +100 -0
- package/src/quote/wasm-web/picon_dlmm_quote.js +500 -0
- package/src/quote/wasm-web/picon_dlmm_quote_bg.wasm +0 -0
- package/src/quote/wasm-web/picon_dlmm_quote_bg.wasm.d.ts +11 -0
- package/src/quote/wasm-web-loader.ts +17 -0
- package/src/utils/admin_config.ts +6 -0
- package/src/utils/ata.ts +213 -0
- package/src/utils/bin_array.ts +45 -0
- package/src/utils/bin_location.ts +79 -0
- package/src/utils/chunk.ts +7 -0
- package/src/utils/compute_budget.ts +58 -0
- package/src/utils/constants.ts +24 -0
- package/src/utils/transfer_fee.ts +29 -0
- package/src/utils/type_guards.ts +3 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PICON_DLMM_PROGRAM_ADDRESS, fetchMaybeAdminConfig, findAdminConfigPda } from "../generated";
|
|
2
|
+
import { isAdminConfigActive as checkAdminConfigActive } from "../utils/admin_config";
|
|
3
|
+
export async function isAdminConfigActive(rpc, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
|
|
4
|
+
const [adminConfig] = await findAdminConfigPda({ programAddress });
|
|
5
|
+
const maybeAdminConfig = await fetchMaybeAdminConfig(rpc, adminConfig, options);
|
|
6
|
+
return maybeAdminConfig.exists && checkAdminConfigActive(maybeAdminConfig.data);
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Address, type Commitment, type createSolanaRpcSubscriptions } from "@solana/kit";
|
|
2
|
+
import { type DlmmEvent } from "../events";
|
|
3
|
+
type RpcSubscriptions = ReturnType<typeof createSolanaRpcSubscriptions>;
|
|
4
|
+
export declare function onEvent(rpcSubscriptions: RpcSubscriptions, handler: (event: DlmmEvent) => void, { address, programAddress, commitment, onError, }?: {
|
|
5
|
+
address?: Address;
|
|
6
|
+
programAddress?: Address;
|
|
7
|
+
commitment?: Commitment;
|
|
8
|
+
onError?: (error: unknown) => void;
|
|
9
|
+
}): Promise<() => void>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=on_event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"on_event.d.ts","sourceRoot":"","sources":["../../src/actions/on_event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAE/F,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAEjE,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC;AASxE,wBAAsB,OAAO,CAC3B,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,EACnC,EACE,OAAO,EACP,cAA2C,EAC3C,UAAU,EACV,OAAO,GACR,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAAO,GACnH,OAAO,CAAC,MAAM,IAAI,CAAC,CA0BrB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { PICON_DLMM_PROGRAM_ADDRESS } from "../generated";
|
|
2
|
+
import { decodeEventsFromLogs } from "../events";
|
|
3
|
+
// `address` defaults to `programAddress` (every pool the program touches); pass a pool
|
|
4
|
+
// address to scope it. `programAddress` also scopes CPI-log filtering (see events.ts), so it
|
|
5
|
+
// should match whatever cluster's program this subscription is watching — defaults to mainnet.
|
|
6
|
+
// Resolves once the subscription is active, with an unsubscribe function. Errors — from the
|
|
7
|
+
// stream itself (e.g. a dropped websocket) or thrown by `handler` — are reported to `onError`
|
|
8
|
+
// instead of rejecting an unheld promise; a `handler` throw only drops that one event, the
|
|
9
|
+
// subscription keeps running.
|
|
10
|
+
export async function onEvent(rpcSubscriptions, handler, { address, programAddress = PICON_DLMM_PROGRAM_ADDRESS, commitment, onError, } = {}) {
|
|
11
|
+
const abortController = new AbortController();
|
|
12
|
+
const eventStream = await subscribeToEvents(rpcSubscriptions, {
|
|
13
|
+
address: address ?? programAddress,
|
|
14
|
+
programAddress,
|
|
15
|
+
commitment,
|
|
16
|
+
abortSignal: abortController.signal,
|
|
17
|
+
});
|
|
18
|
+
(async () => {
|
|
19
|
+
try {
|
|
20
|
+
for await (const event of eventStream) {
|
|
21
|
+
try {
|
|
22
|
+
handler(event);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
onError?.(error);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
if (!abortController.signal.aborted) {
|
|
31
|
+
onError?.(error);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
})();
|
|
35
|
+
return () => abortController.abort();
|
|
36
|
+
}
|
|
37
|
+
// Resolves once the subscription is active, so callers know they won't miss anything.
|
|
38
|
+
async function subscribeToEvents(rpcSubscriptions, { address, programAddress, commitment = "confirmed", abortSignal, }) {
|
|
39
|
+
const notifications = await rpcSubscriptions
|
|
40
|
+
.logsNotifications({ mentions: [address] }, { commitment })
|
|
41
|
+
.subscribe({ abortSignal });
|
|
42
|
+
return (async function* () {
|
|
43
|
+
for await (const notification of notifications) {
|
|
44
|
+
if (notification.value.err != null) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
yield* decodeEventsFromLogs(notification.value.logs, programAddress);
|
|
48
|
+
}
|
|
49
|
+
})();
|
|
50
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
}
|
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { type Address } from "@solana/kit";
|
|
2
|
+
export type CreatePoolEvent = {
|
|
3
|
+
pool: Address;
|
|
4
|
+
binStep: number;
|
|
5
|
+
feeRate: number;
|
|
6
|
+
tokenMintX: Address;
|
|
7
|
+
tokenMintY: Address;
|
|
8
|
+
};
|
|
9
|
+
export type OpenPositionEvent = {
|
|
10
|
+
pool: Address;
|
|
11
|
+
position: Address;
|
|
12
|
+
owner: Address;
|
|
13
|
+
lowerBinId: number;
|
|
14
|
+
upperBinId: number;
|
|
15
|
+
};
|
|
16
|
+
export type ClosePositionEvent = {
|
|
17
|
+
pool: Address;
|
|
18
|
+
position: Address;
|
|
19
|
+
owner: Address;
|
|
20
|
+
lowerBinId: number;
|
|
21
|
+
upperBinId: number;
|
|
22
|
+
};
|
|
23
|
+
export type DepositEvent = {
|
|
24
|
+
pool: Address;
|
|
25
|
+
position: Address;
|
|
26
|
+
owner: Address;
|
|
27
|
+
lowerBinId: number;
|
|
28
|
+
upperBinId: number;
|
|
29
|
+
amountX: bigint;
|
|
30
|
+
amountY: bigint;
|
|
31
|
+
transferFeeX: bigint;
|
|
32
|
+
transferFeeY: bigint;
|
|
33
|
+
};
|
|
34
|
+
export type WithdrawEvent = {
|
|
35
|
+
pool: Address;
|
|
36
|
+
position: Address;
|
|
37
|
+
owner: Address;
|
|
38
|
+
lowerBinId: number;
|
|
39
|
+
upperBinId: number;
|
|
40
|
+
bpsRemoved: number;
|
|
41
|
+
amountX: bigint;
|
|
42
|
+
amountY: bigint;
|
|
43
|
+
transferFeeX: bigint;
|
|
44
|
+
transferFeeY: bigint;
|
|
45
|
+
};
|
|
46
|
+
export type ClaimFeeEvent = {
|
|
47
|
+
pool: Address;
|
|
48
|
+
position: Address;
|
|
49
|
+
owner: Address;
|
|
50
|
+
lowerBinId: number;
|
|
51
|
+
upperBinId: number;
|
|
52
|
+
amountX: bigint;
|
|
53
|
+
amountY: bigint;
|
|
54
|
+
transferFeeX: bigint;
|
|
55
|
+
transferFeeY: bigint;
|
|
56
|
+
};
|
|
57
|
+
export type SwapEvent = {
|
|
58
|
+
pool: Address;
|
|
59
|
+
xToY: boolean;
|
|
60
|
+
preBinId: number;
|
|
61
|
+
postBinId: number;
|
|
62
|
+
amountIn: bigint;
|
|
63
|
+
amountOut: bigint;
|
|
64
|
+
inputTransferFee: bigint;
|
|
65
|
+
outputTransferFee: bigint;
|
|
66
|
+
lpFee: bigint;
|
|
67
|
+
protocolFee: bigint;
|
|
68
|
+
};
|
|
69
|
+
export type DlmmEvent = {
|
|
70
|
+
name: "CreatePoolEvent";
|
|
71
|
+
data: CreatePoolEvent;
|
|
72
|
+
} | {
|
|
73
|
+
name: "OpenPositionEvent";
|
|
74
|
+
data: OpenPositionEvent;
|
|
75
|
+
} | {
|
|
76
|
+
name: "ClosePositionEvent";
|
|
77
|
+
data: ClosePositionEvent;
|
|
78
|
+
} | {
|
|
79
|
+
name: "DepositEvent";
|
|
80
|
+
data: DepositEvent;
|
|
81
|
+
} | {
|
|
82
|
+
name: "WithdrawEvent";
|
|
83
|
+
data: WithdrawEvent;
|
|
84
|
+
} | {
|
|
85
|
+
name: "ClaimFeeEvent";
|
|
86
|
+
data: ClaimFeeEvent;
|
|
87
|
+
} | {
|
|
88
|
+
name: "SwapEvent";
|
|
89
|
+
data: SwapEvent;
|
|
90
|
+
};
|
|
91
|
+
export declare function decodeEventFromLogLine(logLine: string): DlmmEvent | undefined;
|
|
92
|
+
export declare function decodeEventsFromLogs(logs: readonly string[], programAddress?: Address): DlmmEvent[];
|
|
93
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,OAAO,EAWb,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAsGF,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAgC3C,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAO7E;AAaD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,cAAc,GAAE,OAAoC,GAAG,SAAS,EAAE,CAwB/H"}
|