feat: optimize Bonk protocol with caching and wSOL management
- Add instruction/PDA caching for Bonk operations - Implement reusable wSOL management module - Support pre-computed pool addresses in BonkParams - Optimize memory allocation with SmallVec and fixed arrays - Reduce code duplication across protocols
This commit is contained in:
@@ -243,6 +243,9 @@ pub struct BonkParams {
|
||||
pub virtual_quote: u128,
|
||||
pub real_base: u128,
|
||||
pub real_quote: u128,
|
||||
pub pool_state: Pubkey,
|
||||
pub base_vault: Pubkey,
|
||||
pub quote_vault: Pubkey,
|
||||
/// Token program ID
|
||||
/// Specifies the program used by the token, usually spl_token::ID or spl_token_2022::ID
|
||||
pub mint_token_program: Pubkey,
|
||||
@@ -274,6 +277,9 @@ impl BonkParams {
|
||||
virtual_quote: trade_info.virtual_quote as u128,
|
||||
real_base: trade_info.real_base_after as u128,
|
||||
real_quote: trade_info.real_quote_after as u128,
|
||||
pool_state: trade_info.pool_state,
|
||||
base_vault: trade_info.base_vault,
|
||||
quote_vault: trade_info.quote_vault,
|
||||
mint_token_program: trade_info.base_token_program,
|
||||
platform_config: trade_info.platform_config,
|
||||
platform_associated_account: trade_info.platform_associated_account,
|
||||
@@ -327,6 +333,9 @@ impl BonkParams {
|
||||
virtual_quote: DEFAULT_VIRTUAL_QUOTE,
|
||||
real_base: real_base,
|
||||
real_quote: real_quote,
|
||||
pool_state: trade_info.pool_state,
|
||||
base_vault: trade_info.base_vault,
|
||||
quote_vault: trade_info.quote_vault,
|
||||
mint_token_program: trade_info.base_token_program,
|
||||
platform_config: trade_info.platform_config,
|
||||
platform_associated_account: trade_info.platform_associated_account,
|
||||
@@ -360,6 +369,9 @@ impl BonkParams {
|
||||
virtual_quote: pool_data.virtual_quote as u128,
|
||||
real_base: pool_data.real_base as u128,
|
||||
real_quote: pool_data.real_quote as u128,
|
||||
pool_state: pool_address,
|
||||
base_vault: pool_data.base_vault,
|
||||
quote_vault: pool_data.quote_vault,
|
||||
mint_token_program: token_account.owner,
|
||||
platform_config: pool_data.platform_config,
|
||||
platform_associated_account,
|
||||
|
||||
Reference in New Issue
Block a user