perf: optimize constants and memory allocation for trading instruction performance

This commit is contained in:
ysq
2025-09-08 10:58:43 +08:00
parent 0968a93d4f
commit 31b5e2855b
13 changed files with 314 additions and 261 deletions
+37
View File
@@ -0,0 +1,37 @@
use solana_sdk::{pubkey, pubkey::Pubkey};
pub const SYSTEM_PROGRAM: Pubkey = solana_sdk::system_program::ID;
pub const SYSTEM_PROGRAM_META: solana_sdk::instruction::AccountMeta =
solana_sdk::instruction::AccountMeta {
pubkey: SYSTEM_PROGRAM,
is_signer: false,
is_writable: false,
};
pub const TOKEN_PROGRAM: Pubkey = spl_token::ID;
pub const TOKEN_PROGRAM_META: solana_sdk::instruction::AccountMeta =
solana_sdk::instruction::AccountMeta {
pubkey: TOKEN_PROGRAM,
is_signer: false,
is_writable: false,
};
pub const TOKEN_PROGRAM_2022: Pubkey = spl_token_2022::ID;
pub const TOKEN_PROGRAM_2022_META: solana_sdk::instruction::AccountMeta =
solana_sdk::instruction::AccountMeta {
pubkey: TOKEN_PROGRAM_2022,
is_signer: false,
is_writable: false,
};
pub const WSOL_TOKEN_ACCOUNT: Pubkey = pubkey!("So11111111111111111111111111111111111111112");
pub const WSOL_TOKEN_ACCOUNT_META: solana_sdk::instruction::AccountMeta =
solana_sdk::instruction::AccountMeta {
pubkey: WSOL_TOKEN_ACCOUNT,
is_signer: false,
is_writable: false,
};
pub const RENT: Pubkey = solana_sdk::sysvar::rent::id();
pub const RENT_META: solana_sdk::instruction::AccountMeta =
solana_sdk::instruction::AccountMeta { pubkey: RENT, is_signer: false, is_writable: false };
+2 -21
View File
@@ -1,26 +1,7 @@
use solana_sdk::{pubkey, pubkey::Pubkey};
pub mod accounts;
pub mod decimals;
pub mod swqos;
pub mod trade;
pub mod trade_platform;
pub const SYSTEM_PROGRAM: Pubkey = solana_sdk::system_program::ID;
pub const SYSTEM_PROGRAM_META: once_cell::sync::Lazy<solana_sdk::instruction::AccountMeta> =
once_cell::sync::Lazy::new(|| {
solana_sdk::instruction::AccountMeta::new_readonly(SYSTEM_PROGRAM, false)
});
pub const TOKEN_PROGRAM: Pubkey = spl_token::ID;
pub const TOKEN_PROGRAM_META: once_cell::sync::Lazy<solana_sdk::instruction::AccountMeta> =
once_cell::sync::Lazy::new(|| {
solana_sdk::instruction::AccountMeta::new_readonly(TOKEN_PROGRAM, false)
});
pub const TOKEN_PROGRAM_2022: Pubkey = spl_token_2022::ID;
pub const WSOL_TOKEN_ACCOUNT: Pubkey = pubkey!("So11111111111111111111111111111111111111112");
pub const WSOL_TOKEN_ACCOUNT_META: once_cell::sync::Lazy<solana_sdk::instruction::AccountMeta> =
once_cell::sync::Lazy::new(|| {
solana_sdk::instruction::AccountMeta::new_readonly(WSOL_TOKEN_ACCOUNT, false)
});
pub use accounts::*;