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 const IDL: 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', }, ], };