@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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Picon Finance
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# @picon-finance/dlmm-sdk
|
|
2
|
+
|
|
3
|
+
TypeScript SDK for the [Picon DLMM](https://github.com/picon-finance) protocol on Solana, built on [`@solana/kit`](https://github.com/anza-xyz/kit).
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @picon-finance/dlmm-sdk
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
Every action returns an unsigned `TransactionMessage` — sign and send it with `@solana/kit`. Actions default to mainnet; pass a `programAddress` to target another cluster.
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { createSolanaRpc, signTransactionMessageWithSigners, sendAndConfirmTransactionFactory } from "@solana/kit";
|
|
17
|
+
import { createPool, swap, quote, getPool, DEVNET_PROGRAM_ADDRESS } from "@picon-finance/dlmm-sdk";
|
|
18
|
+
|
|
19
|
+
const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
|
|
20
|
+
|
|
21
|
+
// Read
|
|
22
|
+
const pool = await getPool(rpc, poolAddress);
|
|
23
|
+
|
|
24
|
+
// Quote, then build the matching swap transaction
|
|
25
|
+
const { quoteOutput, swap: buildSwap } = await quote(rpc, {
|
|
26
|
+
pool: poolAddress,
|
|
27
|
+
xToY: true,
|
|
28
|
+
amountIn: 1_000_000n,
|
|
29
|
+
slippageToleranceBps: 50,
|
|
30
|
+
});
|
|
31
|
+
const swapMessage = await buildSwap(userSigner);
|
|
32
|
+
|
|
33
|
+
// Write — target devnet by passing programAddress
|
|
34
|
+
const createPoolMessage = await createPool(
|
|
35
|
+
rpc,
|
|
36
|
+
{ authority, binStep, feeRate, protocolShare, activeBinId, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY },
|
|
37
|
+
DEVNET_PROGRAM_ADDRESS,
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
// Sign and send however you normally do with @solana/kit
|
|
41
|
+
const signed = await signTransactionMessageWithSigners(swapMessage);
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`MAINNET_PROGRAM_ADDRESS` and `DEVNET_PROGRAM_ADDRESS` are both exported for convenience; omitting `programAddress` defaults to mainnet.
|
|
45
|
+
|
|
46
|
+
## License
|
|
47
|
+
|
|
48
|
+
MIT
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Address, TransactionSigner } from "@solana/kit";
|
|
2
|
+
import { type TransactionMessageOptions, type Rpc } from "./helpers";
|
|
3
|
+
export declare function acceptAdminAuthority(rpc: Rpc, { pendingAuthority }: {
|
|
4
|
+
pendingAuthority: TransactionSigner;
|
|
5
|
+
}, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
|
|
6
|
+
instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
|
|
7
|
+
version: 0;
|
|
8
|
+
}>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
|
|
9
|
+
instructions: readonly [];
|
|
10
|
+
}>, "instructions"> & {
|
|
11
|
+
readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
|
|
12
|
+
}, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
|
|
13
|
+
//# sourceMappingURL=accept_admin_authority.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accept_admin_authority.d.ts","sourceRoot":"","sources":["../../src/actions/accept_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,oBAAoB,CACxC,GAAG,EAAE,GAAG,EACR,EAAE,gBAAgB,EAAE,EAAE;IAAE,gBAAgB,EAAE,iBAAiB,CAAA;CAAE,EAC7D,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAQxC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PICON_DLMM_PROGRAM_ADDRESS, getAcceptAdminAuthorityInstructionAsync } from "../generated";
|
|
2
|
+
import { buildTransactionMessage, resolveAdminConfigAddress } from "./helpers";
|
|
3
|
+
export async function acceptAdminAuthority(rpc, { pendingAuthority }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
|
|
4
|
+
const adminConfig = await resolveAdminConfigAddress(programAddress);
|
|
5
|
+
const instruction = await getAcceptAdminAuthorityInstructionAsync({ pendingAuthority, adminConfig }, { programAddress });
|
|
6
|
+
return await buildTransactionMessage(rpc, { feePayer: pendingAuthority, instructions: [instruction] }, options);
|
|
7
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Address, TransactionSigner } from "@solana/kit";
|
|
2
|
+
import { type TransactionMessageOptions, type Rpc } from "./helpers";
|
|
3
|
+
export declare function claimFee(rpc: Rpc, { owner, positionMint, lowerBinId, upperBinId, pool, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }: {
|
|
4
|
+
owner: TransactionSigner;
|
|
5
|
+
positionMint: Address;
|
|
6
|
+
lowerBinId?: number;
|
|
7
|
+
upperBinId?: number;
|
|
8
|
+
pool?: Address;
|
|
9
|
+
tokenMintX?: Address;
|
|
10
|
+
tokenMintY?: Address;
|
|
11
|
+
tokenProgramX?: Address;
|
|
12
|
+
tokenProgramY?: Address;
|
|
13
|
+
}, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
|
|
14
|
+
instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
|
|
15
|
+
version: 0;
|
|
16
|
+
}>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
|
|
17
|
+
instructions: readonly [];
|
|
18
|
+
}>, "instructions"> & {
|
|
19
|
+
readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
|
|
20
|
+
}, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
|
|
21
|
+
//# sourceMappingURL=claim_fee.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim_fee.d.ts","sourceRoot":"","sources":["../../src/actions/claim_fee.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,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,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;;;;;;;4NA+CxC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { PICON_DLMM_PROGRAM_ADDRESS, findPositionPda, getClaimFeeInstruction } 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 claimFee(rpc, { owner, positionMint, 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 claimFeeIx = getClaimFeeInstruction({
|
|
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
|
+
}, { programAddress });
|
|
34
|
+
const instructions = [
|
|
35
|
+
...preInstructionsAta,
|
|
36
|
+
claimFeeIx,
|
|
37
|
+
...postInstructionsAta,
|
|
38
|
+
];
|
|
39
|
+
return await buildTransactionMessage(rpc, { feePayer: owner, instructions }, options);
|
|
40
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Address, TransactionSigner } from "@solana/kit";
|
|
2
|
+
import { type TransactionMessageOptions, type Rpc } from "./helpers";
|
|
3
|
+
export declare function claimMultipleFees(rpc: Rpc, { owner, positionMints, pool, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }: {
|
|
4
|
+
owner: TransactionSigner;
|
|
5
|
+
positionMints: Address[];
|
|
6
|
+
pool?: Address;
|
|
7
|
+
tokenMintX?: Address;
|
|
8
|
+
tokenMintY?: Address;
|
|
9
|
+
tokenProgramX?: Address;
|
|
10
|
+
tokenProgramY?: Address;
|
|
11
|
+
}, programAddress?: Address, options?: TransactionMessageOptions): Promise<(() => Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
|
|
12
|
+
instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
|
|
13
|
+
version: 0;
|
|
14
|
+
}>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
|
|
15
|
+
instructions: readonly [];
|
|
16
|
+
}>, "instructions"> & {
|
|
17
|
+
readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
|
|
18
|
+
}, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>)[]>;
|
|
19
|
+
//# sourceMappingURL=claim_multiple_fees.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim_multiple_fees.d.ts","sourceRoot":"","sources":["../../src/actions/claim_multiple_fees.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAO9D,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,GAAG,EACT,MAAM,WAAW,CAAC;AAWnB,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,GAAG,EACR,EACE,KAAK,EACL,aAAa,EACb,IAAI,EACJ,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,GACd,EAAE;IACD,KAAK,EAAE,iBAAiB,CAAC;IACzB,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,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;;;;;;;gOA+ExC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { PICON_DLMM_PROGRAM_ADDRESS, getClaimFeeInstruction } from "../generated";
|
|
2
|
+
import { findPositionTokenAccount, processAssociatedTokenAccountPair, findPoolTokenVaults } from "../utils/ata";
|
|
3
|
+
import { findPositionBinArrayAddresses } from "../utils/bin_array";
|
|
4
|
+
import { isUndefined } from "../utils/type_guards";
|
|
5
|
+
import { MAX_POSITIONS_PER_CLAIM } from "../utils/constants";
|
|
6
|
+
import { getPositionsByPositionMints } from "./get_positions_by_position_mints";
|
|
7
|
+
import { resolveTokenMintsAndPrograms, buildTransactionMessage, } from "./helpers";
|
|
8
|
+
// No on-chain batch claim_fee — this chunks positions into multiple transactions bounded
|
|
9
|
+
// by MAX_POSITIONS_PER_CLAIM, deduplicating the owner's ATAs and any shared bin arrays
|
|
10
|
+
// within each chunk. All positions must belong to the same pool, since a single transaction
|
|
11
|
+
// can only touch one pool's vaults.
|
|
12
|
+
//
|
|
13
|
+
// Returns one builder per chunk (not pre-built messages): only the first tx creates the
|
|
14
|
+
// owner's ATAs (and only the last unwraps WSOL), so the chunks aren't independent — the
|
|
15
|
+
// caller must call each builder and submit+confirm its transaction in order before calling
|
|
16
|
+
// the next, since a later chunk's claim_fee assumes the first chunk's ATA already landed.
|
|
17
|
+
export async function claimMultipleFees(rpc, { owner, positionMints, pool, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
|
|
18
|
+
if (positionMints.length === 0) {
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
const positions = await getPositionsByPositionMints(rpc, positionMints, programAddress, options);
|
|
22
|
+
const actualPool = positions[0].data.pool;
|
|
23
|
+
if (positions.some(({ data }) => data.pool !== actualPool)) {
|
|
24
|
+
throw new Error("claimMultipleFees: all positions must belong to the same pool");
|
|
25
|
+
}
|
|
26
|
+
if (!isUndefined(pool) && pool !== actualPool) {
|
|
27
|
+
throw new Error("claimMultipleFees: provided pool does not match the positions' pool");
|
|
28
|
+
}
|
|
29
|
+
pool = actualPool;
|
|
30
|
+
const tokenMintsAndPrograms = await resolveTokenMintsAndPrograms(rpc, {
|
|
31
|
+
pool,
|
|
32
|
+
tokenMintX,
|
|
33
|
+
tokenMintY,
|
|
34
|
+
tokenProgramX,
|
|
35
|
+
tokenProgramY,
|
|
36
|
+
}, options);
|
|
37
|
+
// ATAs are persistent accounts: only the first tx needs to create them (and wrap WSOL,
|
|
38
|
+
// though claim's ATAs are receive-only so there's nothing to transfer in), and only the
|
|
39
|
+
// last needs to unwrap WSOL back to native SOL, once every chunk has landed in it.
|
|
40
|
+
const { ataX: tokenOwnerAccountX, ataY: tokenOwnerAccountY, preInstructions: preInstructionsAta, postInstructions: postInstructionsAta, } = await processAssociatedTokenAccountPair({ owner, ...tokenMintsAndPrograms });
|
|
41
|
+
const { tokenVaultX, tokenVaultY } = await findPoolTokenVaults({ pool, ...tokenMintsAndPrograms });
|
|
42
|
+
const chunks = [];
|
|
43
|
+
for (let i = 0; i < positions.length; i += MAX_POSITIONS_PER_CLAIM) {
|
|
44
|
+
chunks.push(positions.slice(i, i + MAX_POSITIONS_PER_CLAIM));
|
|
45
|
+
}
|
|
46
|
+
// Returns one builder per chunk instead of pre-built messages: the caller submits and
|
|
47
|
+
// confirms chunks strictly in order (see the contract above), and confirmation takes real
|
|
48
|
+
// wall-clock time, so a blockhash fetched once up front for every chunk can outlive its
|
|
49
|
+
// ~60-90s validity window before later chunks are ever submitted. Each builder fetches its
|
|
50
|
+
// own blockhash (via buildTransactionMessage's default) at the moment it's actually called,
|
|
51
|
+
// right before that chunk is submitted.
|
|
52
|
+
return chunks.map((chunkPositions, i) => async () => {
|
|
53
|
+
// One claim_fee per position in this chunk — deliberately excludes the owner's ATA
|
|
54
|
+
// setup/teardown, which is account-level, not chunk-level (handled above/below instead).
|
|
55
|
+
const coreInstructions = await Promise.all(chunkPositions.map(async ({ address: position, data }) => {
|
|
56
|
+
const positionTokenAccount = await findPositionTokenAccount({ owner: owner.address, positionMint: data.positionMint });
|
|
57
|
+
const { lowerBinArray, upperBinArray } = await findPositionBinArrayAddresses(pool, data.lowerBinId, data.upperBinId, programAddress);
|
|
58
|
+
return getClaimFeeInstruction({
|
|
59
|
+
owner,
|
|
60
|
+
pool,
|
|
61
|
+
position,
|
|
62
|
+
positionTokenAccount,
|
|
63
|
+
...tokenMintsAndPrograms,
|
|
64
|
+
tokenOwnerAccountX,
|
|
65
|
+
tokenOwnerAccountY,
|
|
66
|
+
tokenVaultX,
|
|
67
|
+
tokenVaultY,
|
|
68
|
+
lowerBinArray,
|
|
69
|
+
upperBinArray,
|
|
70
|
+
lowerBinId: data.lowerBinId,
|
|
71
|
+
upperBinId: data.upperBinId,
|
|
72
|
+
}, { programAddress });
|
|
73
|
+
}));
|
|
74
|
+
const instructions = [
|
|
75
|
+
...(i === 0 ? preInstructionsAta : []),
|
|
76
|
+
...coreInstructions,
|
|
77
|
+
...(i === chunks.length - 1 ? postInstructionsAta : []),
|
|
78
|
+
];
|
|
79
|
+
return await buildTransactionMessage(rpc, { feePayer: owner, instructions }, options);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Address, TransactionSigner } from "@solana/kit";
|
|
2
|
+
import { type TransactionMessageOptions, type Rpc } from "./helpers";
|
|
3
|
+
export declare function claimProtocolFee(rpc: Rpc, { authority, pool, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }: {
|
|
4
|
+
authority: TransactionSigner;
|
|
5
|
+
pool: Address;
|
|
6
|
+
tokenMintX?: Address;
|
|
7
|
+
tokenMintY?: Address;
|
|
8
|
+
tokenProgramX?: Address;
|
|
9
|
+
tokenProgramY?: Address;
|
|
10
|
+
}, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
|
|
11
|
+
instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
|
|
12
|
+
version: 0;
|
|
13
|
+
}>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
|
|
14
|
+
instructions: readonly [];
|
|
15
|
+
}>, "instructions"> & {
|
|
16
|
+
readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
|
|
17
|
+
}, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
|
|
18
|
+
//# sourceMappingURL=claim_protocol_fee.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim_protocol_fee.d.ts","sourceRoot":"","sources":["../../src/actions/claim_protocol_fee.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,gBAAgB,CACpC,GAAG,EAAE,GAAG,EACR,EACE,SAAS,EACT,IAAI,EACJ,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,GACd,EAAE;IACD,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,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;;;;;;;4NAsCxC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { PICON_DLMM_PROGRAM_ADDRESS, getClaimProtocolFeeInstructionAsync } from "../generated";
|
|
2
|
+
import { findPoolTokenVaults, processAssociatedTokenAccountPair } from "../utils/ata";
|
|
3
|
+
import { resolveTokenMintsAndPrograms, resolveAdminConfigAddress, buildTransactionMessage, } from "./helpers";
|
|
4
|
+
export async function claimProtocolFee(rpc, { authority, pool, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
|
|
5
|
+
const [tokenMintsAndPrograms, adminConfig] = await Promise.all([
|
|
6
|
+
resolveTokenMintsAndPrograms(rpc, {
|
|
7
|
+
pool,
|
|
8
|
+
tokenMintX,
|
|
9
|
+
tokenMintY,
|
|
10
|
+
tokenProgramX,
|
|
11
|
+
tokenProgramY,
|
|
12
|
+
}, options),
|
|
13
|
+
resolveAdminConfigAddress(programAddress),
|
|
14
|
+
]);
|
|
15
|
+
const { tokenVaultX, tokenVaultY } = await findPoolTokenVaults({ pool, ...tokenMintsAndPrograms });
|
|
16
|
+
const { ataX: tokenAdminAccountX, ataY: tokenAdminAccountY, preInstructions: preInstructionsAta, postInstructions: postInstructionsAta, } = await processAssociatedTokenAccountPair({ owner: authority, ...tokenMintsAndPrograms });
|
|
17
|
+
const claimProtocolFeeIx = await getClaimProtocolFeeInstructionAsync({
|
|
18
|
+
authority,
|
|
19
|
+
pool,
|
|
20
|
+
adminConfig,
|
|
21
|
+
...tokenMintsAndPrograms,
|
|
22
|
+
tokenVaultX,
|
|
23
|
+
tokenVaultY,
|
|
24
|
+
tokenAdminAccountX,
|
|
25
|
+
tokenAdminAccountY,
|
|
26
|
+
}, { programAddress });
|
|
27
|
+
const instructions = [
|
|
28
|
+
...preInstructionsAta,
|
|
29
|
+
claimProtocolFeeIx,
|
|
30
|
+
...postInstructionsAta,
|
|
31
|
+
];
|
|
32
|
+
return await buildTransactionMessage(rpc, { feePayer: authority, instructions }, options);
|
|
33
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Address, TransactionSigner } from "@solana/kit";
|
|
2
|
+
import { type TransactionMessageOptions, type Rpc } from "./helpers";
|
|
3
|
+
export declare function closePosition(rpc: Rpc, { owner, positionMint }: {
|
|
4
|
+
owner: TransactionSigner;
|
|
5
|
+
positionMint: 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=close_position.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close_position.d.ts","sourceRoot":"","sources":["../../src/actions/close_position.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAA2B,KAAK,yBAAyB,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAE9F,wBAAsB,aAAa,CACjC,GAAG,EAAE,GAAG,EACR,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,EAC5E,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAWxC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PICON_DLMM_PROGRAM_ADDRESS, findPositionPda, getClosePositionInstructionAsync } from "../generated";
|
|
2
|
+
import { findPositionTokenAccount } from "../utils/ata";
|
|
3
|
+
import { buildTransactionMessage } from "./helpers";
|
|
4
|
+
export async function closePosition(rpc, { owner, positionMint }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
|
|
5
|
+
const [position] = await findPositionPda({ positionMint }, { programAddress });
|
|
6
|
+
const positionTokenAccount = await findPositionTokenAccount({ owner: owner.address, positionMint });
|
|
7
|
+
const closePositionIx = await getClosePositionInstructionAsync({
|
|
8
|
+
owner,
|
|
9
|
+
positionMint,
|
|
10
|
+
position,
|
|
11
|
+
positionTokenAccount,
|
|
12
|
+
}, { programAddress });
|
|
13
|
+
return await buildTransactionMessage(rpc, { feePayer: owner, instructions: [closePositionIx] }, options);
|
|
14
|
+
}
|
|
@@ -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 createAdminConfig(rpc: Rpc, { deployer, authority, metadataUpdateAuthority, }: {
|
|
4
|
+
deployer: TransactionSigner;
|
|
5
|
+
authority: Address;
|
|
6
|
+
metadataUpdateAuthority?: Address;
|
|
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=create_admin_config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_admin_config.d.ts","sourceRoot":"","sources":["../../src/actions/create_admin_config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,iBAAiB,EAGvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAsD,KAAK,yBAAyB,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAUzH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,GAAG,EACR,EACE,QAAQ,EACR,SAAS,EACT,uBAAuB,GACxB,EAAE;IACD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,EACD,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAmBxC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { getAddressEncoder, getProgramDerivedAddress, } from "@solana/kit";
|
|
2
|
+
import { LOADER_V3_PROGRAM_ADDRESS } from "@solana-program/loader-v3";
|
|
3
|
+
import { PICON_DLMM_PROGRAM_ADDRESS, getCreateAdminConfigInstructionAsync } from "../generated";
|
|
4
|
+
import { buildTransactionMessage, resolveAdminConfigAddress } from "./helpers";
|
|
5
|
+
async function findProgramDataAddress(programAddress) {
|
|
6
|
+
const [programData] = await getProgramDerivedAddress({
|
|
7
|
+
programAddress: LOADER_V3_PROGRAM_ADDRESS,
|
|
8
|
+
seeds: [getAddressEncoder().encode(programAddress)],
|
|
9
|
+
});
|
|
10
|
+
return programData;
|
|
11
|
+
}
|
|
12
|
+
export async function createAdminConfig(rpc, { deployer, authority, metadataUpdateAuthority, }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
|
|
13
|
+
// The generated builder's default account resolution for `adminConfig`/`program` doesn't
|
|
14
|
+
// honor this call's `programAddress` argument (always resolves against the mainnet
|
|
15
|
+
// PICON_DLMM_PROGRAM_ADDRESS baked in at codegen time) — both are derived and passed
|
|
16
|
+
// explicitly here instead.
|
|
17
|
+
const [adminConfig, programData] = await Promise.all([
|
|
18
|
+
resolveAdminConfigAddress(programAddress),
|
|
19
|
+
findProgramDataAddress(programAddress),
|
|
20
|
+
]);
|
|
21
|
+
const createAdminConfigIx = await getCreateAdminConfigInstructionAsync({
|
|
22
|
+
deployer,
|
|
23
|
+
authority,
|
|
24
|
+
metadataUpdateAuthority: metadataUpdateAuthority ?? null,
|
|
25
|
+
adminConfig,
|
|
26
|
+
program: programAddress,
|
|
27
|
+
programData,
|
|
28
|
+
}, { programAddress });
|
|
29
|
+
return await buildTransactionMessage(rpc, { feePayer: deployer, instructions: [createAdminConfigIx] }, options);
|
|
30
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Address, TransactionSigner } from "@solana/kit";
|
|
2
|
+
import { type TransactionMessageOptions, type Rpc } from "./helpers";
|
|
3
|
+
export declare function createBinArray(rpc: Rpc, { payer, pool, index, idempotent, }: {
|
|
4
|
+
payer: TransactionSigner;
|
|
5
|
+
pool: Address;
|
|
6
|
+
index: number;
|
|
7
|
+
idempotent?: boolean;
|
|
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=create_bin_array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_bin_array.d.ts","sourceRoot":"","sources":["../../src/actions/create_bin_array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAA2B,KAAK,yBAAyB,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAK9F,wBAAsB,cAAc,CAClC,GAAG,EAAE,GAAG,EACR,EACE,KAAK,EACL,IAAI,EACJ,KAAK,EACL,UAAiB,GAClB,EAAE;IACD,KAAK,EAAE,iBAAiB,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,EACD,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAQxC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PICON_DLMM_PROGRAM_ADDRESS, findBinArrayPda, getCreateBinArrayInstructionAsync } from "../generated";
|
|
2
|
+
import { buildTransactionMessage } from "./helpers";
|
|
3
|
+
// Standalone escape hatch for manually recreating a bin array — e.g. restoring one an
|
|
4
|
+
// admin deleted while a position still had unclaimed fee or an untouched share in it.
|
|
5
|
+
// Idempotent by default: harmless no-op if the array is already alive.
|
|
6
|
+
export async function createBinArray(rpc, { payer, pool, index, idempotent = true, }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
|
|
7
|
+
const [binArray] = await findBinArrayPda({ pool, index }, { programAddress });
|
|
8
|
+
const instruction = await getCreateBinArrayInstructionAsync({ payer, pool, index, idempotent, binArray }, { programAddress });
|
|
9
|
+
return await buildTransactionMessage(rpc, { feePayer: payer, instructions: [instruction] }, options);
|
|
10
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Address, TransactionSigner } from "@solana/kit";
|
|
2
|
+
import { type TransactionMessageOptions, type Rpc } from "./helpers";
|
|
3
|
+
export declare function createPool(rpc: Rpc, { authority, binStep, feeRate, protocolShare, activeBinId, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }: {
|
|
4
|
+
authority: TransactionSigner;
|
|
5
|
+
binStep: number;
|
|
6
|
+
feeRate: number;
|
|
7
|
+
protocolShare: number;
|
|
8
|
+
activeBinId: number;
|
|
9
|
+
tokenMintX: Address;
|
|
10
|
+
tokenMintY: Address;
|
|
11
|
+
tokenProgramX: Address;
|
|
12
|
+
tokenProgramY: Address;
|
|
13
|
+
}, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
|
|
14
|
+
instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
|
|
15
|
+
version: 0;
|
|
16
|
+
}>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
|
|
17
|
+
instructions: readonly [];
|
|
18
|
+
}>, "instructions"> & {
|
|
19
|
+
readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
|
|
20
|
+
}, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
|
|
21
|
+
//# sourceMappingURL=create_pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_pool.d.ts","sourceRoot":"","sources":["../../src/actions/create_pool.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,UAAU,CAC9B,GAAG,EAAE,GAAG,EACR,EACE,SAAS,EACT,OAAO,EACP,OAAO,EACP,aAAa,EACb,WAAW,EACX,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,GACd,EAAE;IACD,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACxB,EACD,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAoBxC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { PICON_DLMM_PROGRAM_ADDRESS, findPoolPda, getCreatePoolInstructionAsync } from "../generated";
|
|
2
|
+
import { buildTransactionMessage, resolveAdminConfigAddress } from "./helpers";
|
|
3
|
+
export async function createPool(rpc, { authority, binStep, feeRate, protocolShare, activeBinId, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
|
|
4
|
+
const [[pool], adminConfig] = await Promise.all([
|
|
5
|
+
findPoolPda({ tokenMintX, tokenMintY, binStep, feeRate }, { programAddress }),
|
|
6
|
+
resolveAdminConfigAddress(programAddress),
|
|
7
|
+
]);
|
|
8
|
+
const instruction = await getCreatePoolInstructionAsync({
|
|
9
|
+
authority,
|
|
10
|
+
pool,
|
|
11
|
+
adminConfig,
|
|
12
|
+
binStep,
|
|
13
|
+
feeRate,
|
|
14
|
+
protocolShare,
|
|
15
|
+
activeBinId,
|
|
16
|
+
tokenMintX,
|
|
17
|
+
tokenMintY,
|
|
18
|
+
tokenProgramX,
|
|
19
|
+
tokenProgramY,
|
|
20
|
+
}, { programAddress });
|
|
21
|
+
return await buildTransactionMessage(rpc, { feePayer: authority, instructions: [instruction] }, options);
|
|
22
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Address, TransactionSigner } from "@solana/kit";
|
|
2
|
+
import { type TransactionMessageOptions, type Rpc } from "./helpers";
|
|
3
|
+
export declare function deleteBinArray(rpc: Rpc, { authority, pool, index, receiver, }: {
|
|
4
|
+
authority: TransactionSigner;
|
|
5
|
+
pool: Address;
|
|
6
|
+
index: number;
|
|
7
|
+
receiver?: Address;
|
|
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=delete_bin_array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete_bin_array.d.ts","sourceRoot":"","sources":["../../src/actions/delete_bin_array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAsD,KAAK,yBAAyB,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAEzH,wBAAsB,cAAc,CAClC,GAAG,EAAE,GAAG,EACR,EACE,SAAS,EACT,IAAI,EACJ,KAAK,EACL,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,EACD,cAAc,GAAE,OAAoC,EACpD,OAAO,GAAE,yBAA8B;;;;;;;4NAaxC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PICON_DLMM_PROGRAM_ADDRESS, fetchBinArray, findBinArrayPda, getDeleteBinArrayInstructionAsync } from "../generated";
|
|
2
|
+
import { isUndefined } from "../utils/type_guards";
|
|
3
|
+
import { buildTransactionMessage, resolveAdminConfigAddress } from "./helpers";
|
|
4
|
+
export async function deleteBinArray(rpc, { authority, pool, index, receiver, }, programAddress = PICON_DLMM_PROGRAM_ADDRESS, options = {}) {
|
|
5
|
+
const [binArray] = await findBinArrayPda({ pool, index }, { programAddress });
|
|
6
|
+
if (isUndefined(receiver)) {
|
|
7
|
+
const { data } = await fetchBinArray(rpc, binArray, options);
|
|
8
|
+
receiver = data.payer;
|
|
9
|
+
}
|
|
10
|
+
const adminConfig = await resolveAdminConfigAddress(programAddress);
|
|
11
|
+
const instruction = await getDeleteBinArrayInstructionAsync({ authority, pool, index, receiver, binArray, adminConfig }, { programAddress });
|
|
12
|
+
return await buildTransactionMessage(rpc, { feePayer: authority, instructions: [instruction] }, options);
|
|
13
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Address, TransactionSigner } from "@solana/kit";
|
|
2
|
+
import { type DistributionMode } from "../generated";
|
|
3
|
+
import { type TransactionMessageOptions, type Rpc } from "./helpers";
|
|
4
|
+
export declare function depositByWeight(rpc: Rpc, { owner, positionMint, activeBinId, amountX, amountY, lowerBinId, binWeights, maxActiveBinSlippage, distributionMode, pool, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, }: {
|
|
5
|
+
owner: TransactionSigner;
|
|
6
|
+
positionMint: Address;
|
|
7
|
+
activeBinId?: number;
|
|
8
|
+
amountX: bigint;
|
|
9
|
+
amountY: bigint;
|
|
10
|
+
lowerBinId: number;
|
|
11
|
+
binWeights: number[];
|
|
12
|
+
maxActiveBinSlippage: number;
|
|
13
|
+
distributionMode: DistributionMode;
|
|
14
|
+
pool?: Address;
|
|
15
|
+
tokenMintX?: Address;
|
|
16
|
+
tokenMintY?: Address;
|
|
17
|
+
tokenProgramX?: Address;
|
|
18
|
+
tokenProgramY?: Address;
|
|
19
|
+
}, programAddress?: Address, options?: TransactionMessageOptions): Promise<Omit<Omit<Omit<import("@solana/transaction-messages").ExcludeTransactionMessageWithinSizeLimit<Omit<Readonly<{
|
|
20
|
+
instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
|
|
21
|
+
version: 0;
|
|
22
|
+
}>, "instructions"> & import("@solana/transaction-messages").TransactionMessageWithinSizeLimit & {
|
|
23
|
+
instructions: readonly [];
|
|
24
|
+
}>, "instructions"> & {
|
|
25
|
+
readonly instructions: readonly import("@solana/instructions").Instruction<string, readonly (import("@solana/instructions").AccountLookupMeta<string, string> | import("@solana/instructions").AccountMeta<string>)[]>[];
|
|
26
|
+
}, "feePayer"> & import("@solana/signers").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/transaction-messages").TransactionMessageWithBlockhashLifetime>;
|
|
27
|
+
//# sourceMappingURL=deposit_by_weight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deposit_by_weight.d.ts","sourceRoot":"","sources":["../../src/actions/deposit_by_weight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAA8B,KAAK,gBAAgB,EAAkD,MAAM,cAAc,CAAC;AAKjI,OAAO,EAIL,KAAK,yBAAyB,EAC9B,KAAK,GAAG,EACT,MAAM,WAAW,CAAC;AAEnB,wBAAsB,eAAe,CACnC,GAAG,EAAE,GAAG,EACR,EACE,KAAK,EACL,YAAY,EACZ,WAAW,EACX,OAAO,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,GACd,EAAE;IACD,KAAK,EAAE,iBAAiB,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,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;;;;;;;4NA0DxC"}
|