710 lines
38 KiB
Rust
710 lines
38 KiB
Rust
// file: kb-lib/src/executor.rs
|
|
// version: 3
|
|
|
|
//! Consolidated executor modules.
|
|
|
|
mod adapter;
|
|
mod admin;
|
|
mod amm;
|
|
mod api;
|
|
mod bridge;
|
|
mod clmm;
|
|
mod cpmm;
|
|
mod dlmm;
|
|
mod fees;
|
|
mod governance;
|
|
mod launchpad;
|
|
mod lending;
|
|
mod lock;
|
|
mod metadata;
|
|
mod nft;
|
|
mod orderbook;
|
|
mod perpetuals;
|
|
mod router;
|
|
mod rwa;
|
|
mod solana;
|
|
mod spl;
|
|
mod stable;
|
|
mod staking;
|
|
mod treasury;
|
|
mod vault;
|
|
mod vesting;
|
|
mod wallet;
|
|
mod weighted;
|
|
|
|
/// Exposes the reserved `adapter/saber_decimal_wrapper` executor.
|
|
pub use self::adapter::ExAdapterSaberDecimalWrapperExecutor;
|
|
/// Exposes the reserved `admin/jupiter_lock` executor.
|
|
pub use self::admin::ExAdminJupiterLockExecutor;
|
|
/// Exposes the reserved `admin/pump_fees` executor.
|
|
pub use self::admin::ExAdminPumpFeesExecutor;
|
|
/// Exposes the reserved `amm/aldrin_v1` executor.
|
|
pub use self::amm::ExAmmAldrinV1Executor;
|
|
/// Exposes the reserved `amm/aldrin_v2` executor.
|
|
pub use self::amm::ExAmmAldrinV2Executor;
|
|
/// Exposes the reserved `amm/alphaq` executor.
|
|
pub use self::amm::ExAmmAlphaqExecutor;
|
|
/// Exposes the reserved `amm/believe` executor.
|
|
pub use self::amm::ExAmmBelieveExecutor;
|
|
/// Exposes the reserved `amm/bonk_swap` executor.
|
|
pub use self::amm::ExAmmBonkSwapExecutor;
|
|
/// Exposes the reserved `amm/fluxbeam` executor.
|
|
pub use self::amm::ExAmmFluxbeamExecutor;
|
|
/// Exposes the reserved `amm/goon_fi` executor.
|
|
pub use self::amm::ExAmmGoonFiExecutor;
|
|
/// Exposes the reserved `amm/goosefx_gamma` executor.
|
|
pub use self::amm::ExAmmGoosefxGammaExecutor;
|
|
/// Exposes the reserved `amm/goosefx_v2` executor.
|
|
pub use self::amm::ExAmmGoosefxV2Executor;
|
|
/// Exposes the reserved `amm/guac_swap` executor.
|
|
pub use self::amm::ExAmmGuacSwapExecutor;
|
|
/// Exposes the reserved `amm/lifinity_swap_v2` executor.
|
|
pub use self::amm::ExAmmLifinitySwapV2Executor;
|
|
/// Exposes the reserved `amm/metadao_futarchy_amm` executor.
|
|
pub use self::amm::ExAmmMetadaoFutarchyAmmExecutor;
|
|
/// Exposes the reserved `amm/metadao_v0_5` executor.
|
|
pub use self::amm::ExAmmMetadaoV05Executor;
|
|
/// Exposes the reserved `amm/meteora_damm_v1` executor.
|
|
pub use self::amm::ExAmmMeteoraDammV1Executor;
|
|
/// Exposes the reserved `amm/meteora_damm_v2` executor.
|
|
pub use self::amm::ExAmmMeteoraDammV2Executor;
|
|
/// Exposes the reserved `amm/obric_v2` executor.
|
|
pub use self::amm::ExAmmObricV2Executor;
|
|
/// Exposes the reserved `amm/one_dex` executor.
|
|
pub use self::amm::ExAmmOneDexExecutor;
|
|
/// Exposes the reserved `amm/pump_swap` executor.
|
|
pub use self::amm::ExAmmPumpSwapExecutor;
|
|
/// Exposes the reserved `amm/raydium_lp_v4` executor.
|
|
pub use self::amm::ExAmmRaydiumLpV4Executor;
|
|
/// Exposes the reserved `amm/solfi` executor.
|
|
pub use self::amm::ExAmmSolfiExecutor;
|
|
/// Exposes the reserved `amm/solfi_v2` executor.
|
|
pub use self::amm::ExAmmSolfiV2Executor;
|
|
/// Exposes the reserved `amm/vertigo` executor.
|
|
pub use self::amm::ExAmmVertigoExecutor;
|
|
/// Exposes the reserved `amm/virtuals` executor.
|
|
pub use self::amm::ExAmmVirtualsExecutor;
|
|
/// Exposes the reserved `amm/woofi` executor.
|
|
pub use self::amm::ExAmmWoofiExecutor;
|
|
/// Exposes the reserved `amm/zero_fi` executor.
|
|
pub use self::amm::ExAmmZeroFiExecutor;
|
|
/// Exposes the reserved `amm/zora` executor.
|
|
pub use self::amm::ExAmmZoraExecutor;
|
|
/// Exposes the blockhash policy kind.
|
|
pub use self::api::ExApiExecutionBlockhashKind;
|
|
/// Exposes the blockhash policy.
|
|
pub use self::api::ExApiExecutionBlockhashPolicy;
|
|
/// Exposes the exact execution capability result.
|
|
pub use self::api::ExApiExecutionCapability;
|
|
/// Exposes supported Solana clusters.
|
|
pub use self::api::ExApiExecutionCluster;
|
|
/// Exposes cluster restrictions.
|
|
pub use self::api::ExApiExecutionClusterPolicy;
|
|
/// Exposes the result of waiting for transaction confirmation.
|
|
pub use self::api::ExApiExecutionConfirmationResult;
|
|
/// Exposes transaction confirmation states.
|
|
pub use self::api::ExApiExecutionConfirmationStatus;
|
|
/// Exposes explicit execution cost ceilings.
|
|
pub use self::api::ExApiExecutionCostLimit;
|
|
/// Exposes the legacy common execution plan type.
|
|
pub use self::api::ExApiExecutionPlan;
|
|
/// Exposes the complete execution policy.
|
|
pub use self::api::ExApiExecutionPolicy;
|
|
/// Exposes the legacy common execution request type.
|
|
pub use self::api::ExApiExecutionRequest;
|
|
/// Exposes the result of a transaction send adapter.
|
|
pub use self::api::ExApiExecutionSendResult;
|
|
/// Exposes the simulation policy.
|
|
pub use self::api::ExApiExecutionSimulationPolicy;
|
|
/// Exposes the simulation result contract.
|
|
pub use self::api::ExApiExecutionSimulationResult;
|
|
/// Exposes the legacy common execution support enum.
|
|
pub use self::api::ExApiExecutionSupport;
|
|
/// Exposes the legacy common instruction executor trait.
|
|
pub use self::api::ExApiInstructionExecutor;
|
|
/// Exposes one planned instruction account.
|
|
pub use self::api::ExApiPlannedAccount;
|
|
/// Exposes one encoded planned instruction.
|
|
pub use self::api::ExApiPlannedInstruction;
|
|
/// Exposes post-execution replay diagnostics.
|
|
pub use self::api::ExApiPostExecutionDiagnostic;
|
|
/// Exposes post-execution validation requirements.
|
|
pub use self::api::ExApiPostExecutionValidationPolicy;
|
|
/// Exposes a typed execution plan.
|
|
pub use self::api::ExApiPreparedExecutionPlan;
|
|
/// Exposes one required signer.
|
|
pub use self::api::ExApiRequiredSigner;
|
|
/// Exposes the typed executor contract.
|
|
pub use self::api::ExApiTypedInstructionExecutor;
|
|
/// Exposes the compact JSON payload serializer.
|
|
pub use self::api::executor_api_serialize_payload_json;
|
|
/// Exposes the pretty JSON payload serializer.
|
|
pub use self::api::executor_api_serialize_payload_json_pretty;
|
|
/// Exposes the reserved `bridge/circle_cctp_token_messenger_minter` executor.
|
|
pub use self::bridge::ExBridgeCircleCctpTokenMessengerMinterExecutor;
|
|
/// Exposes the reserved `bridge/circle_cctp_token_messenger_minter_v2` executor.
|
|
pub use self::bridge::ExBridgeCircleCctpTokenMessengerMinterV2Executor;
|
|
/// Exposes the reserved `bridge/layer_zero_endpoint` executor.
|
|
pub use self::bridge::ExBridgeLayerZeroEndpointExecutor;
|
|
/// Exposes the reserved `bridge/layer_zero_executor` executor.
|
|
pub use self::bridge::ExBridgeLayerZeroExecutorExecutor;
|
|
/// Exposes the reserved `clmm/byreal` executor.
|
|
pub use self::clmm::ExClmmByrealExecutor;
|
|
/// Exposes the reserved `clmm/fusion` executor.
|
|
pub use self::clmm::ExClmmFusionExecutor;
|
|
/// Exposes the reserved `clmm/orca_whirlpool` executor.
|
|
pub use self::clmm::ExClmmOrcaWhirlpoolExecutor;
|
|
/// Exposes the reserved `clmm/pancake_swap` executor.
|
|
pub use self::clmm::ExClmmPancakeSwapExecutor;
|
|
/// Exposes the reserved `clmm/raydium` executor.
|
|
pub use self::clmm::ExClmmRaydiumExecutor;
|
|
/// Exposes the reserved `clmm/stabble` executor.
|
|
pub use self::clmm::ExClmmStabbleExecutor;
|
|
/// Exposes the reserved `cpmm/raydium` executor.
|
|
pub use self::cpmm::ExCpmmRaydiumExecutor;
|
|
/// Exposes the reserved `dlmm/meteora` executor.
|
|
pub use self::dlmm::ExDlmmMeteoraExecutor;
|
|
/// Exposes the reserved `fees/bags_fee_share_v1` executor.
|
|
pub use self::fees::ExFeesBagsFeeShareV1Executor;
|
|
/// Exposes the reserved `fees/bags_fee_share_v2` executor.
|
|
pub use self::fees::ExFeesBagsFeeShareV2Executor;
|
|
/// Exposes the reserved `governance/metadao_bid_wall` executor.
|
|
pub use self::governance::ExGovernanceMetadaoBidWallExecutor;
|
|
/// Exposes the reserved `launchpad/boop_fun` executor.
|
|
pub use self::launchpad::ExLaunchpadBoopFunExecutor;
|
|
/// Exposes the reserved `launchpad/metadao_ico` executor.
|
|
pub use self::launchpad::ExLaunchpadMetadaoIcoExecutor;
|
|
/// Exposes the reserved `launchpad/meteora_dbc` executor.
|
|
pub use self::launchpad::ExLaunchpadMeteoraDbcExecutor;
|
|
/// Exposes the reserved `launchpad/moonit` executor.
|
|
pub use self::launchpad::ExLaunchpadMoonitExecutor;
|
|
/// Exposes the reserved `launchpad/orca_wavebreak` executor.
|
|
pub use self::launchpad::ExLaunchpadOrcaWavebreakExecutor;
|
|
/// Exposes the reserved `launchpad/printr` executor.
|
|
pub use self::launchpad::ExLaunchpadPrintrExecutor;
|
|
/// Exposes the reserved `launchpad/pump_fun` executor.
|
|
pub use self::launchpad::ExLaunchpadPumpFunExecutor;
|
|
/// Exposes the reserved `launchpad/pump_pumpup_ai` executor.
|
|
pub use self::launchpad::ExLaunchpadPumpPumpupAiExecutor;
|
|
/// Exposes the reserved `launchpad/raydium_launchlab` executor.
|
|
pub use self::launchpad::ExLaunchpadRaydiumLaunchlabExecutor;
|
|
/// Exposes the reserved `lending/clone` executor.
|
|
pub use self::lending::ExLendingCloneExecutor;
|
|
/// Exposes the reserved `lending/jupiter_lend_borrow` executor.
|
|
pub use self::lending::ExLendingJupiterLendBorrowExecutor;
|
|
/// Exposes the reserved `lending/jupiter_lend_earn` executor.
|
|
pub use self::lending::ExLendingJupiterLendEarnExecutor;
|
|
/// Exposes the reserved `lending/jupiter_lend_flash_loan` executor.
|
|
pub use self::lending::ExLendingJupiterLendFlashLoanExecutor;
|
|
/// Exposes the reserved `lending/jupiter_lend_liquidity` executor.
|
|
pub use self::lending::ExLendingJupiterLendLiquidityExecutor;
|
|
/// Exposes the reserved `lending/kamino` executor.
|
|
pub use self::lending::ExLendingKaminoExecutor;
|
|
/// Exposes the reserved `lending/marginfi_v2` executor.
|
|
pub use self::lending::ExLendingMarginfiV2Executor;
|
|
/// Exposes the reserved `lock/raydium_lp` executor.
|
|
pub use self::lock::ExLockRaydiumLpExecutor;
|
|
/// Exposes the reserved `metadata/metaplex_token_metadata` executor.
|
|
pub use self::metadata::ExMetadataMetaplexTokenMetadataExecutor;
|
|
/// Exposes the reserved `metadata/spl_name_service` executor.
|
|
pub use self::metadata::ExMetadataSplNameServiceExecutor;
|
|
/// Exposes the reserved `nft/metaplex_bubblegum` executor.
|
|
pub use self::nft::ExNftMetaplexBubblegumExecutor;
|
|
/// Exposes the reserved `orderbook/jupiter_limit_order` executor.
|
|
pub use self::orderbook::ExOrderbookJupiterLimitOrderExecutor;
|
|
/// Exposes the reserved `orderbook/jupiter_limit_order_v2` executor.
|
|
pub use self::orderbook::ExOrderbookJupiterLimitOrderV2Executor;
|
|
/// Exposes the reserved `orderbook/openbook_v2` executor.
|
|
pub use self::orderbook::ExOrderbookOpenbookV2Executor;
|
|
/// Exposes the reserved `perpetuals/drift_v2` executor.
|
|
pub use self::perpetuals::ExPerpetualsDriftV2Executor;
|
|
/// Exposes the reserved `perpetuals/jupiter` executor.
|
|
pub use self::perpetuals::ExPerpetualsJupiterExecutor;
|
|
/// Exposes the reserved `perpetuals/zeta` executor.
|
|
pub use self::perpetuals::ExPerpetualsZetaExecutor;
|
|
/// Exposes the reserved `router/dflow_aggregator_v4` executor.
|
|
pub use self::router::ExRouterDflowAggregatorV4Executor;
|
|
/// Exposes the reserved `router/jupiter_aggregator_v4` executor.
|
|
pub use self::router::ExRouterJupiterAggregatorV4Executor;
|
|
/// Exposes the reserved `router/jupiter_aggregator_v6` executor.
|
|
pub use self::router::ExRouterJupiterAggregatorV6Executor;
|
|
/// Exposes the reserved `router/jupiter_dca` executor.
|
|
pub use self::router::ExRouterJupiterDcaExecutor;
|
|
/// Exposes the reserved `router/okx_labs_v1` executor.
|
|
pub use self::router::ExRouterOkxLabsV1Executor;
|
|
/// Exposes the reserved `router/okx_labs_v2` executor.
|
|
pub use self::router::ExRouterOkxLabsV2Executor;
|
|
/// Exposes the reserved `rwa/ondo_global_markets` executor.
|
|
pub use self::rwa::ExRwaOndoGlobalMarketsExecutor;
|
|
/// Exposes the Address Lookup Table close operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_CLOSE_OPERATION;
|
|
/// Exposes the Address Lookup Table create operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_CREATE_OPERATION;
|
|
/// Exposes the Address Lookup Table deactivate operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_DEACTIVATE_OPERATION;
|
|
/// Exposes the Address Lookup Table extend operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_EXTEND_OPERATION;
|
|
/// Exposes the Address Lookup Table freeze operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_FREEZE_OPERATION;
|
|
/// Exposes the Compute Budget heap-frame operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_COMPUTE_BUDGET_REQUEST_HEAP_FRAME_OPERATION;
|
|
/// Exposes the Compute Budget loaded-account data-size operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_COMPUTE_BUDGET_SET_LOADED_ACCOUNTS_DATA_SIZE_LIMIT_OPERATION;
|
|
/// Exposes the Compute Budget unit-limit operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_COMPUTE_BUDGET_SET_UNIT_LIMIT_OPERATION;
|
|
/// Exposes the Compute Budget unit-price operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_COMPUTE_BUDGET_SET_UNIT_PRICE_OPERATION;
|
|
/// Exposes the Config account creation operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_CONFIG_CREATE_ACCOUNT_OPERATION;
|
|
/// Exposes the Config store operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_CONFIG_STORE_OPERATION;
|
|
/// Exposes the Ed25519 inline verification operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_ED25519_VERIFY_INLINE_OPERATION;
|
|
/// Exposes the Ed25519 offset-table verification operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_ED25519_VERIFY_OFFSETS_OPERATION;
|
|
/// Exposes the feature activation operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_FEATURE_ACTIVATE_OPERATION;
|
|
/// Exposes the feature pending-activation revoke operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_FEATURE_REVOKE_PENDING_ACTIVATION_OPERATION;
|
|
/// Exposes Loader v3 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V3_CLOSE_ANY_OPERATION;
|
|
/// Exposes Loader v3 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V3_CLOSE_OPERATION;
|
|
/// Exposes Loader v3 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V3_CREATE_BUFFER_OPERATION;
|
|
/// Exposes Loader v3 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V3_DEPLOY_WITH_MAX_PROGRAM_LEN_OPERATION;
|
|
/// Exposes Loader v3 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V3_EXTEND_PROGRAM_OPERATION;
|
|
/// Exposes Loader v3 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V3_SET_BUFFER_AUTHORITY_CHECKED_OPERATION;
|
|
/// Exposes Loader v3 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V3_SET_BUFFER_AUTHORITY_OPERATION;
|
|
/// Exposes Loader v3 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V3_SET_UPGRADE_AUTHORITY_CHECKED_OPERATION;
|
|
/// Exposes Loader v3 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V3_SET_UPGRADE_AUTHORITY_OPERATION;
|
|
/// Exposes Loader v3 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V3_UPGRADE_OPERATION;
|
|
/// Exposes Loader v3 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V3_WRITE_OPERATION;
|
|
/// Exposes Loader v4 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V4_COPY_OPERATION;
|
|
/// Exposes Loader v4 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V4_CREATE_BUFFER_OPERATION;
|
|
/// Exposes Loader v4 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V4_DEPLOY_FROM_SOURCE_OPERATION;
|
|
/// Exposes Loader v4 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V4_DEPLOY_OPERATION;
|
|
/// Exposes Loader v4 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V4_FINALIZE_OPERATION;
|
|
/// Exposes Loader v4 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V4_RETRACT_OPERATION;
|
|
/// Exposes Loader v4 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V4_SET_PROGRAM_LENGTH_OPERATION;
|
|
/// Exposes Loader v4 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V4_TRANSFER_AUTHORITY_OPERATION;
|
|
/// Exposes Loader v4 operation codes.
|
|
pub use self::solana::EX_SOLANA_CORE_LOADER_V4_WRITE_OPERATION;
|
|
/// Exposes every stable callable Solana core operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_OPERATION_CODES;
|
|
/// Exposes the secp256k1 inline verification operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SECP256K1_VERIFY_INLINE_OPERATION;
|
|
/// Exposes the secp256k1 offset-table verification operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SECP256K1_VERIFY_OFFSETS_OPERATION;
|
|
/// Exposes the secp256r1 inline verification operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SECP256R1_VERIFY_INLINE_OPERATION;
|
|
/// Exposes the secp256r1 offset-table verification operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SECP256R1_VERIFY_OFFSETS_OPERATION;
|
|
/// Exposes the Slashing violation-report close operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SLASHING_CLOSE_VIOLATION_REPORT_OPERATION;
|
|
/// Exposes the Slashing duplicate-block proof submission operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SLASHING_SUBMIT_DUPLICATE_BLOCK_PROOF_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_AUTHORIZE_CHECKED_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_AUTHORIZE_CHECKED_WITH_SEED_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_AUTHORIZE_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_AUTHORIZE_WITH_SEED_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_CREATE_ACCOUNT_AND_DELEGATE_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_CREATE_ACCOUNT_CHECKED_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_CREATE_ACCOUNT_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_CREATE_ACCOUNT_WITH_SEED_AND_DELEGATE_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_CREATE_ACCOUNT_WITH_SEED_CHECKED_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_CREATE_ACCOUNT_WITH_SEED_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_DEACTIVATE_DELINQUENT_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_DEACTIVATE_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_DELEGATE_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_GET_MINIMUM_DELEGATION_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_INITIALIZE_CHECKED_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_INITIALIZE_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_MERGE_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_MOVE_LAMPORTS_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_MOVE_STAKE_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_SET_LOCKUP_CHECKED_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_SET_LOCKUP_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_SPLIT_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_SPLIT_WITH_SEED_OPERATION;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::EX_SOLANA_CORE_STAKE_WITHDRAW_OPERATION;
|
|
/// Exposes the System allocate operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_ALLOCATE_OPERATION;
|
|
/// Exposes the System seeded allocate operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_ALLOCATE_WITH_SEED_OPERATION;
|
|
/// Exposes the System assign operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_ASSIGN_OPERATION;
|
|
/// Exposes the System seeded assign operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_ASSIGN_WITH_SEED_OPERATION;
|
|
/// Exposes the System prefunded create-account operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_CREATE_ACCOUNT_ALLOW_PREFUND_OPERATION;
|
|
/// Exposes the System create-account operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_CREATE_ACCOUNT_OPERATION;
|
|
/// Exposes the System seeded create-account operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_CREATE_ACCOUNT_WITH_SEED_OPERATION;
|
|
/// Exposes the durable nonce advance operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_NONCE_ADVANCE_OPERATION;
|
|
/// Exposes the durable nonce authorize operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_NONCE_AUTHORIZE_OPERATION;
|
|
/// Exposes the durable nonce account creation operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_NONCE_CREATE_OPERATION;
|
|
/// Exposes the seeded durable nonce account creation operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_NONCE_CREATE_WITH_SEED_OPERATION;
|
|
/// Exposes the durable nonce initialize operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_NONCE_INITIALIZE_OPERATION;
|
|
/// Exposes the durable nonce upgrade operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_NONCE_UPGRADE_OPERATION;
|
|
/// Exposes the durable nonce withdraw operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_NONCE_WITHDRAW_OPERATION;
|
|
/// Exposes the System multi-transfer operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_TRANSFER_MANY_OPERATION;
|
|
/// Exposes the System transfer operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_TRANSFER_OPERATION;
|
|
/// Exposes the System seeded transfer operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_SYSTEM_TRANSFER_WITH_SEED_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_AUTHORIZE_CHECKED_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_AUTHORIZE_CHECKED_WITH_SEED_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_AUTHORIZE_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_AUTHORIZE_WITH_SEED_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_COMPACT_UPDATE_VOTE_STATE_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_COMPACT_UPDATE_VOTE_STATE_SWITCH_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_CREATE_ACCOUNT_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_CREATE_ACCOUNT_V2_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_CREATE_ACCOUNT_WITH_SEED_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_CREATE_ACCOUNT_WITH_SEED_V2_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_DEPOSIT_DELEGATOR_REWARDS_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_INITIALIZE_ACCOUNT_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_INITIALIZE_ACCOUNT_V2_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_SUBMIT_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_SWITCH_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_TOWER_SYNC_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_TOWER_SYNC_SWITCH_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_UPDATE_COMMISSION_BPS_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_UPDATE_COMMISSION_COLLECTOR_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_UPDATE_COMMISSION_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_UPDATE_VALIDATOR_IDENTITY_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_UPDATE_VOTE_STATE_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_UPDATE_VOTE_STATE_SWITCH_OPERATION;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::EX_SOLANA_CORE_VOTE_WITHDRAW_OPERATION;
|
|
/// Exposes the ZK ElGamal context-state close operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_ZK_ELGAMAL_CLOSE_CONTEXT_STATE_OPERATION;
|
|
/// Exposes the ZK ElGamal proof-account verification operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_ZK_ELGAMAL_VERIFY_FROM_ACCOUNT_OPERATION;
|
|
/// Exposes the ZK ElGamal inline proof verification operation code.
|
|
pub use self::solana::EX_SOLANA_CORE_ZK_ELGAMAL_VERIFY_INLINE_OPERATION;
|
|
/// Exposes one Config Program key entry.
|
|
pub use self::solana::ExSolanaCoreConfigKey;
|
|
/// Exposes one Ed25519 verification offset record.
|
|
pub use self::solana::ExSolanaCoreEd25519VerificationOffsets;
|
|
/// Exposes the complete typed Solana core intent.
|
|
pub use self::solana::ExSolanaCoreExecutionIntent;
|
|
/// Exposes the Solana core executor.
|
|
pub use self::solana::ExSolanaCoreExecutor;
|
|
/// Exposes typed Solana core operation arguments.
|
|
pub use self::solana::ExSolanaCoreOperation;
|
|
/// Exposes one secp256k1 verification offset record.
|
|
pub use self::solana::ExSolanaCoreSecp256k1VerificationOffsets;
|
|
/// Exposes one secp256r1 verification offset record.
|
|
pub use self::solana::ExSolanaCoreSecp256r1VerificationOffsets;
|
|
/// Exposes Stake Program operation codes and the authority-role selector.
|
|
pub use self::solana::ExSolanaCoreStakeAuthorizationKind;
|
|
/// Exposes one recipient in a System multi-transfer.
|
|
pub use self::solana::ExSolanaCoreSystemTransferRecipient;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::ExSolanaCoreVoteAuthorizationKind;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::ExSolanaCoreVoteCommissionKind;
|
|
/// Exposes Vote Program operation codes and typed Vote selectors.
|
|
pub use self::solana::ExSolanaCoreVoteLockout;
|
|
/// Exposes optional ZK ElGamal context-state accounts.
|
|
pub use self::solana::ExSolanaCoreZkElGamalContextState;
|
|
/// Exposes the official ZK ElGamal proof kinds.
|
|
pub use self::solana::ExSolanaCoreZkElGamalProofType;
|
|
/// Exposes the reserved `spl/account_compression` executor.
|
|
pub use self::spl::ExSplAccountCompressionExecutor;
|
|
/// Exposes the reserved `spl/associated_token_account` executor.
|
|
pub use self::spl::ExSplAssociatedTokenAccountExecutor;
|
|
/// Exposes the reserved `spl/elgamal_registry` executor.
|
|
pub use self::spl::ExSplElgamalRegistryExecutor;
|
|
/// Exposes the reserved `spl/memo` executor.
|
|
pub use self::spl::ExSplMemoExecutor;
|
|
/// Exposes the reserved `spl/noop` executor.
|
|
pub use self::spl::ExSplNoopExecutor;
|
|
/// Exposes the reserved `spl/single_pool` executor.
|
|
pub use self::spl::ExSplSinglePoolExecutor;
|
|
/// Exposes the reserved `spl/stake_pool` executor.
|
|
pub use self::spl::ExSplStakePoolExecutor;
|
|
/// Exposes the reserved `spl/token2022` executor.
|
|
pub use self::spl::ExSplToken2022Executor;
|
|
/// Exposes the reserved `spl/token` executor.
|
|
pub use self::spl::ExSplTokenExecutor;
|
|
/// Exposes the reserved `stable/swap_hylo_exchange` executor.
|
|
pub use self::stable::ExStableSwapHyloExchangeExecutor;
|
|
/// Exposes the reserved `stable/swap_jupiter_stable` executor.
|
|
pub use self::stable::ExStableSwapJupiterStableExecutor;
|
|
/// Exposes the reserved `stable/swap_numeraire` executor.
|
|
pub use self::stable::ExStableSwapNumeraireExecutor;
|
|
/// Exposes the reserved `stable/swap_stabble` executor.
|
|
pub use self::stable::ExStableSwapStabbleExecutor;
|
|
/// Exposes the reserved `staking/kamino_farm` executor.
|
|
pub use self::staking::ExStakingKaminoFarmExecutor;
|
|
/// Exposes the reserved `staking/marinade_finance` executor.
|
|
pub use self::staking::ExStakingMarinadeFinanceExecutor;
|
|
/// Exposes the reserved `staking/solayer` executor.
|
|
pub use self::staking::ExStakingSolayerExecutor;
|
|
/// Exposes the reserved `treasury/helium_treasury_management` executor.
|
|
pub use self::treasury::ExTreasuryHeliumTreasuryManagementExecutor;
|
|
/// Exposes the reserved `vault/carrot_defi` executor.
|
|
pub use self::vault::ExVaultCarrotDefiExecutor;
|
|
/// Exposes the reserved `vault/hylo_stability_pool` executor.
|
|
pub use self::vault::ExVaultHyloStabilityPoolExecutor;
|
|
/// Exposes the reserved `vault/kamino` executor.
|
|
pub use self::vault::ExVaultKaminoExecutor;
|
|
/// Exposes the reserved `vault/kamino_v2` executor.
|
|
pub use self::vault::ExVaultKaminoV2Executor;
|
|
/// Exposes the reserved `vault/kamino_yvaults` executor.
|
|
pub use self::vault::ExVaultKaminoYvaultsExecutor;
|
|
/// Exposes the reserved `vault/meteora` executor.
|
|
pub use self::vault::ExVaultMeteoraExecutor;
|
|
/// Exposes the reserved `vesting/streamflow` executor.
|
|
pub use self::vesting::ExVestingStreamflowExecutor;
|
|
/// Exposes the reserved `wallet/jupiter_apepro_smart_wallet` executor.
|
|
pub use self::wallet::ExWalletJupiterApeproSmartWalletExecutor;
|
|
/// Exposes the reserved `weighted/swap_stabble` executor.
|
|
pub use self::weighted::ExWeightedSwapStabbleExecutor;
|
|
|
|
/// Canonical tracing target for this crate.
|
|
pub(crate) use self::solana::EX_SOLANA_CORE_TRACING_TARGET;
|
|
/// Crate-root access to `build_prepared_plan` from `address_lookup_table`.
|
|
pub(crate) use self::solana::executor_solana_core_address_lookup_table_build_prepared_plan;
|
|
/// Crate-root access to `build_prepared_plan` from `builder`.
|
|
pub(crate) use self::solana::executor_solana_core_builder_build_prepared_plan;
|
|
/// Crate-root access to `finalize_prepared_plan` from `builder`.
|
|
pub(crate) use self::solana::executor_solana_core_finalize_prepared_plan;
|
|
/// Builds one typed validation error without duplicating domain-local wrappers.
|
|
pub(crate) use self::solana::executor_solana_core_invalid;
|
|
/// Crate-root access to `build_prepared_plan` from `loader_v3`.
|
|
pub(crate) use self::solana::executor_solana_core_loader_v3_build_prepared_plan;
|
|
/// Crate-root access to `build_prepared_plan` from `loader_v4`.
|
|
pub(crate) use self::solana::executor_solana_core_loader_v4_build_prepared_plan;
|
|
/// Crate-root access to `build_prepared_plan` from `native_admin`.
|
|
pub(crate) use self::solana::executor_solana_core_native_admin_build_prepared_plan;
|
|
/// Parses one canonical native program identifier.
|
|
pub(crate) use self::solana::executor_solana_core_parse_native_program_id;
|
|
/// Parses one model public key with the canonical execution error contract.
|
|
pub(crate) use self::solana::executor_solana_core_parse_pubkey;
|
|
/// Crate-root access to `build_prepared_plan` from `precompiles`.
|
|
pub(crate) use self::solana::executor_solana_core_precompiles_build_prepared_plan;
|
|
/// Crate-root access to `build_prepared_plan` from `slashing`.
|
|
pub(crate) use self::solana::executor_solana_core_slashing_build_prepared_plan;
|
|
/// Crate-root access to `build_prepared_plan` from `stake`.
|
|
pub(crate) use self::solana::executor_solana_core_stake_build_prepared_plan;
|
|
/// Validates that two model public keys identify distinct accounts.
|
|
pub(crate) use self::solana::executor_solana_core_validate_distinct_pubkeys;
|
|
/// Validates an exact byte-slice length while preserving the caller error code.
|
|
pub(crate) use self::solana::executor_solana_core_validate_exact_length;
|
|
/// Validates that an unsigned execution amount is strictly positive.
|
|
pub(crate) use self::solana::executor_solana_core_validate_positive_u64;
|
|
/// Validates one `Pubkey::create_with_seed` derivation with caller-owned error codes.
|
|
pub(crate) use self::solana::executor_solana_core_validate_seeded_address;
|
|
/// Crate-root access to `build_prepared_plan` from `vote`.
|
|
pub(crate) use self::solana::executor_solana_core_vote_build_prepared_plan;
|
|
/// Crate-root access to `build_prepared_plan` from `zk_elgamal`.
|
|
pub(crate) use self::solana::executor_solana_core_zk_elgamal_build_prepared_plan;
|
|
|
|
#[cfg(test)]
|
|
mod reserved_executor_tests {
|
|
#[test]
|
|
fn every_reserved_executor_is_registered_and_builds_only_an_empty_plan() {
|
|
let executors: [&dyn crate::ExApiInstructionExecutor; 103] = [
|
|
&crate::ExAdapterSaberDecimalWrapperExecutor,
|
|
&crate::ExAdminJupiterLockExecutor,
|
|
&crate::ExAdminPumpFeesExecutor,
|
|
&crate::ExAmmAldrinV1Executor,
|
|
&crate::ExAmmAldrinV2Executor,
|
|
&crate::ExAmmAlphaqExecutor,
|
|
&crate::ExAmmBelieveExecutor,
|
|
&crate::ExAmmBonkSwapExecutor,
|
|
&crate::ExAmmFluxbeamExecutor,
|
|
&crate::ExAmmGoonFiExecutor,
|
|
&crate::ExAmmGoosefxGammaExecutor,
|
|
&crate::ExAmmGoosefxV2Executor,
|
|
&crate::ExAmmGuacSwapExecutor,
|
|
&crate::ExAmmLifinitySwapV2Executor,
|
|
&crate::ExAmmMetadaoFutarchyAmmExecutor,
|
|
&crate::ExAmmMetadaoV05Executor,
|
|
&crate::ExAmmMeteoraDammV1Executor,
|
|
&crate::ExAmmMeteoraDammV2Executor,
|
|
&crate::ExAmmObricV2Executor,
|
|
&crate::ExAmmOneDexExecutor,
|
|
&crate::ExAmmPumpSwapExecutor,
|
|
&crate::ExAmmRaydiumLpV4Executor,
|
|
&crate::ExAmmSolfiExecutor,
|
|
&crate::ExAmmSolfiV2Executor,
|
|
&crate::ExAmmVertigoExecutor,
|
|
&crate::ExAmmVirtualsExecutor,
|
|
&crate::ExAmmWoofiExecutor,
|
|
&crate::ExAmmZeroFiExecutor,
|
|
&crate::ExAmmZoraExecutor,
|
|
&crate::ExBridgeCircleCctpTokenMessengerMinterExecutor,
|
|
&crate::ExBridgeCircleCctpTokenMessengerMinterV2Executor,
|
|
&crate::ExBridgeLayerZeroEndpointExecutor,
|
|
&crate::ExBridgeLayerZeroExecutorExecutor,
|
|
&crate::ExClmmByrealExecutor,
|
|
&crate::ExClmmFusionExecutor,
|
|
&crate::ExClmmOrcaWhirlpoolExecutor,
|
|
&crate::ExClmmPancakeSwapExecutor,
|
|
&crate::ExClmmRaydiumExecutor,
|
|
&crate::ExClmmStabbleExecutor,
|
|
&crate::ExCpmmRaydiumExecutor,
|
|
&crate::ExDlmmMeteoraExecutor,
|
|
&crate::ExFeesBagsFeeShareV1Executor,
|
|
&crate::ExFeesBagsFeeShareV2Executor,
|
|
&crate::ExGovernanceMetadaoBidWallExecutor,
|
|
&crate::ExLaunchpadBoopFunExecutor,
|
|
&crate::ExLaunchpadMetadaoIcoExecutor,
|
|
&crate::ExLaunchpadMeteoraDbcExecutor,
|
|
&crate::ExLaunchpadMoonitExecutor,
|
|
&crate::ExLaunchpadOrcaWavebreakExecutor,
|
|
&crate::ExLaunchpadPrintrExecutor,
|
|
&crate::ExLaunchpadPumpFunExecutor,
|
|
&crate::ExLaunchpadPumpPumpupAiExecutor,
|
|
&crate::ExLaunchpadRaydiumLaunchlabExecutor,
|
|
&crate::ExLendingCloneExecutor,
|
|
&crate::ExLendingJupiterLendBorrowExecutor,
|
|
&crate::ExLendingJupiterLendEarnExecutor,
|
|
&crate::ExLendingJupiterLendFlashLoanExecutor,
|
|
&crate::ExLendingJupiterLendLiquidityExecutor,
|
|
&crate::ExLendingKaminoExecutor,
|
|
&crate::ExLendingMarginfiV2Executor,
|
|
&crate::ExLockRaydiumLpExecutor,
|
|
&crate::ExMetadataMetaplexTokenMetadataExecutor,
|
|
&crate::ExMetadataSplNameServiceExecutor,
|
|
&crate::ExNftMetaplexBubblegumExecutor,
|
|
&crate::ExOrderbookJupiterLimitOrderExecutor,
|
|
&crate::ExOrderbookJupiterLimitOrderV2Executor,
|
|
&crate::ExOrderbookOpenbookV2Executor,
|
|
&crate::ExPerpetualsDriftV2Executor,
|
|
&crate::ExPerpetualsJupiterExecutor,
|
|
&crate::ExPerpetualsZetaExecutor,
|
|
&crate::ExRouterDflowAggregatorV4Executor,
|
|
&crate::ExRouterJupiterAggregatorV4Executor,
|
|
&crate::ExRouterJupiterAggregatorV6Executor,
|
|
&crate::ExRouterJupiterDcaExecutor,
|
|
&crate::ExRouterOkxLabsV1Executor,
|
|
&crate::ExRouterOkxLabsV2Executor,
|
|
&crate::ExRwaOndoGlobalMarketsExecutor,
|
|
&crate::ExSplAccountCompressionExecutor,
|
|
&crate::ExSplAssociatedTokenAccountExecutor,
|
|
&crate::ExSplElgamalRegistryExecutor,
|
|
&crate::ExSplMemoExecutor,
|
|
&crate::ExSplNoopExecutor,
|
|
&crate::ExSplSinglePoolExecutor,
|
|
&crate::ExSplStakePoolExecutor,
|
|
&crate::ExSplTokenExecutor,
|
|
&crate::ExSplToken2022Executor,
|
|
&crate::ExStableSwapHyloExchangeExecutor,
|
|
&crate::ExStableSwapJupiterStableExecutor,
|
|
&crate::ExStableSwapNumeraireExecutor,
|
|
&crate::ExStableSwapStabbleExecutor,
|
|
&crate::ExStakingKaminoFarmExecutor,
|
|
&crate::ExStakingMarinadeFinanceExecutor,
|
|
&crate::ExStakingSolayerExecutor,
|
|
&crate::ExTreasuryHeliumTreasuryManagementExecutor,
|
|
&crate::ExVaultCarrotDefiExecutor,
|
|
&crate::ExVaultHyloStabilityPoolExecutor,
|
|
&crate::ExVaultKaminoExecutor,
|
|
&crate::ExVaultKaminoV2Executor,
|
|
&crate::ExVaultKaminoYvaultsExecutor,
|
|
&crate::ExVaultMeteoraExecutor,
|
|
&crate::ExVestingStreamflowExecutor,
|
|
&crate::ExWalletJupiterApeproSmartWalletExecutor,
|
|
&crate::ExWeightedSwapStabbleExecutor,
|
|
];
|
|
assert_eq!(executors.len(), 103);
|
|
for executor in executors {
|
|
assert!(!executor.program_ids().is_empty());
|
|
for program_id in executor.program_ids() {
|
|
assert!(kb_program_ids::find_registered_program_id(program_id).is_some());
|
|
}
|
|
let program_id = crate::MdProgramId(executor.program_ids()[0].to_string());
|
|
let request = crate::ExApiExecutionRequest {
|
|
program_id,
|
|
operation_code: "reserved".to_string(),
|
|
payload_json: "{}".to_string(),
|
|
};
|
|
assert_eq!(executor.supports_request(&request), crate::ExApiExecutionSupport::Maybe);
|
|
let plan = executor
|
|
.build_plan(&request)
|
|
.unwrap_or_else(|error| panic!("reserved executor failed: {error}"));
|
|
assert_eq!(plan.executor_name, executor.executor_name());
|
|
assert_eq!(plan.instruction_count, 0);
|
|
assert!(plan.payload_json.contains("reserved_executor"));
|
|
}
|
|
}
|
|
}
|