v0.1.0-pre.014

This commit is contained in:
2026-07-24 17:14:02 +02:00
parent 5f6f7df509
commit 60a75c4434
140 changed files with 6217 additions and 1213 deletions

View File

@@ -1,8 +1,17 @@
<!-- file: CHANGELOG.md -->
<!-- version: 2 -->
<!-- version: 3 -->
# CHANGELOG
## 0.1.0-pre.014
- Vérification de la parité exacte des contrats publics `ExApi*` avec `kb_execution_api` de bot2.
- Extension du test aval au contrat dexécution typé et au plan préparé.
- Remplacement des 104 marqueurs temporaires par des squelettes `Ex*Executor`.
- Rattachement des squelettes à leurs Program IDs enregistrés, sans dépendance vers les décodeurs.
- Garantie dinactivité par support `Maybe` et plans réservés à zéro instruction.
- Extension de laudit et ajout dun test central sur les 104 frontières.
## 0.1.0-pre.013
- Remplacement des 14 marqueurs temporaires de matérialisation par des squelettes `Mt*Materializer`.

View File

@@ -1,5 +1,5 @@
<!-- file: README.md -->
<!-- version: 10 -->
<!-- version: 11 -->
# Khadhroony Bot3
@@ -83,3 +83,5 @@ Les identités historiques des processors sont conservées pour la compatibilit
Les modules de matérialisation sont privés. Tous les contrats, types concrets et helpers destinés aux consommateurs externes sont exposés exclusivement par `kb-lib/src/lib.rs`. Des tests aval distincts protègent les contrats dextension `DcApiProtocolDecoder`, `MtApiEventMaterializer` et `ExApiInstructionExecutor`.
`0.1.0-pre.013` remplace les 14 dernières frontières temporaires de matérialisation par des squelettes `Mt*Materializer`. Ils conservent le contrat historique `MtMaterializer`, implémentent également `MtApiEventMaterializer`, restent volontairement inactifs et ne produisent aucun faux événement via lAPI bot3. Tous les types sont accessibles exclusivement depuis la façade `kb_lib`.
`0.1.0-pre.014` confirme la parité de lAPI publique `ExApi*` avec bot2 et remplace les 104 frontières temporaires dexécution par des squelettes `Ex*Executor`. Chaque squelette référence uniquement ses Program IDs enregistrés, annonce `Maybe` sur sa surface et construit exclusivement un plan réservé à zéro instruction. Les exécuteurs opérationnels seront portés séparément, en commençant par Solana Core puis SPL.

View File

@@ -1,5 +1,5 @@
<!-- file: ROADMAP.md -->
<!-- version: 12 -->
<!-- version: 13 -->
# ROADMAP — khadhroony-bot3
@@ -164,5 +164,17 @@
- [x] Exposer les 14 types uniquement depuis la façade `kb-lib/src/lib.rs`.
- [x] Étendre le test aval et laudit contre le retour des marqueurs temporaires.
- [x] Aligner `RUST023` sur lordre naturel produit par `rustfmt`.
- [ ] Valider les deux nouveaux tests unitaires, le test aval, Clippy et le workspace avec Cargo sur la machine de développement.
- [ ] Passer à lAPI des exécuteurs, à leurs squelettes puis au port des exécuteurs déjà implémentés dans bot2.
- [x] Valider les deux nouveaux tests unitaires, le test aval, Clippy et le workspace avec Cargo sur la machine de développement.
- [x] Vérifier la parité de lAPI des exécuteurs avant de restaurer leurs squelettes.
### 0.1.0-pre.014 — API et squelettes des exécuteurs
- [x] Vérifier la parité exacte des contrats `ExApi*` avec `kb_execution_api` de bot2.
- [x] Étendre le test aval au contrat `ExApiTypedInstructionExecutor` et au plan typé public.
- [x] Remplacer les 104 frontières `LEGACY_CRATE`/`MIGRATION_STATUS` par des types `Ex*Executor` concrets.
- [x] Rattacher chaque squelette à ses Program IDs enregistrés sans dépendre des décodeurs.
- [x] Maintenir les squelettes inactifs : support `Maybe` et plan explicite à zéro instruction.
- [x] Exposer les 104 types uniquement depuis la façade `kb-lib/src/lib.rs`.
- [x] Ajouter un test central couvrant les 104 squelettes et étendre laudit contre le retour des marqueurs temporaires.
- [ ] Valider le nouveau test unitaire, le test aval, Clippy et le workspace avec Cargo sur la machine de développement.
- [ ] Porter ensuite les exécuteurs fonctionnels déjà validés dans bot2, en commençant par Solana Core puis SPL.

View File

@@ -1,5 +1,5 @@
<!-- file: RULES.md -->
<!-- version: 22 -->
<!-- version: 23 -->
# Règles spécifiques à `khadhroony-bot3`
@@ -185,6 +185,8 @@ Aucun renommage massif de modules n'est autorisé sans étape de contrôle dédi
- Une surface classifiée peut avoir un module décodeur et un module exécuteur distincts dans `kb-lib`.
- Les exécuteurs ne doivent pas dépendre des décodeurs.
- Les exécuteurs utilisent les contrats `ExApi*` réexportés directement par la façade `kb_lib`.
- Un squelette dexécuteur doit exposer un type `Ex*Executor`, référencer uniquement des Program IDs de `kb-program-ids`, annoncer `Maybe` pour sa surface et construire exclusivement un plan réservé à zéro instruction.
- La migration fonctionnelle dun exécuteur doit remplacer ce comportement réservé par des capacités exactes `Supported` ou `Unsupported(reason)` ; aucun statut temporaire `LEGACY_CRATE` ou `MIGRATION_STATUS` ne doit subsister.
- Les garde-fous communs doivent être placés dans les modules de sécurité partagés de `kb-lib`.
- Aucun exécuteur ne doit envoyer de transaction sans simulation et validation explicite.
- Les surfaces non classifiées ne doivent pas avoir de crate exécuteur.

View File

