carbon_sage_starbased_decoder/instructions/
mod.rs

1//! This code was AUTOGENERATED using the Codama library.
2use crate::PROGRAM_ID;
3use crate::SageDecoder;
4
5pub mod activate_game_state;
6pub mod add_connection;
7pub mod add_crew_to_game;
8pub mod add_rental;
9pub mod add_ship_escrow;
10pub mod add_ship_to_fleet;
11pub mod burn_crafting_consumables;
12pub mod cancel_crafting_process;
13pub mod change_rental;
14pub mod claim_crafting_non_consumables;
15pub mod claim_crafting_outputs;
16pub mod close_crafting_process;
17pub mod close_disbanded_fleet;
18pub mod close_fleet_cargo_pod_token_account;
19pub mod close_player_crew_record;
20pub mod close_starbase_cargo_token_account;
21pub mod close_upgrade_process;
22pub mod complete_starbase_upgrade;
23pub mod copy_game_state;
24pub mod create_cargo_pod;
25pub mod create_certificate_mint;
26pub mod create_crafting_process;
27pub mod create_fleet;
28pub mod create_starbase_upgrade_resource_process;
29pub mod deposit_cargo_to_fleet;
30pub mod deposit_cargo_to_game;
31pub mod deposit_crafting_ingredient;
32pub mod deposit_starbase_upkeep_resource;
33pub mod deregister_mine_item;
34pub mod deregister_progression_config;
35pub mod deregister_resource;
36pub mod deregister_starbase;
37pub mod deregister_survey_data_unit_tracker;
38pub mod dev_add_crew_to_game;
39pub mod dev_deposit_cargo_to_game;
40pub mod disband_fleet;
41pub mod disbanded_fleet_to_escrow;
42pub mod discover_sector;
43pub mod drain_mine_item_bank;
44pub mod drain_survey_data_units_bank;
45pub mod fleet_state_handler;
46pub mod force_disband_fleet;
47pub mod force_drop_fleet_cargo;
48pub mod idle_to_loading_bay;
49pub mod idle_to_respawn;
50pub mod init_game;
51pub mod init_game_state;
52pub mod invalidate_rental;
53pub mod invalidate_ship;
54pub mod load_fleet_crew;
55pub mod loading_bay_to_idle;
56pub mod loading_bay_to_respawn;
57pub mod mine_asteroid_to_respawn;
58pub mod mint_certificate;
59pub mod mint_crew_to_game;
60pub mod redeem_certificate;
61pub mod register_mine_item;
62pub mod register_planet;
63pub mod register_progression_config;
64pub mod register_resource;
65pub mod register_sage_crew_config;
66pub mod register_sage_player_profile;
67pub mod register_sage_point_modifier;
68pub mod register_sector;
69pub mod register_ship;
70pub mod register_star;
71pub mod register_starbase;
72pub mod register_starbase_player;
73pub mod register_survey_data_unit_tracker;
74pub mod remove_cargo_pod;
75pub mod remove_connection;
76pub mod remove_crew_from_game;
77pub mod remove_invalid_ship_escrow;
78pub mod remove_ship_escrow;
79pub mod respawn_to_loading_bay;
80pub mod scan_for_survey_data_units;
81pub mod set_next_ship;
82pub mod start_crafting_process;
83pub mod start_mining_asteroid;
84pub mod start_starbase_upgrade;
85pub mod start_subwarp;
86pub mod stop_crafting_process;
87pub mod stop_mining_asteroid;
88pub mod stop_subwarp;
89pub mod submit_starbase_upgrade_resource;
90pub mod sync_starbase_player;
91pub mod sync_starbase_upgrade_ingredients;
92pub mod transfer_cargo_at_starbase;
93pub mod transfer_cargo_within_fleet;
94pub mod unload_fleet_crew;
95pub mod update_game;
96pub mod update_game_state;
97pub mod update_mine_item;
98pub mod update_planet;
99pub mod update_progression_config;
100pub mod update_resource;
101pub mod update_ship;
102pub mod update_ship_escrow;
103pub mod update_ship_in_fleet;
104pub mod update_star;
105pub mod update_starbase;
106pub mod update_survey_data_unit_tracker;
107pub mod warp_lane;
108pub mod warp_to_coordinate;
109pub mod withdraw_cargo_from_fleet;
110pub mod withdraw_cargo_from_game;
111pub mod withdraw_crafting_ingredient;
112
113pub use self::activate_game_state::*;
114pub use self::add_connection::*;
115pub use self::add_crew_to_game::*;
116pub use self::add_rental::*;
117pub use self::add_ship_escrow::*;
118pub use self::add_ship_to_fleet::*;
119pub use self::burn_crafting_consumables::*;
120pub use self::cancel_crafting_process::*;
121pub use self::change_rental::*;
122pub use self::claim_crafting_non_consumables::*;
123pub use self::claim_crafting_outputs::*;
124pub use self::close_crafting_process::*;
125pub use self::close_disbanded_fleet::*;
126pub use self::close_fleet_cargo_pod_token_account::*;
127pub use self::close_player_crew_record::*;
128pub use self::close_starbase_cargo_token_account::*;
129pub use self::close_upgrade_process::*;
130pub use self::complete_starbase_upgrade::*;
131pub use self::copy_game_state::*;
132pub use self::create_cargo_pod::*;
133pub use self::create_certificate_mint::*;
134pub use self::create_crafting_process::*;
135pub use self::create_fleet::*;
136pub use self::create_starbase_upgrade_resource_process::*;
137pub use self::deposit_cargo_to_fleet::*;
138pub use self::deposit_cargo_to_game::*;
139pub use self::deposit_crafting_ingredient::*;
140pub use self::deposit_starbase_upkeep_resource::*;
141pub use self::deregister_mine_item::*;
142pub use self::deregister_progression_config::*;
143pub use self::deregister_resource::*;
144pub use self::deregister_starbase::*;
145pub use self::deregister_survey_data_unit_tracker::*;
146pub use self::dev_add_crew_to_game::*;
147pub use self::dev_deposit_cargo_to_game::*;
148pub use self::disband_fleet::*;
149pub use self::disbanded_fleet_to_escrow::*;
150pub use self::discover_sector::*;
151pub use self::drain_mine_item_bank::*;
152pub use self::drain_survey_data_units_bank::*;
153pub use self::fleet_state_handler::*;
154pub use self::force_disband_fleet::*;
155pub use self::force_drop_fleet_cargo::*;
156pub use self::idle_to_loading_bay::*;
157pub use self::idle_to_respawn::*;
158pub use self::init_game::*;
159pub use self::init_game_state::*;
160pub use self::invalidate_rental::*;
161pub use self::invalidate_ship::*;
162pub use self::load_fleet_crew::*;
163pub use self::loading_bay_to_idle::*;
164pub use self::loading_bay_to_respawn::*;
165pub use self::mine_asteroid_to_respawn::*;
166pub use self::mint_certificate::*;
167pub use self::mint_crew_to_game::*;
168pub use self::redeem_certificate::*;
169pub use self::register_mine_item::*;
170pub use self::register_planet::*;
171pub use self::register_progression_config::*;
172pub use self::register_resource::*;
173pub use self::register_sage_crew_config::*;
174pub use self::register_sage_player_profile::*;
175pub use self::register_sage_point_modifier::*;
176pub use self::register_sector::*;
177pub use self::register_ship::*;
178pub use self::register_star::*;
179pub use self::register_starbase::*;
180pub use self::register_starbase_player::*;
181pub use self::register_survey_data_unit_tracker::*;
182pub use self::remove_cargo_pod::*;
183pub use self::remove_connection::*;
184pub use self::remove_crew_from_game::*;
185pub use self::remove_invalid_ship_escrow::*;
186pub use self::remove_ship_escrow::*;
187pub use self::respawn_to_loading_bay::*;
188pub use self::scan_for_survey_data_units::*;
189pub use self::set_next_ship::*;
190pub use self::start_crafting_process::*;
191pub use self::start_mining_asteroid::*;
192pub use self::start_starbase_upgrade::*;
193pub use self::start_subwarp::*;
194pub use self::stop_crafting_process::*;
195pub use self::stop_mining_asteroid::*;
196pub use self::stop_subwarp::*;
197pub use self::submit_starbase_upgrade_resource::*;
198pub use self::sync_starbase_player::*;
199pub use self::sync_starbase_upgrade_ingredients::*;
200pub use self::transfer_cargo_at_starbase::*;
201pub use self::transfer_cargo_within_fleet::*;
202pub use self::unload_fleet_crew::*;
203pub use self::update_game::*;
204pub use self::update_game_state::*;
205pub use self::update_mine_item::*;
206pub use self::update_planet::*;
207pub use self::update_progression_config::*;
208pub use self::update_resource::*;
209pub use self::update_ship::*;
210pub use self::update_ship_escrow::*;
211pub use self::update_ship_in_fleet::*;
212pub use self::update_star::*;
213pub use self::update_starbase::*;
214pub use self::update_survey_data_unit_tracker::*;
215pub use self::warp_lane::*;
216pub use self::warp_to_coordinate::*;
217pub use self::withdraw_cargo_from_fleet::*;
218pub use self::withdraw_cargo_from_game::*;
219pub use self::withdraw_crafting_ingredient::*;
220
221#[derive(Debug, Clone, PartialEq, Eq, Hash)]
222#[cfg_attr(
223    feature = "serde",
224    derive(carbon_core::InstructionType, serde::Serialize, serde::Deserialize)
225)]
226#[cfg_attr(feature = "serde", serde(tag = "type", content = "data"))]
227pub enum SageInstruction {
228    ActivateGameState(ActivateGameState),
229    AddConnection(AddConnection),
230    AddCrewToGame(AddCrewToGame),
231    AddRental(AddRental),
232    AddShipEscrow(AddShipEscrow),
233    AddShipToFleet(AddShipToFleet),
234    BurnCraftingConsumables(BurnCraftingConsumables),
235    CancelCraftingProcess(CancelCraftingProcess),
236    ChangeRental(ChangeRental),
237    ClaimCraftingNonConsumables(ClaimCraftingNonConsumables),
238    ClaimCraftingOutputs(ClaimCraftingOutputs),
239    CloseCraftingProcess(CloseCraftingProcess),
240    CloseDisbandedFleet(CloseDisbandedFleet),
241    CloseFleetCargoPodTokenAccount(CloseFleetCargoPodTokenAccount),
242    ClosePlayerCrewRecord(ClosePlayerCrewRecord),
243    CloseStarbaseCargoTokenAccount(CloseStarbaseCargoTokenAccount),
244    CloseUpgradeProcess(CloseUpgradeProcess),
245    CompleteStarbaseUpgrade(CompleteStarbaseUpgrade),
246    CopyGameState(CopyGameState),
247    CreateCargoPod(CreateCargoPod),
248    CreateCertificateMint(CreateCertificateMint),
249    CreateCraftingProcess(CreateCraftingProcess),
250    CreateFleet(CreateFleet),
251    CreateStarbaseUpgradeResourceProcess(CreateStarbaseUpgradeResourceProcess),
252    DepositCargoToFleet(DepositCargoToFleet),
253    DepositCargoToGame(DepositCargoToGame),
254    DepositCraftingIngredient(DepositCraftingIngredient),
255    DepositStarbaseUpkeepResource(DepositStarbaseUpkeepResource),
256    DeregisterMineItem(DeregisterMineItem),
257    DeregisterProgressionConfig(DeregisterProgressionConfig),
258    DeregisterResource(DeregisterResource),
259    DeregisterStarbase(DeregisterStarbase),
260    DeregisterSurveyDataUnitTracker(DeregisterSurveyDataUnitTracker),
261    DevAddCrewToGame(DevAddCrewToGame),
262    DevDepositCargoToGame(DevDepositCargoToGame),
263    DisbandedFleetToEscrow(DisbandedFleetToEscrow),
264    DisbandFleet(DisbandFleet),
265    DiscoverSector(DiscoverSector),
266    DrainMineItemBank(DrainMineItemBank),
267    DrainSurveyDataUnitsBank(DrainSurveyDataUnitsBank),
268    FleetStateHandler(FleetStateHandler),
269    ForceDisbandFleet(ForceDisbandFleet),
270    ForceDropFleetCargo(ForceDropFleetCargo),
271    IdleToLoadingBay(IdleToLoadingBay),
272    IdleToRespawn(IdleToRespawn),
273    InitGame(InitGame),
274    InitGameState(InitGameState),
275    InvalidateRental(InvalidateRental),
276    InvalidateShip(InvalidateShip),
277    LoadFleetCrew(LoadFleetCrew),
278    LoadingBayToIdle(LoadingBayToIdle),
279    LoadingBayToRespawn(LoadingBayToRespawn),
280    MineAsteroidToRespawn(MineAsteroidToRespawn),
281    MintCertificate(MintCertificate),
282    MintCrewToGame(MintCrewToGame),
283    RedeemCertificate(RedeemCertificate),
284    RegisterMineItem(RegisterMineItem),
285    RegisterPlanet(RegisterPlanet),
286    RegisterProgressionConfig(RegisterProgressionConfig),
287    RegisterResource(RegisterResource),
288    RegisterSageCrewConfig(RegisterSageCrewConfig),
289    RegisterSagePlayerProfile(RegisterSagePlayerProfile),
290    RegisterSagePointModifier(RegisterSagePointModifier),
291    RegisterSector(RegisterSector),
292    RegisterShip(RegisterShip),
293    RegisterStar(RegisterStar),
294    RegisterStarbase(RegisterStarbase),
295    RegisterStarbasePlayer(RegisterStarbasePlayer),
296    RegisterSurveyDataUnitTracker(RegisterSurveyDataUnitTracker),
297    RemoveCargoPod(RemoveCargoPod),
298    RemoveConnection(RemoveConnection),
299    RemoveCrewFromGame(RemoveCrewFromGame),
300    RemoveInvalidShipEscrow(RemoveInvalidShipEscrow),
301    RemoveShipEscrow(RemoveShipEscrow),
302    RespawnToLoadingBay(RespawnToLoadingBay),
303    ScanForSurveyDataUnits(ScanForSurveyDataUnits),
304    SetNextShip(SetNextShip),
305    StartCraftingProcess(StartCraftingProcess),
306    StartMiningAsteroid(StartMiningAsteroid),
307    StartStarbaseUpgrade(StartStarbaseUpgrade),
308    StartSubwarp(StartSubwarp),
309    StopCraftingProcess(StopCraftingProcess),
310    StopMiningAsteroid(StopMiningAsteroid),
311    StopSubwarp(StopSubwarp),
312    SubmitStarbaseUpgradeResource(SubmitStarbaseUpgradeResource),
313    SyncStarbasePlayer(SyncStarbasePlayer),
314    SyncStarbaseUpgradeIngredients(SyncStarbaseUpgradeIngredients),
315    TransferCargoAtStarbase(TransferCargoAtStarbase),
316    TransferCargoWithinFleet(TransferCargoWithinFleet),
317    UnloadFleetCrew(UnloadFleetCrew),
318    UpdateGame(UpdateGame),
319    UpdateGameState(UpdateGameState),
320    UpdateMineItem(UpdateMineItem),
321    UpdatePlanet(UpdatePlanet),
322    UpdateProgressionConfig(UpdateProgressionConfig),
323    UpdateResource(UpdateResource),
324    UpdateShip(UpdateShip),
325    UpdateShipEscrow(UpdateShipEscrow),
326    UpdateShipInFleet(UpdateShipInFleet),
327    UpdateStar(UpdateStar),
328    UpdateStarbase(UpdateStarbase),
329    UpdateSurveyDataUnitTracker(UpdateSurveyDataUnitTracker),
330    WarpLane(WarpLane),
331    WarpToCoordinate(WarpToCoordinate),
332    WithdrawCargoFromFleet(WithdrawCargoFromFleet),
333    WithdrawCargoFromGame(WithdrawCargoFromGame),
334    WithdrawCraftingIngredient(WithdrawCraftingIngredient),
335}
336
337impl carbon_core::instruction::InstructionDecoder<'_> for SageDecoder {
338    type InstructionType = SageInstruction;
339
340    fn decode_instruction(
341        &self,
342        instruction: &solana_instruction::Instruction,
343    ) -> Option<carbon_core::instruction::DecodedInstruction<Self::InstructionType>> {
344        if !instruction.program_id.eq(&PROGRAM_ID) {
345            return None;
346        }
347
348        let data = instruction.data.as_slice();
349
350        {
351            if let Some(decoded) = activate_game_state::ActivateGameState::decode(data) {
352                return Some(carbon_core::instruction::DecodedInstruction {
353                    program_id: instruction.program_id,
354                    data: SageInstruction::ActivateGameState(decoded),
355                    accounts: instruction.accounts.clone(),
356                });
357            }
358        }
359        {
360            if let Some(decoded) = add_connection::AddConnection::decode(data) {
361                return Some(carbon_core::instruction::DecodedInstruction {
362                    program_id: instruction.program_id,
363                    data: SageInstruction::AddConnection(decoded),
364                    accounts: instruction.accounts.clone(),
365                });
366            }
367        }
368        {
369            if let Some(decoded) = add_crew_to_game::AddCrewToGame::decode(data) {
370                return Some(carbon_core::instruction::DecodedInstruction {
371                    program_id: instruction.program_id,
372                    data: SageInstruction::AddCrewToGame(decoded),
373                    accounts: instruction.accounts.clone(),
374                });
375            }
376        }
377        {
378            if let Some(decoded) = add_rental::AddRental::decode(data) {
379                return Some(carbon_core::instruction::DecodedInstruction {
380                    program_id: instruction.program_id,
381                    data: SageInstruction::AddRental(decoded),
382                    accounts: instruction.accounts.clone(),
383                });
384            }
385        }
386        {
387            if let Some(decoded) = add_ship_escrow::AddShipEscrow::decode(data) {
388                return Some(carbon_core::instruction::DecodedInstruction {
389                    program_id: instruction.program_id,
390                    data: SageInstruction::AddShipEscrow(decoded),
391                    accounts: instruction.accounts.clone(),
392                });
393            }
394        }
395        {
396            if let Some(decoded) = add_ship_to_fleet::AddShipToFleet::decode(data) {
397                return Some(carbon_core::instruction::DecodedInstruction {
398                    program_id: instruction.program_id,
399                    data: SageInstruction::AddShipToFleet(decoded),
400                    accounts: instruction.accounts.clone(),
401                });
402            }
403        }
404        {
405            if let Some(decoded) = burn_crafting_consumables::BurnCraftingConsumables::decode(data)
406            {
407                return Some(carbon_core::instruction::DecodedInstruction {
408                    program_id: instruction.program_id,
409                    data: SageInstruction::BurnCraftingConsumables(decoded),
410                    accounts: instruction.accounts.clone(),
411                });
412            }
413        }
414        {
415            if let Some(decoded) = cancel_crafting_process::CancelCraftingProcess::decode(data) {
416                return Some(carbon_core::instruction::DecodedInstruction {
417                    program_id: instruction.program_id,
418                    data: SageInstruction::CancelCraftingProcess(decoded),
419                    accounts: instruction.accounts.clone(),
420                });
421            }
422        }
423        {
424            if let Some(decoded) = change_rental::ChangeRental::decode(data) {
425                return Some(carbon_core::instruction::DecodedInstruction {
426                    program_id: instruction.program_id,
427                    data: SageInstruction::ChangeRental(decoded),
428                    accounts: instruction.accounts.clone(),
429                });
430            }
431        }
432        {
433            if let Some(decoded) =
434                claim_crafting_non_consumables::ClaimCraftingNonConsumables::decode(data)
435            {
436                return Some(carbon_core::instruction::DecodedInstruction {
437                    program_id: instruction.program_id,
438                    data: SageInstruction::ClaimCraftingNonConsumables(decoded),
439                    accounts: instruction.accounts.clone(),
440                });
441            }
442        }
443        {
444            if let Some(decoded) = claim_crafting_outputs::ClaimCraftingOutputs::decode(data) {
445                return Some(carbon_core::instruction::DecodedInstruction {
446                    program_id: instruction.program_id,
447                    data: SageInstruction::ClaimCraftingOutputs(decoded),
448                    accounts: instruction.accounts.clone(),
449                });
450            }
451        }
452        {
453            if let Some(decoded) = close_crafting_process::CloseCraftingProcess::decode(data) {
454                return Some(carbon_core::instruction::DecodedInstruction {
455                    program_id: instruction.program_id,
456                    data: SageInstruction::CloseCraftingProcess(decoded),
457                    accounts: instruction.accounts.clone(),
458                });
459            }
460        }
461        {
462            if let Some(decoded) = close_disbanded_fleet::CloseDisbandedFleet::decode(data) {
463                return Some(carbon_core::instruction::DecodedInstruction {
464                    program_id: instruction.program_id,
465                    data: SageInstruction::CloseDisbandedFleet(decoded),
466                    accounts: instruction.accounts.clone(),
467                });
468            }
469        }
470        {
471            if let Some(decoded) =
472                close_fleet_cargo_pod_token_account::CloseFleetCargoPodTokenAccount::decode(data)
473            {
474                return Some(carbon_core::instruction::DecodedInstruction {
475                    program_id: instruction.program_id,
476                    data: SageInstruction::CloseFleetCargoPodTokenAccount(decoded),
477                    accounts: instruction.accounts.clone(),
478                });
479            }
480        }
481        {
482            if let Some(decoded) = close_player_crew_record::ClosePlayerCrewRecord::decode(data) {
483                return Some(carbon_core::instruction::DecodedInstruction {
484                    program_id: instruction.program_id,
485                    data: SageInstruction::ClosePlayerCrewRecord(decoded),
486                    accounts: instruction.accounts.clone(),
487                });
488            }
489        }
490        {
491            if let Some(decoded) =
492                close_starbase_cargo_token_account::CloseStarbaseCargoTokenAccount::decode(data)
493            {
494                return Some(carbon_core::instruction::DecodedInstruction {
495                    program_id: instruction.program_id,
496                    data: SageInstruction::CloseStarbaseCargoTokenAccount(decoded),
497                    accounts: instruction.accounts.clone(),
498                });
499            }
500        }
501        {
502            if let Some(decoded) = close_upgrade_process::CloseUpgradeProcess::decode(data) {
503                return Some(carbon_core::instruction::DecodedInstruction {
504                    program_id: instruction.program_id,
505                    data: SageInstruction::CloseUpgradeProcess(decoded),
506                    accounts: instruction.accounts.clone(),
507                });
508            }
509        }
510        {
511            if let Some(decoded) = complete_starbase_upgrade::CompleteStarbaseUpgrade::decode(data)
512            {
513                return Some(carbon_core::instruction::DecodedInstruction {
514                    program_id: instruction.program_id,
515                    data: SageInstruction::CompleteStarbaseUpgrade(decoded),
516                    accounts: instruction.accounts.clone(),
517                });
518            }
519        }
520        {
521            if let Some(decoded) = copy_game_state::CopyGameState::decode(data) {
522                return Some(carbon_core::instruction::DecodedInstruction {
523                    program_id: instruction.program_id,
524                    data: SageInstruction::CopyGameState(decoded),
525                    accounts: instruction.accounts.clone(),
526                });
527            }
528        }
529        {
530            if let Some(decoded) = create_cargo_pod::CreateCargoPod::decode(data) {
531                return Some(carbon_core::instruction::DecodedInstruction {
532                    program_id: instruction.program_id,
533                    data: SageInstruction::CreateCargoPod(decoded),
534                    accounts: instruction.accounts.clone(),
535                });
536            }
537        }
538        {
539            if let Some(decoded) = create_certificate_mint::CreateCertificateMint::decode(data) {
540                return Some(carbon_core::instruction::DecodedInstruction {
541                    program_id: instruction.program_id,
542                    data: SageInstruction::CreateCertificateMint(decoded),
543                    accounts: instruction.accounts.clone(),
544                });
545            }
546        }
547        {
548            if let Some(decoded) = create_crafting_process::CreateCraftingProcess::decode(data) {
549                return Some(carbon_core::instruction::DecodedInstruction {
550                    program_id: instruction.program_id,
551                    data: SageInstruction::CreateCraftingProcess(decoded),
552                    accounts: instruction.accounts.clone(),
553                });
554            }
555        }
556        {
557            if let Some(decoded) = create_fleet::CreateFleet::decode(data) {
558                return Some(carbon_core::instruction::DecodedInstruction {
559                    program_id: instruction.program_id,
560                    data: SageInstruction::CreateFleet(decoded),
561                    accounts: instruction.accounts.clone(),
562                });
563            }
564        }
565        {
566            if let Some(decoded) = create_starbase_upgrade_resource_process::CreateStarbaseUpgradeResourceProcess::decode(data) {
567                return Some(carbon_core::instruction::DecodedInstruction {
568                    program_id: instruction.program_id,
569                    data: SageInstruction::CreateStarbaseUpgradeResourceProcess(decoded),
570                    accounts: instruction.accounts.clone(),
571                });
572            }
573        }
574        {
575            if let Some(decoded) = deposit_cargo_to_fleet::DepositCargoToFleet::decode(data) {
576                return Some(carbon_core::instruction::DecodedInstruction {
577                    program_id: instruction.program_id,
578                    data: SageInstruction::DepositCargoToFleet(decoded),
579                    accounts: instruction.accounts.clone(),
580                });
581            }
582        }
583        {
584            if let Some(decoded) = deposit_cargo_to_game::DepositCargoToGame::decode(data) {
585                return Some(carbon_core::instruction::DecodedInstruction {
586                    program_id: instruction.program_id,
587                    data: SageInstruction::DepositCargoToGame(decoded),
588                    accounts: instruction.accounts.clone(),
589                });
590            }
591        }
592        {
593            if let Some(decoded) =
594                deposit_crafting_ingredient::DepositCraftingIngredient::decode(data)
595            {
596                return Some(carbon_core::instruction::DecodedInstruction {
597                    program_id: instruction.program_id,
598                    data: SageInstruction::DepositCraftingIngredient(decoded),
599                    accounts: instruction.accounts.clone(),
600                });
601            }
602        }
603        {
604            if let Some(decoded) =
605                deposit_starbase_upkeep_resource::DepositStarbaseUpkeepResource::decode(data)
606            {
607                return Some(carbon_core::instruction::DecodedInstruction {
608                    program_id: instruction.program_id,
609                    data: SageInstruction::DepositStarbaseUpkeepResource(decoded),
610                    accounts: instruction.accounts.clone(),
611                });
612            }
613        }
614        {
615            if let Some(decoded) = deregister_mine_item::DeregisterMineItem::decode(data) {
616                return Some(carbon_core::instruction::DecodedInstruction {
617                    program_id: instruction.program_id,
618                    data: SageInstruction::DeregisterMineItem(decoded),
619                    accounts: instruction.accounts.clone(),
620                });
621            }
622        }
623        {
624            if let Some(decoded) =
625                deregister_progression_config::DeregisterProgressionConfig::decode(data)
626            {
627                return Some(carbon_core::instruction::DecodedInstruction {
628                    program_id: instruction.program_id,
629                    data: SageInstruction::DeregisterProgressionConfig(decoded),
630                    accounts: instruction.accounts.clone(),
631                });
632            }
633        }
634        {
635            if let Some(decoded) = deregister_resource::DeregisterResource::decode(data) {
636                return Some(carbon_core::instruction::DecodedInstruction {
637                    program_id: instruction.program_id,
638                    data: SageInstruction::DeregisterResource(decoded),
639                    accounts: instruction.accounts.clone(),
640                });
641            }
642        }
643        {
644            if let Some(decoded) = deregister_starbase::DeregisterStarbase::decode(data) {
645                return Some(carbon_core::instruction::DecodedInstruction {
646                    program_id: instruction.program_id,
647                    data: SageInstruction::DeregisterStarbase(decoded),
648                    accounts: instruction.accounts.clone(),
649                });
650            }
651        }
652        {
653            if let Some(decoded) =
654                deregister_survey_data_unit_tracker::DeregisterSurveyDataUnitTracker::decode(data)
655            {
656                return Some(carbon_core::instruction::DecodedInstruction {
657                    program_id: instruction.program_id,
658                    data: SageInstruction::DeregisterSurveyDataUnitTracker(decoded),
659                    accounts: instruction.accounts.clone(),
660                });
661            }
662        }
663        {
664            if let Some(decoded) = dev_add_crew_to_game::DevAddCrewToGame::decode(data) {
665                return Some(carbon_core::instruction::DecodedInstruction {
666                    program_id: instruction.program_id,
667                    data: SageInstruction::DevAddCrewToGame(decoded),
668                    accounts: instruction.accounts.clone(),
669                });
670            }
671        }
672        {
673            if let Some(decoded) = dev_deposit_cargo_to_game::DevDepositCargoToGame::decode(data) {
674                return Some(carbon_core::instruction::DecodedInstruction {
675                    program_id: instruction.program_id,
676                    data: SageInstruction::DevDepositCargoToGame(decoded),
677                    accounts: instruction.accounts.clone(),
678                });
679            }
680        }
681        {
682            if let Some(decoded) = disband_fleet::DisbandFleet::decode(data) {
683                return Some(carbon_core::instruction::DecodedInstruction {
684                    program_id: instruction.program_id,
685                    data: SageInstruction::DisbandFleet(decoded),
686                    accounts: instruction.accounts.clone(),
687                });
688            }
689        }
690        {
691            if let Some(decoded) = disbanded_fleet_to_escrow::DisbandedFleetToEscrow::decode(data) {
692                return Some(carbon_core::instruction::DecodedInstruction {
693                    program_id: instruction.program_id,
694                    data: SageInstruction::DisbandedFleetToEscrow(decoded),
695                    accounts: instruction.accounts.clone(),
696                });
697            }
698        }
699        {
700            if let Some(decoded) = discover_sector::DiscoverSector::decode(data) {
701                return Some(carbon_core::instruction::DecodedInstruction {
702                    program_id: instruction.program_id,
703                    data: SageInstruction::DiscoverSector(decoded),
704                    accounts: instruction.accounts.clone(),
705                });
706            }
707        }
708        {
709            if let Some(decoded) = drain_mine_item_bank::DrainMineItemBank::decode(data) {
710                return Some(carbon_core::instruction::DecodedInstruction {
711                    program_id: instruction.program_id,
712                    data: SageInstruction::DrainMineItemBank(decoded),
713                    accounts: instruction.accounts.clone(),
714                });
715            }
716        }
717        {
718            if let Some(decoded) =
719                drain_survey_data_units_bank::DrainSurveyDataUnitsBank::decode(data)
720            {
721                return Some(carbon_core::instruction::DecodedInstruction {
722                    program_id: instruction.program_id,
723                    data: SageInstruction::DrainSurveyDataUnitsBank(decoded),
724                    accounts: instruction.accounts.clone(),
725                });
726            }
727        }
728        {
729            if let Some(decoded) = fleet_state_handler::FleetStateHandler::decode(data) {
730                return Some(carbon_core::instruction::DecodedInstruction {
731                    program_id: instruction.program_id,
732                    data: SageInstruction::FleetStateHandler(decoded),
733                    accounts: instruction.accounts.clone(),
734                });
735            }
736        }
737        {
738            if let Some(decoded) = force_disband_fleet::ForceDisbandFleet::decode(data) {
739                return Some(carbon_core::instruction::DecodedInstruction {
740                    program_id: instruction.program_id,
741                    data: SageInstruction::ForceDisbandFleet(decoded),
742                    accounts: instruction.accounts.clone(),
743                });
744            }
745        }
746        {
747            if let Some(decoded) = force_drop_fleet_cargo::ForceDropFleetCargo::decode(data) {
748                return Some(carbon_core::instruction::DecodedInstruction {
749                    program_id: instruction.program_id,
750                    data: SageInstruction::ForceDropFleetCargo(decoded),
751                    accounts: instruction.accounts.clone(),
752                });
753            }
754        }
755        {
756            if let Some(decoded) = idle_to_loading_bay::IdleToLoadingBay::decode(data) {
757                return Some(carbon_core::instruction::DecodedInstruction {
758                    program_id: instruction.program_id,
759                    data: SageInstruction::IdleToLoadingBay(decoded),
760                    accounts: instruction.accounts.clone(),
761                });
762            }
763        }
764        {
765            if let Some(decoded) = idle_to_respawn::IdleToRespawn::decode(data) {
766                return Some(carbon_core::instruction::DecodedInstruction {
767                    program_id: instruction.program_id,
768                    data: SageInstruction::IdleToRespawn(decoded),
769                    accounts: instruction.accounts.clone(),
770                });
771            }
772        }
773        {
774            if let Some(decoded) = init_game::InitGame::decode(data) {
775                return Some(carbon_core::instruction::DecodedInstruction {
776                    program_id: instruction.program_id,
777                    data: SageInstruction::InitGame(decoded),
778                    accounts: instruction.accounts.clone(),
779                });
780            }
781        }
782        {
783            if let Some(decoded) = init_game_state::InitGameState::decode(data) {
784                return Some(carbon_core::instruction::DecodedInstruction {
785                    program_id: instruction.program_id,
786                    data: SageInstruction::InitGameState(decoded),
787                    accounts: instruction.accounts.clone(),
788                });
789            }
790        }
791        {
792            if let Some(decoded) = invalidate_rental::InvalidateRental::decode(data) {
793                return Some(carbon_core::instruction::DecodedInstruction {
794                    program_id: instruction.program_id,
795                    data: SageInstruction::InvalidateRental(decoded),
796                    accounts: instruction.accounts.clone(),
797                });
798            }
799        }
800        {
801            if let Some(decoded) = invalidate_ship::InvalidateShip::decode(data) {
802                return Some(carbon_core::instruction::DecodedInstruction {
803                    program_id: instruction.program_id,
804                    data: SageInstruction::InvalidateShip(decoded),
805                    accounts: instruction.accounts.clone(),
806                });
807            }
808        }
809        {
810            if let Some(decoded) = load_fleet_crew::LoadFleetCrew::decode(data) {
811                return Some(carbon_core::instruction::DecodedInstruction {
812                    program_id: instruction.program_id,
813                    data: SageInstruction::LoadFleetCrew(decoded),
814                    accounts: instruction.accounts.clone(),
815                });
816            }
817        }
818        {
819            if let Some(decoded) = loading_bay_to_idle::LoadingBayToIdle::decode(data) {
820                return Some(carbon_core::instruction::DecodedInstruction {
821                    program_id: instruction.program_id,
822                    data: SageInstruction::LoadingBayToIdle(decoded),
823                    accounts: instruction.accounts.clone(),
824                });
825            }
826        }
827        {
828            if let Some(decoded) = loading_bay_to_respawn::LoadingBayToRespawn::decode(data) {
829                return Some(carbon_core::instruction::DecodedInstruction {
830                    program_id: instruction.program_id,
831                    data: SageInstruction::LoadingBayToRespawn(decoded),
832                    accounts: instruction.accounts.clone(),
833                });
834            }
835        }
836        {
837            if let Some(decoded) = mine_asteroid_to_respawn::MineAsteroidToRespawn::decode(data) {
838                return Some(carbon_core::instruction::DecodedInstruction {
839                    program_id: instruction.program_id,
840                    data: SageInstruction::MineAsteroidToRespawn(decoded),
841                    accounts: instruction.accounts.clone(),
842                });
843            }
844        }
845        {
846            if let Some(decoded) = mint_certificate::MintCertificate::decode(data) {
847                return Some(carbon_core::instruction::DecodedInstruction {
848                    program_id: instruction.program_id,
849                    data: SageInstruction::MintCertificate(decoded),
850                    accounts: instruction.accounts.clone(),
851                });
852            }
853        }
854        {
855            if let Some(decoded) = mint_crew_to_game::MintCrewToGame::decode(data) {
856                return Some(carbon_core::instruction::DecodedInstruction {
857                    program_id: instruction.program_id,
858                    data: SageInstruction::MintCrewToGame(decoded),
859                    accounts: instruction.accounts.clone(),
860                });
861            }
862        }
863        {
864            if let Some(decoded) = redeem_certificate::RedeemCertificate::decode(data) {
865                return Some(carbon_core::instruction::DecodedInstruction {
866                    program_id: instruction.program_id,
867                    data: SageInstruction::RedeemCertificate(decoded),
868                    accounts: instruction.accounts.clone(),
869                });
870            }
871        }
872        {
873            if let Some(decoded) = register_mine_item::RegisterMineItem::decode(data) {
874                return Some(carbon_core::instruction::DecodedInstruction {
875                    program_id: instruction.program_id,
876                    data: SageInstruction::RegisterMineItem(decoded),
877                    accounts: instruction.accounts.clone(),
878                });
879            }
880        }
881        {
882            if let Some(decoded) = register_planet::RegisterPlanet::decode(data) {
883                return Some(carbon_core::instruction::DecodedInstruction {
884                    program_id: instruction.program_id,
885                    data: SageInstruction::RegisterPlanet(decoded),
886                    accounts: instruction.accounts.clone(),
887                });
888            }
889        }
890        {
891            if let Some(decoded) =
892                register_progression_config::RegisterProgressionConfig::decode(data)
893            {
894                return Some(carbon_core::instruction::DecodedInstruction {
895                    program_id: instruction.program_id,
896                    data: SageInstruction::RegisterProgressionConfig(decoded),
897                    accounts: instruction.accounts.clone(),
898                });
899            }
900        }
901        {
902            if let Some(decoded) = register_resource::RegisterResource::decode(data) {
903                return Some(carbon_core::instruction::DecodedInstruction {
904                    program_id: instruction.program_id,
905                    data: SageInstruction::RegisterResource(decoded),
906                    accounts: instruction.accounts.clone(),
907                });
908            }
909        }
910        {
911            if let Some(decoded) = register_sage_crew_config::RegisterSageCrewConfig::decode(data) {
912                return Some(carbon_core::instruction::DecodedInstruction {
913                    program_id: instruction.program_id,
914                    data: SageInstruction::RegisterSageCrewConfig(decoded),
915                    accounts: instruction.accounts.clone(),
916                });
917            }
918        }
919        {
920            if let Some(decoded) =
921                register_sage_player_profile::RegisterSagePlayerProfile::decode(data)
922            {
923                return Some(carbon_core::instruction::DecodedInstruction {
924                    program_id: instruction.program_id,
925                    data: SageInstruction::RegisterSagePlayerProfile(decoded),
926                    accounts: instruction.accounts.clone(),
927                });
928            }
929        }
930        {
931            if let Some(decoded) =
932                register_sage_point_modifier::RegisterSagePointModifier::decode(data)
933            {
934                return Some(carbon_core::instruction::DecodedInstruction {
935                    program_id: instruction.program_id,
936                    data: SageInstruction::RegisterSagePointModifier(decoded),
937                    accounts: instruction.accounts.clone(),
938                });
939            }
940        }
941        {
942            if let Some(decoded) = register_sector::RegisterSector::decode(data) {
943                return Some(carbon_core::instruction::DecodedInstruction {
944                    program_id: instruction.program_id,
945                    data: SageInstruction::RegisterSector(decoded),
946                    accounts: instruction.accounts.clone(),
947                });
948            }
949        }
950        {
951            if let Some(decoded) = register_ship::RegisterShip::decode(data) {
952                return Some(carbon_core::instruction::DecodedInstruction {
953                    program_id: instruction.program_id,
954                    data: SageInstruction::RegisterShip(decoded),
955                    accounts: instruction.accounts.clone(),
956                });
957            }
958        }
959        {
960            if let Some(decoded) = register_star::RegisterStar::decode(data) {
961                return Some(carbon_core::instruction::DecodedInstruction {
962                    program_id: instruction.program_id,
963                    data: SageInstruction::RegisterStar(decoded),
964                    accounts: instruction.accounts.clone(),
965                });
966            }
967        }
968        {
969            if let Some(decoded) = register_starbase::RegisterStarbase::decode(data) {
970                return Some(carbon_core::instruction::DecodedInstruction {
971                    program_id: instruction.program_id,
972                    data: SageInstruction::RegisterStarbase(decoded),
973                    accounts: instruction.accounts.clone(),
974                });
975            }
976        }
977        {
978            if let Some(decoded) = register_starbase_player::RegisterStarbasePlayer::decode(data) {
979                return Some(carbon_core::instruction::DecodedInstruction {
980                    program_id: instruction.program_id,
981                    data: SageInstruction::RegisterStarbasePlayer(decoded),
982                    accounts: instruction.accounts.clone(),
983                });
984            }
985        }
986        {
987            if let Some(decoded) =
988                register_survey_data_unit_tracker::RegisterSurveyDataUnitTracker::decode(data)
989            {
990                return Some(carbon_core::instruction::DecodedInstruction {
991                    program_id: instruction.program_id,
992                    data: SageInstruction::RegisterSurveyDataUnitTracker(decoded),
993                    accounts: instruction.accounts.clone(),
994                });
995            }
996        }
997        {
998            if let Some(decoded) = remove_cargo_pod::RemoveCargoPod::decode(data) {
999                return Some(carbon_core::instruction::DecodedInstruction {
1000                    program_id: instruction.program_id,
1001                    data: SageInstruction::RemoveCargoPod(decoded),
1002                    accounts: instruction.accounts.clone(),
1003                });
1004            }
1005        }
1006        {
1007            if let Some(decoded) = remove_connection::RemoveConnection::decode(data) {
1008                return Some(carbon_core::instruction::DecodedInstruction {
1009                    program_id: instruction.program_id,
1010                    data: SageInstruction::RemoveConnection(decoded),
1011                    accounts: instruction.accounts.clone(),
1012                });
1013            }
1014        }
1015        {
1016            if let Some(decoded) = remove_crew_from_game::RemoveCrewFromGame::decode(data) {
1017                return Some(carbon_core::instruction::DecodedInstruction {
1018                    program_id: instruction.program_id,
1019                    data: SageInstruction::RemoveCrewFromGame(decoded),
1020                    accounts: instruction.accounts.clone(),
1021                });
1022            }
1023        }
1024        {
1025            if let Some(decoded) = remove_invalid_ship_escrow::RemoveInvalidShipEscrow::decode(data)
1026            {
1027                return Some(carbon_core::instruction::DecodedInstruction {
1028                    program_id: instruction.program_id,
1029                    data: SageInstruction::RemoveInvalidShipEscrow(decoded),
1030                    accounts: instruction.accounts.clone(),
1031                });
1032            }
1033        }
1034        {
1035            if let Some(decoded) = remove_ship_escrow::RemoveShipEscrow::decode(data) {
1036                return Some(carbon_core::instruction::DecodedInstruction {
1037                    program_id: instruction.program_id,
1038                    data: SageInstruction::RemoveShipEscrow(decoded),
1039                    accounts: instruction.accounts.clone(),
1040                });
1041            }
1042        }
1043        {
1044            if let Some(decoded) = respawn_to_loading_bay::RespawnToLoadingBay::decode(data) {
1045                return Some(carbon_core::instruction::DecodedInstruction {
1046                    program_id: instruction.program_id,
1047                    data: SageInstruction::RespawnToLoadingBay(decoded),
1048                    accounts: instruction.accounts.clone(),
1049                });
1050            }
1051        }
1052        {
1053            if let Some(decoded) = scan_for_survey_data_units::ScanForSurveyDataUnits::decode(data)
1054            {
1055                return Some(carbon_core::instruction::DecodedInstruction {
1056                    program_id: instruction.program_id,
1057                    data: SageInstruction::ScanForSurveyDataUnits(decoded),
1058                    accounts: instruction.accounts.clone(),
1059                });
1060            }
1061        }
1062        {
1063            if let Some(decoded) = set_next_ship::SetNextShip::decode(data) {
1064                return Some(carbon_core::instruction::DecodedInstruction {
1065                    program_id: instruction.program_id,
1066                    data: SageInstruction::SetNextShip(decoded),
1067                    accounts: instruction.accounts.clone(),
1068                });
1069            }
1070        }
1071        {
1072            if let Some(decoded) = start_crafting_process::StartCraftingProcess::decode(data) {
1073                return Some(carbon_core::instruction::DecodedInstruction {
1074                    program_id: instruction.program_id,
1075                    data: SageInstruction::StartCraftingProcess(decoded),
1076                    accounts: instruction.accounts.clone(),
1077                });
1078            }
1079        }
1080        {
1081            if let Some(decoded) = start_mining_asteroid::StartMiningAsteroid::decode(data) {
1082                return Some(carbon_core::instruction::DecodedInstruction {
1083                    program_id: instruction.program_id,
1084                    data: SageInstruction::StartMiningAsteroid(decoded),
1085                    accounts: instruction.accounts.clone(),
1086                });
1087            }
1088        }
1089        {
1090            if let Some(decoded) = start_starbase_upgrade::StartStarbaseUpgrade::decode(data) {
1091                return Some(carbon_core::instruction::DecodedInstruction {
1092                    program_id: instruction.program_id,
1093                    data: SageInstruction::StartStarbaseUpgrade(decoded),
1094                    accounts: instruction.accounts.clone(),
1095                });
1096            }
1097        }
1098        {
1099            if let Some(decoded) = start_subwarp::StartSubwarp::decode(data) {
1100                return Some(carbon_core::instruction::DecodedInstruction {
1101                    program_id: instruction.program_id,
1102                    data: SageInstruction::StartSubwarp(decoded),
1103                    accounts: instruction.accounts.clone(),
1104                });
1105            }
1106        }
1107        {
1108            if let Some(decoded) = stop_crafting_process::StopCraftingProcess::decode(data) {
1109                return Some(carbon_core::instruction::DecodedInstruction {
1110                    program_id: instruction.program_id,
1111                    data: SageInstruction::StopCraftingProcess(decoded),
1112                    accounts: instruction.accounts.clone(),
1113                });
1114            }
1115        }
1116        {
1117            if let Some(decoded) = stop_mining_asteroid::StopMiningAsteroid::decode(data) {
1118                return Some(carbon_core::instruction::DecodedInstruction {
1119                    program_id: instruction.program_id,
1120                    data: SageInstruction::StopMiningAsteroid(decoded),
1121                    accounts: instruction.accounts.clone(),
1122                });
1123            }
1124        }
1125        {
1126            if let Some(decoded) = stop_subwarp::StopSubwarp::decode(data) {
1127                return Some(carbon_core::instruction::DecodedInstruction {
1128                    program_id: instruction.program_id,
1129                    data: SageInstruction::StopSubwarp(decoded),
1130                    accounts: instruction.accounts.clone(),
1131                });
1132            }
1133        }
1134        {
1135            if let Some(decoded) =
1136                submit_starbase_upgrade_resource::SubmitStarbaseUpgradeResource::decode(data)
1137            {
1138                return Some(carbon_core::instruction::DecodedInstruction {
1139                    program_id: instruction.program_id,
1140                    data: SageInstruction::SubmitStarbaseUpgradeResource(decoded),
1141                    accounts: instruction.accounts.clone(),
1142                });
1143            }
1144        }
1145        {
1146            if let Some(decoded) = sync_starbase_player::SyncStarbasePlayer::decode(data) {
1147                return Some(carbon_core::instruction::DecodedInstruction {
1148                    program_id: instruction.program_id,
1149                    data: SageInstruction::SyncStarbasePlayer(decoded),
1150                    accounts: instruction.accounts.clone(),
1151                });
1152            }
1153        }
1154        {
1155            if let Some(decoded) =
1156                sync_starbase_upgrade_ingredients::SyncStarbaseUpgradeIngredients::decode(data)
1157            {
1158                return Some(carbon_core::instruction::DecodedInstruction {
1159                    program_id: instruction.program_id,
1160                    data: SageInstruction::SyncStarbaseUpgradeIngredients(decoded),
1161                    accounts: instruction.accounts.clone(),
1162                });
1163            }
1164        }
1165        {
1166            if let Some(decoded) = transfer_cargo_at_starbase::TransferCargoAtStarbase::decode(data)
1167            {
1168                return Some(carbon_core::instruction::DecodedInstruction {
1169                    program_id: instruction.program_id,
1170                    data: SageInstruction::TransferCargoAtStarbase(decoded),
1171                    accounts: instruction.accounts.clone(),
1172                });
1173            }
1174        }
1175        {
1176            if let Some(decoded) =
1177                transfer_cargo_within_fleet::TransferCargoWithinFleet::decode(data)
1178            {
1179                return Some(carbon_core::instruction::DecodedInstruction {
1180                    program_id: instruction.program_id,
1181                    data: SageInstruction::TransferCargoWithinFleet(decoded),
1182                    accounts: instruction.accounts.clone(),
1183                });
1184            }
1185        }
1186        {
1187            if let Some(decoded) = unload_fleet_crew::UnloadFleetCrew::decode(data) {
1188                return Some(carbon_core::instruction::DecodedInstruction {
1189                    program_id: instruction.program_id,
1190                    data: SageInstruction::UnloadFleetCrew(decoded),
1191                    accounts: instruction.accounts.clone(),
1192                });
1193            }
1194        }
1195        {
1196            if let Some(decoded) = update_game::UpdateGame::decode(data) {
1197                return Some(carbon_core::instruction::DecodedInstruction {
1198                    program_id: instruction.program_id,
1199                    data: SageInstruction::UpdateGame(decoded),
1200                    accounts: instruction.accounts.clone(),
1201                });
1202            }
1203        }
1204        {
1205            if let Some(decoded) = update_game_state::UpdateGameState::decode(data) {
1206                return Some(carbon_core::instruction::DecodedInstruction {
1207                    program_id: instruction.program_id,
1208                    data: SageInstruction::UpdateGameState(decoded),
1209                    accounts: instruction.accounts.clone(),
1210                });
1211            }
1212        }
1213        {
1214            if let Some(decoded) = update_mine_item::UpdateMineItem::decode(data) {
1215                return Some(carbon_core::instruction::DecodedInstruction {
1216                    program_id: instruction.program_id,
1217                    data: SageInstruction::UpdateMineItem(decoded),
1218                    accounts: instruction.accounts.clone(),
1219                });
1220            }
1221        }
1222        {
1223            if let Some(decoded) = update_planet::UpdatePlanet::decode(data) {
1224                return Some(carbon_core::instruction::DecodedInstruction {
1225                    program_id: instruction.program_id,
1226                    data: SageInstruction::UpdatePlanet(decoded),
1227                    accounts: instruction.accounts.clone(),
1228                });
1229            }
1230        }
1231        {
1232            if let Some(decoded) = update_progression_config::UpdateProgressionConfig::decode(data)
1233            {
1234                return Some(carbon_core::instruction::DecodedInstruction {
1235                    program_id: instruction.program_id,
1236                    data: SageInstruction::UpdateProgressionConfig(decoded),
1237                    accounts: instruction.accounts.clone(),
1238                });
1239            }
1240        }
1241        {
1242            if let Some(decoded) = update_resource::UpdateResource::decode(data) {
1243                return Some(carbon_core::instruction::DecodedInstruction {
1244                    program_id: instruction.program_id,
1245                    data: SageInstruction::UpdateResource(decoded),
1246                    accounts: instruction.accounts.clone(),
1247                });
1248            }
1249        }
1250        {
1251            if let Some(decoded) = update_ship::UpdateShip::decode(data) {
1252                return Some(carbon_core::instruction::DecodedInstruction {
1253                    program_id: instruction.program_id,
1254                    data: SageInstruction::UpdateShip(decoded),
1255                    accounts: instruction.accounts.clone(),
1256                });
1257            }
1258        }
1259        {
1260            if let Some(decoded) = update_ship_escrow::UpdateShipEscrow::decode(data) {
1261                return Some(carbon_core::instruction::DecodedInstruction {
1262                    program_id: instruction.program_id,
1263                    data: SageInstruction::UpdateShipEscrow(decoded),
1264                    accounts: instruction.accounts.clone(),
1265                });
1266            }
1267        }
1268        {
1269            if let Some(decoded) = update_ship_in_fleet::UpdateShipInFleet::decode(data) {
1270                return Some(carbon_core::instruction::DecodedInstruction {
1271                    program_id: instruction.program_id,
1272                    data: SageInstruction::UpdateShipInFleet(decoded),
1273                    accounts: instruction.accounts.clone(),
1274                });
1275            }
1276        }
1277        {
1278            if let Some(decoded) = update_star::UpdateStar::decode(data) {
1279                return Some(carbon_core::instruction::DecodedInstruction {
1280                    program_id: instruction.program_id,
1281                    data: SageInstruction::UpdateStar(decoded),
1282                    accounts: instruction.accounts.clone(),
1283                });
1284            }
1285        }
1286        {
1287            if let Some(decoded) = update_starbase::UpdateStarbase::decode(data) {
1288                return Some(carbon_core::instruction::DecodedInstruction {
1289                    program_id: instruction.program_id,
1290                    data: SageInstruction::UpdateStarbase(decoded),
1291                    accounts: instruction.accounts.clone(),
1292                });
1293            }
1294        }
1295        {
1296            if let Some(decoded) =
1297                update_survey_data_unit_tracker::UpdateSurveyDataUnitTracker::decode(data)
1298            {
1299                return Some(carbon_core::instruction::DecodedInstruction {
1300                    program_id: instruction.program_id,
1301                    data: SageInstruction::UpdateSurveyDataUnitTracker(decoded),
1302                    accounts: instruction.accounts.clone(),
1303                });
1304            }
1305        }
1306        {
1307            if let Some(decoded) = warp_lane::WarpLane::decode(data) {
1308                return Some(carbon_core::instruction::DecodedInstruction {
1309                    program_id: instruction.program_id,
1310                    data: SageInstruction::WarpLane(decoded),
1311                    accounts: instruction.accounts.clone(),
1312                });
1313            }
1314        }
1315        {
1316            if let Some(decoded) = warp_to_coordinate::WarpToCoordinate::decode(data) {
1317                return Some(carbon_core::instruction::DecodedInstruction {
1318                    program_id: instruction.program_id,
1319                    data: SageInstruction::WarpToCoordinate(decoded),
1320                    accounts: instruction.accounts.clone(),
1321                });
1322            }
1323        }
1324        {
1325            if let Some(decoded) = withdraw_cargo_from_fleet::WithdrawCargoFromFleet::decode(data) {
1326                return Some(carbon_core::instruction::DecodedInstruction {
1327                    program_id: instruction.program_id,
1328                    data: SageInstruction::WithdrawCargoFromFleet(decoded),
1329                    accounts: instruction.accounts.clone(),
1330                });
1331            }
1332        }
1333        {
1334            if let Some(decoded) = withdraw_cargo_from_game::WithdrawCargoFromGame::decode(data) {
1335                return Some(carbon_core::instruction::DecodedInstruction {
1336                    program_id: instruction.program_id,
1337                    data: SageInstruction::WithdrawCargoFromGame(decoded),
1338                    accounts: instruction.accounts.clone(),
1339                });
1340            }
1341        }
1342        {
1343            if let Some(decoded) =
1344                withdraw_crafting_ingredient::WithdrawCraftingIngredient::decode(data)
1345            {
1346                return Some(carbon_core::instruction::DecodedInstruction {
1347                    program_id: instruction.program_id,
1348                    data: SageInstruction::WithdrawCraftingIngredient(decoded),
1349                    accounts: instruction.accounts.clone(),
1350                });
1351            }
1352        }
1353
1354        None
1355    }
1356}