export type Sage = { version: '0.1.0'; name: 'sage'; instructions: [ { name: 'activateGameState'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: true; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: true; isSigner: false; docs: ['The [`GameState`] account']; } ]; args: [ { name: 'input'; type: { defined: 'ManageGameInput'; }; } ]; }, { name: 'addConnection'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for adding the connection']; }, { name: 'sector1'; isMut: true; isSigner: false; docs: ['The first connected sector']; }, { name: 'sector2'; isMut: true; isSigner: false; docs: ['The second connected sector']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The system program']; } ]; args: [ { name: 'subCoordinates1'; type: { array: ['i64', 2]; }; }, { name: 'flags1'; type: 'u8'; }, { name: 'subCoordinates2'; type: { array: ['i64', 2]; }; }, { name: 'flags2'; type: 'u8'; }, { name: 'keyIndex'; type: 'u16'; } ]; }, { name: 'addCrewToGame'; accounts: [ { name: 'sagePlayerProfile'; isMut: true; isSigner: false; docs: ['The [`SagePlayerProfile`] account']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'sageCrewConfig'; isMut: false; isSigner: false; docs: ['The [`SageCrewConfig`] Account']; }, { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'crewConfig'; isMut: false; isSigner: false; docs: ['The crew program `CrewConfig` account']; }, { name: 'crewOwner'; isMut: false; isSigner: true; docs: ['The crew owner']; }, { name: 'crewDelegate'; isMut: false; isSigner: false; docs: ['The crew delegate']; }, { name: 'logWrapper'; isMut: false; isSigner: false; docs: ['The log wrapper']; }, { name: 'compressionProgram'; isMut: false; isSigner: false; docs: ['The compression program']; }, { name: 'bubblegumProgram'; isMut: false; isSigner: false; docs: ['The bubblegum program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'AddCrewInput'; }; } ]; }, { name: 'addRental'; accounts: [ { name: 'ownerProfile'; isMut: false; isSigner: false; docs: ["The fleet owner's profile."]; }, { name: 'ownerKey'; isMut: false; isSigner: true; docs: ['The key on the owner profile with renting permissions.']; }, { name: 'invalidator'; isMut: false; isSigner: true; docs: [ "The fleet rental invalidator - this is a signer to help make sure the fleet won't be locked." ]; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet to rent out.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; args: [ { name: 'ownerKeyIndex'; type: 'u16'; } ]; }, { name: 'addShipEscrow'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder - pays for account rent']; }, { name: 'sagePlayerProfile'; isMut: true; isSigner: false; docs: ['The [`SagePlayerProfile`] account']; }, { name: 'originTokenAccount'; isMut: true; isSigner: false; docs: ['The Origin Token Account']; }, { name: 'ship'; isMut: false; isSigner: false; docs: ['The [`Ship`] Account']; }, { name: 'shipEscrowTokenAccount'; isMut: true; isSigner: false; docs: ['The Escrow Token Account']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The Token Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'AddShipEscrowInput'; }; } ]; }, { name: 'addShipToFleet'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new `Fleet`']; }, { name: 'fleetShips'; isMut: true; isSigner: false; docs: ['The [`FleetShips`] account']; }, { name: 'ship'; isMut: false; isSigner: false; docs: ['The [`Ship`] Account']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'AddShipToFleetInput'; }; } ]; }, { name: 'adminCreateFleet'; accounts: [ { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new `Fleet`']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: [ 'The [`Fleet`] account (will be created manually via raw invoke)' ]; }, { name: 'cargoHold'; isMut: false; isSigner: false; docs: [ 'The new fleet `cargo_hold` cargo pod (MUST be pre-initialized by client)' ]; }, { name: 'fuelTank'; isMut: false; isSigner: false; docs: [ 'The new fleet `fuel_tank` cargo pod (MUST be pre-initialized by client)' ]; }, { name: 'ammoBank'; isMut: false; isSigner: false; docs: [ 'The new fleet `ammo_bank` cargo pod (MUST be pre-initialized by client)' ]; }, { name: 'ship'; isMut: false; isSigner: false; docs: [ 'The [`Ship`] Account - represents the first ship in the new fleet' ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'AdminCreateFleetInput'; }; } ]; }, { name: 'adminDepositCargoToFleet'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for transaction fees and token source authority']; }, { name: 'cargoPodTo'; isMut: true; isSigner: false; docs: ['The destination cargo pod (on the fleet)']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account']; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: [ 'The destination token account - owned by the `cargo_pod_to`', 'Must be created before calling this instruction' ]; }, { name: 'tokenMint'; isMut: false; isSigner: false; docs: ['The mint of the token accounts']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'AdminDepositCargoToFleetInput'; }; } ]; }, { name: 'adminDepositCargoToStarbase'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoPod'; isMut: true; isSigner: false; docs: ['The destination cargo pod, owned by `starbase_player`']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account - owned by the admin key']; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: ['The destination token account - owned by the `cargo_pod`']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'AdminDepositCargoToStarbaseInput'; }; } ]; }, { name: 'adminInitFleetShips'; accounts: [ { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new `FleetShips`']; }, { name: 'fleet'; isMut: false; isSigner: false; docs: ['The [`Fleet`] account (already initialized)']; }, { name: 'fleetShips'; isMut: true; isSigner: false; docs: ['The [`FleetShips`] account to initialize']; }, { name: 'ship'; isMut: false; isSigner: false; docs: [ 'The [`Ship`] Account - represents the first ship in the new fleet' ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'AdminInitFleetShipsInput'; }; } ]; }, { name: 'adminRemoveFleet'; accounts: [ { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder - receives rent refunds from closed accounts']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The [`Fleet`] account to be closed']; }, { name: 'fleetShips'; isMut: true; isSigner: false; docs: ['The [`FleetShips`] account to be closed']; }, { name: 'cargoHold'; isMut: true; isSigner: false; docs: ['The fleet `cargo_hold` cargo pod']; }, { name: 'fuelTank'; isMut: true; isSigner: false; docs: ['The fleet `fuel_tank` cargo pod']; }, { name: 'ammoBank'; isMut: true; isSigner: false; docs: ['The fleet `ammo_bank` cargo pod']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'AdminRemoveFleetInput'; }; } ]; }, { name: 'adminTransferFleetCargoAuthority'; accounts: [ { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'funder'; isMut: false; isSigner: true; docs: ['The funder - current authority of cargo pods']; }, { name: 'fleet'; isMut: false; isSigner: false; docs: ['The [`Fleet`] account - will become new authority']; }, { name: 'cargoHold'; isMut: true; isSigner: false; docs: ['The fleet `cargo_hold` cargo pod']; }, { name: 'fuelTank'; isMut: true; isSigner: false; docs: ['The fleet `fuel_tank` cargo pod']; }, { name: 'ammoBank'; isMut: true; isSigner: false; docs: ['The fleet `ammo_bank` cargo pod']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; } ]; args: [ { name: 'input'; type: { defined: 'AdminTransferFleetCargoAuthorityInput'; }; } ]; }, { name: 'attackFleet'; accounts: [ { name: 'gameAndFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'defendingFleet'; isMut: true; isSigner: false; docs: ['The fleet being attacked']; }, { name: 'attackingCargoPod'; isMut: true; isSigner: false; docs: ['The origin cargo pod; owned by the fleet attacking']; }, { name: 'defendingCargoPod'; isMut: true; isSigner: false; docs: ['The destination cargo pod; owned by the fleet defending']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type for ammo']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'attackerCombatXp'; isMut: true; isSigner: false; docs: ['The attacker combat XP points account']; }, { name: 'attackerCouncilRankXp'; isMut: true; isSigner: false; docs: ['The attacker council rank XP points account']; }, { name: 'defenderCombatXp'; isMut: true; isSigner: false; docs: ['The defender combat XP points account']; }, { name: 'defenderCouncilRankXp'; isMut: true; isSigner: false; docs: ['The defender council rank XP points account']; }, { name: 'combatXpCategory'; isMut: false; isSigner: false; docs: ['The Pilot XP Points Category Account']; }, { name: 'councilRankXpCategory'; isMut: false; isSigner: false; docs: ['The Council Rank XP Points Category Account']; }, { name: 'combatXpModifier'; isMut: false; isSigner: false; docs: ['The Pilot XP Modifier Account']; }, { name: 'councilRankXpModifier'; isMut: false; isSigner: false; docs: ['The Pilot XP Modifier Account']; }, { name: 'progressionConfig'; isMut: false; isSigner: false; docs: ['The [`ProgressionConfig`] account']; }, { name: 'combatConfig'; isMut: false; isSigner: false; docs: ['The [`CombatConfig`] account']; }, { name: 'attackingFleetAmmoToken'; isMut: true; isSigner: false; docs: [ "The attacker's ammo token account - owned by the `attacking_cargo_pod`" ]; }, { name: 'defendingFleetAmmoToken'; isMut: true; isSigner: false; docs: [ "The defender's ammo token account - owned by the `defending_cargo_pod`" ]; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The ammo token mint']; } ]; args: [ { name: 'input'; type: { defined: 'AttackFleetInput'; }; } ]; }, { name: 'attackStarbase'; accounts: [ { name: 'gameAndFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'starbase'; isMut: true; isSigner: false; docs: ['The [`Starbase`] account being attacked']; }, { name: 'attackingCargoPod'; isMut: true; isSigner: false; docs: ["The attacking fleet's cargo pod"]; }, { name: 'attackingFleetAmmoBank'; isMut: true; isSigner: false; docs: ["The attacking fleet's ammo bank"]; }, { name: 'attackingFleetAmmoToken'; isMut: true; isSigner: false; docs: [ 'The attacking fleet ammo bank token account - owned by `attacking_fleet_ammo_bank`' ]; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The [`CargoType`] account for ammo']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The [`CargoStatsDefinition`] account for cargo stats']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The mint for the ammo']; }, { name: 'attackerCombatXp'; isMut: true; isSigner: false; docs: ['The attacker account for Combat XP']; }, { name: 'attackerCouncilRankXp'; isMut: true; isSigner: false; docs: ['The attacker account for Council Rank XP']; }, { name: 'combatXpCategory'; isMut: true; isSigner: false; docs: ['The Combat XP Points Category Account']; }, { name: 'combatXpModifier'; isMut: false; isSigner: false; docs: ['The Combat XP modifier account']; }, { name: 'councilRankXpCategory'; isMut: true; isSigner: false; docs: ['The Council Rank XP Points Category Account']; }, { name: 'councilRankXpModifier'; isMut: false; isSigner: false; docs: ['The Council Rank XP modifier account']; }, { name: 'sector'; isMut: false; isSigner: false; docs: ['The [`Sector`] account for where the combat takes place']; }, { name: 'combatConfig'; isMut: false; isSigner: false; docs: ['The [`CombatConfig`] account']; }, { name: 'progressionConfig'; isMut: false; isSigner: false; docs: ['The [`ProgressionConfig`] account']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'AttackStarbaseInput'; }; } ]; }, { name: 'burnCraftingConsumables'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'craftingInstance'; isMut: false; isSigner: false; docs: ['The [`CraftingInstance`] account']; }, { name: 'craftingProcess'; isMut: true; isSigner: false; docs: ['The crafting process account']; }, { name: 'craftingFacility'; isMut: false; isSigner: false; docs: ['The crafting facility account']; }, { name: 'craftingRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe']; }, { name: 'gameAccounts'; accounts: [ { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: [ 'The source account of the tokens - owner should be `crafting_process`' ]; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The token mint']; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The [Token] program']; } ]; args: [ { name: 'input'; type: { defined: 'IngredientIndexInput'; }; } ]; }, { name: 'cancelCraftingProcess'; accounts: [ { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'craftingInstance'; isMut: true; isSigner: false; docs: ['The [`CraftingInstance`] account to cancel']; }, { name: 'craftingProcess'; isMut: true; isSigner: false; docs: ['The crafting process account']; }, { name: 'craftingFacility'; isMut: true; isSigner: false; docs: ['The `CraftingFacility` account']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'changeRental'; accounts: [ { name: 'subProfileInvalidator'; isMut: false; isSigner: true; docs: ['The fleet rental invalidator']; }, { name: 'newSubProfile'; isMut: false; isSigner: false; docs: ['The new sub profile']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; }, { name: 'subProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the sub_profile belongs to.']; } ]; args: []; }, { name: 'claimCraftingNonConsumables'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'craftingInstance'; isMut: false; isSigner: false; docs: ['The [`CraftingInstance`] account']; }, { name: 'craftingProcess'; isMut: true; isSigner: false; docs: ['The crafting process account']; }, { name: 'craftingFacility'; isMut: false; isSigner: false; docs: ['The crafting facility account']; }, { name: 'craftingRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe']; }, { name: 'cargoPodTo'; isMut: true; isSigner: false; docs: ['The destination cargo pod account']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The Cargo Type Account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'gameAccounts'; accounts: [ { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: [ 'The source account of the tokens - owner should be `crafting_process`' ]; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: [ 'The destination account of the tokens - owner should be `cargo_pod_to`' ]; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The token mint']; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The [Token] program']; } ]; args: [ { name: 'input'; type: { defined: 'IngredientIndexInput'; }; } ]; }, { name: 'claimCraftingOutputs'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'craftingInstance'; isMut: false; isSigner: false; docs: ['The [`CraftingInstance`] account']; }, { name: 'craftingProcess'; isMut: true; isSigner: false; docs: ['The [`CraftingProcess`] account']; }, { name: 'craftingFacility'; isMut: false; isSigner: false; docs: ['The crafting facility account']; }, { name: 'craftingRecipe'; isMut: false; isSigner: false; docs: ['The crafting [`Recipe`]']; }, { name: 'craftableItem'; isMut: false; isSigner: false; docs: ['The craftable item']; }, { name: 'cargoPodTo'; isMut: true; isSigner: false; docs: ['The destination cargo pod account']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The Cargo Type Account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'gameAccounts'; accounts: [ { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: [ 'The source account of the tokens - owner should be `craftable_item`' ]; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: [ 'The destination account of the tokens - owner should be `cargo_pod_to`' ]; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The [Token] program']; } ]; args: [ { name: 'input'; type: { defined: 'IngredientIndexInput'; }; } ]; }, { name: 'closeCraftingProcess'; accounts: [ { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'craftingInstance'; isMut: true; isSigner: false; docs: ['The [`CraftingInstance`] account to close']; }, { name: 'craftingProcess'; isMut: true; isSigner: false; docs: ['The crafting process account']; }, { name: 'craftingRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe account']; }, { name: 'craftingFacility'; isMut: true; isSigner: false; docs: ['The `CraftingFacility` account']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'craftingXpAccounts'; accounts: [ { name: 'userPointsAccount'; isMut: true; isSigner: false; docs: ['The User Points Account']; }, { name: 'pointsCategory'; isMut: false; isSigner: false; docs: ['The Points Category Account']; }, { name: 'pointsModifierAccount'; isMut: false; isSigner: false; docs: ['The Points Modifier Account']; } ]; }, { name: 'councilRankXpAccounts'; accounts: [ { name: 'userPointsAccount'; isMut: true; isSigner: false; docs: ['The User Points Account']; }, { name: 'pointsCategory'; isMut: false; isSigner: false; docs: ['The Points Category Account']; }, { name: 'pointsModifierAccount'; isMut: false; isSigner: false; docs: ['The Points Modifier Account']; } ]; }, { name: 'progressionConfig'; isMut: false; isSigner: false; docs: ['The [`ProgressionConfig`] account']; }, { name: 'pointsProgram'; isMut: false; isSigner: false; docs: ['The points program']; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'closeDisbandedFleet'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the player profile.']; }, { name: 'playerProfile'; isMut: false; isSigner: false; docs: ['The player profile.']; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'disbandedFleet'; isMut: true; isSigner: false; docs: ['The [`DisbandedFleet`] account']; }, { name: 'fleetShips'; isMut: true; isSigner: false; docs: ['The [`FleetShips`] account']; } ]; args: [ { name: 'input'; type: { defined: 'CloseDisbandedFleetInput'; }; } ]; }, { name: 'closeEmptyLoot'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'loot'; isMut: true; isSigner: false; docs: ['The [`Loot`] account to close']; }, { name: 'sector'; isMut: false; isSigner: false; docs: ['The [`Sector`] account — authority over loot cargo pods']; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to — receives rent refund']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['System Program']; } ]; args: [ { name: 'input'; type: { defined: 'CloseEmptyLootInput'; }; } ]; }, { name: 'closeFleetCargoPodTokenAccount'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'cargoPod'; isMut: true; isSigner: false; docs: ['The cargo pod, owned by the fleet']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'token'; isMut: true; isSigner: false; docs: ['The destination token account - owned by the `cargo_pod`']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The mint of the token accounts']; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'closePlayerCrewRecord'; accounts: [ { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'crewRecord'; isMut: true; isSigner: false; docs: ['The [`PlayerCrewRecord`] account']; }, { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'crewConfig'; isMut: false; isSigner: false; docs: ['The [`SageCrewConfig`] Account']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'closeStarbaseCargoTokenAccount'; accounts: [ { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'cargoPod'; isMut: true; isSigner: false; docs: ['The new cargo pod']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'token'; isMut: true; isSigner: false; docs: ['The source token account - owned by the `cargo_pod`']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The mint of the token accounts']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'closeUpgradeProcess'; accounts: [ { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'resourceCraftingInstance'; isMut: true; isSigner: false; docs: ['The [`CraftingInstance`] account to close']; }, { name: 'resourceCraftingProcess'; isMut: true; isSigner: false; docs: ['The crafting process account']; }, { name: 'resourceRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe for the upgrade resource']; }, { name: 'resourceCraftingFacility'; isMut: true; isSigner: false; docs: ['The `CraftingFacility` account']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'completeStarbaseUpgrade'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new crafting process']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: true; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'craftingFacility'; isMut: true; isSigner: false; docs: [ 'The `CraftingFacility` account for crafting at this `Starbase`' ]; }, { name: 'upgradeFacility'; isMut: false; isSigner: false; docs: ['The `CraftingFacility` account for starbase upgrades']; }, { name: 'upgradeRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe for the starbase upgrade']; }, { name: 'newRecipeCategory'; isMut: false; isSigner: false; docs: ['The crafting recipe category for the next `Starbase` level']; }, { name: 'craftingDomain'; isMut: false; isSigner: false; docs: ['The crafting domain']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'copyGameState'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new `GameState`']; }, { name: 'oldGameState'; isMut: false; isSigner: false; docs: ['The old [`GameState`] account']; }, { name: 'newGameState'; isMut: true; isSigner: false; docs: [ 'The [`GameState`] account', 'This will and should fail if there already exists a `GameState`for the desired `update_id`' ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The system program']; } ]; args: [ { name: 'input'; type: { defined: 'ManageGameInput'; }; } ]; }, { name: 'createCargoPod'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new crafting process']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoPod'; isMut: true; isSigner: false; docs: ['The new cargo pod']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The system program']; } ]; args: [ { name: 'input'; type: { defined: 'StarbaseCreateCargoPodInput'; }; } ]; }, { name: 'createCertificateMint'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new crafting process']; }, { name: 'starbase'; isMut: false; isSigner: false; docs: ['The Starbase to create a certificate mint for']; }, { name: 'cargoMint'; isMut: false; isSigner: false; docs: ['The mint to create a certificate mint for']; }, { name: 'certificateMint'; isMut: true; isSigner: false; docs: ['The new certificate mint']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: [ 'The cargo type to associate with the `cargo_mint`', 'Included to ensure that this instruction can only be called for valid cargo types' ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The game account']; }, { name: 'transferHookExtraAccountMetaList'; isMut: true; isSigner: false; docs: ['The transfer hook extra accounts list']; }, { name: 'transferHookProgram'; isMut: false; isSigner: false; docs: ['The transfer hook program']; }, { name: 'token2022Program'; isMut: false; isSigner: false; docs: ['The token 2022 program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The system program']; } ]; args: []; }, { name: 'createCraftingProcess'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new crafting process']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'craftingInstance'; isMut: true; isSigner: false; docs: ['The [`CraftingInstance`] account to initialize']; }, { name: 'craftingFacility'; isMut: true; isSigner: false; docs: ['The `CraftingFacility` account']; }, { name: 'craftingProcess'; isMut: true; isSigner: false; docs: ['The crafting process account (NOT initialized)']; }, { name: 'craftingRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe']; }, { name: 'craftingDomain'; isMut: false; isSigner: false; docs: ['The crafting domain']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'StarbaseCreateCraftingProcessInput'; }; } ]; }, { name: 'createFleet'; accounts: [ { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new `Fleet`']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The [`Fleet`] account']; }, { name: 'fleetShips'; isMut: true; isSigner: false; docs: ['The [`FleetShips`] account']; }, { name: 'cargoHold'; isMut: true; isSigner: false; docs: ['The new fleet `cargo_hold` cargo pod (not initialized)']; }, { name: 'fuelTank'; isMut: true; isSigner: false; docs: ['The new fleet `fuel_tank` cargo pod (not initialized)']; }, { name: 'ammoBank'; isMut: true; isSigner: false; docs: ['The new fleet `ammo_bank` cargo pod (not initialized)']; }, { name: 'ship'; isMut: false; isSigner: false; docs: [ 'The [`Ship`] Account - represents the first ship in the new fleet' ]; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'CreateFleetInput'; }; } ]; }, { name: 'createStarbaseUpgradeResourceProcess'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new crafting process']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'craftingInstance'; isMut: true; isSigner: false; docs: ['The [`CraftingInstance`] account to initialize']; }, { name: 'upgradeFacility'; isMut: true; isSigner: false; docs: ['The `CraftingFacility` account']; }, { name: 'craftingProcess'; isMut: true; isSigner: false; docs: ['The crafting process account (NOT initialized)']; }, { name: 'craftingRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe']; }, { name: 'craftingDomain'; isMut: false; isSigner: false; docs: ['The crafting domain']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'StarbaseCreateCraftingProcessInput'; }; } ]; }, { name: 'depositCargoToFleet'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoPodFrom'; isMut: true; isSigner: false; docs: ['The origin cargo pod']; }, { name: 'cargoPodTo'; isMut: true; isSigner: false; docs: ['The destination cargo pod']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account - owned by the `cargo_pod_from`']; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: ['The destination token account - owned by the `cargo_pod_to`']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The mint of the token accounts']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'DepositCargoToFleetInput'; }; } ]; }, { name: 'depositCargoToGame'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoPod'; isMut: true; isSigner: false; docs: ['The new cargo pod']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account - owned by the `key`']; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: ['The destination token account - owned by the `cargo_pod`']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'CargoToGameInput'; }; } ]; }, { name: 'depositCraftingIngredient'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'craftingInstance'; isMut: false; isSigner: false; docs: ['The [`CraftingInstance`] account']; }, { name: 'craftingFacility'; isMut: false; isSigner: false; docs: [ 'The [`CraftingFacility`](crafting::CraftingFacility) account' ]; }, { name: 'craftingProcess'; isMut: true; isSigner: false; docs: ['The crafting process account']; }, { name: 'cargoPodFrom'; isMut: true; isSigner: false; docs: ['The source cargo pod account']; }, { name: 'craftingRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The Cargo Type Account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: [ 'The source account of the tokens - owner should be `cargo_pod_from`' ]; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: [ 'The destination account of the tokens - owner should be `crafting_process`' ]; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The [Token] program']; } ]; args: [ { name: 'input'; type: { defined: 'StarbaseDepositCraftingIngredientInput'; }; } ]; }, { name: 'depositStarbaseUpkeepResource'; accounts: [ { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: true; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoPodFrom'; isMut: true; isSigner: false; docs: ['The source cargo pod account']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The Cargo Type Account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: [ 'The source account of the tokens - owner should be `cargo_pod_from`' ]; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The token mint']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'resourceRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe for the upkeep resource']; }, { name: 'loyaltyPointsAccounts'; accounts: [ { name: 'userPointsAccount'; isMut: true; isSigner: false; docs: ['The User Points Account']; }, { name: 'pointsCategory'; isMut: false; isSigner: false; docs: ['The Points Category Account']; }, { name: 'pointsModifierAccount'; isMut: false; isSigner: false; docs: ['The Points Modifier Account']; } ]; }, { name: 'progressionConfig'; isMut: false; isSigner: false; docs: ['The [`ProgressionConfig`] account']; }, { name: 'pointsProgram'; isMut: false; isSigner: false; docs: ['The points program']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The [Token] program']; } ]; args: [ { name: 'input'; type: { defined: 'DepositStarbaseUpkeepResourceInput'; }; } ]; }, { name: 'deregisterCombatConfig'; accounts: [ { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['Where the closing funds go.']; }, { name: 'combatConfig'; isMut: true; isSigner: false; docs: ['The [`CombatConfig`] account']; }, { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'deregisterMineItem'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['Where the closing funds go.']; }, { name: 'mineItem'; isMut: true; isSigner: false; docs: ['The [`MineItem`] account']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'deregisterProgressionConfig'; accounts: [ { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['Where the closing funds go.']; }, { name: 'progressionConfig'; isMut: true; isSigner: false; docs: ['The [`ProgressionConfig`] account']; }, { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'deregisterResource'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['Where the closing funds go.']; }, { name: 'mineItem'; isMut: true; isSigner: false; docs: ['The [`MineItem`] account']; }, { name: 'resource'; isMut: true; isSigner: false; docs: ['The [`Resource`] account']; }, { name: 'location'; isMut: true; isSigner: false; docs: ['The Location address']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'deregisterStarbase'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['Where the closing funds go.']; }, { name: 'starbase'; isMut: true; isSigner: false; docs: ['The [`Starbase`] account']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'deregisterSurveyDataUnitTracker'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['Where the closing funds go.']; }, { name: 'surveyDataUnitTracker'; isMut: true; isSigner: false; docs: ['The [`SurveyDataUnitTracker`] account']; } ]; args: [ { name: 'input'; type: { defined: 'DeregisterSurveyDataUnitTrackerInput'; }; } ]; }, { name: 'devAddCrewToGame'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The `StarbasePlayer` account to add crew to']; } ]; args: [ { name: 'input'; type: { defined: 'DevAddCrewInput'; }; } ]; }, { name: 'devDepositCargoToGame'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoPod'; isMut: true; isSigner: false; docs: ['The new cargo pod']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account - owned by the `key`']; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: ['The destination token account - owned by the `cargo_pod`']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'CargoToGameInput'; }; } ]; }, { name: 'devRemoveCrewFromGame'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The `StarbasePlayer` account to remove crew from']; } ]; args: [ { name: 'input'; type: { defined: 'DevRemoveCrewInput'; }; } ]; }, { name: 'disbandFleet'; accounts: [ { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder - pays for account rent']; }, { name: 'disbandedFleet'; isMut: true; isSigner: false; docs: ['The [`DisbandedFleet`] account']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: [ 'The [`Fleet`] account', 'The fleet can only be disbanded by the `owner_profile` and not `sub_profile`', 'Fleet cannot be disbanded while rented' ]; }, { name: 'fleetShips'; isMut: true; isSigner: false; docs: ['The [`FleetShips`] account']; }, { name: 'cargoHold'; isMut: true; isSigner: false; docs: ['The fleet `cargo_hold` cargo pod']; }, { name: 'fuelTank'; isMut: true; isSigner: false; docs: ['The fleet `fuel_tank` cargo pod']; }, { name: 'ammoBank'; isMut: true; isSigner: false; docs: ['The fleet `ammo_bank` cargo pod']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'DisbandFleetInput'; }; } ]; }, { name: 'disbandedFleetToEscrow'; accounts: [ { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder - pays for account rent']; }, { name: 'disbandedFleet'; isMut: true; isSigner: false; docs: ['The [`DisbandedFleet`] account']; }, { name: 'fleetShips'; isMut: true; isSigner: false; docs: ['The [`FleetShips`] account']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'ship'; isMut: false; isSigner: false; docs: ['The [`Ship`] Account']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'DisbandedFleetToEscrowInput'; }; } ]; }, { name: 'discoverSector'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: false; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new sector']; }, { name: 'sector'; isMut: true; isSigner: false; docs: ['The [`Sector`] account']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'DiscoverSectorInput'; }; } ]; }, { name: 'drainMineItemBank'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['Where the closing funds go.']; }, { name: 'mineItem'; isMut: true; isSigner: false; docs: ['The [`MineItem`] account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The mine item token bank to drain']; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: ['Where to send tokens from the bank']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The [Token] program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'drainSurveyDataUnitsBank'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['Where the closing rent refunds go.']; }, { name: 'surveyDataUnitTracker'; isMut: false; isSigner: false; docs: ['The [`SurveyDataUnitTracker`] account']; }, { name: 'surveyDataUnitTrackerSigner'; isMut: false; isSigner: false; docs: ['The `SurveyDataUnitTracker` signer']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The SDU token bank to drain']; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: ['Where to send tokens from the bank']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The [Token] program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'fleetStateHandler'; accounts: [ { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; args: []; }, { name: 'forceDisbandFleet'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder - pays for account rent']; }, { name: 'disbandedFleet'; isMut: true; isSigner: false; docs: ['The new [`DisbandedFleet`] account']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The [`Fleet`] account']; }, { name: 'fleetShips'; isMut: true; isSigner: false; docs: ['The [`FleetShips`] account']; }, { name: 'cargoHold'; isMut: true; isSigner: false; docs: ['The fleet `cargo_hold` cargo pod']; }, { name: 'fuelTank'; isMut: true; isSigner: false; docs: ['The fleet `fuel_tank` cargo pod']; }, { name: 'ammoBank'; isMut: true; isSigner: false; docs: ['The fleet `ammo_bank` cargo pod']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'ship'; isMut: false; isSigner: false; docs: [ 'The [`Ship`]', 'Must provide at least one ship that is invalid for this instruction' ]; }, { name: 'gameAccounts'; accounts: [ { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'ForcedDisbandFleetInput'; }; } ]; }, { name: 'forceDropFleetCargo'; accounts: [ { name: 'fleet'; isMut: true; isSigner: false; docs: ['The `Fleet` Account']; }, { name: 'fleetShips'; isMut: true; isSigner: false; docs: ['The [`FleetShips`] account']; }, { name: 'cargoPod'; isMut: true; isSigner: false; docs: ['The origin cargo pod']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The `cargo_type` for the token']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account - owned by the `cargo_pod`']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The mint of the token account']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: []; }, { name: 'idleToLoadingBay'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; } ]; args: [ { name: 'keyIndex'; type: 'u16'; } ]; }, { name: 'idleToRespawn'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'atlasTokenFrom'; isMut: true; isSigner: false; docs: ['Source Token account for ATLAS, owned by the player']; }, { name: 'atlasTokenTo'; isMut: true; isSigner: false; docs: ['Vault Token account for ATLAS']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The Solana Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'IdleToRespawnInput'; }; } ]; }, { name: 'initGame'; accounts: [ { name: 'signer'; isMut: true; isSigner: true; docs: ['The entity calling this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The sector permissions [`Profile`]']; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new game']; }, { name: 'gameId'; isMut: true; isSigner: true; docs: ['The [`Game`] account']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The system program']; } ]; args: []; }, { name: 'initGameState'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new `GameState`']; }, { name: 'gameState'; isMut: true; isSigner: false; docs: ['The [`GameState`] account']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The system program']; } ]; args: [ { name: 'input'; type: { defined: 'InitGameStateInput'; }; } ]; }, { name: 'invalidateRental'; accounts: [ { name: 'subProfileInvalidator'; isMut: false; isSigner: true; docs: ['The fleet rental invalidator']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet']; } ]; args: [ { name: 'removeInvalidator'; type: 'bool'; } ]; }, { name: 'invalidateShip'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: true; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'ship'; isMut: true; isSigner: false; docs: ['The current [`Ship`] account']; } ]; args: [ { name: 'keyIndex'; type: 'u16'; } ]; }, { name: 'loadFleetCrew'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; args: [ { name: 'input'; type: { defined: 'FleetCrewInput'; }; } ]; }, { name: 'loadingBayToIdle'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; } ]; args: [ { name: 'keyIndex'; type: 'u16'; } ]; }, { name: 'mineAsteroidToRespawn'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'resource'; isMut: true; isSigner: false; docs: ['The [`Resource`] account']; }, { name: 'planet'; isMut: true; isSigner: false; docs: ['The [`Planet`] account']; }, { name: 'atlasTokenFrom'; isMut: true; isSigner: false; docs: ['Source Token account for ATLAS, owned by the player']; }, { name: 'atlasTokenTo'; isMut: true; isSigner: false; docs: ['Vault Token account for ATLAS']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The Solana Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'MineAsteroidToRespawnInput'; }; } ]; }, { name: 'mintCertificate'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'cargoMint'; isMut: false; isSigner: false; docs: ['The mint of the cargo in question']; }, { name: 'certificateMint'; isMut: true; isSigner: false; docs: ['The cargo certificate mint']; }, { name: 'certificateTokenTo'; isMut: true; isSigner: false; docs: ['The token account where certificates are minted to']; }, { name: 'cargoTokenFrom'; isMut: true; isSigner: false; docs: [ 'The source token account for the cargo - owned by the `cargo_pod`' ]; }, { name: 'cargoTokenTo'; isMut: true; isSigner: false; docs: [ 'The destination token account for the cargo - owned by the Starbase' ]; }, { name: 'cargoPod'; isMut: true; isSigner: false; docs: ['The cargo pod to take from']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The token program']; }, { name: 'token2022Program'; isMut: false; isSigner: false; docs: ['The token 2022 program']; } ]; args: [ { name: 'keyIndex'; type: 'u16'; }, { name: 'amount'; type: 'u64'; } ]; }, { name: 'mintCrewToGame'; accounts: [ { name: 'sagePlayerProfile'; isMut: true; isSigner: false; docs: ['The [`SagePlayerProfile`] account']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'sageCrewConfig'; isMut: false; isSigner: false; docs: ['The [`SageCrewConfig`] Account']; }, { name: 'crewConfig'; isMut: false; isSigner: false; docs: ['The crew program `CrewConfig` account']; }, { name: 'instructionsSysvar'; isMut: false; isSigner: false; docs: ['Solana Instructions Sysvar']; } ]; args: []; }, { name: 'redeemCertificate'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'cargoMint'; isMut: false; isSigner: false; docs: ['The mint of the cargo in question']; }, { name: 'certificateMint'; isMut: true; isSigner: false; docs: ['The cargo certificate mint']; }, { name: 'certificateTokenFrom'; isMut: true; isSigner: false; docs: [ 'The source token account for the cargo certificate - owned by the starbase player or a', '`certificate_owner_authority` sent through remaining accounts' ]; }, { name: 'cargoTokenFrom'; isMut: true; isSigner: false; docs: [ 'The source token account for the cargo - owned by the Starbase' ]; }, { name: 'cargoTokenTo'; isMut: true; isSigner: false; docs: [ 'The destination token account for the cargo - owned by the `cargo_pod`' ]; }, { name: 'cargoPod'; isMut: true; isSigner: false; docs: ['The cargo pod to send to']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The token program']; }, { name: 'token2022Program'; isMut: false; isSigner: false; docs: ['The token 2022 program']; } ]; args: [ { name: 'keyIndex'; type: 'u16'; }, { name: 'amount'; type: 'u64'; } ]; }, { name: 'registerCombatConfig'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new star base']; }, { name: 'combatConfig'; isMut: true; isSigner: false; docs: ['The [`CombatConfig`] account']; }, { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RegisterCombatConfigInput'; }; } ]; }, { name: 'registerMineItem'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new mine item']; }, { name: 'mineItem'; isMut: true; isSigner: false; docs: ['The [`MineItem`] account']; }, { name: 'mint'; isMut: true; isSigner: false; docs: ['The mint address representing the mine item']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RegisterMineItemInput'; }; } ]; }, { name: 'registerPlanet'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new game']; }, { name: 'planet'; isMut: true; isSigner: true; docs: ['The [`Planet`] account']; }, { name: 'sector'; isMut: true; isSigner: false; docs: ['The [`Sector`] account']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RegisterPlanetInput'; }; } ]; }, { name: 'registerProgressionConfig'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new star base']; }, { name: 'progressionConfig'; isMut: true; isSigner: false; docs: ['The [`ProgressionConfig`] account']; }, { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RegisterProgressionConfigInput'; }; } ]; }, { name: 'registerResource'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new resource']; }, { name: 'resource'; isMut: true; isSigner: false; docs: ['The [`Resource`] account']; }, { name: 'location'; isMut: true; isSigner: false; docs: ['The Location address']; }, { name: 'mineItem'; isMut: true; isSigner: false; docs: ['The [`MineItem`] account']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RegisterResourceInput'; }; } ]; }, { name: 'registerSageCrewConfig'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new star base']; }, { name: 'sageCrewConfig'; isMut: true; isSigner: false; docs: ['The [`SageCrewConfig`] account']; }, { name: 'config'; isMut: false; isSigner: false; docs: ['The crew config']; }, { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'registerSagePlayerProfile'; accounts: [ { name: 'profile'; isMut: false; isSigner: false; docs: ['The player permissions [`Profile`]']; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new profile']; }, { name: 'sagePlayerProfile'; isMut: true; isSigner: false; docs: ['The `SagePlayerProfile` account']; }, { name: 'gameAccounts'; accounts: [ { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: []; }, { name: 'registerSagePointModifier'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder - pays for account rent']; }, { name: 'pointsCategory'; isMut: false; isSigner: false; docs: ['The `PointCategory`']; }, { name: 'pointsModifier'; isMut: true; isSigner: false; docs: ['The `PointsModifier` account to be created in Points CPI']; }, { name: 'pointsProgram'; isMut: false; isSigner: false; docs: ['The points program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RegisterSagePointsModifierInput'; }; } ]; }, { name: 'registerSector'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new sector']; }, { name: 'discoverer'; isMut: false; isSigner: false; docs: ['The discoverer of this sector']; }, { name: 'sector'; isMut: true; isSigner: false; docs: ['The [`Sector`] account']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'coordinates'; type: { array: ['i64', 2]; }; }, { name: 'name'; type: { array: ['u8', 64]; }; }, { name: 'keyIndex'; type: 'u16'; } ]; }, { name: 'registerShip'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new game']; }, { name: 'ship'; isMut: true; isSigner: true; docs: ['The [`Ship`] account']; }, { name: 'mint'; isMut: false; isSigner: false; docs: ['The mint address representing the [`Ship`]']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RegisterShipInput'; }; } ]; }, { name: 'registerStar'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder - pays for account rent']; }, { name: 'star'; isMut: true; isSigner: true; docs: ['The [`Star`] account']; }, { name: 'sector'; isMut: true; isSigner: false; docs: ['The [`Sector`] account']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RegisterStarInput'; }; } ]; }, { name: 'registerStarbase'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new star base']; }, { name: 'starbase'; isMut: true; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'sector'; isMut: false; isSigner: false; docs: ['The [`Sector`] account']; }, { name: 'gameStateAndProfile'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RegisterStarbaseInputUnpacked'; }; } ]; }, { name: 'registerStarbasePlayer'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder -- pays account rent']; }, { name: 'gameAccounts'; accounts: [ { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'sagePlayerProfile'; isMut: false; isSigner: false; docs: ['The [`SagePlayerProfile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the player belongs to.']; }, { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] account to initialize']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The system program']; } ]; args: []; }, { name: 'registerSurveyDataUnitTracker'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new `SurveyDataUnitTracker`']; }, { name: 'surveyDataUnitTracker'; isMut: true; isSigner: true; docs: ['The [`SurveyDataUnitTracker`] account']; }, { name: 'sduMint'; isMut: false; isSigner: false; docs: ['The Survey Data Unit Mint']; }, { name: 'resourceMint'; isMut: false; isSigner: false; docs: ['The mint of the resource spent when scanning for SDUs']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RegisterSurveyDataUnitTrackerInput'; }; } ]; }, { name: 'reloadFleetAbilityPower'; accounts: [ { name: 'gameAndFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; } ]; args: [ { name: 'input'; type: { defined: 'ReloadInput'; }; } ]; }, { name: 'removeCargoPod'; accounts: [ { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoPod'; isMut: true; isSigner: false; docs: ['The cargo pod (should be empty)']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The system program']; } ]; args: [ { name: 'input'; type: { defined: 'StarbaseRemoveCargoPodInput'; }; } ]; }, { name: 'removeConnection'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['Where the rent refund funds from the connections go to.']; }, { name: 'sector1'; isMut: true; isSigner: false; docs: ['The first sector to remove from']; }, { name: 'sector2'; isMut: true; isSigner: false; docs: ['The second sector to remove from']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The system program']; } ]; args: [ { name: 'sector1Index'; type: 'u16'; }, { name: 'sector2Index'; type: 'u16'; }, { name: 'keyIndex'; type: 'u16'; } ]; }, { name: 'removeCrewFromGame'; accounts: [ { name: 'sagePlayerProfile'; isMut: true; isSigner: false; docs: ['The [`SagePlayerProfile`] account']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'sageCrewConfig'; isMut: false; isSigner: false; docs: ['The [`SageCrewConfig`] Account']; }, { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'crewConfig'; isMut: false; isSigner: false; docs: ['The crew program `CrewConfig` account']; }, { name: 'newCrewOwner'; isMut: false; isSigner: false; docs: ['The new crew owner']; }, { name: 'crewDelegate'; isMut: false; isSigner: false; docs: ['The crew delegate']; }, { name: 'logWrapper'; isMut: false; isSigner: false; docs: ['The log wrapper']; }, { name: 'compressionProgram'; isMut: false; isSigner: false; docs: ['The compression program']; }, { name: 'bubblegumProgram'; isMut: false; isSigner: false; docs: ['The bubblegum program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RemoveCrewInput'; }; } ]; }, { name: 'removeInvalidShipEscrow'; accounts: [ { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'sagePlayerProfile'; isMut: true; isSigner: false; docs: ['The [`SagePlayerProfile`] account']; }, { name: 'destinationTokenAccount'; isMut: true; isSigner: false; docs: ['The Destination Token Account']; }, { name: 'ship'; isMut: false; isSigner: false; docs: ['The [`Ship`] Account']; }, { name: 'shipEscrowTokenAccount'; isMut: true; isSigner: false; docs: ['The Escrow Token Account']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The Token Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RemoveShipEscrowInput'; }; } ]; }, { name: 'removeShipEscrow'; accounts: [ { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'sagePlayerProfile'; isMut: true; isSigner: false; docs: ['The [`SagePlayerProfile`] account']; }, { name: 'destinationTokenAccount'; isMut: true; isSigner: false; docs: ['The Destination Token Account']; }, { name: 'ship'; isMut: false; isSigner: false; docs: ['The [`Ship`] Account']; }, { name: 'shipEscrowTokenAccount'; isMut: true; isSigner: false; docs: ['The Escrow Token Account']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The Token Program']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'RemoveShipEscrowInput'; }; } ]; }, { name: 'repairDockedFleet'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoPodFrom'; isMut: true; isSigner: false; docs: ['The origin cargo pod']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account - owned by the `cargo_pod_from`']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The mint of the token accounts']; }, { name: 'feeTokenFrom'; isMut: true; isSigner: false; docs: ['The fee source token account']; }, { name: 'feeTokenTo'; isMut: true; isSigner: false; docs: ['The fee destination token account']; }, { name: 'feeMint'; isMut: true; isSigner: false; docs: ['Fee Token Mint']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'RepairFleetInput'; }; } ]; }, { name: 'repairIdleFleet'; accounts: [ { name: 'gameAndFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'repairedFleet'; isMut: true; isSigner: false; docs: ['The fleet being repaired']; }, { name: 'cargoHold'; isMut: true; isSigner: false; docs: ['The fleet cargo hold']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account for toolkits']; }, { name: 'statsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: [ "The fleet's toolkit token account - owned by the `cargo_hold`" ]; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['Token Mint - The toolkit mint']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'RepairFleetInput'; }; } ]; }, { name: 'repairStarbase'; accounts: [ { name: 'gameAndFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; }, { name: 'sagePlayerProfile'; isMut: false; isSigner: false; docs: ['The SAGE player profile']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ["The profile's faction account"]; }, { name: 'starbase'; isMut: true; isSigner: false; docs: ['The [`Starbase`] account being repaired']; }, { name: 'cargoHold'; isMut: true; isSigner: false; docs: ['The fleet cargo hold']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: [ "The fleet's toolkit token account - owned by the `cargo_hold`" ]; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account for toolkits']; }, { name: 'statsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['Token Mint - The toolkit mint']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The Token program']; } ]; args: [ { name: 'input'; type: { defined: 'RepairStarbaseInput'; }; } ]; }, { name: 'respawnToLoadingBay'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoHold'; isMut: false; isSigner: false; docs: ['The fleet `cargo_hold` cargo pod']; }, { name: 'fuelTank'; isMut: false; isSigner: false; docs: ['The fleet `fuel_tank` cargo pod']; }, { name: 'ammoBank'; isMut: false; isSigner: false; docs: ['The fleet `ammo_bank` cargo pod']; } ]; args: [ { name: 'input'; type: { defined: 'RespawnToLoadingBayInput'; }; } ]; }, { name: 'retrieveLoot'; accounts: [ { name: 'gameAndFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: false; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'sector'; isMut: false; isSigner: false; docs: ['The [`Sector`] account']; }, { name: 'loot'; isMut: true; isSigner: false; docs: ['The [`Loot`] account']; }, { name: 'cargoHold'; isMut: true; isSigner: false; docs: ['The fleet `cargo_hold` cargo pod']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'RetrieveLootInput'; }; } ]; }, { name: 'scanForSurveyDataUnits'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'surveyDataUnitTracker'; isMut: false; isSigner: false; docs: ['The [`SurveyDataUnitTracker`] account']; }, { name: 'surveyDataUnitTrackerSigner'; isMut: false; isSigner: false; docs: ['The `SurveyDataUnitTracker` signer']; }, { name: 'cargoHold'; isMut: true; isSigner: false; docs: ['The general cargo hold cargo pod for the fleet']; }, { name: 'sector'; isMut: true; isSigner: false; docs: ['The [`Sector`] account']; }, { name: 'sduTokenFrom'; isMut: true; isSigner: false; docs: [ 'Source token account for the SDU, owned by `survey_data_unit_tracker_signer`' ]; }, { name: 'sduTokenTo'; isMut: true; isSigner: false; docs: ['Destination token account for the SDU, owned by cargo_hold']; }, { name: 'resourceTokenFrom'; isMut: true; isSigner: false; docs: ['Token account for `resource_mint`, owned by fleet']; }, { name: 'resourceMint'; isMut: true; isSigner: false; docs: [ 'The resource that is spent when scanning for Survey Data Units' ]; }, { name: 'sduCargoType'; isMut: false; isSigner: false; docs: ['The cargo type of the SDU']; }, { name: 'resourceCargoType'; isMut: false; isSigner: false; docs: ['The cargo type of `resource_mint`']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition']; }, { name: 'dataRunningXpAccounts'; accounts: [ { name: 'userPointsAccount'; isMut: true; isSigner: false; docs: ['The User Points Account']; }, { name: 'pointsCategory'; isMut: false; isSigner: false; docs: ['The Points Category Account']; }, { name: 'pointsModifierAccount'; isMut: false; isSigner: false; docs: ['The Points Modifier Account']; } ]; }, { name: 'councilRankXpAccounts'; accounts: [ { name: 'userPointsAccount'; isMut: true; isSigner: false; docs: ['The User Points Account']; }, { name: 'pointsCategory'; isMut: false; isSigner: false; docs: ['The Points Category Account']; }, { name: 'pointsModifierAccount'; isMut: false; isSigner: false; docs: ['The Points Modifier Account']; } ]; }, { name: 'progressionConfig'; isMut: false; isSigner: false; docs: ['The [`ProgressionConfig`] account']; }, { name: 'pointsProgram'; isMut: false; isSigner: false; docs: ['The points program']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The cargo program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The token program']; }, { name: 'instructionsSysvar'; isMut: false; isSigner: false; docs: ['Solana Instructions Sysvar']; }, { name: 'recentSlothashes'; isMut: false; isSigner: false; docs: ['Solana recent slothashes']; } ]; args: [ { name: 'input'; type: { defined: 'ScanForSurveyDataUnitsInput'; }; } ]; }, { name: 'setNextShip'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'ship'; isMut: true; isSigner: false; docs: ['The current [`Ship`] account']; }, { name: 'nextShip'; isMut: true; isSigner: false; docs: ['The next [`Ship`] account']; } ]; args: [ { name: 'keyIndex'; type: 'u16'; } ]; }, { name: 'startCraftingProcess'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'craftingInstance'; isMut: false; isSigner: false; docs: ['The [`CraftingInstance`] account']; }, { name: 'craftingProcess'; isMut: true; isSigner: false; docs: ['The [`CraftingProcess`] account']; }, { name: 'craftingRecipe'; isMut: true; isSigner: false; docs: ['The crafting [`Recipe`]']; }, { name: 'craftingFacility'; isMut: false; isSigner: false; docs: ['The `CraftingFacility` account']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'startMiningAsteroid'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'fleetFuelTokenAccount'; isMut: false; isSigner: false; docs: ['The fleet fuel token account - owned by the `fuel_tank`']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'mineItem'; isMut: false; isSigner: false; docs: ['The [`MineItem`] account']; }, { name: 'resource'; isMut: true; isSigner: false; docs: ['The [`Resource`] account']; }, { name: 'planet'; isMut: true; isSigner: false; docs: ['The [`Planet`] account']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'startStarbaseUpgrade'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new crafting process']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: true; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'upgradeFacility'; isMut: true; isSigner: false; docs: ['The `CraftingFacility` account for starbase upgrades']; }, { name: 'upgradeRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe for the starbase upgrade']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'startSubwarp'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; } ]; args: [ { name: 'input'; type: { defined: 'StartSubwarpInput'; }; } ]; }, { name: 'stopCraftingProcess'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'craftingInstance'; isMut: false; isSigner: false; docs: ['The [`CraftingInstance`] account']; }, { name: 'craftingProcess'; isMut: true; isSigner: false; docs: ['The [`CraftingProcess`] account']; }, { name: 'craftingRecipe'; isMut: true; isSigner: false; docs: ['The crafting [`Recipe`]']; }, { name: 'craftingFacility'; isMut: false; isSigner: false; docs: ['The `CraftingFacility` account']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'stopMiningAsteroid'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'mineItem'; isMut: false; isSigner: false; docs: ['The [`MineItem`] account']; }, { name: 'resource'; isMut: true; isSigner: false; docs: ['The [`Resource`] account']; }, { name: 'planet'; isMut: true; isSigner: false; docs: ['The [`Planet`] account']; }, { name: 'fuelTank'; isMut: true; isSigner: false; docs: ['The fuel tank cargo pod']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account for fuel']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account - owned by the `fuel_tank`']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The mint of the token account']; }, { name: 'pilotXpAccounts'; accounts: [ { name: 'userPointsAccount'; isMut: true; isSigner: false; docs: ['The User Points Account']; }, { name: 'pointsCategory'; isMut: false; isSigner: false; docs: ['The Points Category Account']; }, { name: 'pointsModifierAccount'; isMut: false; isSigner: false; docs: ['The Points Modifier Account']; } ]; }, { name: 'miningXpAccounts'; accounts: [ { name: 'userPointsAccount'; isMut: true; isSigner: false; docs: ['The User Points Account']; }, { name: 'pointsCategory'; isMut: false; isSigner: false; docs: ['The Points Category Account']; }, { name: 'pointsModifierAccount'; isMut: false; isSigner: false; docs: ['The Points Modifier Account']; } ]; }, { name: 'councilRankXpAccounts'; accounts: [ { name: 'userPointsAccount'; isMut: true; isSigner: false; docs: ['The User Points Account']; }, { name: 'pointsCategory'; isMut: false; isSigner: false; docs: ['The Points Category Account']; }, { name: 'pointsModifierAccount'; isMut: false; isSigner: false; docs: ['The Points Modifier Account']; } ]; }, { name: 'progressionConfig'; isMut: false; isSigner: false; docs: ['The [`ProgressionConfig`] account']; }, { name: 'pointsProgram'; isMut: false; isSigner: false; docs: ['The points program']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'StopMiningAsteroidInput'; }; } ]; }, { name: 'stopSubwarp'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; } ]; args: [ { name: 'input'; type: { defined: 'StopSubwarpInput'; }; } ]; }, { name: 'submitStarbaseUpgradeResource'; accounts: [ { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: true; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'resourceCraftingInstance'; isMut: false; isSigner: false; docs: ['The [`CraftingInstance`] account']; }, { name: 'resourceCraftingProcess'; isMut: true; isSigner: false; docs: ['The crafting process account']; }, { name: 'resourceCraftingFacility'; isMut: false; isSigner: false; docs: ['The crafting facility account']; }, { name: 'upgradeProcessRecipe'; isMut: false; isSigner: false; docs: [ 'The crafting recipe for the submission of resources used in the upgrade process' ]; }, { name: 'starbaseUpgradeRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe for the starbase upgrade']; }, { name: 'resourceRecipe'; isMut: false; isSigner: false; docs: [ 'The crafting recipe for the resource being submitted', 'i.e. the recipe for crafting the resource whose mint would be `token_mint`' ]; }, { name: 'cargoPodTo'; isMut: true; isSigner: false; docs: ['The destination cargo pod account']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The Cargo Type Account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: [ 'The source account of the tokens - owner should be `crafting_process`' ]; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: [ 'The destination account of the tokens - owner should be `cargo_pod_to` (receives any refunds)' ]; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The token mint']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'loyaltyPointsAccounts'; accounts: [ { name: 'userPointsAccount'; isMut: true; isSigner: false; docs: ['The User Points Account']; }, { name: 'pointsCategory'; isMut: false; isSigner: false; docs: ['The Points Category Account']; }, { name: 'pointsModifierAccount'; isMut: false; isSigner: false; docs: ['The Points Modifier Account']; } ]; }, { name: 'progressionConfig'; isMut: false; isSigner: false; docs: ['The [`ProgressionConfig`] account']; }, { name: 'pointsProgram'; isMut: false; isSigner: false; docs: ['The points program']; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The [Token] program']; } ]; args: [ { name: 'input'; type: { defined: 'SubmitStarbaseUpgradeResourceInput'; }; } ]; }, { name: 'syncStarbasePlayer'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'gameAccounts'; accounts: [ { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; } ]; args: []; }, { name: 'syncStarbaseUpgradeIngredients'; accounts: [ { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new crafting process']; }, { name: 'starbase'; isMut: true; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'upgradeRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe for the starbase upgrade']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'KeyIndexInput'; }; } ]; }, { name: 'transferCargoAtStarbase'; accounts: [ { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoPodFrom'; isMut: true; isSigner: false; docs: ['The origin cargo pod']; }, { name: 'cargoPodTo'; isMut: true; isSigner: false; docs: ['The destination cargo pod']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account - owned by the `cargo_pod_from`']; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: ['The destination token account - owned by the `cargo_pod_to`']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The mint of the token accounts']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'StarbaseTransferCargoInput'; }; } ]; }, { name: 'transferCargoWithinFleet'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'cargoPodFrom'; isMut: true; isSigner: false; docs: ['The origin cargo pod']; }, { name: 'cargoPodTo'; isMut: true; isSigner: false; docs: ['The destination cargo pod']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account - owned by the `cargo_pod_from`']; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: ['The destination token account - owned by the `cargo_pod_to`']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The mint of the token accounts']; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'TransferCargoWithinFleetInput'; }; } ]; }, { name: 'unloadFleetCrew'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; args: [ { name: 'input'; type: { defined: 'FleetCrewInput'; }; } ]; }, { name: 'updateCombatConfig'; accounts: [ { name: 'combatConfig'; isMut: true; isSigner: false; docs: ['The [`CombatConfig`] account']; }, { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'UpdateCombatConfigInput'; }; } ]; }, { name: 'updateGame'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: true; isSigner: false; docs: ['The [`Game`] account']; } ]; } ]; args: [ { name: 'input'; type: { defined: 'UpdateGameInput'; }; } ]; }, { name: 'updateGameState'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: true; isSigner: false; docs: ['The [`GameState`] account']; } ]; args: [ { name: 'input'; type: { defined: 'UpdateGameStateInput'; }; } ]; }, { name: 'updateMineItem'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'mineItem'; isMut: true; isSigner: false; docs: ['The [`MineItem`] account']; } ]; args: [ { name: 'input'; type: { defined: 'UpdateMineItemInput'; }; } ]; }, { name: 'updatePlanet'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'planet'; isMut: true; isSigner: false; docs: ['The [`Planet`] account']; } ]; args: [ { name: 'input'; type: { defined: 'UpdatePlanetInput'; }; } ]; }, { name: 'updateProgressionConfig'; accounts: [ { name: 'progressionConfig'; isMut: true; isSigner: false; docs: ['The [`ProgressionConfig`] account']; }, { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'UpdateProgressionConfigInput'; }; } ]; }, { name: 'updateResource'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'mineItem'; isMut: false; isSigner: false; docs: ['The [`MineItem`] account']; }, { name: 'resource'; isMut: true; isSigner: false; docs: ['The [`Resource`] account']; } ]; args: [ { name: 'input'; type: { defined: 'UpdateResourceInput'; }; } ]; }, { name: 'updateShip'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'ship'; isMut: true; isSigner: false; docs: ['The [`Ship`] account']; } ]; args: [ { name: 'input'; type: { defined: 'UpdateShipInput'; }; } ]; }, { name: 'updateShipEscrow'; accounts: [ { name: 'oldShip'; isMut: false; isSigner: false; docs: ['The old [`Ship`] Account']; }, { name: 'next'; isMut: false; isSigner: false; docs: ['The address indicated as `next` in the `old_ship` account']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: true; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'gameAccounts'; accounts: [ { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; } ]; args: [ { name: 'input'; type: { defined: 'UpdateShipEscrowInput'; }; } ]; }, { name: 'updateShipInFleet'; accounts: [ { name: 'fleet'; isMut: true; isSigner: false; docs: ['The [`Fleet`] account']; }, { name: 'fleetShips'; isMut: true; isSigner: false; docs: ['The [`FleetShips`] account']; }, { name: 'oldShip'; isMut: false; isSigner: false; docs: ['The old [`Ship`] Account']; }, { name: 'next'; isMut: false; isSigner: false; docs: ['The address indicated as `next` in the `old_ship` account']; }, { name: 'gameAccounts'; accounts: [ { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; } ]; args: [ { name: 'input'; type: { defined: 'UpdateShipFleetInput'; }; } ]; }, { name: 'updateStar'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'star'; isMut: true; isSigner: false; docs: ['The [`Star`] account']; } ]; args: [ { name: 'input'; type: { defined: 'UpdateStarInput'; }; } ]; }, { name: 'updateStarbase'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'funder'; isMut: true; isSigner: true; docs: ['The funder for the new game']; }, { name: 'starbase'; isMut: true; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'systemProgram'; isMut: false; isSigner: false; docs: ['The Solana System program']; } ]; args: [ { name: 'input'; type: { defined: 'UpdateStarbaseInput'; }; } ]; }, { name: 'updateSurveyDataUnitTracker'; accounts: [ { name: 'gameAndProfile'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'surveyDataUnitTracker'; isMut: true; isSigner: false; docs: ['The [`SurveyDataUnitTracker`] account']; } ]; args: [ { name: 'input'; type: { defined: 'UpdateSurveyDataUnitTrackerInput'; }; } ]; }, { name: 'warpLane'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'fromStarbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'toStarbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'fromSector'; isMut: false; isSigner: false; docs: ['The Sector account representing the fleet`s current sector']; }, { name: 'toSector'; isMut: false; isSigner: false; docs: ['The Sector account that `Fleet` will move to']; }, { name: 'fuelTank'; isMut: true; isSigner: false; docs: ['The fuel tank cargo pod']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The `Cargo Type` Account']; }, { name: 'statsDefinition'; isMut: false; isSigner: false; docs: ['The `CargoStatsDefinition` for the cargo type']; }, { name: 'fuelTokenFrom'; isMut: true; isSigner: false; docs: ['The fuel source token account - owned by the `fuel_tank`']; }, { name: 'fuelMint'; isMut: true; isSigner: false; docs: ['Token Mint - The fuel mint']; }, { name: 'feeTokenFrom'; isMut: true; isSigner: false; docs: ['The fee source token account']; }, { name: 'feeTokenTo'; isMut: true; isSigner: false; docs: ['The fee destination token account']; }, { name: 'feeMint'; isMut: true; isSigner: false; docs: ['Fee Token Mint']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'WarpLaneInput'; }; } ]; }, { name: 'warpToCoordinate'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'fuelTank'; isMut: true; isSigner: false; docs: ['The fuel tank cargo pod']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account for fuel']; }, { name: 'statsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account - owned by the `fuel_tank`']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['Token Mint - The fuel mint']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'WarpToCoordinateInput'; }; } ]; }, { name: 'withdrawCargoFromFleet'; accounts: [ { name: 'gameAccountsFleetAndOwner'; accounts: [ { name: 'gameFleetAndOwner'; accounts: [ { name: 'fleetAndOwner'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key on the profile.']; }, { name: 'owningProfile'; isMut: false; isSigner: false; docs: ['The profile that owns the fleet.']; }, { name: 'owningProfileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'fleet'; isMut: true; isSigner: false; docs: ['The fleet.']; } ]; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'cargoPodFrom'; isMut: true; isSigner: false; docs: ['The origin cargo pod, owned by the fleet']; }, { name: 'cargoPodTo'; isMut: true; isSigner: false; docs: ['The destination cargo pod, owned by the Starbase player']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account - owned by the `cargo_pod_from`']; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: ['The destination token account - owned by the `cargo_pod_to`']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The mint of the token accounts']; }, { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'WithdrawCargoFromFleetInput'; }; } ]; }, { name: 'withdrawCargoFromGame'; accounts: [ { name: 'fundsTo'; isMut: true; isSigner: false; docs: ['The funds_to - receives rent refund']; }, { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'cargoPod'; isMut: true; isSigner: false; docs: ['The new cargo pod']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The cargo type account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: ['The source token account - owned by the `cargo_pod`']; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: ['The destination token account - owned by the `key`']; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The mint of the token accounts']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['Token Program']; } ]; args: [ { name: 'input'; type: { defined: 'CargoToGameInput'; }; } ]; }, { name: 'withdrawCraftingIngredient'; accounts: [ { name: 'starbaseAndStarbasePlayer'; accounts: [ { name: 'starbase'; isMut: false; isSigner: false; docs: ['The [`Starbase`] account']; }, { name: 'starbasePlayer'; isMut: false; isSigner: false; docs: ['The [`StarbasePlayer`] Account']; } ]; }, { name: 'craftingInstance'; isMut: false; isSigner: false; docs: ['The [`CraftingInstance`] account']; }, { name: 'craftingFacility'; isMut: false; isSigner: false; docs: [ 'The [`CraftingFacility`](crafting::CraftingFacility) account' ]; }, { name: 'craftingProcess'; isMut: true; isSigner: false; docs: ['The crafting process account']; }, { name: 'cargoPodTo'; isMut: true; isSigner: false; docs: ['The destination cargo pod account']; }, { name: 'craftingRecipe'; isMut: false; isSigner: false; docs: ['The crafting recipe']; }, { name: 'cargoType'; isMut: false; isSigner: false; docs: ['The Cargo Type Account']; }, { name: 'cargoStatsDefinition'; isMut: false; isSigner: false; docs: ['The cargo stats definition account']; }, { name: 'gameAccountsAndProfile'; accounts: [ { name: 'gameAndProfileAndFaction'; accounts: [ { name: 'key'; isMut: false; isSigner: true; docs: ['The key authorized for this instruction']; }, { name: 'profile'; isMut: false; isSigner: false; docs: ['The [`Profile`] account']; }, { name: 'profileFaction'; isMut: false; isSigner: false; docs: ['The faction that the profile belongs to.']; }, { name: 'gameId'; isMut: false; isSigner: false; docs: ['The [`Game`] account']; } ]; }, { name: 'gameState'; isMut: false; isSigner: false; docs: ['The [`GameState`] account']; } ]; }, { name: 'tokenFrom'; isMut: true; isSigner: false; docs: [ 'The source account of the tokens - owner should be `crafting_process`' ]; }, { name: 'tokenTo'; isMut: true; isSigner: false; docs: [ 'The destination account of the tokens - owner should be `cargo_pod_to`' ]; }, { name: 'tokenMint'; isMut: true; isSigner: false; docs: ['The token mint']; }, { name: 'craftingProgram'; isMut: false; isSigner: false; docs: ['The Crafting Program']; }, { name: 'cargoProgram'; isMut: false; isSigner: false; docs: ['The Cargo Program']; }, { name: 'tokenProgram'; isMut: false; isSigner: false; docs: ['The [Token] program']; } ]; args: [ { name: 'input'; type: { defined: 'StarbaseWithdrawCraftingIngredientInput'; }; } ]; } ]; accounts: [ { name: 'combatConfig'; docs: ['Progression Config']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['the data version of this account.']; type: 'u8'; }, { name: 'gameId'; docs: ['the `Game` that this belongs to']; type: 'publicKey'; }, { name: 'globalCeasefire'; docs: ['global ceasefire; >+1 means true']; type: 'u8'; }, { name: 'lootExclusivityTime'; docs: [ 'amount of time when the last-hitter of a fleet will have exclusive access to loot' ]; type: 'u16'; }, { name: 'starbaseUpgradeProgressContinuation'; docs: [ 'amount of time that is added to starbase level 0 upgrade process in case it is destroyed' ]; type: 'u32'; }, { name: 'crewRespawnTime'; docs: [ 'Time taken for crew to respawn when a starbase is destroyed' ]; type: 'u16'; }, { name: 'rawShipsRespawnTime'; docs: [ 'Time taken for individual ships to respawn when a starbase is destroyed' ]; type: 'u16'; } ]; }; }, { name: 'craftingInstance'; docs: [ 'This account is used to store relevant information for a crafting process instance' ]; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account']; type: 'u8'; }, { name: 'seqId'; docs: ['The sequence id for the `Starbase`']; type: 'u16'; }, { name: 'authority'; docs: ['The authority over the `CraftingInstance`']; type: 'publicKey'; }, { name: 'craftingProcess'; docs: ['The `CraftingProcess` account address']; type: 'publicKey'; }, { name: 'instanceType'; docs: ['the planet type']; type: 'u8'; }, { name: 'numCrew'; docs: ['The number of crew taking part in the crafting process']; type: 'u64'; }, { name: 'bump'; docs: ['Bump of Account PDA']; type: 'u8'; } ]; }; }, { name: 'disbandedFleet'; docs: ['Keeps track of a fleet while it is disbanded']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account.']; type: 'u8'; }, { name: 'gameId'; docs: ['The game id this belongs to.']; type: 'publicKey'; }, { name: 'ownerProfile'; docs: ["The owner's profile."]; type: 'publicKey'; }, { name: 'starbase'; docs: [ 'The `Starbase` at which the original `Fleet` was disbanded.' ]; type: 'publicKey'; }, { name: 'fleetLabel'; docs: ['The label or name of the disbanded fleet.']; type: { array: ['u8', 32]; }; }, { name: 'fleetShips'; docs: [ 'The `FleetShips` account belonging to the original `Fleet` that was disbanded.' ]; type: 'publicKey'; }, { name: 'bump'; docs: ["The disbanded fleet's bump."]; type: 'u8'; } ]; }; }, { name: 'fleet'; docs: ['A `SAGE` fleet.']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account.']; type: 'u8'; }, { name: 'gameId'; docs: ['The game id this belongs to.']; type: 'publicKey'; }, { name: 'ownerProfile'; docs: ["The owner's profile."]; type: 'publicKey'; }, { name: 'fleetShips'; docs: ['Fleet Ships Key']; type: 'publicKey'; }, { name: 'subProfile'; docs: [ "The fleet's sub-authority.", 'If [`Some`] will have the exclusive ability to interact with this fleet.' ]; type: { defined: 'OptionalNonSystemPubkey'; }; }, { name: 'subProfileInvalidator'; docs: ['The authority for revoking a sun-authority.']; type: 'publicKey'; }, { name: 'faction'; docs: ['The faction of the profile.']; type: 'u8'; }, { name: 'fleetLabel'; docs: ['The label or name of the fleet.']; type: { array: ['u8', 32]; }; }, { name: 'shipCounts'; docs: ['The number of ships in the fleet.']; type: { defined: 'ShipCounts'; }; }, { name: 'warpCooldownExpiresAt'; docs: ['The time at which the warp cooldown expires']; type: 'i64'; }, { name: 'scanCooldownExpiresAt'; docs: ['The time at which the scan cooldown expires']; type: 'i64'; }, { name: 'stats'; docs: ["The fleet's stats."]; type: { defined: 'ShipStats'; }; }, { name: 'cargoHold'; docs: ["The Cargo pod representing the fleet's cargo hold"]; type: 'publicKey'; }, { name: 'fuelTank'; docs: ["The Cargo pod representing the fleet's fuel tank"]; type: 'publicKey'; }, { name: 'ammoBank'; docs: ["The Cargo pod representing the fleet's ammo bank"]; type: 'publicKey'; }, { name: 'ap'; docs: ['Current fleet action points']; type: 'u32'; }, { name: 'sp'; docs: ['Current fleet shield points']; type: 'u32'; }, { name: 'hp'; docs: ['Current fleet health points']; type: 'u32'; }, { name: 'pendingHp'; docs: ['Current fleet pending health points']; type: 'u32'; }, { name: 'apReloadExpiresAt'; docs: ['The time at which reloading completes']; type: 'i64'; }, { name: 'shieldBreakDelayExpiresAt'; docs: ['The time at which SP can resume regenerating']; type: 'i64'; }, { name: 'lastCombatUpdate'; docs: ['The last time the combat was updated']; type: 'i64'; }, { name: 'updateId'; docs: ['The update id for the `Fleet`']; type: 'u64'; }, { name: 'bump'; docs: ["The fleet's bump."]; type: 'u8'; } ]; }; }, { name: 'fleetShips'; docs: ['Keeps track of a the individual ships that make up a fleet']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account.']; type: 'u8'; }, { name: 'fleet'; docs: ['The `Fleet` account this belongs to']; type: 'publicKey'; }, { name: 'fleetShipsInfoCount'; docs: ['List length of `RemainingData`']; type: 'u32'; }, { name: 'bump'; docs: ["The disbanded fleet's bump."]; type: 'u8'; } ]; }; }, { name: 'game'; docs: ['Global Game Configuration variables']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account.']; type: 'u8'; }, { name: 'updateId'; docs: ['The sequence id for updates.']; type: 'u64'; }, { name: 'profile'; docs: [ 'The [`Profile`](player_profile::state::Profile) that handles the sector program permissions' ]; type: 'publicKey'; }, { name: 'gameState'; docs: ['The associated `GameState` account.']; type: 'publicKey'; }, { name: 'points'; docs: ['Points setting']; type: { defined: 'Points'; }; }, { name: 'cargo'; docs: ['Cargo settings']; type: { defined: 'Cargo'; }; }, { name: 'crafting'; docs: ['Crafting settings']; type: { defined: 'Crafting'; }; }, { name: 'mints'; docs: ['mint related settings']; type: { defined: 'Mints'; }; }, { name: 'vaults'; docs: ['vault related settings']; type: { defined: 'Vaults'; }; }, { name: 'riskZones'; docs: ['Data for risk zones']; type: { defined: 'RiskZonesData'; }; } ]; }; }, { name: 'gameState'; docs: [ 'Keeps track of variables that may change frequently during a `Game` session' ]; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account']; type: 'u8'; }, { name: 'updateId'; docs: ['The sequence id for updates']; type: 'u64'; }, { name: 'gameId'; docs: ['The `Game` that this belongs to']; type: 'publicKey'; }, { name: 'fleet'; docs: ['Fleet settings']; type: { defined: 'FleetInfo'; }; }, { name: 'misc'; docs: ['Miscellaneous settings']; type: { defined: 'MiscVariables'; }; }, { name: 'bump'; docs: ['PDA bump']; type: 'u8'; } ]; }; }, { name: 'loot'; docs: ['Represents the loot available at a location']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['the data version of this account.']; type: 'u8'; }, { name: 'sector'; docs: ['Sector coordinates as [x, y]']; type: { array: ['i64', 2]; }; }, { name: 'gameId'; docs: ['the `Game` that this belongs to']; type: 'publicKey'; }, { name: 'creator'; docs: ['the player who created this account']; type: 'publicKey'; }, { name: 'items'; docs: ['the actual lootable items']; type: { array: [ { defined: 'LootInfo'; }, 2 ]; }; } ]; }; }, { name: 'mineItem'; docs: ['Represents a token registered as an item that can be mined']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account.']; type: 'u8'; }, { name: 'gameId'; docs: ['the game_id account this item is registered with']; type: 'publicKey'; }, { name: 'name'; docs: ['The name of the `MineItem`']; type: { array: ['u8', 64]; }; }, { name: 'mint'; docs: ['the mint representing the items mined']; type: 'publicKey'; }, { name: 'resourceHardness'; docs: ['How hard it is to mine this item -> Ranges from 1-10']; type: 'u16'; }, { name: 'numResourceAccounts'; docs: ['The number of resource accounts for this mine item']; type: 'u64'; }, { name: 'bump'; docs: ['bump for PDA']; type: 'u8'; } ]; }; }, { name: 'planet'; docs: ['Planet']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account.']; type: 'u8'; }, { name: 'name'; docs: ['The name of this `Planet`']; type: { array: ['u8', 64]; }; }, { name: 'gameId'; docs: ['the `Game` that this belongs to']; type: 'publicKey'; }, { name: 'sector'; docs: ['the sector that this belongs to']; type: { array: ['i64', 2]; }; }, { name: 'subCoordinates'; docs: ['sub_coordinates as [x, y]']; type: { array: ['i64', 2]; }; }, { name: 'planetType'; docs: ['the planet type']; type: 'u8'; }, { name: 'position'; docs: ['the planet position']; type: 'u8'; }, { name: 'size'; docs: ['size']; type: 'u64'; }, { name: 'maxHp'; docs: ['maximum health']; type: 'u64'; }, { name: 'currentHealth'; docs: ['The current health of the `Planet`.']; type: 'u64'; }, { name: 'amountMined'; docs: ['the cumulative amount mined from this `Asteroid`']; type: 'u64'; }, { name: 'numResources'; docs: ['the number of resources at this `Asteroid`']; type: 'u8'; }, { name: 'numMiners'; docs: [ 'the number of entities currently mining at this `Asteroid`' ]; type: 'u64'; } ]; }; }, { name: 'playerCrewRecord'; docs: [ 'An account used to record how many crew members have been added to the game by a player', 'This is meant to be used temporarily during the crew "pre add" period where players can add crew members to the game but not use them' ]; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account']; type: 'u8'; }, { name: 'playerProfile'; docs: ['The `Profile` key']; type: 'publicKey'; }, { name: 'crewConfig'; docs: ['The `SageCrewConfig` key']; type: 'publicKey'; }, { name: 'gameId'; docs: ['The id of the `Game`']; type: 'publicKey'; }, { name: 'count'; docs: ['The number of crew members']; type: 'u32'; }, { name: 'bump'; docs: ['Bump of Account PDA']; type: 'u8'; } ]; }; }, { name: 'progressionConfig'; docs: ['Progression Config']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['the data version of this account.']; type: 'u8'; }, { name: 'gameId'; docs: ['the `Game` that this belongs to']; type: 'publicKey'; }, { name: 'dailyLpLimit'; docs: ['the daily limit for Loyalty Points (LP)']; type: 'u64'; }, { name: 'dailyCouncilRankXpLimit'; docs: ['the daily limit for Council Rank Experience Points (CRXP)']; type: 'u64'; }, { name: 'dailyPilotXpLimit'; docs: ['the daily limit for Pilot License Experience Points (PXP)']; type: 'u64'; }, { name: 'dailyDataRunningXpLimit'; docs: ['the daily limit for Data Running Experience Points (DRXP)']; type: 'u64'; }, { name: 'dailyMiningXpLimit'; docs: ['the daily limit for Mining Experience Points (MXP)']; type: 'u64'; }, { name: 'dailyCraftingXpLimit'; docs: ['the daily limit for Crafting Experience Points (CXP)']; type: 'u64'; }, { name: 'numItems'; docs: ['number of progression items being tracked']; type: 'u16'; } ]; }; }, { name: 'resource'; docs: [ 'Represents a mine-able item existing at a particular location (e.g. a planet)' ]; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account.']; type: 'u8'; }, { name: 'gameId'; docs: ['the game_id pubkey']; type: 'publicKey'; }, { name: 'location'; docs: ["the location's pubkey"]; type: 'publicKey'; }, { name: 'mineItem'; docs: ['the mine item pubkey']; type: 'publicKey'; }, { name: 'locationType'; docs: ['the location type']; type: 'u8'; }, { name: 'systemRichness'; docs: [ 'How abundant the resource is at the location -> Ranges from 1-5' ]; type: 'u16'; }, { name: 'amountMined'; docs: ['the cumulative amount mined from this resource']; type: 'u64'; }, { name: 'numMiners'; docs: ['the number of entities currently mining this resource']; type: 'u64'; }, { name: 'bump'; docs: ['bump for PDA']; type: 'u8'; } ]; }; }, { name: 'sageCrewConfig'; docs: ['SAGE crew Config']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['the data version of this account.']; type: 'u8'; }, { name: 'gameId'; docs: ['the `Game` that this belongs to']; type: 'publicKey'; }, { name: 'config'; docs: ['the `CrewConfig` account address']; type: 'publicKey'; }, { name: 'bump'; docs: ['Bump of Account PDA']; type: 'u8'; } ]; }; }, { name: 'sagePlayerProfile'; docs: ["A `SAGE` player's profile."]; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account']; type: 'u8'; }, { name: 'playerProfile'; docs: ['The `Profile` key']; type: 'publicKey'; }, { name: 'gameId'; docs: ['The id of the `Game`']; type: 'publicKey'; }, { name: 'bump'; docs: ['Bump of Account PDA']; type: 'u8'; } ]; }; }, { name: 'sector'; docs: ['Sector']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account.']; type: 'u8'; }, { name: 'gameId'; docs: ['the game_id that this belongs to']; type: 'publicKey'; }, { name: 'coordinates'; docs: ['coordinates as [x, y]']; type: { array: ['i64', 2]; }; }, { name: 'discoverer'; docs: ['The discoverer of this sector']; type: 'publicKey'; }, { name: 'name'; docs: ['The name of this sector']; type: { array: ['u8', 64]; }; }, { name: 'numStars'; docs: ['the number of stars in this system']; type: 'u16'; }, { name: 'numPlanets'; docs: ['the number of planets in this system']; type: 'u16'; }, { name: 'numMoons'; docs: ['the number of moons in this system']; type: 'u16'; }, { name: 'numAsteroidBelts'; docs: ['the number of num_asteroid belts in this system']; type: 'u16'; }, { name: 'lastScanTime'; docs: ['The last time the `Sector` was scanned']; type: 'i64'; }, { name: 'lastScanChance'; docs: [ 'The probability of finding SDUs in the `Sector` from the last time it was scanned' ]; type: 'u32'; }, { name: 'bump'; docs: ['PDA bump']; type: 'u8'; }, { name: 'numConnections'; docs: ['the number of connections in this system']; type: 'u16'; } ]; }; }, { name: 'ship'; docs: ['This account represents a Ship']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account.']; type: 'u8'; }, { name: 'gameId'; docs: ['the game_id account this Ship is registered with']; type: 'publicKey'; }, { name: 'mint'; docs: ['the mint representing the Ship']; type: 'publicKey'; }, { name: 'name'; docs: ['The name of this `Ship`']; type: { array: ['u8', 64]; }; }, { name: 'sizeClass'; docs: ["the ship's size class"]; type: 'u8'; }, { name: 'stats'; docs: ["The ship's stats"]; type: { defined: 'ShipStats'; }; }, { name: 'updateId'; docs: ['The `update_id` for the `Ship`']; type: 'u64'; }, { name: 'maxUpdateId'; docs: ['The max `Game` `update_id` that the `Ship` is valid for']; type: 'u64'; }, { name: 'next'; docs: [ 'the next `Ship` account to use when this `Ship` is updated' ]; type: { defined: 'OptionalNonSystemPubkey'; }; } ]; }; }, { name: 'star'; docs: ['`Star` account']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account.']; type: 'u8'; }, { name: 'name'; docs: ['The name of this `Star`']; type: { array: ['u8', 64]; }; }, { name: 'gameId'; docs: ['the game_id that this belongs to']; type: 'publicKey'; }, { name: 'sector'; docs: ['the sector that this belongs to']; type: { array: ['i64', 2]; }; }, { name: 'size'; docs: ['size']; type: 'u64'; }, { name: 'subCoordinates'; docs: ['sub_coordinates as [x, y]']; type: { array: ['i64', 2]; }; }, { name: 'starType'; docs: ['the star type']; type: 'u8'; } ]; }; }, { name: 'starbase'; docs: ['Starbase']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this `Starbase` account.']; type: 'u8'; }, { name: 'gameId'; docs: ['the game_id that this `Starbase` belongs to']; type: 'publicKey'; }, { name: 'sector'; docs: ['the sector that this `Starbase` belongs to']; type: { array: ['i64', 2]; }; }, { name: 'craftingFacility'; docs: [ 'the [`CraftingFacility`] to use for crafting at this `Starbase`' ]; type: 'publicKey'; }, { name: 'upgradeFacility'; docs: [ 'the [`CraftingFacility`] to use for upgrade jobs at this `Starbase`' ]; type: 'publicKey'; }, { name: 'name'; docs: ['The name of this `Starbase`']; type: { array: ['u8', 64]; }; }, { name: 'subCoordinates'; docs: ['coordinates as [x, y]']; type: { array: ['i64', 2]; }; }, { name: 'faction'; docs: ['The faction of the `Starbase`.']; type: 'u8'; }, { name: 'bump'; docs: ['bump for PDA']; type: 'u8'; }, { name: 'seqId'; docs: ['The sequence id for the `Starbase`']; type: 'u16'; }, { name: 'state'; docs: ['The state of the `Starbase`. Is a [`StarbaseState`].']; type: 'u8'; }, { name: 'level'; docs: ['The level of the `Starbase`.']; type: 'u8'; }, { name: 'hp'; docs: ['The `Starbase` health points.']; type: 'u64'; }, { name: 'sp'; docs: ['The `Starbase` shield points.']; type: 'u64'; }, { name: 'sectorRingAvailable'; docs: [ 'The planet position (`sector::state::Ring`) available for this `Starbase`' ]; type: 'u8'; }, { name: 'upgradeState'; docs: ['The `Starbase` upgrade state']; type: 'u8'; }, { name: 'upgradeIngredientsChecksum'; docs: [ 'used to check if expected upgrade ingredients have been supplied' ]; type: { array: ['u8', 16]; }; }, { name: 'numUpgradeIngredients'; docs: ['number of ingredients needed for starbase upgrade']; type: 'u8'; }, { name: 'upkeepAmmoBalance'; docs: ['The balance of ammo for upkeep']; type: 'u64'; }, { name: 'upkeepAmmoLastUpdate'; docs: ['The last time ammo for upkeep was updated (Local time)']; type: 'i64'; }, { name: 'upkeepAmmoGlobalLastUpdate'; docs: ['The last time ammo for upkeep was updated (Global time)']; type: 'i64'; }, { name: 'upkeepFoodBalance'; docs: ['The balance of food for upkeep']; type: 'u64'; }, { name: 'upkeepFoodLastUpdate'; docs: ['The last time food for upkeep was updated (Local time)']; type: 'i64'; }, { name: 'upkeepFoodGlobalLastUpdate'; docs: ['The last time food for upkeep was updated (Global time)']; type: 'i64'; }, { name: 'upkeepToolkitBalance'; docs: ['The balance of toolkits for upkeep']; type: 'u64'; }, { name: 'upkeepToolkitLastUpdate'; docs: [ 'The last time toolkits for upkeep was updated (Local time)' ]; type: 'i64'; }, { name: 'upkeepToolkitGlobalLastUpdate'; docs: [ 'The last time toolkits for upkeep was updated (Global time)' ]; type: 'i64'; }, { name: 'builtDestroyedTimestamp'; docs: ['The last time the starbase was built or destroyed']; type: 'i64'; }, { name: 'shieldBreakDelayExpiresAt'; docs: ['The time at which SP can resume regenerating']; type: 'i64'; } ]; }; }, { name: 'starbasePlayer'; docs: ['The `SAGE` player info within a `Starbase`']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account']; type: 'u8'; }, { name: 'playerProfile'; docs: ['The `Profile` key']; type: 'publicKey'; }, { name: 'gameId'; docs: ['The id of the `Game`']; type: 'publicKey'; }, { name: 'starbase'; docs: ['The `Starbase` key']; type: 'publicKey'; }, { name: 'sagePlayerProfile'; docs: ['The `SagePlayerProfile` key']; type: 'publicKey'; }, { name: 'bump'; docs: ['Bump of Account PDA']; type: 'u8'; }, { name: 'shipEscrowCount'; docs: ['List length of `RemainingData`']; type: 'u32'; }, { name: 'oldTotalCrew'; docs: [ "The old total crew members from the player's fleets at the `Starbase`", 'This is used BEFORE crew program features are turned ON' ]; type: 'u32'; }, { name: 'newTotalCrew'; docs: [ "The new total crew members from the player's fleets at the `Starbase`", 'This is used AFTER crew program features are turned ON' ]; type: 'u32'; }, { name: 'busyCrew'; docs: [ 'The number of crew members that is engaged/busy and not available' ]; type: 'u64'; }, { name: 'updateId'; docs: ['The `Game` update id']; type: 'u64'; }, { name: 'updatedShipEscrowCount'; docs: [ 'Number of updated items in `RemainingData` list', 'This will be `ship_escrow_count` when all ships in escrow are up-to-date' ]; type: 'u32'; } ]; }; }, { name: 'surveyDataUnitTracker'; docs: ['Survey Data Unit (SDU) Tracker']; type: { kind: 'struct'; fields: [ { name: 'version'; docs: ['The data version of this account.']; type: 'u8'; }, { name: 'gameId'; docs: ['The game_id that this belongs to']; type: 'publicKey'; }, { name: 'sduMint'; docs: ['The Survey Data Unit Mint']; type: 'publicKey'; }, { name: 'resourceMint'; docs: ['The mint of the resource spent when scanning for SDUs']; type: 'publicKey'; }, { name: 'signer'; docs: ['The signer for this account']; type: 'publicKey'; }, { name: 'signerBump'; docs: ['The signer for this account']; type: 'u8'; }, { name: 'coordinatesRange'; docs: [ 'The valid coordinates range', 'e.g. a value of [-50, 50] means that coordinates from [-50, -50] to [50, 50] are valid for SDU scanning' ]; type: { array: ['i64', 2]; }; }, { name: 'cssCoordinates'; docs: [ 'The locations of the central space stations (CSS) of the three factions' ]; type: { array: [ { array: ['i64', 2]; }, 3 ]; }; }, { name: 'originCoordinates'; docs: [ 'The co-ordinates of the "origin"; used in calculating SDU probability' ]; type: { array: ['i64', 2]; }; }, { name: 'cssMaxDistance'; docs: [ 'The max distance from the nearest CSS; used in calculating SDU probability' ]; type: 'u32'; }, { name: 'originMaxDistance'; docs: [ 'The max distance from the `origin_coordinates`; used in calculating SDU probability' ]; type: 'u32'; }, { name: 'distanceWeighting'; docs: [ 'The distance weighting; used in calculating SDU probability' ]; type: 'u32'; }, { name: 'tMax'; docs: [ 'The maximum time before SDU probability at a location changes' ]; type: 'i64'; }, { name: 'xMul'; docs: ['Multiplier in the X dimension; used in noise function']; type: 'u32'; }, { name: 'yMul'; docs: ['Multiplier in the Y dimension; used in noise function']; type: 'u32'; }, { name: 'zMul'; docs: ['Multiplier in the Z dimension; used in noise function']; type: 'u32'; }, { name: 'sduMaxPerSector'; docs: [ 'The maximum number of SDUs that can be found per scan per sector' ]; type: 'u32'; }, { name: 'scanChanceRegenPeriod'; docs: [ 'The amount of time in seconds that it takes for a sector scan chance to fully regenerate' ]; type: 'i16'; } ]; }; } ]; types: [ { name: 'AddCrewInput'; docs: ['Struct for data input for `AddCrew`']; type: { kind: 'struct'; fields: [ { name: 'items'; docs: ['inputs required to transfer crew cNFTs']; type: { vec: { defined: 'CrewTransferInput'; }; }; } ]; }; }, { name: 'AddShipEscrowInput'; docs: ['Struct for data input for `AddShipEscrow`']; type: { kind: 'struct'; fields: [ { name: 'shipAmount'; docs: ['Amount of `Ship` tokens to transfer to escrow']; type: 'u64'; }, { name: 'index'; docs: [ 'Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`', 'Some index `WrappedShipEscrow`, or None for new `WrappedShipEscrow`' ]; type: { option: 'u32'; }; } ]; }; }, { name: 'AddShipToFleetInput'; docs: ['Struct for data input for that has `key_index`']; type: { kind: 'struct'; fields: [ { name: 'shipAmount'; docs: ['Number of ships to add to the fleet']; type: 'u8'; }, { name: 'shipEscrowIndex'; docs: [ 'Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`' ]; type: 'u32'; }, { name: 'fleetShipInfoIndex'; docs: [ 'Index of `FleetShipsInfo` in remaining data of `FleetShips`' ]; type: { option: 'u32'; }; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'AdminCreateFleetInput'; docs: ['Struct for data input for admin fleet creation']; type: { kind: 'struct'; fields: [ { name: 'shipAmount'; docs: ['Number of ships (used for calculating fleet stats)']; type: 'u8'; }, { name: 'fleetLabel'; docs: ['the fleet label']; type: { array: ['u8', 32]; }; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; }, { name: 'sector'; docs: ['the sector coordinates where the fleet will be spawned']; type: { array: ['i64', 2]; }; }, { name: 'faction'; docs: ['the faction for the fleet']; type: 'u8'; } ]; }; }, { name: 'AdminDepositCargoToFleetInput'; docs: ['Struct for data input to `AdminDepositCargoToFleet`']; type: { kind: 'struct'; fields: [ { name: 'amount'; docs: ['cargo amount']; type: 'u64'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'AdminDepositCargoToStarbaseInput'; docs: ['Struct for data input to `AdminDepositCargoToStarbase`']; type: { kind: 'struct'; fields: [ { name: 'amount'; docs: ['cargo amount']; type: 'u64'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'AdminInitFleetShipsInput'; docs: ['Struct for data input for admin fleet ships initialization']; type: { kind: 'struct'; fields: [ { name: 'shipAmount'; docs: ['Number of ships to add to the fleet']; type: 'u8'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'AdminRemoveFleetInput'; docs: ['Struct for data input for admin fleet removal']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'AdminTransferFleetCargoAuthorityInput'; docs: [ 'Struct for data input for transferring fleet cargo pod authority' ]; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'AttackFleetInput'; docs: ['Struct for data input to `AttackFleet`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'AttackStarbaseInput'; docs: ['Struct for data input to `AttackStarbase`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'Cargo'; docs: ['Variables for the Cargo program']; type: { kind: 'struct'; fields: [ { name: 'statsDefinition'; docs: ['The cargo stats definition account']; type: 'publicKey'; } ]; }; }, { name: 'CargoStats'; docs: ["A ship's cargo stats"]; type: { kind: 'struct'; fields: [ { name: 'cargoCapacity'; docs: ["the capacity of the ship's cargo hold"]; type: 'u32'; }, { name: 'fuelCapacity'; docs: ["the capacity of the ship's fuel tank"]; type: 'u32'; }, { name: 'ammoCapacity'; docs: ["the capacity of the ship's ammo bank"]; type: 'u32'; }, { name: 'ammoConsumptionRate'; docs: [ 'the amount of ammo consumed per second by the ship when doing non-combat activities e.g. mining' ]; type: 'u32'; }, { name: 'foodConsumptionRate'; docs: [ 'the amount of food consumed per second by the ship when doing non-combat activities e.g. mining' ]; type: 'u32'; }, { name: 'miningRate'; docs: [ 'the amount of resources that can be mined by a ship per second' ]; type: 'u32'; }, { name: 'upgradeRate'; docs: [ 'the amount of upgrade material that is consumed by a ship per second while upgrading a Starbase' ]; type: 'u32'; }, { name: 'cargoTransferRate'; docs: [ 'the amount of cargo that a ship can transfer per second to another ship outside of dock' ]; type: 'u32'; }, { name: 'tractorBeamGatherRate'; docs: [ 'the amount of cargo that the ship can gather per second using its tractor beam' ]; type: 'u32'; } ]; }; }, { name: 'CargoStatsUnpacked'; docs: ['Unpacked version of [`CargoStats`]']; type: { kind: 'struct'; fields: [ { name: 'cargoCapacity'; docs: ["the capacity of the ship's cargo hold"]; type: 'u32'; }, { name: 'fuelCapacity'; docs: ["the capacity of the ship's fuel tank"]; type: 'u32'; }, { name: 'ammoCapacity'; docs: ["the capacity of the ship's ammo bank"]; type: 'u32'; }, { name: 'ammoConsumptionRate'; docs: [ 'the amount of ammo consumed per second by the ship when doing non-combat activities e.g. mining' ]; type: 'u32'; }, { name: 'foodConsumptionRate'; docs: [ 'the amount of food consumed per second by the ship when doing non-combat activities e.g. mining' ]; type: 'u32'; }, { name: 'miningRate'; docs: [ 'the amount of resources that can be mined by a ship per second' ]; type: 'u32'; }, { name: 'upgradeRate'; docs: [ 'the amount of upgrade material that is consumed by a ship per second while upgrading a Starbase' ]; type: 'u32'; }, { name: 'cargoTransferRate'; docs: [ 'the amount of cargo that a ship can transfer per second to another ship outside of dock' ]; type: 'u32'; }, { name: 'tractorBeamGatherRate'; docs: [ 'the amount of cargo that the ship can gather per second using its tractor beam' ]; type: 'u32'; } ]; }; }, { name: 'CargoToGameInput'; docs: ['Struct for data input to `DepositCargoToGame`']; type: { kind: 'struct'; fields: [ { name: 'amount'; docs: ['cargo amount']; type: 'u64'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'CloseDisbandedFleetInput'; docs: ['Struct for data input for that has `key_index`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'CloseEmptyLootInput'; docs: ['Input for `CloseEmptyLoot`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['The index of the key in the permissions profile']; type: 'u16'; } ]; }; }, { name: 'CombatStats'; docs: ["A ship's combat stats"]; type: { kind: 'struct'; fields: [ { name: 'ap'; docs: ['Action points']; type: 'u32'; }, { name: 'hp'; docs: ['Health points']; type: 'u32'; }, { name: 'sp'; docs: ['Shield points']; type: 'u32'; }, { name: 'ammoConsumptionRate'; docs: [ 'the amount of ammo used for each unit of AP used in an attack' ]; type: 'u32'; }, { name: 'apRegenRate'; docs: ['the amount of AP regenerated per second']; type: 'u32'; }, { name: 'shieldRechargeRate'; docs: ['the amount of SP regenerated per second']; type: 'u32'; }, { name: 'repairRate'; docs: ['the amount of HP healed per second when repairing']; type: 'u32'; }, { name: 'repairAbility'; docs: ['the repair ability of the ship']; type: 'u32'; }, { name: 'repairEfficiency'; docs: ['the repair efficiency of the ship']; type: 'u32'; }, { name: 'lootRate'; docs: ['the amount of loot gathered per second']; type: 'u32'; }, { name: 'shieldBreakDelay'; docs: [ "the time it takes the ship's SP to start regenerating after getting to 0" ]; type: 'u16'; }, { name: 'warpSpoolDuration'; docs: [ 'the amount of time taken before the ship can start warping' ]; type: 'u16'; } ]; }; }, { name: 'CombatStatsUnpacked'; docs: ['Unpacked version of [`CombatStats`]']; type: { kind: 'struct'; fields: [ { name: 'ap'; docs: ['Action points']; type: 'u32'; }, { name: 'hp'; docs: ['Health points']; type: 'u32'; }, { name: 'sp'; docs: ['Shield points']; type: 'u32'; }, { name: 'ammoConsumptionRate'; docs: [ 'the amount of ammo used for each unit of AP used in an attack' ]; type: 'u32'; }, { name: 'apRegenRate'; docs: ['the amount of AP regenerated per second']; type: 'u32'; }, { name: 'shieldRechargeRate'; docs: ['the amount of SP regenerated per second']; type: 'u32'; }, { name: 'repairRate'; docs: ['the amount of HP healed per second when repairing']; type: 'u32'; }, { name: 'repairAbility'; docs: ['the repair ability of the ship']; type: 'u32'; }, { name: 'repairEfficiency'; docs: ['the repair efficiency of the ship']; type: 'u32'; }, { name: 'lootRate'; docs: ['the amount of loot gathered per second']; type: 'u32'; }, { name: 'shieldBreakDelay'; docs: [ "the time it takes the ship's SP to start regenerating after getting to 0" ]; type: 'u16'; }, { name: 'warpSpoolDuration'; docs: [ 'the amount of time taken before the ship can start warping' ]; type: 'u16'; } ]; }; }, { name: 'Crafting'; docs: ['Variables for the Crafting program']; type: { kind: 'struct'; fields: [ { name: 'domain'; docs: ['The crafting domain account']; type: 'publicKey'; } ]; }; }, { name: 'CraftingInstanceType'; docs: ['Represents the type of `CraftingInstance`']; type: { kind: 'enum'; variants: [ { name: 'StarbaseCrafting'; }, { name: 'StarbaseUpgradeMaterial'; } ]; }; }, { name: 'CreateFleetInput'; docs: ['Struct for data input for that has `key_index`']; type: { kind: 'struct'; fields: [ { name: 'shipAmount'; docs: ['Number of ships to add to the fleet']; type: 'u8'; }, { name: 'fleetLabel'; docs: ['the fleet label']; type: { array: ['u8', 32]; }; }, { name: 'shipEscrowIndex'; docs: [ 'Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`' ]; type: 'u32'; }, { name: 'cargoHoldSeeds'; docs: ['cargo hold seeds']; type: { array: ['u8', 32]; }; }, { name: 'fuelTankSeeds'; docs: ['fuel tank seeds']; type: { array: ['u8', 32]; }; }, { name: 'ammoBankSeeds'; docs: ['ammo bank seeds']; type: { array: ['u8', 32]; }; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'CrewTransferInput'; docs: ['Struct for data input for crew cNFT transfer']; type: { kind: 'struct'; fields: [ { name: 'dataHash'; docs: ['The crew cNFT data hash']; type: { array: ['u8', 32]; }; }, { name: 'proofCount'; docs: ['The number of proofs for the crew cNFT']; type: 'u8'; }, { name: 'leafIndex'; docs: [ 'The crew cNFT index (index of the leaf node in the Merkle tree)' ]; type: 'u32'; } ]; }; }, { name: 'DepositCargoToFleetInput'; docs: ['Struct for data input to `DepositCargoToFleet`']; type: { kind: 'struct'; fields: [ { name: 'amount'; docs: ['cargo amount']; type: 'u64'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'DepositStarbaseUpkeepResourceInput'; docs: ['Submit starbase upkeep resource inputs']; type: { kind: 'struct'; fields: [ { name: 'pointsProgramPermissionsKeyIndex'; docs: [ 'the index of the points program permissions in the player profile' ]; type: 'u16'; }, { name: 'sagePermissionsKeyIndex'; docs: [ 'the index of the key in sage permissions in the player profile' ]; type: 'u16'; }, { name: 'resourceType'; docs: ['the resource type']; type: 'u8'; }, { name: 'resourceIndex'; docs: [ 'the index of the resource represented by `token_mint` in the `resource_recipe` ingredients list' ]; type: 'u16'; }, { name: 'amount'; docs: ['the amount']; type: 'u64'; }, { name: 'epochIndex'; docs: ['the index of the epoch in the `RedemptionConfig` account']; type: 'u16'; } ]; }; }, { name: 'DeregisterSurveyDataUnitTrackerInput'; docs: ['Struct for data input that has `key_index`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'DevAddCrewInput'; docs: ['Struct for data input to Dev Add Crew']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['The index of the key in the permissions profile']; type: 'u16'; }, { name: 'crewCount'; docs: ['The number of crew to add or remove']; type: 'i32'; } ]; }; }, { name: 'DevRemoveCrewInput'; docs: ['Struct for data input to Dev Remove Crew']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['The index of the key in the permissions profile']; type: 'u16'; }, { name: 'crewCount'; docs: ['The number of crew to remove']; type: 'u32'; } ]; }; }, { name: 'DisbandFleetInput'; docs: ['Struct for data input for that has `key_index`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'DisbandedFleetToEscrowInput'; docs: ['Struct for data input for that has `key_index`']; type: { kind: 'struct'; fields: [ { name: 'shipAmount'; docs: ['Number of ships to add to the fleet']; type: 'u16'; }, { name: 'shipEscrowIndex'; docs: [ 'Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`' ]; type: { option: 'u32'; }; }, { name: 'fleetShipInfoIndex'; docs: [ 'Index of `FleetShipsInfo` in remaining data of `FleetShips`' ]; type: 'u32'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'DiscoverSectorInput'; docs: ['Struct for data input for `DiscoverSector`']; type: { kind: 'struct'; fields: [ { name: 'coordinates'; docs: ['The coordinates of the new `Sector`']; type: { array: ['i64', 2]; }; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'FactionsStarbaseLevelInfo'; docs: ['`Starbase` levels discriminated by faction']; type: { kind: 'struct'; fields: [ { name: 'mud'; docs: ['Mud Starbase Levels Info']; type: { array: [ { defined: 'StarbaseLevelInfo'; }, 7 ]; }; }, { name: 'oni'; docs: ['Oni Starbase Levels Info']; type: { array: [ { defined: 'StarbaseLevelInfo'; }, 7 ]; }; }, { name: 'ustur'; docs: ['Ustur Starbase Levels Info']; type: { array: [ { defined: 'StarbaseLevelInfo'; }, 7 ]; }; } ]; }; }, { name: 'FleetCrewInput'; docs: ['Struct for data input to `FleetCrew`']; type: { kind: 'struct'; fields: [ { name: 'count'; docs: ['passenger count']; type: 'u16'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'FleetInfo'; docs: ['Variables for the Fleet program']; type: { kind: 'struct'; fields: [ { name: 'starbaseLevels'; docs: ['`Starbase` levels discriminated by faction']; type: { defined: 'FactionsStarbaseLevelInfo'; }; }, { name: 'upkeep'; docs: ['`Starbase` upkeep discriminated by level']; type: { defined: 'StarbaseUpkeepLevels'; }; }, { name: 'maxFleetSize'; docs: ['Maximum `Fleet` size allowed']; type: 'u32'; } ]; }; }, { name: 'FleetInput'; docs: ['Struct for data input to Update fleet settings']; type: { kind: 'struct'; fields: [ { name: 'starbaseLevelInfoArray'; docs: ['`Starbase` Level Info array']; type: { option: { vec: { defined: 'StarbaseLevelInfoArrayInput'; }; }; }; }, { name: 'upkeepInfoArray'; docs: ['`Starbase` Level Info array']; type: { option: { vec: { defined: 'StarbaseUpkeepInfoArrayInput'; }; }; }; }, { name: 'maxFleetSize'; docs: ['Maximum `Fleet` size allowed']; type: { option: 'u32'; }; } ]; }; }, { name: 'FleetShipsInfo'; docs: ['Struct that represents info on a single ship type in a fleet']; type: { kind: 'struct'; fields: [ { name: 'ship'; docs: ['The `Ship` account address']; type: 'publicKey'; }, { name: 'amount'; docs: ['The `Ship` token amount in escrow']; type: 'u64'; }, { name: 'updateId'; docs: ['The update id for the `Ship`']; type: 'u64'; } ]; }; }, { name: 'ForcedDisbandFleetInput'; docs: ['Struct for data input for that has `key_index`']; type: { kind: 'struct'; fields: [ { name: 'fleetShipInfoIndex'; docs: [ 'Index of `FleetShipsInfo` in remaining data of `FleetShips`' ]; type: 'u32'; } ]; }; }, { name: 'Idle'; docs: [ 'The data for the [`FleetStateData::Idle`](crate::state_machine::FleetStateData::Idle) state' ]; type: { kind: 'struct'; fields: [ { name: 'sector'; docs: ['The star system the fleet is in']; type: { array: ['i64', 2]; }; } ]; }; }, { name: 'IdleToRespawnInput'; docs: ['Struct for data input to initialize an `IdleToRespawn` Ix']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'IngredientIndexInput'; docs: ['Struct for data input that has `key_index`']; type: { kind: 'struct'; fields: [ { name: 'ingredientIndex'; docs: ['the index of the recipe output']; type: 'u16'; } ]; }; }, { name: 'InitGameStateInput'; docs: ['Struct for data input to `InitGameState`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'KeyIndexInput'; docs: ['Struct for data input that has `key_index`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'LocationType'; docs: [ 'Represents different types of locations that a `Resource` might be found' ]; type: { kind: 'enum'; variants: [ { name: 'Planet'; } ]; }; }, { name: 'LootInfo'; docs: ['Represents loot at a location']; type: { kind: 'struct'; fields: [ { name: 'exclusivityUnlockTime'; docs: ['the time the exclusivity lock expires']; type: 'i64'; }, { name: 'destroyer'; docs: [ 'exclusive access to loot until exclusivity_unlock_time passes', 'This is a Profile or Pubkey::default' ]; type: 'publicKey'; }, { name: 'loot'; docs: ['the cargo pod that contains the loot']; type: 'publicKey'; } ]; }; }, { name: 'LootInfoUnpacked'; docs: ['Unpacked version of [`LootInfo`]']; type: { kind: 'struct'; fields: [ { name: 'exclusivityUnlockTime'; docs: ['the time the exclusivity lock expires']; type: 'i64'; }, { name: 'destroyer'; docs: [ 'exclusive access to loot until exclusivity_unlock_time passes', 'This is a Profile or Pubkey::default' ]; type: 'publicKey'; }, { name: 'loot'; docs: ['the cargo pod that contains the loot']; type: 'publicKey'; } ]; }; }, { name: 'ManageGameInput'; docs: ['Struct for data input to managing Game accounts']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'MineAsteroid'; docs: [ 'The data for the [`FleetStateData::MineAsteroid`](crate::state_machine::FleetStateData::MineAsteroid) state' ]; type: { kind: 'struct'; fields: [ { name: 'asteroid'; docs: [ 'The `Asteroid` the `Fleet` is mining (Must be an asteroid belt)' ]; type: 'publicKey'; }, { name: 'resource'; docs: ['The `Resource` being mined on the `Asteroid`']; type: 'publicKey'; }, { name: 'start'; docs: ['The timestamp at which mining activity started']; type: 'i64'; }, { name: 'end'; docs: ['The timestamp at which mining activity stops']; type: 'i64'; }, { name: 'amountMined'; docs: ['The cumulative amount mined']; type: 'u64'; }, { name: 'lastUpdate'; docs: ['The last time the `Fleet` was updated']; type: 'i64'; } ]; }; }, { name: 'MineAsteroidToRespawnInput'; docs: ['Struct for data input for `MineAsteroidToRespawnInput`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'Mints'; docs: ['Token mints']; type: { kind: 'struct'; fields: [ { name: 'atlas'; docs: ['ATLAS token mint']; type: 'publicKey'; }, { name: 'polis'; docs: ['POLIS token mint']; type: 'publicKey'; }, { name: 'ammo'; docs: ['ammunition']; type: 'publicKey'; }, { name: 'food'; docs: ['food']; type: 'publicKey'; }, { name: 'fuel'; docs: ['fuel']; type: 'publicKey'; }, { name: 'repairKit'; docs: ['repair kit']; type: 'publicKey'; } ]; }; }, { name: 'MiscStats'; docs: ["A ship's miscellaneous stats"]; type: { kind: 'struct'; fields: [ { name: 'requiredCrew'; docs: ['Number of crew required to operate the ship']; type: 'u16'; }, { name: 'passengerCapacity'; docs: ['Number of crew that the ship can carry as passengers']; type: 'u16'; }, { name: 'crewCount'; docs: [ 'Total number of crew on the ship (required crew + passengers on board)', 'Will be zero until `CREW_FEATURE` is enabled' ]; type: 'u16'; }, { name: 'rentedCrew'; docs: [ 'Total number of crew that were rented out together with the fleet' ]; type: 'u16'; }, { name: 'respawnTime'; docs: ['the time it takes the ship to respawn']; type: 'u16'; }, { name: 'scanCoolDown'; docs: [ 'the time it takes the ship to be able to scan again after scanning' ]; type: 'u16'; }, { name: 'sduPerScan'; docs: ['The number of SDUs that can be found while scanning']; type: 'u32'; }, { name: 'scanCost'; docs: ['the amount of resource required to do a scan']; type: 'u32'; }, { name: 'placeholder'; docs: [ 'Starbase repair cost in ATLAS × 100 (e.g. 555 = 5.55 ATLAS for a full repair).', 'Used by `repair_docked_fleet` to calculate the proportional ATLAS fee.' ]; type: 'u32'; }, { name: 'placeholder2'; docs: ['TODO: this is a placeholder stat for use in the future']; type: 'u32'; }, { name: 'placeholder3'; docs: ['TODO: this is a placeholder stat for use in the future']; type: 'u32'; } ]; }; }, { name: 'MiscStatsUnpacked'; docs: ['Unpacked version of [`MiscStats`]']; type: { kind: 'struct'; fields: [ { name: 'requiredCrew'; docs: ['Number of crew required to operate the ship']; type: 'u16'; }, { name: 'passengerCapacity'; docs: ['Number of crew that the ship can carry as passengers']; type: 'u16'; }, { name: 'crewCount'; docs: [ 'Total number of crew on the ship (required crew + passengers on board)', 'Will be zero until `CREW_FEATURE` is enabled' ]; type: 'u16'; }, { name: 'rentedCrew'; docs: [ 'Total number of crew that were rented out together with the fleet' ]; type: 'u16'; }, { name: 'respawnTime'; docs: ['the time it takes the ship to respawn']; type: 'u16'; }, { name: 'scanCoolDown'; docs: [ 'the time it takes the ship to be able to scan again after scanning' ]; type: 'u16'; }, { name: 'sduPerScan'; docs: ['The number of SDUs that can be found while scanning']; type: 'u32'; }, { name: 'scanCost'; docs: ['the amount of resource required to do a scan']; type: 'u32'; }, { name: 'placeholder'; docs: [ 'Starbase repair cost in ATLAS × 100 (e.g. 555 = 5.55 ATLAS for a full repair).', 'Used by `repair_docked_fleet` to calculate the proportional ATLAS fee.' ]; type: 'u32'; }, { name: 'placeholder2'; docs: ['TODO: this is a placeholder stat for use in the future']; type: 'u32'; }, { name: 'placeholder3'; docs: ['TODO: this is a placeholder stat for use in the future']; type: 'u32'; } ]; }; }, { name: 'MiscVariables'; docs: ['Miscellaneous game state variables']; type: { kind: 'struct'; fields: [ { name: 'warpLaneFuelCostReduction'; docs: [ 'Percentage by which the "warp lane" movement type reduces warp fuel cost' ]; type: 'i16'; }, { name: 'respawnFee'; docs: [ 'Respawn fee; You cannot enter into the respawning state without paying this fee', 'Since ATLAS has 8 decimal places, units are in the smallest value of ATLAS possible.' ]; type: 'u64'; }, { name: 'upkeepMiningEmissionsPenalty'; docs: [ 'Percentage by which to reduce the asteroid mining rate if a starbase ammo upkeep coffer is empty' ]; type: 'i16'; } ]; }; }, { name: 'MiscVariablesInput'; docs: ['Struct for data input to update miscellaneous settings']; type: { kind: 'struct'; fields: [ { name: 'warpLaneFuelCostReduction'; docs: [ 'Percentage by which the "warp lane" movement type reduces warp fuel cost' ]; type: { option: 'i16'; }; }, { name: 'upkeepMiningEmissionsPenalty'; docs: [ 'Percentage by which to reduce the asteroid mining rate if a starbase ammo upkeep coffer is empty' ]; type: { option: 'i16'; }; }, { name: 'respawnFee'; docs: ['Respawn fee, charged in ATLAS']; type: { option: 'u64'; }; } ]; }; }, { name: 'MoveSubwarp'; docs: ['The data for the [`FleetStateData::MoveSubwarp`] state']; type: { kind: 'struct'; fields: [ { name: 'fromSector'; docs: ['The sector the fleet is coming from']; type: { array: ['i64', 2]; }; }, { name: 'toSector'; docs: ['The sector the fleet is going to']; type: { array: ['i64', 2]; }; }, { name: 'currentSector'; docs: ['The sector the fleet is currently in']; type: { array: ['i64', 2]; }; }, { name: 'departureTime'; docs: ['When the fleet started subwarp']; type: 'i64'; }, { name: 'arrivalTime'; docs: ['When the fleet will finish subwarp']; type: 'i64'; }, { name: 'fuelExpenditure'; docs: ['The fuel cost of the subwarp']; type: 'u64'; }, { name: 'lastUpdate'; docs: ['The last update time']; type: 'i64'; } ]; }; }, { name: 'MoveWarp'; docs: ['The data for the [`FleetStateData::MoveWarp`] state']; type: { kind: 'struct'; fields: [ { name: 'fromSector'; docs: ['The star system the fleet is coming from']; type: { array: ['i64', 2]; }; }, { name: 'toSector'; docs: ['The star system the fleet is going to']; type: { array: ['i64', 2]; }; }, { name: 'warpStart'; docs: ['When the fleet started warping']; type: 'i64'; }, { name: 'warpFinish'; docs: ['When the warp will end']; type: 'i64'; } ]; }; }, { name: 'MovementStats'; docs: ["A ship's movement stats"]; type: { kind: 'struct'; fields: [ { name: 'subwarpSpeed'; docs: [ 'the amount of distance that the ship can cover in one second while sub-warping' ]; type: 'u32'; }, { name: 'warpSpeed'; docs: [ 'the amount of distance that the ship can cover in one second while warping' ]; type: 'u32'; }, { name: 'maxWarpDistance'; docs: ['the max distance that the ship can warp']; type: 'u16'; }, { name: 'warpCoolDown'; docs: [ 'the time it takes the ship to be able to warp again after a warp' ]; type: 'u16'; }, { name: 'subwarpFuelConsumptionRate'; docs: [ 'the amount of fuel consumed by the ship when sub-warp moving' ]; type: 'u32'; }, { name: 'warpFuelConsumptionRate'; docs: ['the amount of fuel consumed by the ship when warp moving']; type: 'u32'; }, { name: 'planetExitFuelAmount'; docs: ['the amount of fuel required to exit a planet']; type: 'u32'; } ]; }; }, { name: 'MovementStatsUnpacked'; docs: ['Unpacked version of [`MovementStats`]']; type: { kind: 'struct'; fields: [ { name: 'subwarpSpeed'; docs: [ 'the amount of distance that the ship can cover in one second while sub-warping' ]; type: 'u32'; }, { name: 'warpSpeed'; docs: [ 'the amount of distance that the ship can cover in one second while warping' ]; type: 'u32'; }, { name: 'maxWarpDistance'; docs: ['the max distance that the ship can warp']; type: 'u16'; }, { name: 'warpCoolDown'; docs: [ 'the time it takes the ship to be able to warp again after a warp' ]; type: 'u16'; }, { name: 'subwarpFuelConsumptionRate'; docs: [ 'the amount of fuel consumed by the ship when sub-warp moving' ]; type: 'u32'; }, { name: 'warpFuelConsumptionRate'; docs: ['the amount of fuel consumed by the ship when warp moving']; type: 'u32'; }, { name: 'planetExitFuelAmount'; docs: ['the amount of fuel required to exit a planet']; type: 'u32'; } ]; }; }, { name: 'OptionalNonSystemPubkey'; docs: [ 'A pubkey sized option that is none if set to the system program.' ]; type: { kind: 'struct'; fields: [ { name: 'key'; type: 'publicKey'; } ]; }; }, { name: 'PlanetType'; docs: ['Represents different types a `Planet` could be']; type: { kind: 'enum'; variants: [ { name: 'Terrestrial'; }, { name: 'Volcanic'; }, { name: 'Barren'; }, { name: 'AsteroidBelt'; }, { name: 'GasGiant'; }, { name: 'IceGiant'; }, { name: 'Dark'; } ]; }; }, { name: 'Points'; docs: ['Variables for the Points program']; type: { kind: 'struct'; fields: [ { name: 'lpCategory'; docs: [ 'Represents the points category & modifier to use for Loyalty Points (LP)' ]; type: { defined: 'SagePointsCategory'; }; }, { name: 'councilRankXpCategory'; docs: [ 'Represents the points category & modifier to use for Council Rank Experience Points (CRXP)' ]; type: { defined: 'SagePointsCategory'; }; }, { name: 'pilotXpCategory'; docs: [ 'Represents the points category & modifier to use for Pilot License Experience Points (PXP)' ]; type: { defined: 'SagePointsCategory'; }; }, { name: 'dataRunningXpCategory'; docs: [ 'Represents the points category & modifier to use for Data Running Experience Points (DRXP)' ]; type: { defined: 'SagePointsCategory'; }; }, { name: 'miningXpCategory'; docs: [ 'Represents the points category & modifier to use for Mining Experience Points (MXP)' ]; type: { defined: 'SagePointsCategory'; }; }, { name: 'craftingXpCategory'; docs: [ 'Represents the points category & modifier to use for Crafting Experience Points (CXP)' ]; type: { defined: 'SagePointsCategory'; }; }, { name: 'combatXpCategory'; docs: [ 'Represents the points category & modifier to use for Combat Experience Points (CXP)' ]; type: { defined: 'SagePointsCategory'; }; } ]; }; }, { name: 'ProgressionItem'; docs: ['Progression Item']; type: { kind: 'struct'; fields: [ { name: 'value'; docs: ['The progression points value']; type: 'u32'; } ]; }; }, { name: 'ProgressionItemInput'; docs: ['Progression Item for Data Input']; type: { kind: 'struct'; fields: [ { name: 'itemType'; docs: ['The type of progression item']; type: 'u8'; }, { name: 'item'; docs: ['The progression item']; type: { defined: 'ProgressionItem'; }; } ]; }; }, { name: 'ProgressionItemInputUnpacked'; docs: ['Unpacked version of [`ProgressionItemInput`]']; type: { kind: 'struct'; fields: [ { name: 'itemType'; docs: ['The type of progression item']; type: 'u8'; }, { name: 'item'; docs: ['The progression item']; type: { defined: 'ProgressionItem'; }; } ]; }; }, { name: 'ProgressionItemType'; docs: ['The different types of progression items']; type: { kind: 'enum'; variants: [ { name: 'Subwarp'; }, { name: 'Warp'; }, { name: 'WarpLane'; }, { name: 'AsteroidExit'; }, { name: 'ScanUnsuccessful'; }, { name: 'ScanSuccessful'; }, { name: 'Mining'; }, { name: 'Crafting'; }, { name: 'Upkeep'; }, { name: 'Upgrade'; } ]; }; }, { name: 'ProgressionItemUnpacked'; docs: ['Unpacked version of [`ProgressionItem`]']; type: { kind: 'struct'; fields: [ { name: 'value'; docs: ['The progression points value']; type: 'u32'; } ]; }; }, { name: 'RegisterCombatConfigInput'; docs: ['Data input for RegisterCombatConfig']; type: { kind: 'struct'; fields: [ { name: 'lootExclusivityTime'; docs: [ 'amount of time when the last-hitter of a fleet will have exclusive access to loot' ]; type: 'u16'; }, { name: 'starbaseUpgradeProgressContinuation'; docs: [ 'amount of time that is added to starbase level 0 upgrade process in case it is destroyed' ]; type: 'u32'; }, { name: 'crewRespawnTime'; docs: [ 'Time taken for crew to respawn when a starbase is destroyed' ]; type: 'u16'; }, { name: 'rawShipsRespawnTime'; docs: [ 'Time taken for individual ships to respawn when a starbase is destroyed' ]; type: 'u16'; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'RegisterMineItemInput'; docs: ['Struct for data input to Register a Resource']; type: { kind: 'struct'; fields: [ { name: 'name'; docs: ['The name of the `MineItem`']; type: { array: ['u8', 64]; }; }, { name: 'resourceHardness'; docs: ['How hard it is to mine this item']; type: 'u16'; }, { name: 'keyIndex'; docs: ['the index of the key in the fleet permissions profile']; type: 'u16'; } ]; }; }, { name: 'RegisterPlanetInput'; docs: ['Struct for data input to Register Planet']; type: { kind: 'struct'; fields: [ { name: 'name'; docs: ['`Planet` name']; type: { array: ['u8', 64]; }; }, { name: 'size'; docs: ['`Planet` size']; type: 'u64'; }, { name: 'maxHp'; docs: ['`Planet` max health']; type: 'u64'; }, { name: 'subCoordinates'; docs: ['`Planet` sub_coordinates']; type: { array: ['i64', 2]; }; }, { name: 'planetType'; docs: ['`Planet` type']; type: 'u8'; }, { name: 'position'; docs: ['`Planet` position']; type: 'u8'; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'RegisterProgressionConfigInput'; docs: ['Data input for RegisterProgressionConfig']; type: { kind: 'struct'; fields: [ { name: 'dailyLpLimit'; docs: ['the daily limit for Loyalty Points (LP)']; type: { option: 'u64'; }; }, { name: 'dailyCouncilRankXpLimit'; docs: ['the daily limit for Council Rank Experience Points (CRXP)']; type: { option: 'u64'; }; }, { name: 'dailyPilotXpLimit'; docs: ['the daily limit for Pilot License Experience Points (PXP)']; type: { option: 'u64'; }; }, { name: 'dailyDataRunningXpLimit'; docs: ['the daily limit for Data Running Experience Points (DRXP)']; type: { option: 'u64'; }; }, { name: 'dailyMiningXpLimit'; docs: ['the daily limit for Mining Experience Points (MXP)']; type: { option: 'u64'; }; }, { name: 'dailyCraftingXpLimit'; docs: ['the daily limit for Crafting Experience Points (CXP)']; type: { option: 'u64'; }; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'RegisterResourceInput'; docs: ['Struct for data input to Register a Resource']; type: { kind: 'struct'; fields: [ { name: 'locationType'; docs: ['`Resource` location type']; type: 'u8'; }, { name: 'systemRichness'; docs: ['`Resource` `system_richness`']; type: 'u16'; }, { name: 'keyIndex'; docs: ['the index of the key in the fleet permissions profile']; type: 'u16'; } ]; }; }, { name: 'RegisterSagePointsModifierInput'; docs: [ 'Struct for data input to register a points modifier for SAGE program' ]; type: { kind: 'struct'; fields: [ { name: 'pointsCategoryType'; docs: ['The points category type of the modifier']; type: 'u8'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'RegisterShipInput'; docs: ['Struct for data input to Register Ship']; type: { kind: 'struct'; fields: [ { name: 'name'; docs: ['The `Ship` name/label']; type: { array: ['u8', 64]; }; }, { name: 'sizeClass'; docs: ["the ship's size class"]; type: { defined: 'SizeClass'; }; }, { name: 'stats'; docs: ['The stats for the ship']; type: { defined: 'ShipStatsUnpacked'; }; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; }, { name: 'isActive'; docs: [ 'Whether the ship is initialized to active (`update_id == current_update_id`)' ]; type: 'bool'; } ]; }; }, { name: 'RegisterStarInput'; docs: ['Struct for data input to Register Star']; type: { kind: 'struct'; fields: [ { name: 'name'; docs: ['`Star` name']; type: { array: ['u8', 64]; }; }, { name: 'size'; docs: ['`Star` size']; type: 'u64'; }, { name: 'subCoordinates'; docs: ['`Star` sub_coordinates']; type: { array: ['i64', 2]; }; }, { name: 'starType'; docs: ['`Star` type']; type: 'u8'; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'RegisterStarbaseInput'; docs: ['Struct for data input to Register `Starbase`']; type: { kind: 'struct'; fields: [ { name: 'name'; docs: ['`Starbase` name']; type: { array: ['u8', 64]; }; }, { name: 'subCoordinates'; docs: ['`Starbase` coordinates']; type: { array: ['i64', 2]; }; }, { name: 'starbaseLevelIndex'; docs: [ 'The index representing the level of the `Starbase` in the game variables.' ]; type: 'u8'; }, { name: 'faction'; docs: ['The `Starbase` faction']; type: 'u8'; }, { name: 'keyIndex'; docs: ['the index of the key in the fleet permissions profile']; type: 'u16'; } ]; }; }, { name: 'RegisterStarbaseInputUnpacked'; docs: ['Unpacked version of [`RegisterStarbaseInput`]']; type: { kind: 'struct'; fields: [ { name: 'name'; docs: ['`Starbase` name']; type: { array: ['u8', 64]; }; }, { name: 'subCoordinates'; docs: ['`Starbase` coordinates']; type: { array: ['i64', 2]; }; }, { name: 'starbaseLevelIndex'; docs: [ 'The index representing the level of the `Starbase` in the game variables.' ]; type: 'u8'; }, { name: 'faction'; docs: ['The `Starbase` faction']; type: 'u8'; }, { name: 'keyIndex'; docs: ['the index of the key in the fleet permissions profile']; type: 'u16'; } ]; }; }, { name: 'RegisterSurveyDataUnitTrackerInput'; docs: ['Struct for data input to Register SurveyDataUnitTracker']; type: { kind: 'struct'; fields: [ { name: 'coordinatesRange'; docs: [ 'The valid coordinates range', 'e.g. a value of [-50, 50] means that coordinates from [-50, -50] to [50, 50] are valid for SDU scanning' ]; type: { array: ['i64', 2]; }; }, { name: 'cssCoordinates'; docs: [ 'The locations of the central space stations (CSS) of the three factions' ]; type: { array: [ { array: ['i64', 2]; }, 3 ]; }; }, { name: 'originCoordinates'; docs: [ 'The co-ordinates of the "origin"; used in calculating SDU probability' ]; type: { array: ['i64', 2]; }; }, { name: 'cssMaxDistance'; docs: [ 'The max distance from the nearest CSS; used in calculating SDU probability' ]; type: 'u32'; }, { name: 'originMaxDistance'; docs: [ 'The max distance from the `origin_coordinates`; used in calculating SDU probability' ]; type: 'u32'; }, { name: 'distanceWeighting'; docs: [ 'The distance weighting; used in calculating SDU probability' ]; type: 'u32'; }, { name: 'tMax'; docs: [ 'The maximum time before SDU probability at a location changes' ]; type: 'i64'; }, { name: 'xMul'; docs: ['Multiplier in the X dimension; used in noise function']; type: 'u32'; }, { name: 'yMul'; docs: ['Multiplier in the Y dimension; used in noise function']; type: 'u32'; }, { name: 'zMul'; docs: ['Multiplier in the Z dimension; used in noise function']; type: 'u32'; }, { name: 'sduMaxPerSector'; docs: [ 'The maximum number of SDUs that can be found per scan per sector' ]; type: 'u32'; }, { name: 'scanChanceRegenPeriod'; docs: [ 'The amount of time in seconds that it takes for a sector scan chance to fully regenerate' ]; type: 'i16'; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'ReloadInput'; docs: ['Struct for data input to `Reload`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'RemoveCrewInput'; docs: ['Accounts for Struct for data input for `RemoveCrew`']; type: { kind: 'struct'; fields: [ { name: 'items'; docs: ['inputs required to transfer crew cNFTs']; type: { vec: { defined: 'CrewTransferInput'; }; }; }, { name: 'keyIndex'; docs: [ 'the index of the `ProfileKey` in `Profile` with required permissions' ]; type: 'u16'; } ]; }; }, { name: 'RemoveShipEscrowInput'; docs: ['Struct for data input for `RemoveShipEscrow`']; type: { kind: 'struct'; fields: [ { name: 'shipAmount'; docs: ['Amount of `Ship` tokens to transfer from escrow']; type: 'u64'; }, { name: 'permissionKeyIndex'; docs: [ 'the index of the `ProfileKey` in `Profile` with required permissions' ]; type: 'u16'; }, { name: 'shipEscrowIndex'; docs: [ 'Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`' ]; type: 'u32'; } ]; }; }, { name: 'RepairFleetInput'; docs: ['Struct for data input to repair a fleet']; type: { kind: 'struct'; fields: [ { name: 'amount'; docs: [ 'the amount of HP to repair; if unset all missing HP is repaired' ]; type: { option: 'u32'; }; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'RepairStarbaseInput'; docs: ['Struct for data input to `RepairStarbase`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; }, { name: 'toolkitAmount'; docs: ['amount of toolkits to use for repairs']; type: 'u64'; } ]; }; }, { name: 'Respawn'; docs: [ 'The data for the [`FleetStateData::Respawn`](crate::state_machine::FleetStateData::Respawn) state' ]; type: { kind: 'struct'; fields: [ { name: 'sector'; docs: [ 'The star system the fleet was in when it entered the `Respawn` state' ]; type: { array: ['i64', 2]; }; }, { name: 'start'; docs: ['The time `Respawn` started']; type: 'i64'; } ]; }; }, { name: 'RespawnToLoadingBayInput'; docs: ['Struct for data input to `RespawnToLoadingBay`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'RetrieveLootInput'; docs: ['Struct for data input to retrieve loot']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'RiskZoneData'; docs: ['`RiskZone` center and radius']; type: { kind: 'struct'; fields: [ { name: 'center'; docs: ['Risk zone center']; type: { array: ['i64', 2]; }; }, { name: 'radius'; docs: ['Risk zone radius']; type: 'u64'; } ]; }; }, { name: 'RiskZoneDataUnpacked'; docs: ['Unpacked version of [`RiskZoneData`]']; type: { kind: 'struct'; fields: [ { name: 'center'; docs: ['Risk zone center']; type: { array: ['i64', 2]; }; }, { name: 'radius'; docs: ['Risk zone radius']; type: 'u64'; } ]; }; }, { name: 'RiskZonesData'; docs: ['[`RiskZoneData`] for [`RiskZones`]']; type: { kind: 'struct'; fields: [ { name: 'mudSecurityZone'; docs: ['Mud security zone']; type: { defined: 'RiskZoneData'; }; }, { name: 'oniSecurityZone'; docs: ['Oni security zone']; type: { defined: 'RiskZoneData'; }; }, { name: 'usturSecurityZone'; docs: ['Ustur security zone']; type: { defined: 'RiskZoneData'; }; }, { name: 'highRiskZone'; docs: ['High risk zone']; type: { defined: 'RiskZoneData'; }; }, { name: 'mediumRiskZone'; docs: ['Medium risk zone']; type: { defined: 'RiskZoneData'; }; } ]; }; }, { name: 'RiskZonesDataUnpacked'; docs: ['Unpacked version of [`RiskZonesData`]']; type: { kind: 'struct'; fields: [ { name: 'mudSecurityZone'; docs: ['Mud security zone']; type: { defined: 'RiskZoneData'; }; }, { name: 'oniSecurityZone'; docs: ['Oni security zone']; type: { defined: 'RiskZoneData'; }; }, { name: 'usturSecurityZone'; docs: ['Ustur security zone']; type: { defined: 'RiskZoneData'; }; }, { name: 'highRiskZone'; docs: ['High risk zone']; type: { defined: 'RiskZoneData'; }; }, { name: 'mediumRiskZone'; docs: ['Medium risk zone']; type: { defined: 'RiskZoneData'; }; } ]; }; }, { name: 'SagePointsCategory'; docs: [ 'Represents a points category & modifier as defined in the Points program' ]; type: { kind: 'struct'; fields: [ { name: 'category'; docs: ['The points category']; type: 'publicKey'; }, { name: 'modifier'; docs: ['The points category modifier']; type: 'publicKey'; }, { name: 'modifierBump'; docs: ['The points category modifier bump']; type: 'u8'; } ]; }; }, { name: 'ScanForSurveyDataUnitsInput'; docs: ['Struct for data input to Scan For Survey Data Units']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['The index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'SectorConnection'; docs: ['Connection between sectors']; type: { kind: 'struct'; fields: [ { name: 'connectionSector'; docs: ['The sector connected to']; type: 'publicKey'; }, { name: 'subCoordinates'; docs: ['The location of the connection']; type: { array: ['i64', 2]; }; }, { name: 'flags'; docs: ['Connection flags']; type: 'u8'; } ]; }; }, { name: 'SectorRing'; docs: ['Represents the orbital position of a `Planet` in the `Sector`']; type: { kind: 'enum'; variants: [ { name: 'Inner'; }, { name: 'Mid'; }, { name: 'Outer'; } ]; }; }, { name: 'ShipCounts'; docs: ['Ship counts for a fleet.']; type: { kind: 'struct'; fields: [ { name: 'total'; docs: ['The total number of ships in the fleet.']; type: 'u32'; }, { name: 'updated'; docs: [ 'Used when updating a fleet.', 'Value is 0 when fleet update is in progress' ]; type: 'u32'; }, { name: 'xxSmall'; docs: ['The number of xx small ships in the fleet.']; type: 'u16'; }, { name: 'xSmall'; docs: ['The number of x small ships in the fleet.']; type: 'u16'; }, { name: 'small'; docs: ['The number of small ships in the fleet.']; type: 'u16'; }, { name: 'medium'; docs: ['The number of medium ships in the fleet.']; type: 'u16'; }, { name: 'large'; docs: ['The number of large ships in the fleet.']; type: 'u16'; }, { name: 'capital'; docs: ['The number of capital ships in the fleet.']; type: 'u16'; }, { name: 'commander'; docs: ['The number of commander ships in the fleet.']; type: 'u16'; }, { name: 'titan'; docs: ['The number of titan ships in the fleet.']; type: 'u16'; } ]; }; }, { name: 'ShipCountsUnpacked'; docs: ['Unpacked version of [`ShipCounts`]']; type: { kind: 'struct'; fields: [ { name: 'total'; docs: ['The total number of ships in the fleet.']; type: 'u32'; }, { name: 'updated'; docs: [ 'Used when updating a fleet.', 'Value is 0 when fleet update is in progress' ]; type: 'u32'; }, { name: 'xxSmall'; docs: ['The number of xx small ships in the fleet.']; type: 'u16'; }, { name: 'xSmall'; docs: ['The number of x small ships in the fleet.']; type: 'u16'; }, { name: 'small'; docs: ['The number of small ships in the fleet.']; type: 'u16'; }, { name: 'medium'; docs: ['The number of medium ships in the fleet.']; type: 'u16'; }, { name: 'large'; docs: ['The number of large ships in the fleet.']; type: 'u16'; }, { name: 'capital'; docs: ['The number of capital ships in the fleet.']; type: 'u16'; }, { name: 'commander'; docs: ['The number of commander ships in the fleet.']; type: 'u16'; }, { name: 'titan'; docs: ['The number of titan ships in the fleet.']; type: 'u16'; } ]; }; }, { name: 'ShipSizes'; docs: ['Ship sizes.']; type: { kind: 'struct'; fields: [ { name: 'xxSmall'; docs: ['The size of xx small ships']; type: 'u8'; }, { name: 'xSmall'; docs: ['The size of x small ships']; type: 'u8'; }, { name: 'small'; docs: ['The size of small ships']; type: 'u8'; }, { name: 'medium'; docs: ['The size of medium ships']; type: 'u8'; }, { name: 'large'; docs: ['The size of large ships']; type: 'u8'; }, { name: 'capital'; docs: ['The size of capital ships']; type: 'u8'; }, { name: 'commander'; docs: ['The size of commander ships']; type: 'u8'; }, { name: 'titan'; docs: ['The size of titan ships']; type: 'u8'; } ]; }; }, { name: 'ShipStats'; docs: ["A ship's stats"]; type: { kind: 'struct'; fields: [ { name: 'movementStats'; docs: ['Movement stats for the ship']; type: { defined: 'MovementStats'; }; }, { name: 'cargoStats'; docs: ['Cargo stats for the ship']; type: { defined: 'CargoStats'; }; }, { name: 'combatStats'; docs: ['Combat stats for the ship']; type: { defined: 'CombatStats'; }; }, { name: 'miscStats'; docs: ['Miscellaneous stats for the ship']; type: { defined: 'MiscStats'; }; } ]; }; }, { name: 'ShipStatsUnpacked'; docs: ['Unpacked version of [`ShipStats`]']; type: { kind: 'struct'; fields: [ { name: 'movementStats'; docs: ['Movement stats for the ship']; type: { defined: 'MovementStats'; }; }, { name: 'cargoStats'; docs: ['Cargo stats for the ship']; type: { defined: 'CargoStats'; }; }, { name: 'combatStats'; docs: ['Combat stats for the ship']; type: { defined: 'CombatStats'; }; }, { name: 'miscStats'; docs: ['Miscellaneous stats for the ship']; type: { defined: 'MiscStats'; }; } ]; }; }, { name: 'SizeClass'; docs: ['Represents different types of Ships']; type: { kind: 'enum'; variants: [ { name: 'XxSmall'; }, { name: 'XSmall'; }, { name: 'Small'; }, { name: 'Medium'; }, { name: 'Large'; }, { name: 'Capital'; }, { name: 'Commander'; }, { name: 'Titan'; } ]; }; }, { name: 'StarType'; docs: ['Represents different types of Stars']; type: { kind: 'enum'; variants: [ { name: 'WhiteDwarf'; }, { name: 'RedDwarf'; }, { name: 'Solar'; }, { name: 'HotBlue'; }, { name: 'RedGiant'; } ]; }; }, { name: 'StarbaseCreateCargoPodInput'; docs: ['Struct for data input to `StarbaseCreateCargoPod`']; type: { kind: 'struct'; fields: [ { name: 'podSeeds'; docs: ['cargo pod seeds']; type: { array: ['u8', 32]; }; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'StarbaseCreateCraftingProcessInput'; docs: ['Struct for data input to create a `CraftingProcess`']; type: { kind: 'struct'; fields: [ { name: 'craftingId'; docs: ['crafting id']; type: 'u64'; }, { name: 'recipeCategoryIndex'; docs: ["the index of the recipe's category"]; type: 'u16'; }, { name: 'quantity'; docs: ['quantity of outputs to craft']; type: 'u64'; }, { name: 'numCrew'; docs: ['number of crew members to use for this crafting process']; type: 'u64'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'StarbaseDepositCraftingIngredientInput'; docs: ['Struct for data input to deposit an ingredient']; type: { kind: 'struct'; fields: [ { name: 'amount'; docs: ['the amount of ingredient to deposit']; type: 'u64'; }, { name: 'ingredientIndex'; docs: ['the index of the recipe ingredient']; type: 'u16'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'StarbaseLevelInfo'; docs: ['Information associated with `Starbase` levels']; type: { kind: 'struct'; fields: [ { name: 'recipeForUpgrade'; docs: [ 'The crafting recipe required to upgrade a `Starbase` to this level' ]; type: 'publicKey'; }, { name: 'recipeCategoryForLevel'; docs: [ 'The crafting recipe category enabled for crafting at a `Starbase` of this level.' ]; type: 'publicKey'; }, { name: 'hp'; docs: ['The `Starbase` health points for this level.']; type: 'u64'; }, { name: 'sp'; docs: ['The `Starbase` shield points for this level.']; type: 'u64'; }, { name: 'sectorRingAvailable'; docs: ['The planet position `Ring` available for this level']; type: 'u8'; }, { name: 'warpLaneMovementFee'; docs: [ 'Fee charged for the "warp lane" movement type which is meant to be charged in ATLAS', 'Since ATLAS has 8 decimal places, units are in the smallest value of ATLAS possible.' ]; type: 'u64'; }, { name: 'repairFee'; docs: [ 'Fees paid to repair a fleet docked at a Starbase of this level', 'Since ATLAS has 8 decimal places, units are in the smallest value of ATLAS possible.' ]; type: 'u64'; }, { name: 'repairEfficiency'; docs: ['the repair efficiency of the starbase']; type: 'u32'; }, { name: 'shieldRechargeRate'; docs: ['the amount of SP regenerated per second']; type: 'u32'; }, { name: 'shieldBreakDelay'; docs: [ "the time it takes the starbase's SP to start regenerating after getting to 0" ]; type: 'u32'; } ]; }; }, { name: 'StarbaseLevelInfoArrayInput'; docs: ['Struct for data input to Update Starbase Level Settings']; type: { kind: 'struct'; fields: [ { name: 'level'; docs: ['The level of the `Starbase`.']; type: 'u8'; }, { name: 'faction'; docs: ['The `Starbase` faction.']; type: 'u8'; }, { name: 'hp'; docs: ['The `Starbase` health points for this level.']; type: 'u64'; }, { name: 'sp'; docs: ['The `Starbase` shield points for this level.']; type: 'u64'; }, { name: 'sectorRingAvailable'; docs: ['The planet position `Ring` available for this level']; type: { defined: 'SectorRing'; }; }, { name: 'warpLaneMovementFee'; docs: [ 'Fee charged for the "warp lane" movement type which is meant to be charged in ATLAS' ]; type: 'u64'; }, { name: 'repairFee'; docs: [ 'Fees paid to repair a fleet docked at a Starbase of this level' ]; type: 'u64'; }, { name: 'repairEfficiency'; docs: ['the repair efficiency of a Starbase of this level']; type: 'u32'; }, { name: 'shieldRechargeRate'; docs: ['the amount of SP regenerated per second']; type: 'u32'; }, { name: 'shieldBreakDelay'; docs: [ "the time it takes the starbase's SP to start regenerating after getting to 0" ]; type: 'u32'; } ]; }; }, { name: 'StarbaseLevelInfoUnpacked'; docs: ['Unpacked version of [`StarbaseLevelInfo`]']; type: { kind: 'struct'; fields: [ { name: 'recipeForUpgrade'; docs: [ 'The crafting recipe required to upgrade a `Starbase` to this level' ]; type: 'publicKey'; }, { name: 'recipeCategoryForLevel'; docs: [ 'The crafting recipe category enabled for crafting at a `Starbase` of this level.' ]; type: 'publicKey'; }, { name: 'hp'; docs: ['The `Starbase` health points for this level.']; type: 'u64'; }, { name: 'sp'; docs: ['The `Starbase` shield points for this level.']; type: 'u64'; }, { name: 'sectorRingAvailable'; docs: ['The planet position `Ring` available for this level']; type: 'u8'; }, { name: 'warpLaneMovementFee'; docs: [ 'Fee charged for the "warp lane" movement type which is meant to be charged in ATLAS', 'Since ATLAS has 8 decimal places, units are in the smallest value of ATLAS possible.' ]; type: 'u64'; }, { name: 'repairFee'; docs: [ 'Fees paid to repair a fleet docked at a Starbase of this level', 'Since ATLAS has 8 decimal places, units are in the smallest value of ATLAS possible.' ]; type: 'u64'; }, { name: 'repairEfficiency'; docs: ['the repair efficiency of the starbase']; type: 'u32'; }, { name: 'shieldRechargeRate'; docs: ['the amount of SP regenerated per second']; type: 'u32'; }, { name: 'shieldBreakDelay'; docs: [ "the time it takes the starbase's SP to start regenerating after getting to 0" ]; type: 'u32'; } ]; }; }, { name: 'StarbaseLoadingBay'; docs: ['The data for the [`FleetStateData::StarbaseLoadingBay`] state']; type: { kind: 'struct'; fields: [ { name: 'starbase'; docs: ['The `Starbase` is in the loading bay of']; type: 'publicKey'; }, { name: 'lastUpdate'; docs: ['The last time this fleet was updated']; type: 'i64'; } ]; }; }, { name: 'StarbaseRemoveCargoPodInput'; docs: ['Struct for data input to `StarbaseRemoveCargoPod`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'StarbaseState'; docs: ['The state of a `Starbase`.']; type: { kind: 'enum'; variants: [ { name: 'Active'; }, { name: 'Destroyed'; } ]; }; }, { name: 'StarbaseTransferCargoInput'; docs: ['Struct for data input to `DepositCargoToGame`']; type: { kind: 'struct'; fields: [ { name: 'amount'; docs: ['cargo amount']; type: 'u64'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'StarbaseUpgradeState'; docs: ['The state of a `Starbase`.']; type: { kind: 'enum'; variants: [ { name: 'NotStarted'; }, { name: 'Started'; }, { name: 'Completed'; } ]; }; }, { name: 'StarbaseUpkeepInfo'; docs: ['Information associated with `Starbase` upkeep']; type: { kind: 'struct'; fields: [ { name: 'ammoReserve'; docs: [ 'The maximum amount of ammo that can be committed upkeep by players', 'If 0 (zero) then ammo upkeep is disabled' ]; type: 'u64'; }, { name: 'ammoDepletionRate'; docs: ['The per second rate at which the ammo reserve is emptied']; type: 'u32'; }, { name: 'foodReserve'; docs: [ 'The maximum amount of food that can be committed upkeep by players', 'If 0 (zero) then food upkeep is disabled' ]; type: 'u64'; }, { name: 'foodDepletionRate'; docs: ['The per second rate at which the food reserve is emptied']; type: 'u32'; }, { name: 'toolkitReserve'; docs: [ 'The maximum amount of toolkits that can be committed upkeep by players', 'If 0 (zero) then toolkit upkeep is disabled' ]; type: 'u64'; }, { name: 'toolkitDepletionRate'; docs: [ 'The per second rate at which the toolkit reserve is emptied' ]; type: 'u32'; } ]; }; }, { name: 'StarbaseUpkeepInfoArrayInput'; docs: ['Struct for data input to Update Starbase Upkeep Settings']; type: { kind: 'struct'; fields: [ { name: 'level'; docs: ['The level of the `Starbase`.']; type: 'u8'; }, { name: 'info'; docs: ['The stats for the ship']; type: { defined: 'StarbaseUpkeepInfoUnpacked'; }; } ]; }; }, { name: 'StarbaseUpkeepInfoUnpacked'; docs: ['Unpacked version of [`StarbaseUpkeepInfo`]']; type: { kind: 'struct'; fields: [ { name: 'ammoReserve'; docs: [ 'The maximum amount of ammo that can be committed upkeep by players', 'If 0 (zero) then ammo upkeep is disabled' ]; type: 'u64'; }, { name: 'ammoDepletionRate'; docs: ['The per second rate at which the ammo reserve is emptied']; type: 'u32'; }, { name: 'foodReserve'; docs: [ 'The maximum amount of food that can be committed upkeep by players', 'If 0 (zero) then food upkeep is disabled' ]; type: 'u64'; }, { name: 'foodDepletionRate'; docs: ['The per second rate at which the food reserve is emptied']; type: 'u32'; }, { name: 'toolkitReserve'; docs: [ 'The maximum amount of toolkits that can be committed upkeep by players', 'If 0 (zero) then toolkit upkeep is disabled' ]; type: 'u64'; }, { name: 'toolkitDepletionRate'; docs: [ 'The per second rate at which the toolkit reserve is emptied' ]; type: 'u32'; } ]; }; }, { name: 'StarbaseUpkeepLevels'; docs: ['Information on `Starbase` upkeep by level']; type: { kind: 'struct'; fields: [ { name: 'level0'; docs: ['Upkeep info. for a level 0 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; }, { name: 'level1'; docs: ['Upkeep info. for a level 1 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; }, { name: 'level2'; docs: ['Upkeep info. for a level 2 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; }, { name: 'level3'; docs: ['Upkeep info. for a level 3 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; }, { name: 'level4'; docs: ['Upkeep info. for a level 4 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; }, { name: 'level5'; docs: ['Upkeep info. for a level 5 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; }, { name: 'level6'; docs: ['Upkeep info. for a level 6 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; } ]; }; }, { name: 'StarbaseUpkeepLevelsUnpacked'; docs: ['Unpacked version of [`StarbaseUpkeepLevels`]']; type: { kind: 'struct'; fields: [ { name: 'level0'; docs: ['Upkeep info. for a level 0 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; }, { name: 'level1'; docs: ['Upkeep info. for a level 1 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; }, { name: 'level2'; docs: ['Upkeep info. for a level 2 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; }, { name: 'level3'; docs: ['Upkeep info. for a level 3 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; }, { name: 'level4'; docs: ['Upkeep info. for a level 4 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; }, { name: 'level5'; docs: ['Upkeep info. for a level 5 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; }, { name: 'level6'; docs: ['Upkeep info. for a level 6 `Starbase`']; type: { defined: 'StarbaseUpkeepInfo'; }; } ]; }; }, { name: 'StarbaseWithdrawCraftingIngredientInput'; docs: ['Struct for data input to withdraw an ingredient']; type: { kind: 'struct'; fields: [ { name: 'amount'; docs: ['the amount of ingredient to withdraw']; type: 'u64'; }, { name: 'ingredientIndex'; docs: ['the index of the recipe ingredient']; type: 'u16'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'StartSubwarpInput'; docs: ['Struct for data input to initialize an `SubwarpMovement`']; type: { kind: 'struct'; fields: [ { name: 'toSector'; docs: ['The destination coordinates']; type: { array: ['i64', 2]; }; }, { name: 'keyIndex'; docs: ['The index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'StopMiningAsteroidInput'; docs: ['Struct for data input for `StopMiningAsteroidInput`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'StopSubwarpInput'; docs: ['Struct for data input to stop an `SubwarpMovement`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['The index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'SubmitStarbaseUpgradeResourceInput'; docs: ['Submit starbase upgrade resource inputs']; type: { kind: 'struct'; fields: [ { name: 'pointsProgramPermissionsKeyIndex'; docs: [ 'the index of the point program permissions in the player profile' ]; type: 'u16'; }, { name: 'sagePermissionsKeyIndex'; docs: [ 'the index of the key in sage permissions in the player profile' ]; type: 'u16'; }, { name: 'upgradeProcessRecipeInputIndex'; docs: [ 'the index of the resource in the upgrade_process_recipe ingredients list', 'The resource is a non-consumable in this recipe' ]; type: 'u16'; }, { name: 'starbaseUpgradeRecipeInputIndex'; docs: [ 'the index of the resource in the upgrade recipe', 'The resource is a consumable in this recipe' ]; type: 'u16'; }, { name: 'resourceRecipeOutputIndex'; docs: [ 'the index of the resource represented by `token_mint` in the `resource_recipe` ingredients list', 'The resource is an output in this recipe' ]; type: 'u16'; }, { name: 'epochIndex'; docs: ['the index of the epoch in the `RedemptionConfig` account']; type: 'u16'; } ]; }; }, { name: 'TransferCargoWithinFleetInput'; docs: ['Struct for data input to `TransferCargoWithinFleet`']; type: { kind: 'struct'; fields: [ { name: 'amount'; docs: ['cargo amount']; type: 'u64'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'UpdateCombatConfigInput'; docs: ['Struct for data input for `UpdateCombatConfig`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the permissions profile']; type: 'u16'; }, { name: 'globalCeasefire'; docs: ['global ceasefire; >+1 means true']; type: 'u8'; }, { name: 'lootExclusivityTime'; docs: [ 'amount of time when the last-hitter of a fleet will have exclusive access to loot' ]; type: { option: 'u16'; }; }, { name: 'starbaseUpgradeProgressContinuation'; docs: [ 'amount of time that is added to starbase level 0 upgrade process in case it is destroyed' ]; type: { option: 'u32'; }; }, { name: 'crewRespawnTime'; docs: [ 'Time taken for crew to respawn when a starbase is destroyed' ]; type: { option: 'u16'; }; }, { name: 'rawShipsRespawnTime'; docs: [ 'Time taken for individual ships to respawn when a starbase is destroyed' ]; type: { option: 'u16'; }; } ]; }; }, { name: 'UpdateGameInput'; docs: ['Struct for data input to Update instruction']; type: { kind: 'struct'; fields: [ { name: 'cargo'; docs: ['Cargo settings']; type: 'u8'; }, { name: 'crafting'; docs: ['Crafting settings']; type: 'u8'; }, { name: 'mints'; docs: ['Mints']; type: 'u8'; }, { name: 'vaults'; docs: ['Vaults']; type: 'u8'; }, { name: 'points'; docs: ['Points settings']; type: 'u8'; }, { name: 'riskZones'; docs: ['Data for risk zones']; type: { option: { defined: 'RiskZonesDataUnpacked'; }; }; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'UpdateGameStateInput'; docs: ['Struct for data input to Update instruction']; type: { kind: 'struct'; fields: [ { name: 'fleet'; docs: ['Fleet settings']; type: { option: { defined: 'FleetInput'; }; }; }, { name: 'misc'; docs: ['Miscellaneous settings']; type: { option: { defined: 'MiscVariablesInput'; }; }; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'UpdateMineItemInput'; docs: ['Struct for data input to Register a Resource']; type: { kind: 'struct'; fields: [ { name: 'name'; docs: ['The name of the `MineItem`']; type: { option: { array: ['u8', 64]; }; }; }, { name: 'resourceHardness'; docs: ['How hard it is to mine this item']; type: { option: 'u16'; }; }, { name: 'keyIndex'; docs: ['the index of the key in the fleet permissions profile']; type: 'u16'; } ]; }; }, { name: 'UpdatePlanetInput'; docs: ['Struct for data input to Update Planet']; type: { kind: 'struct'; fields: [ { name: 'name'; docs: ['`Planet` name']; type: { option: { array: ['u8', 64]; }; }; }, { name: 'size'; docs: ['`Planet` size']; type: { option: 'u64'; }; }, { name: 'maxHp'; docs: ['`Planet` max_hp']; type: { option: 'u64'; }; }, { name: 'subCoordinates'; docs: ['`Planet` sub_coordinates']; type: { option: { array: ['i64', 2]; }; }; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'UpdateProgressionConfigInput'; docs: ['Struct for data input for `UpdateProgressionConfig`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['the index of the key in the permissions profile']; type: 'u16'; }, { name: 'dailyLpLimit'; docs: ['the daily limit for Loyalty Points (LP)']; type: { option: 'u64'; }; }, { name: 'dailyCouncilRankXpLimit'; docs: ['the daily limit for Council Rank Experience Points (CRXP)']; type: { option: 'u64'; }; }, { name: 'dailyPilotXpLimit'; docs: ['the daily limit for Pilot License Experience Points (PXP)']; type: { option: 'u64'; }; }, { name: 'dailyDataRunningXpLimit'; docs: ['the daily limit for Data Running Experience Points (DRXP)']; type: { option: 'u64'; }; }, { name: 'dailyMiningXpLimit'; docs: ['the daily limit for Mining Experience Points (MXP)']; type: { option: 'u64'; }; }, { name: 'dailyCraftingXpLimit'; docs: ['the daily limit for Crafting Experience Points (CXP)']; type: { option: 'u64'; }; }, { name: 'items'; docs: ['the progression items']; type: { option: { vec: { defined: 'ProgressionItemInputUnpacked'; }; }; }; } ]; }; }, { name: 'UpdateResourceInput'; docs: ['Struct for data input to Update Resource']; type: { kind: 'struct'; fields: [ { name: 'systemRichness'; docs: ['`Resource` richness']; type: { option: 'u16'; }; }, { name: 'keyIndex'; docs: ['the index of the key in the fleet permissions profile']; type: 'u16'; } ]; }; }, { name: 'UpdateShipEscrowInput'; docs: ['Struct for data input for `UpdateShipEscrow`']; type: { kind: 'struct'; fields: [ { name: 'shipEscrowIndex'; docs: [ 'Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`' ]; type: 'u32'; } ]; }; }, { name: 'UpdateShipFleetInput'; docs: ['Struct for data input for that has `key_index`']; type: { kind: 'struct'; fields: [ { name: 'shipAmount'; docs: ['Number of ships to add to the fleet']; type: 'u16'; }, { name: 'fleetShipInfoIndex'; docs: [ 'Index of `FleetShipsInfo` in remaining data of `FleetShips`' ]; type: 'u32'; } ]; }; }, { name: 'UpdateShipInput'; docs: ['Struct for data input to Update Ship']; type: { kind: 'struct'; fields: [ { name: 'name'; docs: ['The `Ship` name/label']; type: { array: ['u8', 64]; }; }, { name: 'sizeClass'; docs: ["the ship's size class"]; type: { defined: 'SizeClass'; }; }, { name: 'stats'; docs: ['The stats for the ship']; type: { defined: 'ShipStatsUnpacked'; }; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'UpdateStarInput'; docs: ['Struct for data input to Update Star']; type: { kind: 'struct'; fields: [ { name: 'name'; docs: ['`Star` name']; type: { option: { array: ['u8', 64]; }; }; }, { name: 'size'; docs: ['`Star` size']; type: { option: 'u64'; }; }, { name: 'starType'; docs: ['`Star` type']; type: { option: 'u8'; }; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'UpdateStarbaseInput'; docs: ['Struct for data input to Update `Starbase`']; type: { kind: 'struct'; fields: [ { name: 'name'; docs: ['`Starbase` name']; type: { option: { array: ['u8', 64]; }; }; }, { name: 'subCoordinates'; docs: ['`Starbase` coordinates']; type: { option: { array: ['i64', 2]; }; }; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'UpdateSurveyDataUnitTrackerInput'; docs: ['Struct for data input to Update SurveyDataUnitTracker']; type: { kind: 'struct'; fields: [ { name: 'coordinatesRange'; docs: [ 'The valid coordinates range', 'e.g. a value of [-50, 50] means that coordinates from [-50, -50] to [50, 50] are valid for SDU scanning' ]; type: { option: { array: ['i64', 2]; }; }; }, { name: 'cssCoordinates'; docs: [ 'The locations of the central space stations (CSS) of the three factions' ]; type: { option: { array: [ { array: ['i64', 2]; }, 3 ]; }; }; }, { name: 'originCoordinates'; docs: [ 'The co-ordinates of the "origin"; used in calculating SDU probability' ]; type: { option: { array: ['i64', 2]; }; }; }, { name: 'cssMaxDistance'; docs: [ 'The max distance from the nearest CSS; used in calculating SDU probability' ]; type: { option: 'u32'; }; }, { name: 'originMaxDistance'; docs: [ 'The max distance from the `origin_coordinates`; used in calculating SDU probability' ]; type: { option: 'u32'; }; }, { name: 'distanceWeighting'; docs: [ 'The distance weighting; used in calculating SDU probability' ]; type: { option: 'u32'; }; }, { name: 'tMax'; docs: [ 'The maximum time before SDU probability at a location changes' ]; type: { option: 'i64'; }; }, { name: 'xMul'; docs: ['Multiplier in the X dimension; used in noise function']; type: { option: 'u32'; }; }, { name: 'yMul'; docs: ['Multiplier in the Y dimension; used in noise function']; type: { option: 'u32'; }; }, { name: 'zMul'; docs: ['Multiplier in the Z dimension; used in noise function']; type: { option: 'u32'; }; }, { name: 'sduMaxPerSector'; docs: [ 'The maximum number of SDUs that can be found per scan per sector' ]; type: { option: 'u32'; }; }, { name: 'scanChanceRegenPeriod'; docs: [ 'The amount of time in seconds that it takes for a sector scan chance to fully regenerate' ]; type: { option: 'i16'; }; }, { name: 'keyIndex'; docs: ['the index of the key in the sector permissions profile']; type: 'u16'; } ]; }; }, { name: 'UpkeepResourceType'; docs: ['The different types of upkeep resources']; type: { kind: 'enum'; variants: [ { name: 'Ammo'; }, { name: 'Food'; }, { name: 'Toolkit'; } ]; }; }, { name: 'Vaults'; docs: ['Token vaults']; type: { kind: 'struct'; fields: [ { name: 'atlas'; docs: ['ATLAS token mint']; type: 'publicKey'; }, { name: 'polis'; docs: ['POLIS token mint']; type: 'publicKey'; } ]; }; }, { name: 'WarpLaneInput'; docs: ['Struct for data input to initialize a `WarpLane`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['The index of the key in the player profile']; type: 'u16'; }, { name: 'toSectorIndex'; docs: [ 'Index of the to_sector in `SectorConnections` of the from_sector' ]; type: 'u16'; }, { name: 'fromSectorIndex'; docs: [ 'Index of the from_sector in `SectorConnections` of the to_sector' ]; type: 'u16'; } ]; }; }, { name: 'WarpToCoordinateInput'; docs: ['Struct for data input to initialize a `WarpToCoordinate`']; type: { kind: 'struct'; fields: [ { name: 'keyIndex'; docs: ['The index of the key in the player profile']; type: 'u16'; }, { name: 'toSector'; docs: ['The destination coordinates']; type: { array: ['i64', 2]; }; } ]; }; }, { name: 'WithdrawCargoFromFleetInput'; docs: ['Struct for data input to `WithdrawCargoFromFleet`']; type: { kind: 'struct'; fields: [ { name: 'amount'; docs: ['cargo amount']; type: 'u64'; }, { name: 'keyIndex'; docs: ['the index of the key in the player profile']; type: 'u16'; } ]; }; }, { name: 'WrappedShipEscrow'; docs: ['Wrapped `Ship` escrow info']; type: { kind: 'struct'; fields: [ { name: 'ship'; docs: ['The `Ship` account address']; type: 'publicKey'; }, { name: 'amount'; docs: ['The `Ship` token amount in escrow']; type: 'u64'; }, { name: 'updateId'; docs: ['The update id for the `Ship`']; type: 'u64'; } ]; }; } ]; events: [ { name: 'BattleLog'; fields: [ { name: 'combatId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'attackerFleet'; type: 'publicKey'; index: false; }, { name: 'defenderFleet'; type: 'publicKey'; index: false; }, { name: 'sector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'attackerPreHp'; type: 'u32'; index: false; }, { name: 'attackerPreSp'; type: 'u32'; index: false; }, { name: 'defenderPreHp'; type: 'u32'; index: false; }, { name: 'defenderPreSp'; type: 'u32'; index: false; }, { name: 'damageToAttackerHp'; type: 'u32'; index: false; }, { name: 'damageToAttackerSp'; type: 'u32'; index: false; }, { name: 'damageToDefenderHp'; type: 'u32'; index: false; }, { name: 'damageToDefenderSp'; type: 'u32'; index: false; }, { name: 'attackerPostHp'; type: 'u32'; index: false; }, { name: 'attackerPostSp'; type: 'u32'; index: false; }, { name: 'defenderPostHp'; type: 'u32'; index: false; }, { name: 'defenderPostSp'; type: 'u32'; index: false; }, { name: 'attackerXpGained'; type: 'u32'; index: false; }, { name: 'defenderXpGained'; type: 'u32'; index: false; }, { name: 'damageAppliedToAttackerHp'; type: 'u32'; index: false; }, { name: 'damageAppliedToAttackerSp'; type: 'u32'; index: false; }, { name: 'damageAppliedToDefenderHp'; type: 'u32'; index: false; }, { name: 'damageAppliedToDefenderSp'; type: 'u32'; index: false; } ]; }, { name: 'CombatLogEvent'; fields: [ { name: 'combatType'; type: 'u8'; index: false; }, { name: 'combatId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; }, { name: 'slot'; type: 'u64'; index: false; }, { name: 'attacker'; type: { defined: 'CombatParticipant'; }; index: false; }, { name: 'defender'; type: { defined: 'CombatParticipant'; }; index: false; }, { name: 'targetStarbaseKey'; type: { option: 'publicKey'; }; index: false; }, { name: 'targetStarbaseFaction'; type: { option: 'u8'; }; index: false; }, { name: 'starbasePreHp'; type: { option: 'u32'; }; index: false; }, { name: 'starbasePostHp'; type: { option: 'u32'; }; index: false; }, { name: 'starbaseMaxHp'; type: { option: 'u32'; }; index: false; }, { name: 'attackDamageDealt'; type: 'u32'; index: false; }, { name: 'defenseDamageDealt'; type: 'u32'; index: false; }, { name: 'attackerDestroyed'; type: 'bool'; index: false; }, { name: 'defenderDestroyed'; type: 'bool'; index: false; }, { name: 'starbaseDestroyed'; type: 'bool'; index: false; }, { name: 'starbaseCaptured'; type: 'bool'; index: false; }, { name: 'attackerXpGained'; type: 'u32'; index: false; }, { name: 'defenderXpGained'; type: 'u32'; index: false; }, { name: 'attackerTrophiesGained'; type: 'u16'; index: false; }, { name: 'defenderTrophiesGained'; type: 'u16'; index: false; }, { name: 'gameVersion'; type: { array: ['u8', 16]; }; index: false; }, { name: 'asteroidKey'; type: { option: 'publicKey'; }; index: false; }, { name: 'wasRetaliation'; type: 'bool'; index: false; }, { name: 'battleDuration'; type: 'u16'; index: false; }, { name: 'combatRandomSeed'; type: 'u64'; index: false; } ]; }, { name: 'CombatLootDropEvent'; fields: [ { name: 'combatId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'destroyedFleet'; type: 'publicKey'; index: false; }, { name: 'destroyerFleet'; type: 'publicKey'; index: false; }, { name: 'lootLocationX'; type: 'i64'; index: false; }, { name: 'lootLocationY'; type: 'i64'; index: false; }, { name: 'lootAccount'; type: 'publicKey'; index: false; }, { name: 'lootExclusivityTime'; type: 'i64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'CombatParticipant'; fields: [ { name: 'fleetKey'; type: 'publicKey'; index: false; }, { name: 'fleetLabel'; type: { array: ['u8', 64]; }; index: false; }, { name: 'fleetState'; type: 'u8'; index: false; }, { name: 'ownerProfile'; type: 'publicKey'; index: false; }, { name: 'playerKey'; type: 'publicKey'; index: false; }, { name: 'faction'; type: 'u8'; index: false; }, { name: 'publicKey'; type: 'publicKey'; index: false; }, { name: 'preHp'; type: 'u32'; index: false; }, { name: 'preSp'; type: 'u32'; index: false; }, { name: 'preAp'; type: 'u32'; index: false; }, { name: 'postHp'; type: 'u32'; index: false; }, { name: 'postSp'; type: 'u32'; index: false; }, { name: 'postAp'; type: 'u32'; index: false; }, { name: 'totalAttackPower'; type: 'u32'; index: false; }, { name: 'totalDefensePower'; type: 'u32'; index: false; }, { name: 'agility'; type: 'u32'; index: false; }, { name: 'shipClassCounts'; type: { array: ['u32', 8]; }; index: false; }, { name: 'positionX'; type: 'i64'; index: false; }, { name: 'positionY'; type: 'i64'; index: false; }, { name: 'sectorKey'; type: 'publicKey'; index: false; }, { name: 'ammoCount'; type: 'u64'; index: false; }, { name: 'fuelCount'; type: 'u64'; index: false; }, { name: 'combatXp'; type: 'u64'; index: false; }, { name: 'councilRank'; type: 'u16'; index: false; } ]; }, { name: 'CraftingClaimedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'starbasePlayer'; type: 'publicKey'; index: false; }, { name: 'locationX'; type: 'i64'; index: false; }, { name: 'locationY'; type: 'i64'; index: false; }, { name: 'crew'; type: 'u64'; index: false; }, { name: 'recipeId'; type: 'publicKey'; index: false; }, { name: 'recipeName'; type: 'string'; index: false; }, { name: 'recipeAmount'; type: 'u64'; index: false; }, { name: 'craftingFee'; type: 'u64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'CraftingIngredientDepositedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'craftingProcess'; type: 'publicKey'; index: false; }, { name: 'ingredientMint'; type: 'publicKey'; index: false; }, { name: 'ingredientIndex'; type: 'u16'; index: false; }, { name: 'amount'; type: 'u64'; index: false; }, { name: 'locationX'; type: 'i64'; index: false; }, { name: 'locationY'; type: 'i64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'CraftingIngredientWithdrawnEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'craftingProcess'; type: 'publicKey'; index: false; }, { name: 'ingredientMint'; type: 'publicKey'; index: false; }, { name: 'ingredientIndex'; type: 'u16'; index: false; }, { name: 'amount'; type: 'u64'; index: false; }, { name: 'locationX'; type: 'i64'; index: false; }, { name: 'locationY'; type: 'i64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'CraftingProcessCancelledEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'craftingProcess'; type: 'publicKey'; index: false; }, { name: 'craftingInstance'; type: 'publicKey'; index: false; }, { name: 'crewFreed'; type: 'u64'; index: false; }, { name: 'locationX'; type: 'i64'; index: false; }, { name: 'locationY'; type: 'i64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'CraftingProcessClosedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'craftingProcess'; type: 'publicKey'; index: false; }, { name: 'craftingRecipe'; type: 'publicKey'; index: false; }, { name: 'crewFreed'; type: 'u64'; index: false; }, { name: 'craftingDuration'; type: 'i64'; index: false; }, { name: 'locationX'; type: 'i64'; index: false; }, { name: 'locationY'; type: 'i64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'CraftingProcessCreatedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'starbasePlayer'; type: 'publicKey'; index: false; }, { name: 'craftingInstance'; type: 'publicKey'; index: false; }, { name: 'craftingProcess'; type: 'publicKey'; index: false; }, { name: 'quantity'; type: 'u64'; index: false; }, { name: 'numCrew'; type: 'u64'; index: false; }, { name: 'locationX'; type: 'i64'; index: false; }, { name: 'locationY'; type: 'i64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'CraftingProcessStartedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'craftingProcess'; type: 'publicKey'; index: false; }, { name: 'craftingRecipe'; type: 'publicKey'; index: false; }, { name: 'duration'; type: 'i64'; index: false; }, { name: 'numCrew'; type: 'u64'; index: false; }, { name: 'quantity'; type: 'u64'; index: false; }, { name: 'locationX'; type: 'i64'; index: false; }, { name: 'locationY'; type: 'i64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'CraftingProcessStoppedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'craftingProcess'; type: 'publicKey'; index: false; }, { name: 'craftingRecipe'; type: 'publicKey'; index: false; }, { name: 'locationX'; type: 'i64'; index: false; }, { name: 'locationY'; type: 'i64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'FleetCreatedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'fleetId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'starbaseId'; type: 'publicKey'; index: false; }, { name: 'fleetLabel'; type: { array: ['u8', 32]; }; index: false; }, { name: 'creationTime'; type: 'i64'; index: false; }, { name: 'miningRate'; type: 'u32'; index: false; }, { name: 'cargoCapacity'; type: 'u32'; index: false; }, { name: 'fuelCapacity'; type: 'u32'; index: false; }, { name: 'ammoCapacity'; type: 'u32'; index: false; }, { name: 'crewCapacity'; type: 'u16'; index: false; }, { name: 'crewCount'; type: 'u16'; index: false; }, { name: 'maxWarpDistance'; type: 'u32'; index: false; }, { name: 'sduPerScan'; type: 'u16'; index: false; }, { name: 'totalShips'; type: 'u32'; index: false; }, { name: 'shipCounts'; type: { array: ['u16', 8]; }; index: false; } ]; }, { name: 'FleetDisbandedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'fleetId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'starbaseId'; type: 'publicKey'; index: false; }, { name: 'disbandTime'; type: 'i64'; index: false; }, { name: 'currentHp'; type: 'u32'; index: false; }, { name: 'currentSp'; type: 'u32'; index: false; }, { name: 'crewReturned'; type: 'u16'; index: false; } ]; }, { name: 'FleetReloadEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'fleetId'; type: 'publicKey'; index: false; }, { name: 'preAp'; type: 'u32'; index: false; }, { name: 'postAp'; type: 'u32'; index: false; }, { name: 'reloadDuration'; type: 'i64'; index: false; }, { name: 'reloadExpiresAt'; type: 'i64'; index: false; }, { name: 'sector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'FleetRepairEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'repairingFleet'; type: 'publicKey'; index: false; }, { name: 'repairedFleet'; type: 'publicKey'; index: false; }, { name: 'isSelfRepair'; type: 'bool'; index: false; }, { name: 'repairType'; type: 'u8'; index: false; }, { name: 'sector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'starbase'; type: 'publicKey'; index: false; }, { name: 'preHp'; type: 'u32'; index: false; }, { name: 'preSp'; type: 'u32'; index: false; }, { name: 'prePendingHp'; type: 'u32'; index: false; }, { name: 'pendingHpAdded'; type: 'u32'; index: false; }, { name: 'toolkitsUsed'; type: 'u64'; index: false; }, { name: 'atlasFeePaid'; type: 'u64'; index: false; }, { name: 'postHp'; type: 'u32'; index: false; }, { name: 'postSp'; type: 'u32'; index: false; }, { name: 'postPendingHp'; type: 'u32'; index: false; }, { name: 'maxHp'; type: 'u32'; index: false; }, { name: 'repairRate'; type: 'u32'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'FleetShipAddedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'fleetId'; type: 'publicKey'; index: false; }, { name: 'starbaseId'; type: 'publicKey'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; }, { name: 'shipMint'; type: 'publicKey'; index: false; }, { name: 'shipClass'; type: 'u8'; index: false; }, { name: 'quantity'; type: 'u32'; index: false; }, { name: 'newTotalShips'; type: 'u32'; index: false; }, { name: 'newShipCounts'; type: { array: ['u32', 8]; }; index: false; }, { name: 'newCargoCapacity'; type: 'u64'; index: false; }, { name: 'newFuelCapacity'; type: 'u64'; index: false; }, { name: 'newAmmoCapacity'; type: 'u64'; index: false; }, { name: 'newMiningRate'; type: 'u32'; index: false; } ]; }, { name: 'FleetStateTransitionEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'fleetId'; type: 'publicKey'; index: false; }, { name: 'fromState'; type: 'u8'; index: false; }, { name: 'toState'; type: 'u8'; index: false; }, { name: 'sector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'starbase'; type: 'publicKey'; index: false; }, { name: 'atlasFeePaid'; type: 'u64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'FleetSubwarpStartEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'fleetId'; type: 'publicKey'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; }, { name: 'fromSector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'toSector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'fuelExpenditure'; type: 'u64'; index: false; }, { name: 'travelTime'; type: 'u64'; index: false; }, { name: 'arrivalTime'; type: 'i64'; index: false; } ]; }, { name: 'FleetSubwarpStopEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'fleetId'; type: 'publicKey'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; }, { name: 'originalFromSector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'originalToSector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'actualStopSector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'fuelConsumed'; type: 'u64'; index: false; }, { name: 'distanceTraveled'; type: 'u64'; index: false; } ]; }, { name: 'FleetWarpEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'fleetId'; type: 'publicKey'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; }, { name: 'fromSector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'toSector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'fuelCost'; type: 'u64'; index: false; }, { name: 'warpTime'; type: 'u64'; index: false; }, { name: 'arrivalTime'; type: 'i64'; index: false; } ]; }, { name: 'LootRetrievedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'fleetId'; type: 'publicKey'; index: false; }, { name: 'lootAccount'; type: 'publicKey'; index: false; }, { name: 'sector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'itemsRetrieved'; type: 'u8'; index: false; }, { name: 'itemMints'; type: { array: ['publicKey', 8]; }; index: false; }, { name: 'itemAmounts'; type: { array: ['u64', 8]; }; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'MiningCompletedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'fleetId'; type: 'publicKey'; index: false; }, { name: 'locationX'; type: 'i64'; index: false; }, { name: 'locationY'; type: 'i64'; index: false; }, { name: 'fleetMiningRate'; type: 'u32'; index: false; }, { name: 'mintId'; type: 'publicKey'; index: false; }, { name: 'mintName'; type: 'string'; index: false; }, { name: 'mintAmount'; type: 'u64'; index: false; }, { name: 'fuelBurn'; type: 'u64'; index: false; }, { name: 'ammoBurn'; type: 'u64'; index: false; }, { name: 'foodBurn'; type: 'u64'; index: false; }, { name: 'startMiningTime'; type: 'i64'; index: false; }, { name: 'stopMiningTime'; type: 'i64'; index: false; }, { name: 'miningDuration'; type: 'i64'; index: false; } ]; }, { name: 'MiningStartedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'fleetId'; type: 'publicKey'; index: false; }, { name: 'resource'; type: 'publicKey'; index: false; }, { name: 'resourceMint'; type: 'publicKey'; index: false; }, { name: 'asteroid'; type: 'publicKey'; index: false; }, { name: 'sector'; type: { array: ['i64', 2]; }; index: false; }, { name: 'fleetMiningRate'; type: 'u32'; index: false; }, { name: 'startTime'; type: 'i64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'ScanCompletedEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'fleetId'; type: 'publicKey'; index: false; }, { name: 'locationX'; type: 'i64'; index: false; }, { name: 'locationY'; type: 'i64'; index: false; }, { name: 'sdusFound'; type: 'u64'; index: false; }, { name: 'scanProbability'; type: 'u32'; index: false; }, { name: 'toolkitBurn'; type: 'u64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; }, { name: 'StarbaseCombatEvent'; fields: [ { name: 'attackerFleet'; type: 'publicKey'; index: false; }, { name: 'targetStarbase'; type: 'publicKey'; index: false; }, { name: 'sectorKey'; type: 'publicKey'; index: false; }, { name: 'combatId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; }, { name: 'attackerFaction'; type: 'u8'; index: false; }, { name: 'starbaseFaction'; type: 'u8'; index: false; }, { name: 'damageDealt'; type: 'u32'; index: false; }, { name: 'starbaseDestroyed'; type: 'bool'; index: false; }, { name: 'starbaseCaptured'; type: 'bool'; index: false; }, { name: 'starbaseHpBefore'; type: 'u32'; index: false; }, { name: 'starbaseHpAfter'; type: 'u32'; index: false; } ]; }, { name: 'StarbaseRepairEvent'; fields: [ { name: 'eventId'; type: { array: ['u8', 32]; }; index: false; }, { name: 'gameId'; type: 'publicKey'; index: false; }, { name: 'profileId'; type: 'publicKey'; index: false; }, { name: 'playerId'; type: 'publicKey'; index: false; }, { name: 'repairingFleet'; type: 'publicKey'; index: false; }, { name: 'starbase'; type: 'publicKey'; index: false; }, { name: 'faction'; type: 'u8'; index: false; }, { name: 'preHp'; type: 'u32'; index: false; }, { name: 'preSp'; type: 'u32'; index: false; }, { name: 'hpRepaired'; type: 'u32'; index: false; }, { name: 'postHp'; type: 'u32'; index: false; }, { name: 'postSp'; type: 'u32'; index: false; }, { name: 'maxHp'; type: 'u32'; index: false; }, { name: 'toolkitsUsed'; type: 'u64'; index: false; }, { name: 'timestamp'; type: 'i64'; index: false; } ]; } ]; errors: [ { code: 6000; name: 'IncorrectAdminAddress'; msg: 'Incorrect admin address.'; }, { code: 6001; name: 'MissingRemainingAccount'; msg: 'An expected remaining account is missing.'; }, { code: 6002; name: 'NoStargateConnectionsAvailable'; msg: 'No Stargate connections available.'; }, { code: 6003; name: 'StargatesNotConnected'; msg: 'The provided Stargates are not connected.'; }, { code: 6004; name: 'InvalidPlanetType'; msg: 'Invalid Planet Type.'; }, { code: 6005; name: 'InvalidRingType'; msg: 'Invalid Ring Type.'; }, { code: 6006; name: 'InvalidStarType'; msg: 'Invalid Star Type.'; }, { code: 6007; name: 'InvalidOrInactiveGame'; msg: 'Invalid Or Inactive Game'; }, { code: 6008; name: 'InvalidShipSizeClass'; msg: 'Invalid Ship Size Class.'; }, { code: 6009; name: 'IncorrectAccountSize'; msg: 'Incorrect Account Size.'; }, { code: 6010; name: 'UpdateIdMismatch'; msg: 'The update_id is mismatched.'; }, { code: 6011; name: 'AlreadyActive'; msg: 'The account is already active.'; }, { code: 6012; name: 'InactiveAccount'; msg: 'The account is inactive.'; }, { code: 6013; name: 'InvalidGame'; msg: 'The game account is invalid.'; }, { code: 6014; name: 'InvalidGameState'; msg: 'The game state account is invalid.'; }, { code: 6015; name: 'InvalidSector'; msg: 'The sector account is invalid.'; }, { code: 6016; name: 'FleetCrewNotNormalized'; msg: 'Fleet Crew Not Normalized'; }, { code: 6017; name: 'InsufficientFuel'; msg: 'Insufficient Fuel to complete movement'; }, { code: 6018; name: 'DistanceGreaterThanMax'; msg: 'Distance of movement is greater than the allowed maximum'; }, { code: 6019; name: 'NumericOverflow'; msg: 'Numeric overflow'; }, { code: 6020; name: 'InvalidLocationType'; msg: 'Invalid Location Type.'; }, { code: 6021; name: 'LocationTypeNotSupported'; msg: 'The provided location type is not supported.'; }, { code: 6022; name: 'IncorrectMineItem'; msg: 'Incorrect mine item address.'; }, { code: 6023; name: 'IncorrectAuthorityAddress'; msg: 'Incorrect authority address.'; }, { code: 6024; name: 'IncorrectResourceAddress'; msg: 'Incorrect resource address.'; }, { code: 6025; name: 'IncorrectMintAuthority'; msg: 'Incorrect mint authority.'; }, { code: 6026; name: 'MintAuthorityIsNone'; msg: 'The mint authority should exist.'; }, { code: 6027; name: 'InvalidCurrentFleetState'; msg: 'The current fleet state is not valid.'; }, { code: 6028; name: 'InvalidCurrentStarbaseState'; msg: 'The current starbase state is not valid.'; }, { code: 6029; name: 'AuthorityMismatch'; msg: 'Authority mismatch'; }, { code: 6030; name: 'MintMismatch'; msg: 'Mint mismatch'; }, { code: 6031; name: 'TokenMismatch'; msg: 'Incorrect token address.'; }, { code: 6032; name: 'OwnerMismatch'; msg: 'Owner mismatch'; }, { code: 6033; name: 'GameMismatch'; msg: 'Game ID mismatch'; }, { code: 6034; name: 'ProfileMismatch'; msg: 'Profile mismatch'; }, { code: 6035; name: 'SagePlayerProfileMismatch'; msg: 'SagePlayerProfile mismatch'; }, { code: 6036; name: 'StarbaseMismatch'; msg: 'Starbase mismatch'; }, { code: 6037; name: 'FactionMismatch'; msg: 'Faction mismatch'; }, { code: 6038; name: 'SeqIdMismatch'; msg: 'Sequence id mismatch'; }, { code: 6039; name: 'ShipMismatch'; msg: 'Ship mismatch'; }, { code: 6040; name: 'CargoPodMismatch'; msg: 'Cargo Pod mismatch'; }, { code: 6041; name: 'PlanetMismatch'; msg: 'Planet mismatch'; }, { code: 6042; name: 'MineItemMismatch'; msg: 'MineItem mismatch'; }, { code: 6043; name: 'LocationMismatch'; msg: 'Location mismatch'; }, { code: 6044; name: 'InvalidEscrowKey'; msg: 'Escrow key not found in remaining data'; }, { code: 6045; name: 'InvalidShipAmount'; msg: 'Insufficient Ship token amount'; }, { code: 6046; name: 'InvalidShipHangarSpaceAmount'; msg: 'Insufficient Ship hangar space amount'; }, { code: 6047; name: 'InvalidCrewAmount'; msg: 'Invalid crew amount'; }, { code: 6048; name: 'InvalidState'; msg: 'Invalid state'; }, { code: 6049; name: 'InvalidDistance'; msg: 'Invalid distance'; }, { code: 6050; name: 'NotAtCentralSpaceStation'; msg: 'Not at central space station'; }, { code: 6051; name: 'ShipNotExpected'; msg: 'The instruction does not expect a ship account'; }, { code: 6052; name: 'AddressMismatch'; msg: 'Address mismatch'; }, { code: 6053; name: 'InvalidSectorConnection'; msg: 'Invalid sector connection'; }, { code: 6054; name: 'InvalidStarbaseLevel'; msg: 'Invalid Starbase level'; }, { code: 6055; name: 'InvalidStarbaseUpgradeRecipeCategory'; msg: 'Invalid Starbase upgrade recipe category'; }, { code: 6056; name: 'HangarUpgradeNotPossible'; msg: 'Hangar upgrade not Possible'; }, { code: 6057; name: 'DisbandedFleetNotEmpty'; msg: 'Disbanded fleet not empty'; }, { code: 6058; name: 'FaultyMovement'; msg: 'Faulty movement'; }, { code: 6059; name: 'IncorrectHandleRawAccount'; msg: 'Incorrect Account Type for Handle Raw'; }, { code: 6060; name: 'InsufficientShipCargoCapacity'; msg: 'Insufficient Ship Cargo Capacity'; }, { code: 6061; name: 'FleetDoesNotNeedUpdate'; msg: 'Fleet does not need update'; }, { code: 6062; name: 'MustDisbandFleet'; msg: 'Must disband fleet'; }, { code: 6063; name: 'CannotForceDisbandFleet'; msg: 'Cannot force-disband fleet'; }, { code: 6064; name: 'ShipMismatchOrAlreadyUpdated'; msg: 'Ship mismatch or already updated'; }, { code: 6065; name: 'ShipAlreadyUpdated'; msg: 'Ship already updated'; }, { code: 6066; name: 'InvalidNextShipAddress'; msg: 'Invalid next ship address'; }, { code: 6067; name: 'InvalidShipForForcedDisband'; msg: 'Ship is not valid for forced disband of fleet'; }, { code: 6068; name: 'InvalidWarpRange'; msg: 'Warp range exceeded'; }, { code: 6069; name: 'InvalidIngredient'; msg: 'Invalid Ingredient'; }, { code: 6070; name: 'StarbaseUpgradeNotInProgress'; msg: 'Starbase Upgrade Not in progress'; }, { code: 6071; name: 'MissingRentedCrew'; msg: 'Missing Rented Crew'; }, { code: 6072; name: 'NoPassengersAllowed'; msg: 'No Passengers Allowed'; }, { code: 6073; name: 'PlanetNotReachable'; msg: 'Planet Not Reachable'; }, { code: 6074; name: 'RespawnNotPossible'; msg: 'Respawn Not Possible'; }, { code: 6075; name: 'InvalidMovement'; msg: "Cannot enter enemy faction's Security Zone"; }, { code: 6076; name: 'CargoAmountAboveZero'; msg: 'The Cargo Pod contains a non-zero amount of the Cargo Type'; }, { code: 6077; name: 'InvalidCargoPod'; msg: 'The Cargo Pod is invalid'; }, { code: 6078; name: 'InvalidZoneCoordinates'; msg: 'Invalid Zone Coordinates'; }, { code: 6079; name: 'RespawnTimeNotElapsed'; msg: 'Respawn time not elapsed'; }, { code: 6080; name: 'ActiveAccount'; msg: 'The Account is Active'; }, { code: 6081; name: 'StarbasePlayerMismatch'; msg: 'Starbase Player mismatch'; }, { code: 6082; name: 'AlreadyProcessed'; msg: 'The account has already been processed'; }, { code: 6083; name: 'InvalidAmount'; msg: 'The amount is invalid'; }, { code: 6084; name: 'WarpIsOnCooldown'; msg: 'Warp is on cooldown'; }, { code: 6085; name: 'ProgramMismatch'; msg: 'Program Mismatch'; }, { code: 6086; name: 'MustBeOnlyInstruction'; msg: 'Current Instruction Is Not Only Instruction'; }, { code: 6087; name: 'InvalidTime'; msg: 'Invalid Time'; }, { code: 6088; name: 'ScanIsOnCooldown'; msg: 'Scanning is on cooldown'; }, { code: 6089; name: 'InvalidFleetSize'; msg: 'Invalid Fleet Size'; }, { code: 6090; name: 'InactiveFeature'; msg: 'The feature is inactive'; }, { code: 6091; name: 'ZeroShipsAdded'; msg: 'Zero ships added to fleet'; }, { code: 6092; name: 'InvalidNoiseSeed'; msg: 'Invalid Noise Seed'; }, { code: 6093; name: 'InvalidType'; msg: 'Invalid type'; }, { code: 6094; name: 'RentedFleet'; msg: 'Rented Fleet'; }, { code: 6095; name: 'NoCrewItems'; msg: 'No Crew Items'; }, { code: 6096; name: 'FleetDestroyed'; msg: 'Fleet Destroyed'; }, { code: 6097; name: 'GlobalCeaseFireInPlace'; msg: 'Global Cease Fire In Place'; }, { code: 6098; name: 'ReloadInProgress'; msg: 'Reload In Progress'; }, { code: 6099; name: 'FleetNotFullyRepaired'; msg: 'Fleet must be fully repaired before disbanding'; }, { code: 6100; name: 'GenericInvalid'; msg: 'Generic invalid data'; } ]; }; export declare const IDL: Sage; //# sourceMappingURL=sage.d.ts.map