@@ -1,5 +1,5 @@
<!-- file: kb-lib/README.md -->
<!-- version: 9 -->
<!-- version: 10 -->
# kb-lib
@@ -136,4 +136,5 @@ Lappel de décodage complet utilise `DcApiInstructionDecoder::decode` après
- Une transaction échouée peut produire une intention structurée, jamais une mutation commitée.
- Un matérialiseur externe dépend uniquement des contrats et modèles publics de `kb-lib`, jamais dun décodeur concret.
- Les squelettes réservés répondent uniquement `Maybe` pour leur Program ID et retournent une liste vide ; ils ne prétendent pas décoder une surface avant son port fonctionnel.
- Les exécuteurs sont portés dans des tranches séparées.
- Les squelettes dexécuteurs annoncent uniquement `Maybe` pour leurs Program IDs enregistrés et construisent un plan réservé à zéro instruction.
- Les exécuteurs fonctionnels sont portés dans des tranches séparées, sans dépendre des décodeurs.

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/executor.rs
// version: 1
// version: 2
//! Consolidated executor modules.
@@ -31,6 +31,65 @@ 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.
@@ -81,3 +140,286 @@ pub use self::api::ExApiTypedInstructionExecutor;
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 reserved `solana/core` executor.
pub use self::solana::ExSolanaCoreExecutor;
/// 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;
#[cfg(test)]
mod reserved_executor_tests {
#[test]
fn every_reserved_executor_is_registered_and_builds_only_an_empty_plan() {
let executors: [&dyn crate::ExApiInstructionExecutor; 104] = [
&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::ExSolanaCoreExecutor,
&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(), 104);
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"));
}
}
}

View File

@@ -1,6 +1,8 @@
// file: kb-lib/src/executor/adapter.rs
// version: 1
// version: 2
//! `adapter` executor family.
mod saber_decimal_wrapper;
/// Exposes the reserved `adapter/saber_decimal_wrapper` executor.
pub use self::saber_decimal_wrapper::ExAdapterSaberDecimalWrapperExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/adapter/saber_decimal_wrapper.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_adapter_saber_decimal_wrapper`.
//! Reserved executor for `adapter_saber_decimal_wrapper`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_adapter_saber_decimal_wrapper";
/// Reserved executor for the `adapter_saber_decimal_wrapper` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAdapterSaberDecimalWrapperExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAdapterSaberDecimalWrapperExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_adapter_saber_decimal_wrapper";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::ADAPTER_SABER_DECIMAL_WRAPPER_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"adapter_saber_decimal_wrapper"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_adapter_saber_decimal_wrapper".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,7 +1,11 @@
// file: kb-lib/src/executor/admin.rs
// version: 1
// version: 2
//! `admin` executor family.
mod jupiter_lock;
mod pump_fees;
/// Exposes the reserved `admin/jupiter_lock` executor.
pub use self::jupiter_lock::ExAdminJupiterLockExecutor;
/// Exposes the reserved `admin/pump_fees` executor.
pub use self::pump_fees::ExAdminPumpFeesExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/admin/jupiter_lock.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_admin_jupiter_lock`.
//! Reserved executor for `admin_jupiter_lock`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_admin_jupiter_lock";
/// Reserved executor for the `admin_jupiter_lock` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAdminJupiterLockExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAdminJupiterLockExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_admin_jupiter_lock";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::ADMIN_JUPITER_LOCK_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"admin_jupiter_lock"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_admin_jupiter_lock".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/admin/pump_fees.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_admin_pump_fees`.
//! Reserved executor for `admin_pump_fees`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_admin_pump_fees";
/// Reserved executor for the `admin_pump_fees` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAdminPumpFeesExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAdminPumpFeesExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_admin_pump_fees";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::ADMIN_PUMP_FEES_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"admin_pump_fees"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_admin_pump_fees".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/executor/amm.rs
// version: 1
// version: 2
//! `amm` executor family.
@@ -29,3 +29,55 @@ mod virtuals;
mod woofi;
mod zero_fi;
mod zora;
/// Exposes the reserved `amm/aldrin_v1` executor.
pub use self::aldrin_v1::ExAmmAldrinV1Executor;
/// Exposes the reserved `amm/aldrin_v2` executor.
pub use self::aldrin_v2::ExAmmAldrinV2Executor;
/// Exposes the reserved `amm/alphaq` executor.
pub use self::alphaq::ExAmmAlphaqExecutor;
/// Exposes the reserved `amm/believe` executor.
pub use self::believe::ExAmmBelieveExecutor;
/// Exposes the reserved `amm/bonk_swap` executor.
pub use self::bonk_swap::ExAmmBonkSwapExecutor;
/// Exposes the reserved `amm/fluxbeam` executor.
pub use self::fluxbeam::ExAmmFluxbeamExecutor;
/// Exposes the reserved `amm/goon_fi` executor.
pub use self::goon_fi::ExAmmGoonFiExecutor;
/// Exposes the reserved `amm/goosefx_gamma` executor.
pub use self::goosefx_gamma::ExAmmGoosefxGammaExecutor;
/// Exposes the reserved `amm/goosefx_v2` executor.
pub use self::goosefx_v2::ExAmmGoosefxV2Executor;
/// Exposes the reserved `amm/guac_swap` executor.
pub use self::guac_swap::ExAmmGuacSwapExecutor;
/// Exposes the reserved `amm/lifinity_swap_v2` executor.
pub use self::lifinity_swap_v2::ExAmmLifinitySwapV2Executor;
/// Exposes the reserved `amm/metadao_futarchy_amm` executor.
pub use self::metadao_futarchy_amm::ExAmmMetadaoFutarchyAmmExecutor;
/// Exposes the reserved `amm/metadao_v0_5` executor.
pub use self::metadao_v0_5::ExAmmMetadaoV05Executor;
/// Exposes the reserved `amm/meteora_damm_v1` executor.
pub use self::meteora_damm_v1::ExAmmMeteoraDammV1Executor;
/// Exposes the reserved `amm/meteora_damm_v2` executor.
pub use self::meteora_damm_v2::ExAmmMeteoraDammV2Executor;
/// Exposes the reserved `amm/obric_v2` executor.
pub use self::obric_v2::ExAmmObricV2Executor;
/// Exposes the reserved `amm/one_dex` executor.
pub use self::one_dex::ExAmmOneDexExecutor;
/// Exposes the reserved `amm/pump_swap` executor.
pub use self::pump_swap::ExAmmPumpSwapExecutor;
/// Exposes the reserved `amm/raydium_lp_v4` executor.
pub use self::raydium_lp_v4::ExAmmRaydiumLpV4Executor;
/// Exposes the reserved `amm/solfi` executor.
pub use self::solfi::ExAmmSolfiExecutor;
/// Exposes the reserved `amm/solfi_v2` executor.
pub use self::solfi_v2::ExAmmSolfiV2Executor;
/// Exposes the reserved `amm/vertigo` executor.
pub use self::vertigo::ExAmmVertigoExecutor;
/// Exposes the reserved `amm/virtuals` executor.
pub use self::virtuals::ExAmmVirtualsExecutor;
/// Exposes the reserved `amm/woofi` executor.
pub use self::woofi::ExAmmWoofiExecutor;
/// Exposes the reserved `amm/zero_fi` executor.
pub use self::zero_fi::ExAmmZeroFiExecutor;
/// Exposes the reserved `amm/zora` executor.
pub use self::zora::ExAmmZoraExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/aldrin_v1.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_aldrin_v1`.
//! Reserved executor for `amm_aldrin_v1`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v1";
/// Reserved executor for the `amm_aldrin_v1` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmAldrinV1Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmAldrinV1Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_aldrin_v1";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_ALDRIN_V1_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_aldrin_v1"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_aldrin_v1".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/aldrin_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_aldrin_v2`.
//! Reserved executor for `amm_aldrin_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v2";
/// Reserved executor for the `amm_aldrin_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmAldrinV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmAldrinV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_aldrin_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_ALDRIN_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_aldrin_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_aldrin_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/alphaq.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_alphaq`.
//! Reserved executor for `amm_alphaq`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_alphaq";
/// Reserved executor for the `amm_alphaq` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmAlphaqExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmAlphaqExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_alphaq";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_ALPHAQ_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_alphaq"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_alphaq".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/believe.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_believe`.
//! Reserved executor for `amm_believe`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_believe";
/// Reserved executor for the `amm_believe` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmBelieveExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmBelieveExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_believe";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_BELIEVE_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_believe"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_believe".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/bonk_swap.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_bonk_swap`.
//! Reserved executor for `amm_bonk_swap`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_bonk_swap";
/// Reserved executor for the `amm_bonk_swap` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmBonkSwapExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmBonkSwapExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_bonk_swap";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_BONK_SWAP_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_bonk_swap"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_bonk_swap".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/fluxbeam.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_fluxbeam`.
//! Reserved executor for `amm_fluxbeam`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_fluxbeam";
/// Reserved executor for the `amm_fluxbeam` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmFluxbeamExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmFluxbeamExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_fluxbeam";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_FLUXBEAM_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_fluxbeam"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_fluxbeam".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/goon_fi.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_goon_fi`.
//! Reserved executor for `amm_goon_fi`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_goon_fi";
/// Reserved executor for the `amm_goon_fi` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmGoonFiExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmGoonFiExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_goon_fi";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_GOON_FI_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_goon_fi"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_goon_fi".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/goosefx_gamma.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_goosefx_gamma`.
//! Reserved executor for `amm_goosefx_gamma`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_gamma";
/// Reserved executor for the `amm_goosefx_gamma` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmGoosefxGammaExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmGoosefxGammaExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_goosefx_gamma";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_GOOSEFX_GAMMA_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_goosefx_gamma"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_goosefx_gamma".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/goosefx_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_goosefx_v2`.
//! Reserved executor for `amm_goosefx_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_v2";
/// Reserved executor for the `amm_goosefx_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmGoosefxV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmGoosefxV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_goosefx_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_GOOSEFX_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_goosefx_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_goosefx_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/guac_swap.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_guac_swap`.
//! Reserved executor for `amm_guac_swap`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_guac_swap";
/// Reserved executor for the `amm_guac_swap` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmGuacSwapExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmGuacSwapExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_guac_swap";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_GUAC_SWAP_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_guac_swap"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_guac_swap".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/lifinity_swap_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_lifinity_swap_v2`.
//! Reserved executor for `amm_lifinity_swap_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_lifinity_swap_v2";
/// Reserved executor for the `amm_lifinity_swap_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmLifinitySwapV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmLifinitySwapV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_lifinity_swap_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_LIFINITY_SWAP_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_lifinity_swap_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_lifinity_swap_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/metadao_futarchy_amm.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_metadao_futarchy_amm`.
//! Reserved executor for `amm_metadao_futarchy_amm`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_metadao_futarchy_amm";
/// Reserved executor for the `amm_metadao_futarchy_amm` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmMetadaoFutarchyAmmExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmMetadaoFutarchyAmmExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_metadao_futarchy_amm";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_METADAO_FUTARCHY_AMM_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_metadao_futarchy_amm"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_metadao_futarchy_amm".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/metadao_v0_5.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_metadao_v0_5`.
//! Reserved executor for `amm_metadao_v0_5`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_metadao_v0_5";
/// Reserved executor for the `amm_metadao_v0_5` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmMetadaoV05Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmMetadaoV05Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_metadao_v0_5";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_METADAO_V0_5_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_metadao_v0_5"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_metadao_v0_5".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/meteora_damm_v1.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_meteora_damm_v1`.
//! Reserved executor for `amm_meteora_damm_v1`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v1";
/// Reserved executor for the `amm_meteora_damm_v1` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmMeteoraDammV1Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmMeteoraDammV1Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_meteora_damm_v1";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_METEORA_DAMM_V1_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_meteora_damm_v1"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_meteora_damm_v1".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/meteora_damm_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_meteora_damm_v2`.
//! Reserved executor for `amm_meteora_damm_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v2";
/// Reserved executor for the `amm_meteora_damm_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmMeteoraDammV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmMeteoraDammV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_meteora_damm_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_METEORA_DAMM_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_meteora_damm_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_meteora_damm_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/obric_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_obric_v2`.
//! Reserved executor for `amm_obric_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_obric_v2";
/// Reserved executor for the `amm_obric_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmObricV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmObricV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_obric_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_OBRIC_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_obric_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_obric_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/one_dex.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_one_dex`.
//! Reserved executor for `amm_one_dex`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_one_dex";
/// Reserved executor for the `amm_one_dex` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmOneDexExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmOneDexExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_one_dex";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_ONE_DEX_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_one_dex"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_one_dex".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/pump_swap.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_pump_swap`.
//! Reserved executor for `amm_pump_swap`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_pump_swap";
/// Reserved executor for the `amm_pump_swap` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmPumpSwapExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmPumpSwapExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_pump_swap";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_PUMP_SWAP_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_pump_swap"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_pump_swap".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/raydium_lp_v4.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_raydium_lp_v4`.
//! Reserved executor for `amm_raydium_lp_v4`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_raydium_lp_v4";
/// Reserved executor for the `amm_raydium_lp_v4` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmRaydiumLpV4Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmRaydiumLpV4Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_raydium_lp_v4";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_RAYDIUM_LP_V4_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_raydium_lp_v4"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_raydium_lp_v4".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/solfi.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_solfi`.
//! Reserved executor for `amm_solfi`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_solfi";
/// Reserved executor for the `amm_solfi` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmSolfiExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmSolfiExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_solfi";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_SOLFI_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_solfi"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_solfi".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/solfi_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_solfi_v2`.
//! Reserved executor for `amm_solfi_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_solfi_v2";
/// Reserved executor for the `amm_solfi_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmSolfiV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmSolfiV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_solfi_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_SOLFI_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_solfi_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_solfi_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/vertigo.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_vertigo`.
//! Reserved executor for `amm_vertigo`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_vertigo";
/// Reserved executor for the `amm_vertigo` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmVertigoExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmVertigoExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_vertigo";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_VERTIGO_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_vertigo"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_vertigo".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/virtuals.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_virtuals`.
//! Reserved executor for `amm_virtuals`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_virtuals";
/// Reserved executor for the `amm_virtuals` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmVirtualsExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmVirtualsExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_virtuals";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_VIRTUALS_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_virtuals"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_virtuals".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/woofi.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_woofi`.
//! Reserved executor for `amm_woofi`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_woofi";
/// Reserved executor for the `amm_woofi` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmWoofiExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmWoofiExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_woofi";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_WOOFI_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_woofi"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_woofi".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/zero_fi.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_zero_fi`.
//! Reserved executor for `amm_zero_fi`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_zero_fi";
/// Reserved executor for the `amm_zero_fi` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmZeroFiExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmZeroFiExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_zero_fi";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_ZERO_FI_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_zero_fi"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_zero_fi".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/amm/zora.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_amm_zora`.
//! Reserved executor for `amm_zora`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_amm_zora";
/// Reserved executor for the `amm_zora` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExAmmZoraExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExAmmZoraExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_amm_zora";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::AMM_ZORA_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"amm_zora"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_amm_zora".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/executor/bridge.rs
// version: 1
// version: 2
//! `bridge` executor family.
@@ -7,3 +7,11 @@ mod circle_cctp_token_messenger_minter;
mod circle_cctp_token_messenger_minter_v2;
mod layer_zero_endpoint;
mod layer_zero_executor;
/// Exposes the reserved `bridge/circle_cctp_token_messenger_minter` executor.
pub use self::circle_cctp_token_messenger_minter::ExBridgeCircleCctpTokenMessengerMinterExecutor;
/// Exposes the reserved `bridge/circle_cctp_token_messenger_minter_v2` executor.
pub use self::circle_cctp_token_messenger_minter_v2::ExBridgeCircleCctpTokenMessengerMinterV2Executor;
/// Exposes the reserved `bridge/layer_zero_endpoint` executor.
pub use self::layer_zero_endpoint::ExBridgeLayerZeroEndpointExecutor;
/// Exposes the reserved `bridge/layer_zero_executor` executor.
pub use self::layer_zero_executor::ExBridgeLayerZeroExecutorExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_bridge_circle_cctp_token_messenger_minter`.
//! Reserved executor for `bridge_circle_cctp_token_messenger_minter`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter";
/// Reserved executor for the `bridge_circle_cctp_token_messenger_minter` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExBridgeCircleCctpTokenMessengerMinterExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExBridgeCircleCctpTokenMessengerMinterExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_bridge_circle_cctp_token_messenger_minter";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"bridge_circle_cctp_token_messenger_minter"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_bridge_circle_cctp_token_messenger_minter".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_bridge_circle_cctp_token_messenger_minter_v2`.
//! Reserved executor for `bridge_circle_cctp_token_messenger_minter_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter_v2";
/// Reserved executor for the `bridge_circle_cctp_token_messenger_minter_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExBridgeCircleCctpTokenMessengerMinterV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExBridgeCircleCctpTokenMessengerMinterV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_bridge_circle_cctp_token_messenger_minter_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"bridge_circle_cctp_token_messenger_minter_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_bridge_circle_cctp_token_messenger_minter_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/bridge/layer_zero_endpoint.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_bridge_layer_zero_endpoint`.
//! Reserved executor for `bridge_layer_zero_endpoint`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_endpoint";
/// Reserved executor for the `bridge_layer_zero_endpoint` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExBridgeLayerZeroEndpointExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExBridgeLayerZeroEndpointExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_bridge_layer_zero_endpoint";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::BRIDGE_LAYER_ZERO_ENDPOINT_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"bridge_layer_zero_endpoint"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_bridge_layer_zero_endpoint".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/bridge/layer_zero_executor.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_bridge_layer_zero_executor`.
//! Reserved executor for `bridge_layer_zero_executor`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_executor";
/// Reserved executor for the `bridge_layer_zero_executor` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExBridgeLayerZeroExecutorExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExBridgeLayerZeroExecutorExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_bridge_layer_zero_executor";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::BRIDGE_LAYER_ZERO_EXECUTOR_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"bridge_layer_zero_executor"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_bridge_layer_zero_executor".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/executor/clmm.rs
// version: 1
// version: 2
//! `clmm` executor family.
@@ -9,3 +9,15 @@ mod orca_whirlpool;
mod pancake_swap;
mod raydium;
mod stabble;
/// Exposes the reserved `clmm/byreal` executor.
pub use self::byreal::ExClmmByrealExecutor;
/// Exposes the reserved `clmm/fusion` executor.
pub use self::fusion::ExClmmFusionExecutor;
/// Exposes the reserved `clmm/orca_whirlpool` executor.
pub use self::orca_whirlpool::ExClmmOrcaWhirlpoolExecutor;
/// Exposes the reserved `clmm/pancake_swap` executor.
pub use self::pancake_swap::ExClmmPancakeSwapExecutor;
/// Exposes the reserved `clmm/raydium` executor.
pub use self::raydium::ExClmmRaydiumExecutor;
/// Exposes the reserved `clmm/stabble` executor.
pub use self::stabble::ExClmmStabbleExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/clmm/byreal.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_clmm_byreal`.
//! Reserved executor for `clmm_byreal`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_clmm_byreal";
/// Reserved executor for the `clmm_byreal` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExClmmByrealExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExClmmByrealExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_clmm_byreal";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::CLMM_BYREAL_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"clmm_byreal"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_clmm_byreal".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/clmm/fusion.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_clmm_fusion`.
//! Reserved executor for `clmm_fusion`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_clmm_fusion";
/// Reserved executor for the `clmm_fusion` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExClmmFusionExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExClmmFusionExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_clmm_fusion";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::CLMM_FUSION_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"clmm_fusion"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_clmm_fusion".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/clmm/orca_whirlpool.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_clmm_orca_whirlpool`.
//! Reserved executor for `clmm_orca_whirlpool`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_clmm_orca_whirlpool";
/// Reserved executor for the `clmm_orca_whirlpool` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExClmmOrcaWhirlpoolExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExClmmOrcaWhirlpoolExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_clmm_orca_whirlpool";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::CLMM_ORCA_WHIRLPOOL_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"clmm_orca_whirlpool"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_clmm_orca_whirlpool".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/clmm/pancake_swap.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_clmm_pancake_swap`.
//! Reserved executor for `clmm_pancake_swap`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_clmm_pancake_swap";
/// Reserved executor for the `clmm_pancake_swap` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExClmmPancakeSwapExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExClmmPancakeSwapExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_clmm_pancake_swap";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::CLMM_PANCAKE_SWAP_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"clmm_pancake_swap"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_clmm_pancake_swap".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/clmm/raydium.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_clmm_raydium`.
//! Reserved executor for `clmm_raydium`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_clmm_raydium";
/// Reserved executor for the `clmm_raydium` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExClmmRaydiumExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExClmmRaydiumExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_clmm_raydium";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::CLMM_RAYDIUM_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"clmm_raydium"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_clmm_raydium".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/clmm/stabble.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_clmm_stabble`.
//! Reserved executor for `clmm_stabble`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_clmm_stabble";
/// Reserved executor for the `clmm_stabble` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExClmmStabbleExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExClmmStabbleExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_clmm_stabble";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::CLMM_STABBLE_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"clmm_stabble"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_clmm_stabble".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,6 +1,8 @@
// file: kb-lib/src/executor/cpmm.rs
// version: 1
// version: 2
//! `cpmm` executor family.
mod raydium;
/// Exposes the reserved `cpmm/raydium` executor.
pub use self::raydium::ExCpmmRaydiumExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/cpmm/raydium.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_cpmm_raydium`.
//! Reserved executor for `cpmm_raydium`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_cpmm_raydium";
/// Reserved executor for the `cpmm_raydium` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExCpmmRaydiumExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExCpmmRaydiumExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_cpmm_raydium";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::CPMM_RAYDIUM_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"cpmm_raydium"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_cpmm_raydium".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,6 +1,8 @@
// file: kb-lib/src/executor/dlmm.rs
// version: 1
// version: 2
//! `dlmm` executor family.
mod meteora;
/// Exposes the reserved `dlmm/meteora` executor.
pub use self::meteora::ExDlmmMeteoraExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/dlmm/meteora.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_dlmm_meteora`.
//! Reserved executor for `dlmm_meteora`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_dlmm_meteora";
/// Reserved executor for the `dlmm_meteora` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExDlmmMeteoraExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExDlmmMeteoraExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_dlmm_meteora";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::DLMM_METEORA_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"dlmm_meteora"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_dlmm_meteora".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,7 +1,11 @@
// file: kb-lib/src/executor/fees.rs
// version: 1
// version: 2
//! `fees` executor family.
mod bags_fee_share_v1;
mod bags_fee_share_v2;
/// Exposes the reserved `fees/bags_fee_share_v1` executor.
pub use self::bags_fee_share_v1::ExFeesBagsFeeShareV1Executor;
/// Exposes the reserved `fees/bags_fee_share_v2` executor.
pub use self::bags_fee_share_v2::ExFeesBagsFeeShareV2Executor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/fees/bags_fee_share_v1.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_fees_bags_fee_share_v1`.
//! Reserved executor for `fees_bags_fee_share_v1`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v1";
/// Reserved executor for the `fees_bags_fee_share_v1` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExFeesBagsFeeShareV1Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExFeesBagsFeeShareV1Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_fees_bags_fee_share_v1";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::FEES_BAGS_FEE_SHARE_V1_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"fees_bags_fee_share_v1"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_fees_bags_fee_share_v1".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/fees/bags_fee_share_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_fees_bags_fee_share_v2`.
//! Reserved executor for `fees_bags_fee_share_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v2";
/// Reserved executor for the `fees_bags_fee_share_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExFeesBagsFeeShareV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExFeesBagsFeeShareV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_fees_bags_fee_share_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::FEES_BAGS_FEE_SHARE_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"fees_bags_fee_share_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_fees_bags_fee_share_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,6 +1,8 @@
// file: kb-lib/src/executor/governance.rs
// version: 1
// version: 2
//! `governance` executor family.
mod metadao_bid_wall;
/// Exposes the reserved `governance/metadao_bid_wall` executor.
pub use self::metadao_bid_wall::ExGovernanceMetadaoBidWallExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/governance/metadao_bid_wall.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_governance_metadao_bid_wall`.
//! Reserved executor for `governance_metadao_bid_wall`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_governance_metadao_bid_wall";
/// Reserved executor for the `governance_metadao_bid_wall` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExGovernanceMetadaoBidWallExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExGovernanceMetadaoBidWallExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_governance_metadao_bid_wall";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::GOVERNANCE_METADAO_BID_WALL_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"governance_metadao_bid_wall"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_governance_metadao_bid_wall".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/executor/launchpad.rs
// version: 1
// version: 2
//! `launchpad` executor family.
@@ -12,3 +12,21 @@ mod printr;
mod pump_fun;
mod pump_pumpup_ai;
mod raydium_launchlab;
/// Exposes the reserved `launchpad/boop_fun` executor.
pub use self::boop_fun::ExLaunchpadBoopFunExecutor;
/// Exposes the reserved `launchpad/metadao_ico` executor.
pub use self::metadao_ico::ExLaunchpadMetadaoIcoExecutor;
/// Exposes the reserved `launchpad/meteora_dbc` executor.
pub use self::meteora_dbc::ExLaunchpadMeteoraDbcExecutor;
/// Exposes the reserved `launchpad/moonit` executor.
pub use self::moonit::ExLaunchpadMoonitExecutor;
/// Exposes the reserved `launchpad/orca_wavebreak` executor.
pub use self::orca_wavebreak::ExLaunchpadOrcaWavebreakExecutor;
/// Exposes the reserved `launchpad/printr` executor.
pub use self::printr::ExLaunchpadPrintrExecutor;
/// Exposes the reserved `launchpad/pump_fun` executor.
pub use self::pump_fun::ExLaunchpadPumpFunExecutor;
/// Exposes the reserved `launchpad/pump_pumpup_ai` executor.
pub use self::pump_pumpup_ai::ExLaunchpadPumpPumpupAiExecutor;
/// Exposes the reserved `launchpad/raydium_launchlab` executor.
pub use self::raydium_launchlab::ExLaunchpadRaydiumLaunchlabExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/launchpad/boop_fun.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_launchpad_boop_fun`.
//! Reserved executor for `launchpad_boop_fun`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_launchpad_boop_fun";
/// Reserved executor for the `launchpad_boop_fun` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLaunchpadBoopFunExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLaunchpadBoopFunExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_launchpad_boop_fun";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LAUNCHPAD_BOOP_FUN_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"launchpad_boop_fun"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_launchpad_boop_fun".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/launchpad/metadao_ico.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_launchpad_metadao_ico`.
//! Reserved executor for `launchpad_metadao_ico`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_launchpad_metadao_ico";
/// Reserved executor for the `launchpad_metadao_ico` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLaunchpadMetadaoIcoExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLaunchpadMetadaoIcoExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_launchpad_metadao_ico";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LAUNCHPAD_METADAO_ICO_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"launchpad_metadao_ico"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_launchpad_metadao_ico".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/launchpad/meteora_dbc.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_launchpad_meteora_dbc`.
//! Reserved executor for `launchpad_meteora_dbc`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_launchpad_meteora_dbc";
/// Reserved executor for the `launchpad_meteora_dbc` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLaunchpadMeteoraDbcExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLaunchpadMeteoraDbcExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_launchpad_meteora_dbc";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LAUNCHPAD_METEORA_DBC_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"launchpad_meteora_dbc"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_launchpad_meteora_dbc".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/launchpad/moonit.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_launchpad_moonit`.
//! Reserved executor for `launchpad_moonit`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_launchpad_moonit";
/// Reserved executor for the `launchpad_moonit` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLaunchpadMoonitExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLaunchpadMoonitExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_launchpad_moonit";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LAUNCHPAD_MOONIT_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"launchpad_moonit"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_launchpad_moonit".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/launchpad/orca_wavebreak.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_launchpad_orca_wavebreak`.
//! Reserved executor for `launchpad_orca_wavebreak`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_launchpad_orca_wavebreak";
/// Reserved executor for the `launchpad_orca_wavebreak` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLaunchpadOrcaWavebreakExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLaunchpadOrcaWavebreakExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_launchpad_orca_wavebreak";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LAUNCHPAD_ORCA_WAVEBREAK_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"launchpad_orca_wavebreak"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_launchpad_orca_wavebreak".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/launchpad/printr.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_launchpad_printr`.
//! Reserved executor for `launchpad_printr`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_launchpad_printr";
/// Reserved executor for the `launchpad_printr` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLaunchpadPrintrExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLaunchpadPrintrExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_launchpad_printr";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LAUNCHPAD_PRINTR_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"launchpad_printr"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_launchpad_printr".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/launchpad/pump_fun.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_launchpad_pump_fun`.
//! Reserved executor for `launchpad_pump_fun`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_fun";
/// Reserved executor for the `launchpad_pump_fun` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLaunchpadPumpFunExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLaunchpadPumpFunExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_launchpad_pump_fun";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LAUNCHPAD_PUMP_FUN_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"launchpad_pump_fun"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_launchpad_pump_fun".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/launchpad/pump_pumpup_ai.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_launchpad_pump_pumpup_ai`.
//! Reserved executor for `launchpad_pump_pumpup_ai`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_pumpup_ai";
/// Reserved executor for the `launchpad_pump_pumpup_ai` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLaunchpadPumpPumpupAiExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLaunchpadPumpPumpupAiExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_launchpad_pump_pumpup_ai";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LAUNCHPAD_PUMP_PUMPUP_AI_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"launchpad_pump_pumpup_ai"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_launchpad_pump_pumpup_ai".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/launchpad/raydium_launchlab.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_launchpad_raydium_launchlab`.
//! Reserved executor for `launchpad_raydium_launchlab`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_launchpad_raydium_launchlab";
/// Reserved executor for the `launchpad_raydium_launchlab` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLaunchpadRaydiumLaunchlabExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLaunchpadRaydiumLaunchlabExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_launchpad_raydium_launchlab";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LAUNCHPAD_RAYDIUM_LAUNCHLAB_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"launchpad_raydium_launchlab"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_launchpad_raydium_launchlab".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/executor/lending.rs
// version: 1
// version: 2
//! `lending` executor family.
@@ -10,3 +10,17 @@ mod jupiter_lend_flash_loan;
mod jupiter_lend_liquidity;
mod kamino;
mod marginfi_v2;
/// Exposes the reserved `lending/clone` executor.
pub use self::clone::ExLendingCloneExecutor;
/// Exposes the reserved `lending/jupiter_lend_borrow` executor.
pub use self::jupiter_lend_borrow::ExLendingJupiterLendBorrowExecutor;
/// Exposes the reserved `lending/jupiter_lend_earn` executor.
pub use self::jupiter_lend_earn::ExLendingJupiterLendEarnExecutor;
/// Exposes the reserved `lending/jupiter_lend_flash_loan` executor.
pub use self::jupiter_lend_flash_loan::ExLendingJupiterLendFlashLoanExecutor;
/// Exposes the reserved `lending/jupiter_lend_liquidity` executor.
pub use self::jupiter_lend_liquidity::ExLendingJupiterLendLiquidityExecutor;
/// Exposes the reserved `lending/kamino` executor.
pub use self::kamino::ExLendingKaminoExecutor;
/// Exposes the reserved `lending/marginfi_v2` executor.
pub use self::marginfi_v2::ExLendingMarginfiV2Executor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/lending/clone.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_lending_clone`.
//! Reserved executor for `lending_clone`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_lending_clone";
/// Reserved executor for the `lending_clone` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLendingCloneExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLendingCloneExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_lending_clone";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LENDING_CLONE_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"lending_clone"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_lending_clone".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/lending/jupiter_lend_borrow.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_lending_jupiter_lend_borrow`.
//! Reserved executor for `lending_jupiter_lend_borrow`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_borrow";
/// Reserved executor for the `lending_jupiter_lend_borrow` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLendingJupiterLendBorrowExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLendingJupiterLendBorrowExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_lending_jupiter_lend_borrow";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LENDING_JUPITER_LEND_BORROW_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"lending_jupiter_lend_borrow"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_lending_jupiter_lend_borrow".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/lending/jupiter_lend_earn.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_lending_jupiter_lend_earn`.
//! Reserved executor for `lending_jupiter_lend_earn`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_earn";
/// Reserved executor for the `lending_jupiter_lend_earn` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLendingJupiterLendEarnExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLendingJupiterLendEarnExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_lending_jupiter_lend_earn";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LENDING_JUPITER_LEND_EARN_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"lending_jupiter_lend_earn"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_lending_jupiter_lend_earn".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_lending_jupiter_lend_flash_loan`.
//! Reserved executor for `lending_jupiter_lend_flash_loan`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_flash_loan";
/// Reserved executor for the `lending_jupiter_lend_flash_loan` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLendingJupiterLendFlashLoanExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLendingJupiterLendFlashLoanExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_lending_jupiter_lend_flash_loan";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LENDING_JUPITER_LEND_FLASH_LOAN_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"lending_jupiter_lend_flash_loan"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_lending_jupiter_lend_flash_loan".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/lending/jupiter_lend_liquidity.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_lending_jupiter_lend_liquidity`.
//! Reserved executor for `lending_jupiter_lend_liquidity`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_liquidity";
/// Reserved executor for the `lending_jupiter_lend_liquidity` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLendingJupiterLendLiquidityExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLendingJupiterLendLiquidityExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_lending_jupiter_lend_liquidity";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LENDING_JUPITER_LEND_LIQUIDITY_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"lending_jupiter_lend_liquidity"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_lending_jupiter_lend_liquidity".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/lending/kamino.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_lending_kamino`.
//! Reserved executor for `lending_kamino`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_lending_kamino";
/// Reserved executor for the `lending_kamino` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLendingKaminoExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLendingKaminoExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_lending_kamino";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LENDING_KAMINO_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"lending_kamino"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_lending_kamino".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/lending/marginfi_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_lending_marginfi_v2`.
//! Reserved executor for `lending_marginfi_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_lending_marginfi_v2";
/// Reserved executor for the `lending_marginfi_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLendingMarginfiV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLendingMarginfiV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_lending_marginfi_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LENDING_MARGINFI_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"lending_marginfi_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_lending_marginfi_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,6 +1,8 @@
// file: kb-lib/src/executor/lock.rs
// version: 1
// version: 2
//! `lock` executor family.
mod raydium_lp;
/// Exposes the reserved `lock/raydium_lp` executor.
pub use self::raydium_lp::ExLockRaydiumLpExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/lock/raydium_lp.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_lock_raydium_lp`.
//! Reserved executor for `lock_raydium_lp`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_lock_raydium_lp";
/// Reserved executor for the `lock_raydium_lp` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExLockRaydiumLpExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExLockRaydiumLpExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_lock_raydium_lp";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::LOCK_RAYDIUM_LP_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"lock_raydium_lp"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_lock_raydium_lp".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,7 +1,11 @@
// file: kb-lib/src/executor/metadata.rs
// version: 1
// version: 2
//! `metadata` executor family.
mod metaplex_token_metadata;
mod spl_name_service;
/// Exposes the reserved `metadata/metaplex_token_metadata` executor.
pub use self::metaplex_token_metadata::ExMetadataMetaplexTokenMetadataExecutor;
/// Exposes the reserved `metadata/spl_name_service` executor.
pub use self::spl_name_service::ExMetadataSplNameServiceExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/metadata/metaplex_token_metadata.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_metadata_metaplex_token_metadata`.
//! Reserved executor for `metadata_metaplex_token_metadata`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_metadata_metaplex_token_metadata";
/// Reserved executor for the `metadata_metaplex_token_metadata` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExMetadataMetaplexTokenMetadataExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExMetadataMetaplexTokenMetadataExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_metadata_metaplex_token_metadata";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"metadata_metaplex_token_metadata"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_metadata_metaplex_token_metadata".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/metadata/spl_name_service.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_metadata_spl_name_service`.
//! Reserved executor for `metadata_spl_name_service`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_metadata_spl_name_service";
/// Reserved executor for the `metadata_spl_name_service` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExMetadataSplNameServiceExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExMetadataSplNameServiceExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_metadata_spl_name_service";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::METADATA_SPL_NAME_SERVICE_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"metadata_spl_name_service"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_metadata_spl_name_service".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,6 +1,8 @@
// file: kb-lib/src/executor/nft.rs
// version: 1
// version: 2
//! `nft` executor family.
mod metaplex_bubblegum;
/// Exposes the reserved `nft/metaplex_bubblegum` executor.
pub use self::metaplex_bubblegum::ExNftMetaplexBubblegumExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/nft/metaplex_bubblegum.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_nft_metaplex_bubblegum`.
//! Reserved executor for `nft_metaplex_bubblegum`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_nft_metaplex_bubblegum";
/// Reserved executor for the `nft_metaplex_bubblegum` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExNftMetaplexBubblegumExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExNftMetaplexBubblegumExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_nft_metaplex_bubblegum";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::NFT_METAPLEX_BUBBLEGUM_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"nft_metaplex_bubblegum"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_nft_metaplex_bubblegum".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,8 +1,14 @@
// file: kb-lib/src/executor/orderbook.rs
// version: 1
// version: 2
//! `orderbook` executor family.
mod jupiter_limit_order;
mod jupiter_limit_order_v2;
mod openbook_v2;
/// Exposes the reserved `orderbook/jupiter_limit_order` executor.
pub use self::jupiter_limit_order::ExOrderbookJupiterLimitOrderExecutor;
/// Exposes the reserved `orderbook/jupiter_limit_order_v2` executor.
pub use self::jupiter_limit_order_v2::ExOrderbookJupiterLimitOrderV2Executor;
/// Exposes the reserved `orderbook/openbook_v2` executor.
pub use self::openbook_v2::ExOrderbookOpenbookV2Executor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/orderbook/jupiter_limit_order.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_orderbook_jupiter_limit_order`.
//! Reserved executor for `orderbook_jupiter_limit_order`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order";
/// Reserved executor for the `orderbook_jupiter_limit_order` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExOrderbookJupiterLimitOrderExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExOrderbookJupiterLimitOrderExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_orderbook_jupiter_limit_order";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::ORDERBOOK_JUPITER_LIMIT_ORDER_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"orderbook_jupiter_limit_order"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_orderbook_jupiter_limit_order".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_orderbook_jupiter_limit_order_v2`.
//! Reserved executor for `orderbook_jupiter_limit_order_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order_v2";
/// Reserved executor for the `orderbook_jupiter_limit_order_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExOrderbookJupiterLimitOrderV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExOrderbookJupiterLimitOrderV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_orderbook_jupiter_limit_order_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::ORDERBOOK_JUPITER_LIMIT_ORDER_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"orderbook_jupiter_limit_order_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_orderbook_jupiter_limit_order_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/orderbook/openbook_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_orderbook_openbook_v2`.
//! Reserved executor for `orderbook_openbook_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_orderbook_openbook_v2";
/// Reserved executor for the `orderbook_openbook_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExOrderbookOpenbookV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExOrderbookOpenbookV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_orderbook_openbook_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::ORDERBOOK_OPENBOOK_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"orderbook_openbook_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_orderbook_openbook_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,8 +1,14 @@
// file: kb-lib/src/executor/perpetuals.rs
// version: 1
// version: 2
//! `perpetuals` executor family.
mod drift_v2;
mod jupiter;
mod zeta;
/// Exposes the reserved `perpetuals/drift_v2` executor.
pub use self::drift_v2::ExPerpetualsDriftV2Executor;
/// Exposes the reserved `perpetuals/jupiter` executor.
pub use self::jupiter::ExPerpetualsJupiterExecutor;
/// Exposes the reserved `perpetuals/zeta` executor.
pub use self::zeta::ExPerpetualsZetaExecutor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/perpetuals/drift_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_perpetuals_drift_v2`.
//! Reserved executor for `perpetuals_drift_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_perpetuals_drift_v2";
/// Reserved executor for the `perpetuals_drift_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExPerpetualsDriftV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExPerpetualsDriftV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_perpetuals_drift_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::PERPETUALS_DRIFT_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"perpetuals_drift_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_perpetuals_drift_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/perpetuals/jupiter.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_perpetuals_jupiter`.
//! Reserved executor for `perpetuals_jupiter`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_perpetuals_jupiter";
/// Reserved executor for the `perpetuals_jupiter` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExPerpetualsJupiterExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExPerpetualsJupiterExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_perpetuals_jupiter";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::PERPETUALS_JUPITER_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"perpetuals_jupiter"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_perpetuals_jupiter".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/perpetuals/zeta.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_perpetuals_zeta`.
//! Reserved executor for `perpetuals_zeta`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_perpetuals_zeta";
/// Reserved executor for the `perpetuals_zeta` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExPerpetualsZetaExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExPerpetualsZetaExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_perpetuals_zeta";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::PERPETUALS_ZETA_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"perpetuals_zeta"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_perpetuals_zeta".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/executor/router.rs
// version: 1
// version: 2
//! `router` executor family.
@@ -9,3 +9,15 @@ mod jupiter_aggregator_v6;
mod jupiter_dca;
mod okx_labs_v1;
mod okx_labs_v2;
/// Exposes the reserved `router/dflow_aggregator_v4` executor.
pub use self::dflow_aggregator_v4::ExRouterDflowAggregatorV4Executor;
/// Exposes the reserved `router/jupiter_aggregator_v4` executor.
pub use self::jupiter_aggregator_v4::ExRouterJupiterAggregatorV4Executor;
/// Exposes the reserved `router/jupiter_aggregator_v6` executor.
pub use self::jupiter_aggregator_v6::ExRouterJupiterAggregatorV6Executor;
/// Exposes the reserved `router/jupiter_dca` executor.
pub use self::jupiter_dca::ExRouterJupiterDcaExecutor;
/// Exposes the reserved `router/okx_labs_v1` executor.
pub use self::okx_labs_v1::ExRouterOkxLabsV1Executor;
/// Exposes the reserved `router/okx_labs_v2` executor.
pub use self::okx_labs_v2::ExRouterOkxLabsV2Executor;

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/router/dflow_aggregator_v4.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_router_dflow_aggregator_v4`.
//! Reserved executor for `router_dflow_aggregator_v4`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_router_dflow_aggregator_v4";
/// Reserved executor for the `router_dflow_aggregator_v4` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExRouterDflowAggregatorV4Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExRouterDflowAggregatorV4Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_router_dflow_aggregator_v4";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::ROUTER_DFLOW_AGGREGATOR_V4_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"router_dflow_aggregator_v4"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_router_dflow_aggregator_v4".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/router/jupiter_aggregator_v4.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_router_jupiter_aggregator_v4`.
//! Reserved executor for `router_jupiter_aggregator_v4`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v4";
/// Reserved executor for the `router_jupiter_aggregator_v4` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExRouterJupiterAggregatorV4Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExRouterJupiterAggregatorV4Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_router_jupiter_aggregator_v4";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::ROUTER_JUPITER_AGGREGATOR_V4_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"router_jupiter_aggregator_v4"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_router_jupiter_aggregator_v4".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/router/jupiter_aggregator_v6.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_router_jupiter_aggregator_v6`.
//! Reserved executor for `router_jupiter_aggregator_v6`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v6";
/// Reserved executor for the `router_jupiter_aggregator_v6` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExRouterJupiterAggregatorV6Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExRouterJupiterAggregatorV6Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_router_jupiter_aggregator_v6";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::ROUTER_JUPITER_AGGREGATOR_V6_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"router_jupiter_aggregator_v6"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_router_jupiter_aggregator_v6".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/router/jupiter_dca.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_router_jupiter_dca`.
//! Reserved executor for `router_jupiter_dca`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_router_jupiter_dca";
/// Reserved executor for the `router_jupiter_dca` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExRouterJupiterDcaExecutor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExRouterJupiterDcaExecutor {
fn executor_name(&self) -> &'static str {
return "kb_executor_router_jupiter_dca";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::ROUTER_JUPITER_DCA_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"router_jupiter_dca"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_router_jupiter_dca".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/router/okx_labs_v1.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_router_okx_labs_v1`.
//! Reserved executor for `router_okx_labs_v1`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v1";
/// Reserved executor for the `router_okx_labs_v1` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExRouterOkxLabsV1Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExRouterOkxLabsV1Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_router_okx_labs_v1";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::ROUTER_OKX_LABS_V1_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"router_okx_labs_v1"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_router_okx_labs_v1".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,10 +1,49 @@
// file: kb-lib/src/executor/router/okx_labs_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_executor_router_okx_labs_v2`.
//! Reserved executor for `router_okx_labs_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v2";
/// Reserved executor for the `router_okx_labs_v2` program surface.
#[derive(Clone, Debug, Default)]
pub struct ExRouterOkxLabsV2Executor;
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
impl crate::ExApiInstructionExecutor for crate::ExRouterOkxLabsV2Executor {
fn executor_name(&self) -> &'static str {
return "kb_executor_router_okx_labs_v2";
}
fn executor_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn program_ids(&self) -> &'static [&'static str] {
return &[kb_program_ids::ROUTER_OKX_LABS_V2_PROGRAM_ID];
}
fn supports_request(
&self,
request: &crate::ExApiExecutionRequest,
) -> crate::ExApiExecutionSupport {
if crate::ExApiInstructionExecutor::handles_program_id(self, &request.program_id) {
return crate::ExApiExecutionSupport::Maybe;
}
return crate::ExApiExecutionSupport::No;
}
fn build_plan(
&self,
_request: &crate::ExApiExecutionRequest,
) -> kb_core::Result<crate::ExApiExecutionPlan> {
let payload_json = match crate::executor_api_serialize_payload_json(
&serde_json::json!({"status":"reserved_executor","surface":"router_okx_labs_v2"}),
) {
std::result::Result::Ok(serialized) => serialized,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
return std::result::Result::Ok(crate::ExApiExecutionPlan {
executor_name: "kb_executor_router_okx_labs_v2".to_string(),
instruction_count: 0,
payload_json,
});
}
}

View File

@@ -1,6 +1,8 @@
// file: kb-lib/src/executor/rwa.rs
// version: 1
// version: 2
//! `rwa` executor family.
mod ondo_global_markets;
/// Exposes the reserved `rwa/ondo_global_markets` executor.
pub use self::ondo_global_markets::ExRwaOndoGlobalMarketsExecutor;

Some files were not shown because too many files have changed in this diff Show More